Overview

Once your registrations are setup, event objects will be send to the URLs you've registered. An event object contains a list of resource identifiers, which can be used to download further detail on the subject of each event.

All events are delivered with the same standard format:

{
  "id": "00000000-0000-0000-0000-000000000000",
  "eventName": "Core.Account.Opened",
  "status": "Pending",
  "partnerId": "00000000-0000-0000-0000-000000000000",
  "createdAt": "2018-07-26T03:48:55.969Z",
  "lastAttemptedAt": "2018-07-26T04:45:15.128Z",
  "resources": [
    "core/v1/dda/accounts/2001231231",
    "core/v1/dda/accounts/2001231232",
  ]
}

One event object can represent many individual resource events. Event objects are typically aggregated every 30-120 seconds. In the above example, the event object refers to two deposit accounts which were recently opened, specified in the resources array field.

The status of Pending indicates the event was created, but we have not been able to deliver it yet. Once an attempt has been made, the status will transition to either Success or Failed depending on the outcome.

Handling Failure

In the event something goes wrong and we cannot deliver an event to one of your registrations, we will make several retry attempts. If we still cannot deliver the event, the registration status will change to Suspended. No further attempts will be made to deliver previous or future events to this endpoint. It is very important to monitor the statuses of your webhook registrations. If you see a status of Suspended, you should first work to identify the issue by reviewing the logs of recent failed events.

Once the issue has been resolved, you may restart your registration using the webhooks API. At this point the status will transition to Restarting. If we can deliver an event successfully, the status will return to Active. If we cannot deliver at least one event successfully, then the status will return to Suspended.

Also note that webhooks guarantee at-least-once delivery. So while rare, it is technically possible to receive the same event twice. Your message handlers should account for that edge case and be idempotent.

See API reference for more details.


Did this page help you?