Subscriptions represent the various events that can be triggered within the system.
They are broken down into:
Top Level Subscriptions
ALL
is the highest top level subscription and subscribes your webhook to all events triggered within the system.
Subscription | Definition |
---|
ALL | Subscribes to all other high level subscribtions defined within the system |
These other top level subscriptions, will subscribe to all events within its domain.
Subscription | Definition | Domain |
---|
ACCOUNT | Only events that deal with accounts | Accounts |
ASSET | Only events that deal with assets | Assets |
AUTH | Only events that deal with authentication | Authentications |
CUSTOMER | Only events that deal with customers | Customers |
INSTRUMENT | Only events that deal with instruments | Instruments |
INVESTMENT_TYPE | Only events that deal with investments | Investments |
PORTFOLIO | Only events that deal with portfolios | Portfolios |
REQUEST | Only events that deal with requests | Requests |
REPORT | Only events that deal with reports | Reports |
TRANSACTION | Only events that deal with transactions | Transactions |
WEBHOOK | Only events that deal with webhooks | Webhooks |
For example if you subcribed to ACCOUNT
, it means that subscriptions to both
ACCOUNT.CREATED
and ACCOUNT.UPDATED
will be subcribed.
Low Level Subscriptions
These are more granular subscriptions that limits the event scope of your webhook configuration.
Subscription | Definition | Domain |
---|
ACCOUNT.CREATED | Triggered when an account is created | Accounts |
ACCOUNT.UPDATED | Triggered when an account is updated | Accounts |
ASSET.CREATED | Triggered when an asset is created | Assets |
ASSET.UPDATED | Triggered when an asset is updated | Assets |
AUTH.CREATED | Triggered when an auth token is created | Authentications |
AUTH.DELETED | Triggered when an auth token is deleted | Authentications |
CUSTOMER.CREATED | Triggered when a customer is created | Customers |
CUSTOMER.UPDATED | Triggered when a customer is updated | Customers |
INSTRUMENT.CREATED | Triggered when an instrument is created | Instruments |
INSTRUMENT.UPDATED | Triggered when an instrument is updated | Instruments |
INVESTMENT_TYPE.CREATED | Triggered when an investment is created | Investments |
INVESTMENT_TYPE.UPDATED | Triggered when an investment is updated | Investments |
PORTFOLIO.CREATED | Triggered when a portfolio is created | Portfolios |
PORTFOLIO.UPDATED | Triggered when a portfolio is updated | Portfolios |
REQUEST.CREATED | Triggered when a request is created | Requests |
REQUEST.UPDATED | Triggered when a request is updated | Requests |
WEBHOOK.CREATED | Triggered when a webhook is created. Subscription created automatically | Webhooks |
WEBHOOK.UPDATED | Triggered when a webhook is updated | Webhooks |
Combining Subscriptions
The flexible nature of this subscripton model means that they can be mixed and combined at your discretion.
This is especially important when using the ALL
subscription.
Combos | Definition |
---|
High Level + Low Level | Subscribe to all the events within the high level domain but only that low level event within its domain |
ALL + Low level | Subscribe to all events in the system but only that low level event with its domain |
ALL + High level | Same as subscribing to ALL |
High Level | Only subscribes to all the events within the high level domain |
Low Level | Only subscribes to the low level event within its domain |
Default Subscription
Upon creating a webhook, an automatic subscription to WEBHOOK.CREATED
is made.
This will serves as an initial test of your webhook connection.
The payload should look similar to this:
{
"eventId": "38f429d1-2dda-4429-91e7-88696716c050",
"event": "WEBHOOK.CREATED",
"createdAt": 1732893584,
"data": {
"webhookId": 123456,
"status": "ACTIVE",
"url": "https://companyx.com/webhooks",
"subscriptions": [
...,
"WEBHOOK.CREATED"
],
"createdAt": 1732893594,
"updatedAt": 1732893594
}
}
Updating Subsubscriptons
Subscriptions can be updated by making a PUT
request to /webhooks
curl --request PUT \
--url https://api.pipevest.com/v1/webhooks \
--header 'Authorization: Bearer 123456' \
--header 'Content-Digest: sha-512=:RK/0qy18MlBSVnWgjwz6lZEWjP/lF5HF9bvEF8FabDg=:' \
--header 'Content-Type: application/application/json' \
--header 'Signature: sig1=:OTEyMjY4...A5NTNDMEQ=:' \
--header 'Signature-Input: sig1=("Content-Type" "Content-Digest" "Content-Length" "Authorization" "X-Client-Id" "X-Idempotency-Key" "@method" "@target-uri" "@path" "@query");keyid="staging-pipevest-ed25519";created=1732893484;expires=1732893584' \
--header 'X-Client-Id: 123456' \
--header 'X-Idempotency-Key: 123456' \
...
--data '{"subscriptions": ["ALL"]}'
Updating the list of subscriptions
will replace the previous subscriptions.