Webhooks
Webhooks provide a way to receive real-time notifications about events occurring within your Digital River account. These notifications are sent via HTTP POST requests, allowing your application to respond immediately to changes, even those not initiated through direct API interactions. Setting up one or more webhook endpoints ensures your system stays updated and synchronizes seamlessly with Digital River events, facilitating efficient and engaging app experiences.
Digital River can send webhook events that notify your application whenever an event occurs in your account. This mechanism is especially useful for events that are not triggered by a direct API request and for services that are not directly responsible for making an API request but still need to know the response to that request.
Register webhook URLs, and we will notify you of any event in your account. When the event occurs, Digital River creates an Event object.
This Event object contains all the relevant information about what happened, including the event and the associated data. Digital River then sends the Event object, via an HTTP POST request, to any endpoint URLs you have defined in your account’s Webhooks settings. You can have Digital River send a single event to many webhook endpoints.
Get all webhooks.
A string containing a specific webhook endpoint name, or a group of events using * as a wildcard. The list will be filtered to include only webhooks with a matching webhook property.
An array of up to 20 strings containing specific event names. The list will be filtered to include only events with a matching event property. You may pass either type or types, but not both.
200 OK. A dictionary with a data property that contains an array of up to limit webhooks. Each entry in the array is a separate webhook object. If no more webhooks are available, the resulting array will be empty. This request should never return an error.
400 Bad Request
401 Unauthorized
403 Forbidden
405 Method Not Allowed
406 Not Acceptable
408 Request Timeout
429 Too Many Requests
500 Internal Server Error
502 Bad Gateway Error
503 Service Unavailable Error
504 Gateway Timeout Error
GET /webhooks HTTP/1.1
Host: api.digitalriver.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"createdTime": "2018-08-29T09:12:33.001Z",
"updatedTime": "2018-08-29T09:12:33.001Z",
"types": [
"order.created"
],
"apiVersion": "default",
"enabled": true,
"address": "https://company.com",
"transportType": "HTTP",
"oauth": {
"tokenEndPoint": "text",
"userName": "text",
"password": "text",
"clientID": "text",
"clientSecret": "text",
"grantType": "password"
},
"authentication": {
"username": "text",
"password": "text"
}
}
]
Creates a new webhook
Each element of the array represents the name of an event type.
order.created
Indicates whether to use the current, default version of the API or the version specified by YYYY-MM-DD.
default
Example: default
Possible values: Indicates whether the webhook is enabled and receives notifications.
true
Example: true
URL of the webhook endpoint on your server you have set up to receive webhook notifications. Webhook data is sent as JSON in the POST request body. The full event details are included and can be used directly, after parsing the JSON into an Event object.
https://company.com
HTTP
Possible values: 201 Created
400 Bad Request
401 Unauthorized
403 Forbidden
405 Method Not Allowed
406 Not Acceptable
408 Request Timeout
409 Conflict
429 Too Many Requests
500 Internal Server Error
502 Bad Gateway Error
503 Service Unavailable Error
504 Gateway Timeout Error
POST /webhooks HTTP/1.1
Host: api.digitalriver.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 307
{
"types": [
"order.created"
],
"apiVersion": "default",
"enabled": true,
"address": "https://company.com",
"transportType": "HTTP",
"oauth": {
"tokenEndPoint": "text",
"userName": "text",
"password": "text",
"clientID": "text",
"clientSecret": "text",
"grantType": "password"
},
"authentication": {
"username": "text",
"password": "text"
}
}
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"createdTime": "2018-08-29T09:12:33.001Z",
"updatedTime": "2018-08-29T09:12:33.001Z",
"types": [
"order.created"
],
"apiVersion": "default",
"enabled": true,
"address": "https://company.com",
"transportType": "HTTP",
"oauth": {
"tokenEndPoint": "text",
"userName": "text",
"password": "text",
"clientID": "text",
"clientSecret": "text",
"grantType": "password"
},
"authentication": {
"username": "text",
"password": "text"
}
}
Retrieves the details of a webhook endpoint. Supply the unique identifier of the webhook endpoint.
Webhook ID
200 OK. Returns an event object if a valid identifier was provided. All events share a common structure. The only property that will differ is the data property. The data dictionary's values will be the same as retrieving the same object directly from the API. For example, a charge.created event will have the same information as retrieving the relevant charge would.
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
408 Request Timeout
429 Too Many Requests
500 Internal Server Error
502 Bad Gateway Error
503 Service Unavailable Error
504 Gateway Timeout Error
GET /webhooks/{id} HTTP/1.1
Host: api.digitalriver.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"createdTime": "2018-08-29T09:12:33.001Z",
"updatedTime": "2018-08-29T09:12:33.001Z",
"types": [
"order.created"
],
"apiVersion": "default",
"enabled": true,
"address": "https://company.com",
"transportType": "HTTP",
"oauth": {
"tokenEndPoint": "text",
"userName": "text",
"password": "text",
"clientID": "text",
"clientSecret": "text",
"grantType": "password"
},
"authentication": {
"username": "text",
"password": "text"
}
}
Permanently deletes a webhook endpoint. Supply the unique identifier of the webhook.
Webhook ID
204 No Content
400 Bad Request
401 Unauthorized
403 Forbidden
401 Not Found
405 Method Not Allowed
406 Not Acceptable
408 Request Timeout
409 Conflict
429 Too Many Requests
500 Internal Server Error
502 Bad Gateway Error
503 Service Unavailable Error
504 Gateway Timeout Error
DELETE /webhooks/{id} HTTP/1.1
Host: api.digitalriver.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Updates a existing webhook endpoint.
Webhook ID.
The name of the event type.
order.created
Indicates whether to use the current, default version of the API or the version specified by YYYY-MM-DD.
default
Example: default
Possible values: Indicate that webhook is enabled and receives notifications or is not enabled and does not receive notifications
true
Example: true
URL of the webhook endpoint on your server you have set up to receive webhook notifications. Webhook data is sent as JSON in the POST request body. The full event details are included and can be used directly, after parsing the JSON into an Event object.
https://company.com
HTTP
Possible values: 200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
401 Not Found
405 Method Not Allowed
406 Not Acceptable
408 Request Timeout
409 Conflict
429 Too Many Requests
500 Internal Server Error
502 Bad Gateway Error
503 Service Unavailable Error
504 Gateway Timeout Error
PATCH /webhooks/{id} HTTP/1.1
Host: api.digitalriver.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 307
{
"types": [
"order.created"
],
"apiVersion": "default",
"enabled": true,
"address": "https://company.com",
"transportType": "HTTP",
"oauth": {
"tokenEndPoint": "text",
"userName": "text",
"password": "text",
"clientID": "text",
"clientSecret": "text",
"grantType": "password"
},
"authentication": {
"username": "text",
"password": "text"
}
}
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"createdTime": "2018-08-29T09:12:33.001Z",
"updatedTime": "2018-08-29T09:12:33.001Z",
"types": [
"order.created"
],
"apiVersion": "default",
"enabled": true,
"address": "https://company.com",
"transportType": "HTTP",
"oauth": {
"tokenEndPoint": "text",
"userName": "text",
"password": "text",
"clientID": "text",
"clientSecret": "text",
"grantType": "password"
},
"authentication": {
"username": "text",
"password": "text"
}
}
Last updated