correlationId not included in webhook event customer_transfer_created

Hello, in production, it seems that the correlationId I specified when initiating a transfer is not included on the resource of the webhook event customer_transfer_completed, although in sandbox, the correlationId is included on this resource.

Firstly, can I get confirmation of this?

This raises an issue for me, since the event customer_transfer_completed is what signifies the funds have made it to their destination. But I’m struggling to find a way to tie this event to a transfer I have in the database.

Currently, the webhook event customer_bank_transfer_completed is causing my database to update the transfer to ‘processed’. However this causes an issue, since users are seeing a transfer being marked ‘processed’, but not having the funds showing up in their account.

Hope that makes sense - let me know if there’s any more information you need to answer this question.

Hi @dtj – you should be able to see the correlationId in Production as well. I can take a closer look :eyes:Would you be able to post the transfer id here?

As for tying transfers back to the originating transfer, I would recommend checking out Spencer’s post here where he explains the different legs and the webhooks triggered in a bank-to-bank transfer between two Verified Customers - Bank Transfer vs Transfer (Webhook)

Thanks @shreya - to be clear, the correlationId is showing in the event customer_bank_transfer_completed, but not customer_transfer_completed. That thread you linked is good info, thank you, specifically about using the links to traverse the funding pipeline. Ideally, though, I wouldn’t need to do this - the correlation ID would be present in all the transfer events on the timeline.

Here is an example transfer ID - bec11f75-bcd2-ea11-813f-d34890f3af58

Hi @dtj, The Event payload itself won’t include the correlationId field. These payloads were designed to be very lightweight and only include links to relevant resources in the API. The idea being, the event is used as a hint to call off to the API to get more information about the resource that changed state. We can definitely look to take this feedback into consideration if we look at changing the structure of those payloads. In the meantime, if you’re seeing the correlationId field in the actual event payload then it would be a bug. Do you have an example eventID to where we can look in our logs to see what was fired?

Hi @spencer - You’re right, my code is actually retrieving the resource link on the webhook payload to get the correlation ID. The issue is that sometimes the correlation ID isn’t always there. Checking the more recent events, they do seem to have this, so I’m wondering if this was user error of some sort. Thanks for the good info in this discussion.

As I look into this further, the main issue I’m having is determining when the transfer is 100% complete - from customer A bank into customer B bank. This is a bit of a tangent in this discussion, so I can make another thread if necessary…

My understanding was that the customer_transfer_completed event is supposed to represent the funds arriving in the bank account of the destination. I see in the documentation that this is incorrect, since it reads:

“Description: A Customer transfer was successful. Represents a successful funds transfer either to an unverified Customer’s bank or to a verified Customer’s balance.”

Here’s an example event, the ID of this event is 44aac8ca-f1ac-49c5-a42d-ef029d2a53b3.

The topic is customer_transfer_completed.

I follow the resource link, which leads to the transfer information. It says status: processed. Currently my webhook endpoint is grabbing the correlation ID from here to mark the transfer as complete in our DB. However, there’s a link called funded-transfer here, which from this forum I recently learned means the transaction further down the pipeline (side note - is this anywhere in the documentation?). This transfer’s status is pending.

So the transfer is not completed, and must still be in the dwolla balance of the verified customer that’s receiving it.

Checking the dwolla balance, I see that it has a balance of $0.


Where is the money? Am I missing something?

How should my webhook endpoint tell when a transfer is 100% completed, ideally without traversing through a maze of links? What’s best practice here? Is there not a webhook event that represents funds moving the entire journey from bank account A to bank account B?

1 Like