We are running into a somewhat obscure issue with Customer funding sources. On 11/1, a user of ours visited their “wallet” page (the location on our site to update their Dwolla info) and seemed to have gone through at least 3 iterations of deleting and adding new bank information. The timeline of user action to dwolla webhook notification shows as follows (approx. UTC time):
15:59 – User deletes funding source
15:59 – Webhook customer_funding_source_removed (webhook: b912627b-4e83-4535-9fc3-1b4b9037850c, resource: 4bd4d6f4-751b-4862-8923-da410d913dbe)
16:00 – User deletes funding source
16:00 – Webhook customer_funding_source_removed (webhook: 06089589-08e5-4105-81da-d77771dcbc4d, resource: 094075c6-96c0-4b24-bf25-56792c30cb5f)
16:03 – User creates funding source
16:03 – Webhook customer_funding_source_added (webhook: 360b275b-2f11-4967-b944-f94a8383f29f, resource: acd17513-36af-4b1c-ae29-0aba89029fa4)
16:03 – User deletes funding source
16:05 – User creates funding source
…almost an hour later…
17:04 – Webhook customer_funding_source_removed (webhook: 2c2cba5c-1592-4746-bdeb-18b8271f9001, resource: acd17513-36af-4b1c-ae29-0aba89029fa4)
17:05 – Webhook customer_funding_source_added (webhook: 401d72e6-177c-4dfa-b0df-4b314e759138, resource: acd17513-36af-4b1c-ae29-0aba89029fa4)
On receipt of the customer_funding_source_removed webhook, we would remove any existing funding source in our system to handle the case outlined in the events API documentation (…when Dwolla systematically removes a funding source upon receiving certain ACH return codes when a transfer fails). The ordering of the webhook typically falls in sequence but also wouldn’t be a problem, except that it appears that the unique id of the funding source is being reused. Is that possible? It’s likely our user entered the same data more than once on successive updates to their payment info. So, if it’s a related hashing of the user-entered data, that could explain the uniqueness issue.
Should funding source ids be considered fully unique over a certain amount of time? If not, how do you suggest I handle the case for removing resources as cleanup for items automatically removed by Dwolla?