As for the funding source, this can be done via an account and routing number and micro-deposits, or you can integrate using Plaid. Since it looks like you’re wanting to use Dwolla’s integration with Plaid, I’d recommend checking out our guide on this topic as well as our integration-examples on GitHub. (The latter resource is an open-source project that shows the process for creating a funding source using Plaid.)
Once your business customer has been verified and you have attached a verified funding source via Plaid, you can then initiate a transfer.
I hope this helps! Please let us know if you have any further questions!
Thanks for the detailed answer. Do I understand you correctly? Using the token processor, Dwolla independently takes personal data from the Plaid account and verifies the client. I should not pass personal data of the client in my code. Am I getting it right?
That is correct. Since Dwolla’s integration with Plaid is tokenized, you would have the user log in to their bank account via Plaid Link, exchange the link token for a processor token, and then send the processor token over to Dwolla when creating a funding source.
When Dwolla receives a funding source creation request with a plaidToken in the request body, it will then call Plaid to securely fetch the account and routing number directly, rather than requiring that your application send the raw account and routing number over.
I did all the steps in the documentation. I have created a user and a payment. The user is currently unverified and the payment is pending. How long does it take to verify a user and when will the payment be completed? How can I find out the status of a payment?
Assuming that you are in our sandbox environment, you will need to simulate bank transfer processing first. Since our sandbox environment does not build/write an ACH file, this unfortunately has to be performed manually. (This can either be done via an API request or our dashboard.)
As for checking the status of a payment, there are two primary methods that can be used:
Fetching the transfer resource via its ID
Waiting to receive a webhook that indicates an event has occurred (e.g., a transfer has changed states or completed)
If you have the transfer ID (e.g., you cached the value that was returned when initiating the transfer), you can call our retrieve a transfer endpoint to get the current state of the transfer (it can found via the status property).
Otherwise, if you don’t have the transfer ID, then once you simulate bank transfer processing, if you have an active webhook subscription associated with your sandbox account and the state of the transfer changes, you will receive a webhook at the specified URL. (For more information on webhooks, I recommend checking out our page on webhook events as well as our guide on working with webhooks.)
Finally, to further understand how Dwolla creates and processes transfers, I recommend checking out our documentation on transfer lifecycle. (As a bonus, at the bottom of the page, there an interactive widget that will showcase what webhooks are sent when a transfer mutates its state.)