Hi @max.rothman, thanks for the thoughtful follow up!
On your first question: we’ve recently migrated our documentation to a new platform, and some supplemental details have not yet been carried over to the API reference sections. The information I shared about funding source reactivation (only applying within 48 hours for unverified sources) is part of that group. We’ll make a note to update the Funding Source Removal section of the API reference with this clarification so it’s more discoverable going forward.
On event timing: you’re correct that retries can increase the window in which out-of-order delivery might be observed. One important note is that webhook events already include a created timestamp, which reflects when the event was generated by Dwolla. Additionally, when you retrieve the webhook in the API, you can also see the timestamps of the attempts.
-
The created field in the event payload ("created": "2025-09-12T18:49:23.093Z") reflects when the event itself was generated by Dwolla. This value stays constant even if the webhook is retried, and is the “event occurred at” timestamp you’re asking for.
-
The attempt timestamps you see when retrieving the webhook resource (attempt.request.timestamp) reflect when a particular delivery attempt was made. These will vary for each retry.
Here’s an example response from the API:
GET https://api-sandbox.dwolla.com/webhooks/4d817dde-f7c6-49b2-96c8-88c98c4ec675
...
{
"_links": {
"event": {
"href": "https://api-sandbox.dwolla.com/events/4d319697-7fde-4197-8924-247080658ea8",
"type": "application/vnd.dwolla.v1.hal+json",
"resource-type": "event"
},
"account": {
"href": "https://api-sandbox.dwolla.com/accounts/0ee84069-47c5-455c-b425-633523291dc3",
"type": "application/vnd.dwolla.v1.hal+json",
"resource-type": "account"
},
"retry": {
"href": "https://api-sandbox.dwolla.com/webhooks/4d817dde-f7c6-49b2-96c8-88c98c4ec675/retries",
"type": "application/vnd.dwolla.v1.hal+json",
"resource-type": "retry"
},
"self": {
"href": "https://api-sandbox.dwolla.com/webhooks/4d817dde-f7c6-49b2-96c8-88c98c4ec675",
"type": "application/vnd.dwolla.v1.hal+json",
"resource-type": "webhook"
},
"subscription": {
"href": "https://api-sandbox.dwolla.com/webhook-subscriptions/ed0db938-d7f0-4694-90ee-b12053182dc0",
"type": "application/vnd.dwolla.v1.hal+json",
"resource-type": "webhook-subscription"
}
},
"id": "4d817dde-f7c6-49b2-96c8-88c98c4ec675",
"topic": "customer_created",
"accountId": "0ee84069-47c5-455c-b425-633523291dc3",
"eventId": "4d319697-7fde-4197-8924-247080658ea8",
"subscriptionId": "ed0db938-d7f0-4694-90ee-b12053182dc0",
"attempts": [
{
"id": "5f513805-058f-43f9-aab3-30cf61eeec0d",
"request": {
"timestamp": "2025-09-12T18:51:17.797Z",
"url": "https://eotgms3j77wxf68.m.pipedream.net",
"headers": [
{
"name": "Content-Length",
"value": "602"
},
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "User-Agent",
"value": "dwolla-webhooks/1.1"
},
{
"name": "X-Dwolla-Topic",
"value": "customer_created"
},
{
"name": "X-Request-Signature-SHA-256",
"value": "bffa2ceffd343e95e484319cf00b6dc113d954fa0d90d25c225cc01f8e1899d5"
}
],
"body": "{\"id\":\"4d319697-7fde-4197-8924-247080658ea8\",\"resourceId\":\"092d7a33-8f09-44a3-a788-268b80101d32\",\"topic\":\"customer_created\",\"timestamp\":\"2025-09-12T18:49:23.093Z\",\"_links\":{\"self\":{\"href\":\"https://api-sandbox.dwolla.com/events/4d319697-7fde-4197-8924-247080658ea8\"},\"account\":{\"href\":\"https://api-sandbox.dwolla.com/accounts/0ee84069-47c5-455c-b425-633523291dc3\"},\"resource\":{\"href\":\"https://api-sandbox.dwolla.com/customers/092d7a33-8f09-44a3-a788-268b80101d32\"},\"customer\":{\"href\":\"https://api-sandbox.dwolla.com/customers/092d7a33-8f09-44a3-a788-268b80101d32\"}},\"created\":\"2025-09-12T18:49:23.093Z\"}"
},
"response": {
"timestamp": "2025-09-12T18:51:18.064Z",
"headers": [],
"statusCode": 200,
"body": ""
}
},
{
"id": "816be70a-35f9-4ab8-b164-6169a81acc92",
"request": {
"timestamp": "2025-09-12T18:52:46.014Z",
"url": "https://eotgms3j77wxf68.m.pipedream.net",
"headers": [
{
"name": "Content-Length",
"value": "602"
},
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "User-Agent",
"value": "dwolla-webhooks/1.1"
},
{
"name": "X-Dwolla-Topic",
"value": "customer_created"
},
{
"name": "X-Request-Signature-SHA-256",
"value": "bffa2ceffd343e95e484319cf00b6dc113d954fa0d90d25c225cc01f8e1899d5"
}
],
"body": "{\"id\":\"4d319697-7fde-4197-8924-247080658ea8\",\"resourceId\":\"092d7a33-8f09-44a3-a788-268b80101d32\",\"topic\":\"customer_created\",\"timestamp\":\"2025-09-12T18:49:23.093Z\",\"_links\":{\"self\":{\"href\":\"https://api-sandbox.dwolla.com/events/4d319697-7fde-4197-8924-247080658ea8\"},\"account\":{\"href\":\"https://api-sandbox.dwolla.com/accounts/0ee84069-47c5-455c-b425-633523291dc3\"},\"resource\":{\"href\":\"https://api-sandbox.dwolla.com/customers/092d7a33-8f09-44a3-a788-268b80101d32\"},\"customer\":{\"href\":\"https://api-sandbox.dwolla.com/customers/092d7a33-8f09-44a3-a788-268b80101d32\"}},\"created\":\"2025-09-12T18:49:23.093Z\"}"
},
"response": {
"timestamp": "2025-09-12T18:52:46.321Z",
"headers": [],
"statusCode": 200,
"body": ""
}
},
{
"id": "a4a7613f-57f6-4c16-a1ef-78d827435525",
"request": {
"timestamp": "2025-09-12T18:49:23.366Z",
"url": "https://eotgms3j77wxf68.m.pipedream.net",
"headers": [
{
"name": "Content-Length",
"value": "602"
},
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "User-Agent",
"value": "dwolla-webhooks/1.1"
},
{
"name": "X-Dwolla-Topic",
"value": "customer_created"
},
{
"name": "X-Request-Signature-SHA-256",
"value": "bffa2ceffd343e95e484319cf00b6dc113d954fa0d90d25c225cc01f8e1899d5"
}
],
"body": "{\"id\":\"4d319697-7fde-4197-8924-247080658ea8\",\"resourceId\":\"092d7a33-8f09-44a3-a788-268b80101d32\",\"topic\":\"customer_created\",\"timestamp\":\"2025-09-12T18:49:23.093Z\",\"_links\":{\"self\":{\"href\":\"https://api-sandbox.dwolla.com/events/4d319697-7fde-4197-8924-247080658ea8\"},\"account\":{\"href\":\"https://api-sandbox.dwolla.com/accounts/0ee84069-47c5-455c-b425-633523291dc3\"},\"resource\":{\"href\":\"https://api-sandbox.dwolla.com/customers/092d7a33-8f09-44a3-a788-268b80101d32\"},\"customer\":{\"href\":\"https://api-sandbox.dwolla.com/customers/092d7a33-8f09-44a3-a788-268b80101d32\"}},\"created\":\"2025-09-12T18:49:23.093Z\"}"
},
"response": {
"timestamp": "2025-09-12T18:49:23.659Z",
"headers": [],
"statusCode": 200,
"body": ""
}
}
]
}
So if you need to consistently order events or reason about when they occurred versus when they were delivered, you’ll want to rely on the created timestamp from the event itself.
Hope this is helpful!