Multiple Redirect URLs: You can now configure multiple redirect URLs for your exchange sessions, providing more flexibility in your integration.
Required Redirect URL: A redirect URL is now required when creating an exchange session to ensure proper validation and security.
Changes:
The endpoint for creating an exchange session now requires a redirect url parameter, which is a single URL that is already configured with Dwolla (Balance docs, Connect docs).
The validation process for redirect URLs has been enhanced to ensure they meet security standards and are accessible. The exchange sessions API endpoint will return an HTTP 400 ValidationError with an Invalid code and message of The provided redirect URL must exactly match one of the configured URLs for the account.
Added support for retrieving real-time bank balance information using Dwolla's Open Banking solution. Businesses can now verify the current balance of a user's bank account before initiating ACH payments. This feature helps mitigate the risk of insufficient funds and improves payment processing efficiency.
Updated API Endpoint:
To facilitate retrieving the bank balance, we've updated an API endpoint to support a new schema for bank balances:
/funding-sources/id/balance (GET): This API endpoint will return a JSON response containing the balance amount, currency, available balance, closing balance, and last updated timestamp. Refer to the developer documentation for detailed usage instructions and API reference.
Dwolla Balance and Connect now supports Open Banking, a secure and standardized approach for accessing financial data from various financial institutions. This empowers your application to connect directly with a user's bank through trusted partners like Visa and MX, enabling a seamless Instant Account Verification experience.
New API Endpoints:
To facilitate Open Banking integration, we've introduced two new API endpoints:
/customers/id/exchange-sessions (POST) & /external-parties/id/exchange-sessions (POST): These API endpoints allow you to initiate an exchange session for a specific customer or external party. The exchange session establishes a connection with a chosen Open Banking partner (e.g., Visa or MX) to initiate the Instant Account Verification process.
/exchange-sessions/id (GET): Use this endpoint to retrieve the URL associated with an initiated exchange session which is used to handle the IAV process.
Added a new retry-with-full-ssn link to the Customer resource. This link appears whenever retry information is required for the Controller in order to verify the business verified Customer.
Dwolla has retired the dwolla.js library, which supported adding an unverified bank funding source. Check out the official announcement.
The legacy dwolla.js has been replaced with functionality that has been added to our Drop-in Components library. This library will serve as our primary web UI components library and offer an enhanced developer experience. Please refer to our migration guide for more details, including alternative solutions.
The following API endpoints are removed as part of the sunset: /customers/{id}/iav-token and /customers/{id}/funding-sources-token.
Dwolla has discontinued support for the Push-to-Debit product feature, which was powered by dwolla-cards.js. Includes removal of card related webhooks as well as the funding source type for cards to support Push-to-Debit payments.
Dwolla has discontinued support for the Instant Account Verification (IAV) product, which was powered by Dwolla.js.
As alternative bank account verification options, we recommend utilizing one of our integrated third-party data providers — Finicity or MX via our Secure Exchange, or Plaid.
Added support for including facilitator fees when creating transfers from Verified Customer's Bank into their Dwolla balance. Previously, fees could only be applied to transactions between two parties.
Added new API endpoints for Exchanges and Exchange Partners with the release of the Secure Exchange solution. The Secure Exchange solution connects clients with integrated ecosystem partners to seamlessly share data and initiate account-to-account payments.
Added a new document failure reason, ForeignPassportNotAllowed, for when a foreign passport is uploaded for Personal Verified Customers. Foreign passports are still accepted when uploaded for Business Controllers or Beneficial Owners.
Added a new documentVerificationStatus field to the document resource. This field indicates the status of the document after it has been reviewed by Dwolla. Possible values include pending, accepted and rejected.
Added a new upload-dba-document link to the Customer resource. This link appears whenever a DBA (Doing Business As) document is required from the Customer to verify their business.
Added an _embedded object to the Customer resource which contains a list of errors related to getting the Customer verified. The _embedded object appears whenever the Customer is in retry or document.
Added client-side form validation to the Add a Debit Card form in dwolla-cards.js. This enables the form to display helpful error messages to the user whenever they enter invalid data.
Added Drop-in component for adding Beneficial Owners. This pre-built UI component provides a low-code solution for assisting with onboarding business Verified Customers within your application. Learn more about Drop-in components in our documentation and check out our guide on building with Drop-in components.
Added Drop-in components. These are pre-built UI components that provide a low-code solution for integrating parts of the Dwolla API into your application. Learn more about Drop-in components in our documentation and check out our guide on building with Drop-in components.
Removed support for uploading personal identification documents in the file format of .pdf. A validation error will be returned with a code of "Invalid" and a message of "Invalid file type".
Removed support for uploading duplicate documents for a Customer in document status. If a request to upload a duplicate document is sent, it will fail with a validation error response that includes a link to the existing uploaded document for the Customer.
Added a new JSON object called allFailureReasons to the Document resource, which helps with further identifying the reason for the rejection of an identity verification document uploaded for a Verified Customer.
Added a new attribute called traceId to the achDetails object within the Transfer resource, which helps with further identifying a transfer to/from a user’s bank account.
Jump to our API Docs.
Dwolla allows an application to request an access token using its Client Id and Client Secret by leveraging the Client Credentials OAuth grant type. Access tokens are used to make requests to the Dwolla API on behalf of an application and its users (customers).
Previously, applications made a call to https://www.dwolla.com/oauth/v2/token and specified the application/x-www-form-urlencodedContent-Type header, passing their client credentials (App Key and App Secret) through the body of the HTTP message sent to Dwolla.
With this update, the token URL as well as the manner in which an application’s client credentials are sent to Dwolla, will change to be inline with OAuth spec.
The new Dwolla token exchange endpoint is https://api.dwolla.com/token
Addenda support–The addenda record is used to provide additional information to the payment recipient about the payment. This value will be passed in a transfer request and can be exposed on your user’s bank statement. Addenda records provide a unique opportunity to supply your users with more information about their transactions.
Change in verified business Customer creation flow across Platform. Check out our developer guide to learn how to create this Customer type within the new flow.
In order to comply with United States Federal law, Dwolla also requires beneficial owners to be added to a Customer. Read our blog post to learn more about why we need to comply with US customer due diligence rules.
Verified business Customers creation flow has changed in sandbox. Check out our developer guide to learn how to create this Customer type within the new flow.
In order to comply with United States Federal law, Dwolla also requires beneficial owners to be added to a Customer. Read our blog post to learn more about why we need to comply with US customer due diligence rules.
Please note that this change will go live in across platform on May 11th, 2018.
Bank balance check functionality changing to be asynchronous and immediately return an HTTP 202. The response body for the 202 will contain a status relating to the processing of this request. Subsequent requests to this endpoint will return a 202 up until processing completes and then either return an HTTP 200 with the current balance or an HTTP 400 if there was an error (i.e. UnsupportedBank).
Added a new customer_balance_inquiry_completed event. Upon checking a Customer’s bank balance, Dwolla will immediately return an HTTP 202 with response body that includes a status of processing. This event will be triggered when the bank balance check has completed processing. To read more on how to trigger this event, check out our forum post.
Added a new customer_bank_transfer_creation_failed event. This event will be triggered when an attempt to initiate a transfer to a verified Customer’s bank was made, but failed. Transfers initiated to a verified Customer’s bank must pass through the verified Customer’s balance before being sent to a receiving bank. Dwolla will fail to create a transaction intended for a verified Customer’s bank if the funds available in the balance are less than the transfer amount. To read more on how to trigger this event, check out our forum post.
Release support for a new (optional) backButton and subscriber options for IAV within dwolla.js. Note: Dwolla.js is a premium feature only available for Dwolla API customers.
Release support for a new clearing request parameter when initiating a transfer. Clearing is a JSON object that supports specifying same-day and standard ACH clearing per API request. Note: The clearing request parameter is a premium feature available for Dwolla API customers.
Change in functionality for removing a funding source in API v2. The method for removing a funding source changes from a DELETE to a POST with the need to supply {"removed": true} in the body of the request.
A removed querystring request parameter is supplied when listing an Account or Customer’s funding sources. By default, all funding sources are returned from the listing unless the removed request parameter is set to false.
Removal of the description field in API v2 error responses. Replacing description with the message field which is a duplication of description.
Removing the X-Request-Signature header from webhook requests. Replacing with a X-Request-Signature-SHA-256 header which is a SHA-256 HMAC hash of the request body with the key being your webhook secret.
Error changes - Introduce new message field in error response. Errors now include a profile link in the Content-Type header. Error responses with the top-level error code ValidationError will return an _embedded object containing a list of errors.
Financial institutions play an important role in our network.
All funds transfers made using the Dwolla Platform are performed by a financial institution partner, and any funds held in a Dwolla Balance are held by a financial institution partner. Learn more about our financial institution partners.