Test and refine your integration in the Dwolla Sandbox—a free, full-featured environment that simulates real API interactions, allowing you to build, experiment, and validate your application before going live.
https://api-sandbox.dwolla.com/
instead of https://api.dwolla.com/
processed
, failed
, or cancelled
.
The Sandbox environment does not replicate any ACH processes, so a pending
transfer will not clear or fail automatically after a few business days as it would in production. It will simply remain in the pending
state indefinitely. Reference the testing transfers section for more information on how to simulate bank transfer processing in the Sandbox environment.
InvalidAccountStatus
.https://dashboard-sandbox.dwolla.com/
. Here you can view your API key and secret and generate an OAuth access token. Dwolla will also create an application for your account, associate a funding source named ‘Superhero Savings Bank’, and add $5000 to the account balance for testing.
verified
after the initial Customer creation. You will want your app to be prepared to handle these alternative statuses.
In production, Dwolla will place the Verified Customer in either the retry
, kba
, document
, verified
, or suspended
state of verification after an initial identity verification check.
For personal Verified Customers: Reference the guide on customer verification for more information on handling identity verification for Verified Customers. To simulate the various statuses in the Sandbox, supply either verified
, retry
, kba
, document
, or suspended
in the firstName parameter in order to create a new Verified Customer with that status.
For business Verified Customers: Reference the guide on customer verification that goes over information on properly verifying a business’s Controller, the business, and associated Beneficial Owners.
Here’s how to simulate the different statuses and verification links for business Verified Customers in Sandbox:
retry
status:
retry
in the businessName parameter. This action will return a retry-verification
link in the Customer resource.
retry
in the controller firstName parameter. This action will return both a retry-verification
link and a retry-with-full-ssn
link in the Customer resource.
document
status:
document
in the controller firstName parameter. This action will return a verify-with-document
linkin the Customer resource.
document
in the businessName parameter. This action will return a verify-business-with-document
link in the Customer resource.
document
in both the controller firstName and the businessName parameters. This action will return a verify-controller-and-business-with-document
link in the Customer resource.
suspended
:
suspended
in the controller firstName parameter to create a new Verified Customer with that status.incomplete
or document
in the beneficial owner firstName parameter.
kba
status and will be required to successfully answer at least three out of four knowledge based authentication (KBA) questions in order to pass verification.
customer_kba_verification_passed
event as the result of KBA success in Sandbox, answer all four questions with either “None of the above” or “I have never been associated with this vehicle”. As a result, the Customer will be placed in a verified status and the customer_verified
event is triggered.
To simulate the customer_kba_verification_failed
event as the result of KBA failure in Sandbox, answer the questions with any answer choices other than “None of the above” or “I have never been associated with this vehicle”. As a result, the Customer will be placed in a document status and the customer_verification_document_needed
event is triggered.
document
status and will require an identifying document to be uploaded and reviewed. Reference either the personal customer verification or business customer verification guide for acceptable forms of identifying documents for Verified Customers
.
Since the document review process requires interaction from Dwolla, sample test documents can be uploaded in the Sandbox environment to simulate the customer_verification_document_approved
and customer_verification_document_failed
events.
When downloading a test image, make sure to keep the size, format, and name of the image the same
When downloading a test image, make sure to keep the size, format, and name of the image the same
222222226
or refer to the list of routing numbers from the Federal Reserve Bank Services website.
$0.10
to your customer’s linked bank or credit union account after calling the API to initiate micro-deposits. Since the environment doesn’t replicate any bank transfer processes, any two amounts below $0.10
will allow you to verify the funding source immediately. In Production, when the micro-deposits have finished processing, you will receive a customer_microdeposits_completed
event. To trigger this event in Sandbox, you need to simulate bank transfer processing. Check out the testing transfers section for more information on how to simulate bank transfer processing in Sandbox.
microdeposits_maxattempts
or customer_microdeposits_maxattempts
events in the Sandbox, use the amounts 0.09
and 0.09
when calling the API to verify micro-deposits. Reference the micro-deposit verification guide for more information on handling failed verification attempts.
Customers
you manage.name
parameter when creating or
updating a funding source for
a Dwolla Account or API Customer. When a
transfer is initiated using a
funding source that has an “R” code assigned to its name, a transfer failure event will trigger and
the status will update to failed when you simulate bank transfer processing (as mentioned above).
Dwolla allows you to pass in a few different sentinel values that are used to test different bank
transfer failure scenarios. The list of available sentinel values cover the most common uses cases
where ACH return codes can be triggered in production.
Return code | Description |
---|---|
R01 | Insufficient Funds: This value is used to simulate funds failing from the source bank account (ACH debit). |
R03 | No Account/Unable to Locate Account: This value is primarily used to simulate funds failing to the destination bank account (ACH credit). The funding source will be automatically removed from Dwolla when this return code is triggered. |
R01-late | This value is used to simulate funds failing from the source bank account post-settlement. Note: You must click “Process bank transfers” twice in order to test this scenario. |
R03-late | This value is primarily used to simulate funds failing to the destination bank post-settlement. The funding source will be automatically removed from Dwolla when this return code is triggered. Note: You must click “Process bank transfers” twice in order to test this scenario. |
name
has been updated to reflect the ACH failure scenario you want to test, then you can
initiate a transfer to or from
that funding source via the API.