This section guides you through the process of registering a new webhook in the Upvest Investment API.
To create a webhook, provide the following information to the Investment API:
A URL under your control for receiving incoming webhook payloads sent by the Investment API.
- The scheme of the URL is restricted to the HTTPS protocol only.
- The 'host' part of the URL is restricted to DNS names only, no IP addresses.
- The called URL must not respond with HTTP redirects (3xx).
- The server that processes the URL should support TLS version 1.2 or higher.
Specify which event categories you want to receive webhooks for.
For a complete list of available event categories and their types, see event categories and types.
Use the type field to set which events you want to receive.
Choose one of the following:
- Receive all webhook events: Set the
typefield toALL. - Exclude specific webhook events: Set the
typefield toALLand populate theexclude_typefield with the event types you want to exclude. - Subscribe to specific webhook events: Set the
typefield to include only the event types you want to receive.
The exclude_type parameter only takes effect when type is set to ALL. It has no effect when type contains a specific list of event types.
To reduce the load of high event volumes, events are batched either by time or size. You can specify the maximum payload size and/or the maximum delay between payloads that you are willing to accept.
- The delay must be a string in the format numberunit, for example
1s,5s. - The smallest possible delay is
1s. The maximum delay is30s. Usually, a delay of1sis sufficient. - The package size is in bytes. For example 10240 is for 10 KiB. If you specify a small size here, and a single event payload exceeds it, then we send a webhook payload bigger than the configured maximum.
You can add a title to a webhook to help distinguish it from other webhooks.
To register a webhook, take the information you gathered and format it as an HTTP POST request to the /webhooks endpoint of the Upvest Investment API.
See the webhook subscriptions specification.
In this example, we register a webhook with the following details:
- The title is
User Webhook. - The URL is
https://tenant.tld/webhooks/users. - We are only interested in events in the
USERcategory. - Payload batches are sent every 2 seconds or less.
- The payload size will not be greater than 51200 bytes.
We send a POST /webhooks
{
"title": "User webhook",
"url": "https://tenant.tld/webhooks/users",
"type": [
"USER"
],
"config": {
"delay": "2s",
"max_package_size": 51200
}
}All webhooks are created with the status disabled, which means that no data is sent until you set enabled: true by sending a PATCH request, see (update a webhook).
Once you've completed the step above, you're ready to register a new webhook.
We suggest you continue by returning to the "Implementing webhooks" tutorial and reading the "Test webhooks" section.