Webhook events for transfer with facilitator fee

We are trying to understand the webhook events in regards a simple transfer with facilitator fee .

Simple case: Marketplace purchase with merchant payout and facilitation fee.
Buyer pays $45
Facilitation fee $2.00 (to master account)
Merchant payout: $43

var requestBody = {
  _links: {
    source: { href: customer-fundingSourceUrl },
    destination: {  href: merchant-fundingSourceUrl }
  },
  amount: {  currency: 'USD', value: '45.00'},
  fees: [ {
        _links: { charge-to: {href: merchant-customerUrl}},
        amount: { value: '2.00', currency: 'USD' }
     } ]
};

Question:

  1. Upon initiating transfer - webhooks generates 2 events, each with a different ID but with the same transfer URL. Any clue what different IDs are for?
    Processing: Webhook Events Transfer With Faciliator Fee.pdf…

  2. Facilitation transfer amount is not what expected and is paid to the customer instead of the master account. Our expectations: fee amount is $2.00 (but see $43.00), destination: master account (but see customer). We could be doing something inaccurate, request help from this forum.

Note: we documented webhook events in PDF, but could not upload due to certain restriction. If need info, please grant file attach access.

Thank you!

Hi @iam_chris!

Thank for the detailed breakdown!

  1. This is expected. The two webhooks should have different Customer URLs in the payload. This denotes that the webhook is sent for the Customer included in the link. You can each webhook to generate notifications for the related customer.
  2. Would you be able to share the transfer ID of this example? I can take a look at our logs to see if the request-body was formulated correctly or not. As long as you’re using a fee object, that fee should land in the Master account balance and the transfer amount in the recipient’s account. .

Thanks for speedy response Shreya!

I could not upload a file, thus paste the content here.

1. Webhooks received after initiating transfer above:

{"id":"f87b29c9-3bbe-46f3-9c1d-5c45c262d08a","resourceId":"09f81ac3-1a01-ec11-8137-d4c9c28fa0b6","topic":"customer_transfer_created","timestamp":"2021-08-19T18:25:00.006Z","_links":{"self":{"href":"https://api-sandbox.dwolla.com/events/f87b29c9-3bbe-46f3-9c1d-5c45c262d08a"},"account":{"href":"https://api-sandbox.dwolla.com/accounts/cda56bd5-8473-4294-a72e-8ee5ae8e08d9"},"resource":{"href":"https://api-sandbox.dwolla.com/transfers/09f81ac3-1a01-ec11-8137-d4c9c28fa0b6"},"customer":{"href":"https://api-sandbox.dwolla.com/customers/08680492-fa94-4fd9-9c29-e9cda99e100b"}},"created":"2021-08-19T18:25:00.006Z"}

{"id":"8a470693-0d00-4146-bdf7-b86d76d4d435","resourceId":"09f81ac3-1a01-ec11-8137-d4c9c28fa0b6","topic":"customer_transfer_created","timestamp":"2021-08-19T18:25:00.006Z","_links":{"self":{"href":"https://api-sandbox.dwolla.com/events/8a470693-0d00-4146-bdf7-b86d76d4d435"},"account":{"href":"https://api-sandbox.dwolla.com/accounts/cda56bd5-8473-4294-a72e-8ee5ae8e08d9"},"resource":{"href":"https://api-sandbox.dwolla.com/transfers/09f81ac3-1a01-ec11-8137-d4c9c28fa0b6"},"customer":{"href":"https://api-sandbox.dwolla.com/customers/4cc71dfe-ff89-4454-8ad0-c899a7bc5493"}},"created":"2021-08-19T18:25:00.006Z"}

2. Webhook received after process ACH

{"id":"2f421ba9-291e-4831-a2bd-1215d6d43dbb","resourceId":"09f81ac3-1a01-ec11-8137-d4c9c28fa0b6","topic":"customer_transfer_completed","timestamp":"2021-08-19T18:25:58.226Z","_links":{"self":{"href":"https://api-sandbox.dwolla.com/events/2f421ba9-291e-4831-a2bd-1215d6d43dbb"},"account":{"href":"https://api-sandbox.dwolla.com/accounts/cda56bd5-8473-4294-a72e-8ee5ae8e08d9"},"resource":{"href":"https://api-sandbox.dwolla.com/transfers/09f81ac3-1a01-ec11-8137-d4c9c28fa0b6"},"customer":{"href":"https://api-sandbox.dwolla.com/customers/08680492-fa94-4fd9-9c29-e9cda99e100b"}},"created":"2021-08-19T18:25:58.226Z"}

