See the Dwolla Difference → View the Demo App
Close Announcement Bar

One of our favorite features to discuss within Dwolla’s Platform are our webhook notifications. The Dwolla engineering team has recently delivered a solution to create customer-independent infrastructure for webhook processing, but before we talk about that, let’s review what webhooks are.

A webhook from the Dwolla Platform represents a single event which occurred on a resource managed within a customer’s ecosystem. A webhook could represent a funding source being created or a transfer changing state; this is otherwise known as an event topic. The API documentation contains a comprehensive list of event resources and topics.

Imagine you are building a chatbot application that reminds customers to pay their bills. After a customer initiates a payment for a bill with your bot, you want to notify them when the payment completes. Webhooks can be utilized by your application to receive an asynchronous notification that a transfer resource has been completed and the chatbot could, in turn, notify the customer of the successful transfer.

Webhooks allow applications to keep up-to-date with the state of resources created by the Dwolla Platform. Applications can combine the concepts of asynchronous communication and reactive application architectures to solve unique and challenging problems. We’ve seen several customers build really interesting notification solutions, information radiators and visualization frameworks by utilizing webhooks.

Webhooks also include a mechanism for validating their authenticity. Each webhook contains a  SHA-256 HMAC signature that can be validated by the receiving application. Validating this signature ensures the webhook is coming from Dwolla’s Platform, and not someone pretending to be Dwolla.

Webhooks can form a great foundation for building a reactive and scalable application. From updating components in the front end of your application to notifying your end users of status changes, having a reliable way to consume events can give peace of mind to automate day-to-day activities. That’s why our engineering team has invested time in making them faster and more scalable.

Bolstering our webhooks system to scale

From this point forward, the Dwolla Platform will provision customer-independent infrastructure for every application with a webhook subscription. This change allows Dwolla’s Platform to tailor webhooks to customer needs, scaling from single-threaded delivery for small workloads to hundreds or even thousands of parallel requests so customers can be notified the moment an event happens. This feature is available to all Dwolla customers.

Over the last several weeks, we have also migrated all existing webhook subscriptions to independent infrastructures for processing. Every time the Dwolla Platform processes a webhook for your application, it will be done so on customer-independent infrastructure. No changes are required for existing webhook subscribers to benefit from these improvements.

To top it all off, our engineering team is also open-sourcing a sample webhook-receiver designed to consume our own webhooks internally. This project deploys a webhook handler as an AWS Lambda function via the Serverless Framework. Using this project, you can save time bringing your idea for a reactive application to fruition. The project can be forked on GitHub and modified for your team’s purposes. If you’re more of the hands-on type, it’s easy to create a webhook subscription using Dwolla’s SDKs. Here’s how you’d do it with our JavaScript SDK;

var requestBody = {
  url: '',
  secret: 'your webhook secret'

  .post('webhook-subscriptions', requestBody)
  .then(res => res.headers.get('location'));

At Dwolla, we are inventors, creators, and believers. We hope these improvements enable your latest inventions. Our investment in webhooks represents our investment in the success of our customers. We’re excited to see what you build and we’d love to get your feedback.

Start building in our sandbox for free, right now. Get a feel for how our API works before going live in production.


Stay Updated