Overview
This guide will walk through the complete process of business verification within the Dwolla API, including creating a business verified Customer, handling verification statuses, adding beneficial owners, and certifying beneficial ownership. A business verified Customer represents a business that intends to send or receive funds on your platform. In any transaction, at least one party—either the sender or the receiver—must complete the identity verification process as outlined in this guide. The business verification process consists of the following key steps:Creating a Business Verified Customer
Handling Business Verified Customer Statuses
Adding Beneficial Owner(s)
Certify Beneficial Ownership
Key Terminology
- Account Admin - The representative creating the business verified Customer on behalf of the business and Controller.
- Controller - Any natural individual who holds significant responsibilities to control, manage, or direct a company or other corporate entity (i.e. CEO, CFO, General Partner, President, etc). A company may have more than one controller, but only one controller’s information must be collected.
- Beneficial owner - Any natural person who, directly or indirectly, owns 25% or more of the equity interests of the company.
- Beneficial ownership certification - An action taken by the Account Admin to confirm that the information provided is correct.
- EIN (Employer Identification Number) - A unique identification number that is assigned to a business entity so that they can easily be identified by the Internal Revenue Service.
Step 1 - Creating a Business Verified Customer
Creating a business verified Customer will require you to provide information about the business entity as well as a Controller, if required.Business Verified Customer Quick Guide
Create a business verified Customer with no Controller
Follow these steps to create a business verified Customer where"businessType": "soleProprietorship"
Events
As a developer, you can expect these events to be triggered when a business verified Customer is successfully created and systematically verified:customer_createdcustomer_verified
What parties are identity verified by Dwolla?
businessType of soleProprietorship, Dwolla only requires information to verify the identity of the business and the Account Admin.
Sole Propreietorship - Request parameters
Sole Propreietorship - Request and response
Create a business verified Customer with controller
Events
As a developer, you can expect these events to be triggered when a business verified Customer is successfully created and systematically verified:customer_createdcustomer_verified
What parties are identity verified by Dwolla?
businessType’s other than soleProprietorship, your Customer will need to provide more information for verification. In order to create a business verified Customer with a controller, Dwolla requires information on an account admin, the business, and the controller. Your business verified Customer account admin will act as the agent signing up on behalf of the business. When going through the Customer creation flow, your business verified Customer account admin will only need information on one controller to successfully complete the signup flow.
Corporation, partnership, llc - Request parameters
Controller JSON object
Controller address JSON object
Controller passport JSON object
Business with Controller - Request and response
Check the status of the business Customer
You have created a business verified Customer; however, the successful creation of a business verified Customer doesn’t necessarily mean the Customer account is verified. Businesses may need to provide additional information to help verify their identity. It is important to check the status of the business Customer to determine if additional documentation is needed.Request and response
retry or document status, head to the next step to learn how to handle these statuses.
Step 2 - Handling Business Verified Customer Statuses
You have successfully created a business verified Customer; however, there are cases where Dwolla will need more information to fully verify the identity of the Controller and/or Business. Read on to learn more.Verification statuses and corresponding events
As a developer, you will want to handle the various Customer statuses that can be returned.Understanding Verification Directives
When further action is required for a Business Verified Customer to become verified, the Dwolla API includes Verification Directives in the_embedded.errors array of the Retrieve a Customer response. These directives explain the outstanding requirements for verification, provide actionable instructions, and include hypermedia links (_links) to enable resolution. By parsing and utilizing these directives, you can build a dynamic and user-friendly interface that guides your end-users through the necessary steps, minimizing onboarding friction and reducing support overhead.
Structure of a Verification Directive
Each object within the_embedded.errors array represents a single Verification Directive and follows this structure:
- code: A specific, machine-readable string identifying the type of verification issue. Use this code in your application logic to handle different error scenarios.
- message: A human-readable string explaining the issue and providing guidance on how to resolve it. This message is intended to help you inform your end-users about the required actions.
- _links: A HATEOAS object containing relevant links. This typically includes a link to the API resource needed to address the directive, such as updating the Customer resource or uploading a specific document type. The key of the link (e.g., “update-customer”, “upload-ein-document”) often indicates the required action. An empty
_linksobject may be returned if no direct API action corresponds to the directive (e.g., for AdditionalReviewRequired).
Verification Directives
The following table lists common verification directives you may encounter for Business Verified Customers, along with their meaning and typical required actions:Example Retrieve Customer response
Here’s an example of how the_embedded.errors array might look in a GET /customers/{id} response when multiple issues require attention:
Handling Multiple Directives
As demonstrated in the example response above, the_embedded.errors array can contain multiple Verification Directive objects simultaneously if several issues require attention. Your application should iterate through the entire errors array, presenting the guidance from each message to the end-user and providing access to all corresponding actions via the _links. Addressing all listed directives is necessary for the user to successfully complete the verification process.
Handling retry status
A retry status occurs when a Customer’s identity scores are too low during a verification attempt. Typically, a retry status occurs after the initial creation of a business-verified customer, however, a customer can also be placed into a retry status via the Dwolla Dashboard if the customer is in a document status. When the customer is in the retry status, your application needs to re-initiate the verification process by prompting the user via a form to resubmit their identifying information.
Determining information needed to retry verification
When a business verified Customer is placed in theretry verification status, Dwolla will return a link in the API response after retrieving a Customer. The retry link contained within the _links object of the response helps your application determine if a retry is needed and what type of retry is required. What data you need to request from the customer depends on the retry scenario:
-
Business-only retry: A
retry-verificationlink is returned. Include all fields required during initial customer but omit Controller information. For business verified Customers with Controllers, different links can be returned depending on whether retry is needed for just the business, or both the Controller and business. -
Controller and business retry: A
retry-with-full-ssnlink is returned. If the Controller information needs to be retried, all fields that were required in the initial Customer creation attempt will be required in the retry attempt, along with the full 9-digit SSN of the Controller in order to give our identity vendor more information in an attempt to receive a sufficient score to approve the Customer account (see example request below).
Understanding _embedded errors
Additionally,_embedded errors are included in the Customer resource which include information about the next steps required to get the Customer verified (see example response below). Refer to the table below for the list of possible links and their descriptions.
Example response
Sole Proprietorship (retry-verification) - Request and response
Business with Controller (retry-verification) - Request and response
Business with Controller (retry-with-full-ssn) - Request and response
Handling document status
If the Customer has a status of document, the Customer will need to upload additional pieces of information in order to verify the account. Use the create a document endpoint when uploading a colored camera captured image of the identifying document. The document(s) will then be reviewed by Dwolla; this review may take up to 1-2 business days to approve or reject.
You can provide the following best practices to the Customer in order to reduce the chances of a document being rejected:
- Only images of the front of an ID
- All 4 edges of the document should be visible
- A dark/high contrast background should be used
- At least 90% of the image should be the document
- Should be at least 300dpi
- Capture image from directly above the document
- Make sure that the image is properly aligned, not rotated, tilted or skewed
- No flash to reduce glare
- No black and white documents
- No expired IDs
Determining verification documents needed
When a business verified Customer is placed in thedocument verification status, Dwolla will return a link in the API response after retrieving a Customer, which will be used by an application to determine if documentation is needed. For business verified Customers, different links can be returned depending on whether or not documents are needed for a Controller, the business, both the Controller and business, or for the DBA (Doing Business As). Additionally, embedded errors are included in the Customer resource which include information about the next steps required to get the Customer verified (see example response below). Refer to the table below for the list of possible links and their description. Refer to the acceptable document types section for more information on what types of documents are accepted for businesses and Controllers.
Example response
Document Types
Controllers
US persons: A colored camera captured image of the Controller’s identifying document can be specified as documentType:license (state issued driver’s license), or idCard (U.S. government-issued photo id card).
Supported Document Examples:
- Non-expired State Issued Driver’s License/Identification Card
- Non-expired US Passport
- Federal Employment Authorization Card
- US Visa
- Military IDs
- Expired government-issued IDs
passport. Examples include:
- Non-expired Foreign Passport Note: Foreign Passports are only accepted when the individual does not have an ITIN or SSN and the user must alternatively enter the Passport number.
Businesses
Documents that are used to help identify a business are specified as documentTypeother. Note: A DBA document should be issued by the government and should include the DBA name along with the state registered business name. Business Identifying documents we recommend uploading can include the following:
- Partnership, General Partnership: EIN Letter (IRS-issued SS4 confirmation letter).
- Limited Liability Corporation (LLC), Corporation: EIN Letter (IRS-issued SS4 confirmation letter).
-
Sole Proprietorship: Sole Proprietorships can be verified by uploading Business documents as well as Personal IDs. Personal IDs need to be specified as documentType
idCard,licenseorpassportdepending on the type of the ID. Business documents need to be specified as documentTypeother. Acceptable documents include one or more of the following, as applicable to your sole proprietorship:- Business documents (documentType
other):- Fictitious Business Name Statement,
- Certificate of Assumed Name; Business License,
- Sales/Use Tax License,
- Registration of Trade Name,
- EIN documentation (IRS-issued SS4 confirmation letter)
- Personal documents (documentType
license,passportoridCard):- Color copy of a valid government-issued photo ID (e.g., a driver’s license, passport, or state ID card).
- Business documents (documentType
- Filed and stamped Articles of Organization or Incorporation
- Sales/Use Tax License
- Business License
- Certificate of Good Standing
Proof of address
If Dwolla’s Compliance team is unable to find an external connection to confirm the user does in fact conduct business at their provided business address, a “proof of address” will be required. Proof of address are any of the following, current documents that show the address in question:- Utility Bill
- Financial Statement
- Tax Statement (Please note - Form W-9 is a tax form, and is not an acceptable Tax Statement)
- Fully Executed Lease Agreement - must be valid for a minimum of the next 30 days.
Uploading a document
To upload a color photo of the document, you’ll initiate a multipart form-data POST request from your backend server tohttps://api.dwolla.com/customers/{id}/documents. The file must be either a .jpg, .jpeg, or .png. Files must be no larger than 10MB in size. Additionally, Business Documents can also be uploaded in a .pdf format.
You’ll also get a with a customer_verification_document_uploaded event to let you know the document was successfully uploaded.
Request and response
Document review process
Once created, the document will be reviewed by Dwolla. When our team has made a decision to approve or reject, which may take up to 1-2 business days, we’ll create either acustomer_verification_document_approved or customer_verification_document_failed event.
If the document was sufficient, the Customer may be verified in this process. If not, we may need additional documentation. Note: Reference the determining verification documents needed section for more information on determining if additional documents are needed after an approved or failed event is triggered.
If the document was found to be fraudulent or doesn’t match the identity of the Customer, the Customer will be suspended.
Document failure
A document can fail if, for example, the Customer uploaded the wrong type of document or the.jpg or .png file supplied was not readable (i.e. blurry, not well lit, not in color, or cuts off a portion of the identifying image). If you receive a customer_verification_document_failed webhook, you’ll need to upload another document. To retrieve the failure reason for the document upload, you’ll retrieve the document by its ID. Contained in the response will be a failureReason field which corresponds to one or more of the following values. In case of a failure due to multiple reasons, an additional allFailureReasons of reasons and descriptions is also returned:
Request and response
Handling status: suspended
If the Customer issuspended, there’s no further action you can take to correct this using the API. You’ll need to contact support@dwolla.com or your account manager for assistance.
The successful creation of a business verified Customer and Controller doesn’t necessarily mean the Customer is fully verified and eligible to transfer. After successfully creating your business verified Customer, you will need to check to see if the beneficial ownership requirements apply to you. To learn how to add beneficial owner(s) to your Customer, read on in the next step.
Step 3 - Adding Beneficial Owner(s)
To help the government fight financial crime, the existing United States Federal customer due diligence rules were amended to clarify and strengthen customer due diligence requirements. The customer due diligence rule imposes a requirement for verifying the identity of beneficial owner(s) of Dwolla’s partners and users that are not natural persons. These legal entities can be abused to disguise involvement in terrorist financing, money laundering, tax evasion, corruption, fraud, and other financial crimes. Requiring the disclosure of key individuals who ultimately own or control a legal entity (i.e., the beneficial owners) helps law enforcement investigate and prosecute these crimes.How do I know what business structure is required to add Beneficial Owners?
Create a beneficial owner for a Business Verified Customer
To create a beneficial owner, use the create a beneficial owner endpoint.Events
As a developer, you can expect these events to be triggered when a beneficial owner is successfully created and systematically verified:customer_beneficial_owner_createdcustomer_beneficial_owner_verified
Request Parameters
Address JSON object
Passport JSON object
Request and Response
Check the status of an individual Beneficial Owner
After a beneficial owner has been created, the beneficial owner’s identity needs to go through a verification process. A beneficial owner that has a status ofincomplete or document will impact the business verified Customer’s eligibility to send or receive funds. When a beneficial owner has been successfully verified by Dwolla, the beneficial owner’s status will be set to verified.
Reference the table below for more information on the events that correspond to each of the beneficial owner statuses:
Individual Beneficial Owner statuses and events
Request and response - retrieve a beneficial owner status
Handling an individual beneficial owner Status
Congrats! You have created a beneficial owner for a business verified Customer, however, the successful creation of a beneficial Owner doesn’t necessarily mean they are identity verified. You will want to ensure that the beneficial Owner isverified, as the business verified Customer will be unable to send or receive funds until the owner has a verified status.
Handling incomplete status
An incomplete status occurs when a beneficial owner’s identity scores are too low during the initial verification attempt. Dwolla will trigger a customer_beneficial_owner_reverification_needed event which notifies your application to prompt the Customer to submit another identity verification attempt for the beneficial owner. The second attempt will give our identity vendor more accurate information in an attempt to receive a sufficient score to approve the beneficial owner. The Customer will only have one opportunity to correct any mistakes.
incomplete status; simply passing the same information will result in the same insufficient scores. All fields that were required in the initial beneficial owner creation attempt will be required in the incomplete attempt.Request and Response - update beneficial owner
verified or document state of verification.
Handling document status
If a beneficial owner is not verified after being placed in incomplete status and submitting a second verification attempt, the only other state the beneficial owner can be in is document. If the beneficial owner has a status of document, they will need to upload additional pieces of information in order to verify their identity. Use the create a document endpoint when uploading a colored camera captured image of the identifying document. The document(s) will then be reviewed by Dwolla; this review may take anywhere from a few seconds up to 1-2 business days if manual verification is required to approve or reject.
You can provide the following best practices to the Customer in order to reduce the chances of a document being rejected:
- All 4 Edges of the document should be visible
- A dark/high contrast background should be used
- At least 90% of the image should be the document
- Should be at least 300dpi
- Capture image from directly above the document
- Make sure that the image is properly aligned, not rotated, tilted or skewed
- No flash to reduce glare
- No black and white documents
- No expired IDs
Determining verification documents needed
US persons
A colored camera captured image of the Beneficial Owner’s identifying document can be specified as documentType:license (state issued driver’s license), or idCard (U.S. government-issued photo id card). Examples include:
- Non-expired State Issued Driver’s License/Identification Card
- Non-expired US Passport
- Federal Employment Authorization Card
- US Visa
Non-US persons
A colored camera captured image of the Beneficial Owner’s identifying document can be specified as documentType:passport. Examples include:
- Non-expired Foreign Passport Note: Foreign Passports are only accepted when the individual does not have an ITIN or SSN and the user must alternatively enter the Passport number.
Uploading a document
To upload a color photo of the document, you’ll initiate a multipart form-data POST request from your backend server to the beneficial owners documents endpoint. The file must be either a .jpg, .jpeg, or .png. Files must be no larger than 10MB in size. You’ll also get abeneficial_owner_verification_document_uploaded event to let you know the document was successfully uploaded.
Request and Response
Update Beneficial Owner Information
Information can only be edited or updated when the Beneficial Owner has a status ofincomplete.
If an individual beneficial owner with a status of verified needs to update their information, that beneficial owner will first need to be removed and re-added.
Request and Response
Step 4 - Certify Beneficial Ownership
In order for your business verified Customer to be eligible to send funds, the individual creating the business verified Customer account must certify beneficial owner(s). By certifying that all beneficial owner information is correct, the requirements imposed by the United States Federal customer due diligence rule and Dwolla will be successfully fulfilled. Certification of beneficial owners should be included as part of the Customer account registration and immediately following the creation of the business Verified Customer and the addition of all owners (unless exempt).How do I know what business structure is required to certify Beneficial Ownership?
Determining Certification needed
When a business verified Customer needs to becertified, Dwolla will return a link in the API response after retrieving a Customer. If no certification link is returned, the Customer is either already certified, or is exempt from certification.
Example response
Certification Statuses
Certify ownership
To change the certification status of your business verified Customer account, you will want to POST to the beneficial ownership endpoint. By updating the certification status tocertified, the Account Admin creating the business verified Customer is indicating that all information is correct. After the Account Admin certifies that the information provided is accurate and the information the Account Admin submitted has been verified through the identity verified process, your business verified Customer is now ready to transact within the Dwolla network.
Certification Text Example
Example for certification is as follows:Handling recertify status
If you are adding, removing, or updating information of beneficial owners tied to a business verified Customer account, the certification status will change to recertify.
Instances that you will see your certified business verified Customer change to recertify are as follows:
- Adding a beneficial owner
- Removing a beneficial owner
- Updating a beneficial owner in
incompletestatus
recertify beneficial ownership status, they will have up to thirty days to update and verify their beneficial owners’ information and update their status to certified. If the certification status isn’t updated within this timeframe, the business verified Customer will have its certification_status changed to uncertified, leaving the Customer unable to transact.
Frequently Asked Questions
Customer Eligibility
Q: How do I determine if my Customer is fully verified and eligible to start transacting?
Q: How do I determine if my Customer is fully verified and eligible to start transacting?
You can determine the eligibility of the customer to start transacting in
the Dwolla platform by the presence of the send and
receive links in the customer resource.send - Denotes that the customer is eligible to start sending
funds if they have a verified funding-source attached.receive - Denotes that the customer is eligible to receive
funds into their Dwolla balance or an attached bank funding-source.
Note: Until the following actions have been completed, any
funds received by the Customer will remain in their Dwolla Balance unable to
be withdrawn or sent to another Customer or Account:
Tip: You can use the MCP server to programmatically check these links via the API.
Q: My Customer has a retry status. What activity would they be able to engage in while being in retry status, as it relates to the Dwolla Platform?
Q: My Customer has a retry status. What activity would they be able to engage in while being in retry status, as it relates to the Dwolla Platform?
- Send funds - No
- Receive funds - Yes - Note that funds will only process to their balance
and the transfer will stay
pendinguntil the Customer has been verified. - Add and verify a bank funding source - Yes
- Add and verify a Beneficial Owner - Yes
Q: My Customer has a document status. What activity would they be able to engage in while being in document status, as it relates to the Dwolla Platform?
Q: My Customer has a document status. What activity would they be able to engage in while being in document status, as it relates to the Dwolla Platform?
- Send funds - No
- Receive funds - Yes - Note that funds will only process to their balance
and the transfer will stay
pendinguntil the Customer has been verified. - Add and verify a bank funding source - Yes
- Add and verify a Beneficial Owner - Yes
Q: My Customer has a deactivated or suspended status. What activity would they be able to engage in while being in deactivated or suspended status, as it relates to the Dwolla Platform?
Q: My Customer has a deactivated or suspended status. What activity would they be able to engage in while being in deactivated or suspended status, as it relates to the Dwolla Platform?
- Send funds - No
- Receive funds - No
- Add and verify a bank funding source - No
- Add and verify a Beneficial Owner - No
Q: My Customer has a verified status, but is unable to send funds. Why is this?
Q: My Customer has a verified status, but is unable to send funds. Why is this?
Your Customer has likely not completed the bank verification process. You can check to see the status of the funding sourcevia the APIor by going into the Dwolla dashboard.
Q: Can I change a Business Verified Customer type to an Unverified Customer type?
Q: Can I change a Business Verified Customer type to an Unverified Customer type?
No. Downgrade functionality is not supported for Dwolla Verified Customers.
Q: My Customer has a document status. Can I submit more than one document via the API?
Q: My Customer has a document status. Can I submit more than one document via the API?
Yes, although this is not necessary, nor recommended. Dwolla manually reviews all documents, so sending more documents than necessary may slow down the verification process for your Customers.
Q: My end user is not a US resident, can they still create a Personal Verified Customer via the API to access my application?
Q: My end user is not a US resident, can they still create a Personal Verified Customer via the API to access my application?
No. At this time, Dwolla will create Business Verified Customers when they have a proper business EIN or SSN (for Sole Proprietorships only).
Beneficial Owner Eligibility
Q: My Business Verified Customer is `verified` and my Beneficial Owners are `verified` but they cannot send funds. Why is this?
Q: My Business Verified Customer is `verified` and my Beneficial Owners are `verified` but they cannot send funds. Why is this?
Your Customer will need to certify beneficial ownership information before your Customer will be eligible to send funds.
Q: One of my Business Verified Customer's Beneficial Owners is not yet in a `verified` status. What is my Customer's eligibility for certain actions with Dwolla?
Q: One of my Business Verified Customer's Beneficial Owners is not yet in a `verified` status. What is my Customer's eligibility for certain actions with Dwolla?
- Send funds - No
- Receive funds - Yes - Note that funds will only process to their balance
and the transfer will stay
pendinguntil all of the Beneficial Owners have been verified and certified. - Add and verify a bank funding source - Yes
Q: When should my Beneficial Owner use `ssn`? When should they use the `passport`?
Q: When should my Beneficial Owner use `ssn`? When should they use the `passport`?
- If your Beneficial Owner is an individual from the United States with a
US-issued SSN, your Beneficial Owner will sign up using
ssn. - If your Beneficial Owner is a non-US individual, they will use the
passportobject.