{"id":"d23399c3-b949-4e3d-8abb-1ccd0a24ca78","resourceId":"09f81ac3-1a01-ec11-8137-d4c9c28fa0b6","topic":"customer_transfer_completed","timestamp":"2021-08-19T18:25:58.186Z","_links":{"self":{"href":"https://api-sandbox.dwolla.com/events/d23399c3-b949-4e3d-8abb-1ccd0a24ca78"},"account":{"href":"https://api-sandbox.dwolla.com/accounts/cda56bd5-8473-4294-a72e-8ee5ae8e08d9"},"resource":{"href":"https://api-sandbox.dwolla.com/transfers/09f81ac3-1a01-ec11-8137-d4c9c28fa0b6"},"customer":{"href":"https://api-sandbox.dwolla.com/customers/4cc71dfe-ff89-4454-8ad0-c899a7bc5493"}},"created":"2021-08-19T18:25:58.186Z"}

{"id":"d8ccef1c-82ac-41ba-989f-2c615e8aced0","resourceId":"b505d9e5-1a01-ec11-8137-d4c9c28fa0b6","topic":"customer_bank_transfer_created","timestamp":"2021-08-19T18:25:58.269Z","_links":{"self":{"href":"https://api-sandbox.dwolla.com/events/d8ccef1c-82ac-41ba-989f-2c615e8aced0"},"account":{"href":"https://api-sandbox.dwolla.com/accounts/cda56bd5-8473-4294-a72e-8ee5ae8e08d9"},"resource":{"href":"https://api-sandbox.dwolla.com/transfers/b505d9e5-1a01-ec11-8137-d4c9c28fa0b6"},"customer":{"href":"https://api-sandbox.dwolla.com/customers/08680492-fa94-4fd9-9c29-e9cda99e100b"}},"created":"2021-08-19T18:25:58.269Z"}

3. Webhook received after final process ACH

{"id":"55b71500-6e74-4faa-9a9e-25d8187e84be","resourceId":"b505d9e5-1a01-ec11-8137-d4c9c28fa0b6","topic":"customer_bank_transfer_completed","timestamp":"2021-08-19T18:27:18.612Z","_links":{"self":{"href":"https://api-sandbox.dwolla.com/events/55b71500-6e74-4faa-9a9e-25d8187e84be"},"account":{"href":"https://api-sandbox.dwolla.com/accounts/cda56bd5-8473-4294-a72e-8ee5ae8e08d9"},"resource":{"href":"https://api-sandbox.dwolla.com/transfers/b505d9e5-1a01-ec11-8137-d4c9c28fa0b6"},"customer":{"href":"https://api-sandbox.dwolla.com/customers/08680492-fa94-4fd9-9c29-e9cda99e100b"}},"created":"2021-08-19T18:27:18.612Z"}

Let me know if you need additional info.
Thank you.

Thanks Chris!

I took a look at that transfer 09f81ac3-1a01-ec11-8137-d4c9c28fa0b6 and it appears to be have the expected behavior - $45 was deducted from the source, $2 was routed to the Master Account Balance, and $43 was routed to the the destination.

Was there anything different you saw in the dashboard and API?

Thanks again for confirming the right amounts are going to right accounts as expected.

Can you look at the last webhook which has this transfer url:

From that webhook _links, we saw the following:

  • source: Business
  • destination: Customer
  • amount: $43
    thus we opened this ticket wanted to get help on how to read it correctly,

Thanks!

Sure! The transfer b505d9e5-1a01-ec11-8137-d4c9c28fa0b6 linked in the customer_bank_transfer_created/completed webhooks references the final leg of the transfer from the Receiver’s Balance to their attached Bank account. This is the final transfer amount that’s going from the Dwolla Network to the Recipient’s bank.

For a full list of all expected webhook in this transfer scenario involving an Unverified Customer and Verified customer, check out this gist.

Hope that clarifies things. Let me know if you have any questions!

Thank you Shreya for looking into this, the gist link demystifies and answer many questions - super helpful.

1 Like