While a webhook subscription is not required for you to integrate with the API, Dwolla requires all applications to have one in production for automated notifications of events to your application. Webhooks provide automatic near real-time status updates to your application versus polling the API which causes unnecessary load on your application and the API.
Dwolla includes a X-Request-Signature-SHA-256
header on each webhook request which is a SHA-256 HMAC hash of the request body with the key being the webhook secret
you passed in when you created the webhook subscription. As a best practice, we recommend validating webhooks by generating the same SHA-256 HMAC hash and comparing it to the signature sent with the payload.
We do not recommend nor support relying on IP whitelisting as a method of validating webhooks. Dwolla's IPs are dynamically allocated with no defined range and are subject to change. Refer to the Processing/Validating section for a more detailed guide.
Dwolla sends webhooks for all events that occur in your platform and there isn’t a way to filter what events you subscribe to.
Dwolla automatically pauses a webhook subscription after 400 consecutive failed delivery attempts and sends an email to notify the Admin of the Dwolla account. While it's paused, Dwolla isn’t able to send webhooks for new events to your URL. To resume webhooks, you need to address the issue that’s causing failures, unpause the subscription and retry missed webhooks.
No. If your webhook subscription was previously paused or unavailable, Dwolla will not attempt to re-deliver webhooks. In this case, you can list all webhooks by subscription, filtering all that have zero attempts (in other words, the `attempts` array is empty), and retrying each webhook individually.
When listing all webhooks by webhook subscription, an embedded attempts
array will include a response
object that includes a statusCode
property indicating the HTTP status code that Dwolla received when the webhook attempt was made. If the status code that Dwolla received was >=300, then the attempt was considered to have failed.
Yes. You can create up to 5 webhook subscriptions in Production and 10 in Sandbox. While only one subscription is needed to be notified of all events, you can have multiple in case one or more of your URLs becomes unreachable.
All funds transfers made using the Dwolla Platform are performed by a financial institution partner, and any funds held in a Dwolla Balance are held by a financial institution partner. Learn more about our financial institution partners.