Webhook response

Hello Teams,

I do have a few queries which I need help from you.

I have successfully created a webhook subscription and also able to see my webhook for the sandbox environment which all works fine. So, my doubt is how do I get the webhooks payload/response on every event for the webhook created.

Documentation link :Validating Webhooks | Dwolla API Documentation.

Case : How do I get the webhook response, which is mentioned in the documentation as “A few days after the customer initiates his payment, your application receives this webhook .” Where do I get to that webhook as a response, however I successfully hit on that url (which we entered while creating the webhook-subscription). But I’m not sure how to get the webhook for validation and other functionality. Please let me know if I am missing something.
Thanks in advance.

Hey, @Pardeep_Kumar,

Webhooks allow Dwolla to send an event to your application without the need to poll our API for changes/updates. This can be, for example, when a customer account is created, a funding source is created, etc. This can be determined via the webhook topic property; for a complete list of webhook topics that Dwolla may send, check out our documentation page on supported events by resource.

In order to receive webhooks, you will first want to create a webhook subscription. When a new subscription is created, we require two fields to be passed to us: url, which is the publicly available URL that we will send the webhook to via an HTTP POST request, and secret, which is the secret value that only your application and Dwolla will share. This will be used when validating webhooks to ensure that the sender of the webhook is Dwolla and not an impersonator.

Once you have the subscription set up, your application will then listen for POST requests at the URL endpoint that you sent to Dwolla. Once a request has been received, your application should then “consume” the request by validating that it was sent from Dwolla (this can be done by using the SHA-256 HMAC checksum of the JSON-encoded body and the shared secret value, in conjunction with the X-Request-Signature-SHA-256 request header) and then responding with a 2xx status code.

Once you have consumed the webhook and responded to Dwolla, you are then free to perform any business logic that you feel is necessary. For example, you could update a database entry, send a notification email/message, etc.

Although there are many different ways that a webhook listener can be architected, I recommend checking out our webhook-receiver project on GitHub. It’s an open source project written in TypeScript that should give a better idea on how a webhook subscription can be created, consumed, and then queued for further processing using AWS Lambda and SQS.

I hope that this helps! Please let us know if you have any further questions!

Thanks,
James

@james, Thanks for you reply. I am implementing dwolla in C#, can you please provide sample application to get the webhook response as webhook payload (Json data contains webhook event data detail).
Is there I am missing any method or step.
image

Hey, @Pardeep_Kumar,

Unfortunately, we only have one official example application that receives webhooks written in TypeScript; however, I will make sure to log your feedback for the team to take a look at regarding creating a separate webhook example in C#.

At its core, though, a webhook handler is an HTTP listener. To this end, depending on the framework/language that you’re currently working with, you should be able to find some resources online to assist with getting that part up and running. For example, if you’re using C# with AWS Lambda, then their documentation should be helpful!

Once your application is up and running and accepting HTTP POST requests, after you configure your webhook subscription, the next step would be to authenticate that the webhook came from Dwolla using the shared secret value that was passed in when creating the subscription. Similar to before, although we don’t have an official example on how this can be done in C#, I’d recommend checking out this forum post from another member instead.

Finally, once you have authenticated that the webhook is from Dwolla, you should then be able to handle any business logic that you deem necessary within your application, such as passing the webhook onto a queue for further processing.

I hope that this helps! Please let us know if you have any further questions!

Thanks,
James

Thanks @james for your quick reply. It resolved and now am able to receive webhook successfully.

1 Like

Hello @james, I have a question, do we create Webhook-Subscriptions manually or only through code?

Hi @Pardeep_Kumar – you’ll have to create a webhook subscription via the API - Webhooks | Dwolla API Documentation

@shreya Thanks.