Ask AI or search...
Get API Keys

Step 1: Creating a Business Verified Customer #

The basics #

Creating a business verified Customer will require you to provide information about the business entity as well as a Controller, if required.

How do I know what businessType to sign up as? #

My Customer's business structureDwolla businessType valuesController required?
Sole proprietorshipssoleProprietorshipNo
Unincorporated associationsoleProprietorshipNo
TrustsoleProprietorshipNo
CorporationcorporationYes
Publicly traded corporationscorporationYes
Non-profitscorporation or llcYes
LLCsllcYes
Partnerships, LP's, LLP'spartnershipYes

There are two types of business verified Customers that you can create, based on if they are required to add information on the Controller or not.

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:

  1. customer_created
  2. customer_verified

What parties are identity verified by Dwolla?

Business TypeBusiness EntityControllerBusiness Owner
Sole ProprietorshipIdentity verifiedN/AIdentity verified

In order to create a business verified Customer with businessType of soleProprietorship, Dwolla only requires information to verify the identity of the business and the Account Admin.

ParameterRequiredTypeDescription
firstNameyesstringThe legal first name of the Business Owner. Must be ≤ 50 characters and cannot include special characters [<>="`!?%~${}\].
lastNameyesstringThe legal last name of the Business Owner. Must be ≤ 50 characters and cannot include special characters [<>="`!?%~${}\].
emailyesstringEmail address of the Business Owner. Must be a valid email format (e.g., example@domain.com).
ipAddressnostringIP address of the registering user is recommended.
typeyesstringMust be business.
dateOfBirthyesstringThe date of birth of the Business Owner.
Format: YYYY-MM-DD
Age Range: Must be between 18 to 125 years.
ssnyesstringLast four or full 9 digits of the Business Owner's Social Security Number. Must contain only numbers (e.g., 1234 or 123456789).
address1yesstringStreet number and street name of the business’ physical address. Must be ≤ 50 characters, contain no special characters [<>="`!?%~${}\], and cannot be a PO Box.
address2nostringApartment, floor, suite, bldg. # of business’ physical address. Must be ≤ 50 characters and cannot include special characters [<>="`!?%~${}\].
cityyesstringCity of the business’ physical address. Must be ≤ 50 characters and cannot contain numbers or special characters [<>="`!?%~${}\].
stateyesstringUS Persons - Must be a valid two-letter US state/territory abbreviation (e.g., CA).
Reference: US Postal Service guide.
postalCodeyesstringBusiness’ US ZIP Code. Must be either 5 digits (e.g., 50314) or ZIP+4 (e.g., 50314-1234).
businessNameyesstringRegistered business name. Must be ≤ 255 characters and cannot include special characters [<>="`!?%~${}\].
doingBusinessAsnostringPreferred business name – also known as a fictitious name or assumed name. Must be ≤ 255 characters and cannot include special characters [<>="`!?%~${}\].
businessTypeyesstringBusiness structure. Must be soleProprietorship.
businessClassificationyesstringThe industry classification ID corresponding to the Customer’s business.
Reference: Business Classifications.
einnostringEmployer Identification Number (EIN). Optional for soleProprietorship business Customers. Must be 9 numeric characters (e.g., 123456789).
websitenostringBusiness’ website. Must be a valid URL (e.g., https://www.domain.com).
phonenostringBusiness’s 10-digit phone number. Must contain only numbers (e.g., 3334447777). No hyphens, spaces, or separators.

Sole Propreietorship - Request and response #

Raw
POST https://api-sandbox.dwolla.com/customers
Content-Type: application/vnd.dwolla.v1.hal+json
Accept: application/vnd.dwolla.v1.hal+json
Authorization: Bearer 0Sn0W6kzNic+oWhDbQcVSKLRUpGjIdl/YyrHqrDDoRnQwE7Q

{
    "firstName": "Business",
    "lastName": "Owner",
    "email": "solePropBusiness@email.com",
    "ipAddress": "143.156.7.8",
    "type": "business",
    "dateOfBirth": "1980-01-31",
    "ssn": "6789",
    "address1": "99-99 33rd St",
    "city": "Some City",
    "state": "NY",
    "postalCode": "11101",
    "businessClassification": "9ed3f670-7d6f-11e3-b1ce-5404a6144203",
    "businessType": "soleProprietorship",
    "businessName":"Jane Corp",
    "ein":"00-0000000"
}

HTTP/1.1 201 Created
Location: https://api-sandbox.dwolla.com/customers/62c3aa1b-3a1b-46d0-ae90-17304d60c3d5

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:

  1. customer_created
  2. customer_verified

What parties are identity verified by Dwolla?

Business TypeBusiness EntityControllerAccount Admin
CorporationIdentity verifiedIdentity verifiedNot identity verified
PartnershipIdentity verifiedIdentity verifiedNot identity verified
LLCIdentity verifiedIdentity verifiedNot identity verified

For all other 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 #

ParameterRequiredTypeDescription
firstNameyesstringThe legal first name of the Account Admin or individual signing up the business verified Customer. Must be ≤ 50 characters and cannot include special characters [<>="`!?%~${}\].
lastNameyesstringThe legal last name of the Account Admin or individual signing up the business verified Customer. Must be ≤ 50 characters and cannot include special characters [<>="`!?%~${}\].
emailyesstringEmail address of the Account Admin creating and managing the Customer account. Must be a valid email format (e.g., example@domain.com).
ipAddressnostringIP address of the registering user. Recommended but not required.
typeyesstringMust be business.
address1yesstringStreet number and street name of the business’ physical address. Must be ≤ 50 characters, contain no special characters [<>="`!?%~${}\], and cannot be a PO Box.
address2nostringApartment, floor, suite, bldg. # of business’ physical address. Must be ≤ 50 characters and cannot include special characters [<>="`!?%~${}\].
cityyesstringCity of the business’ physical address. Must be ≤ 50 characters and cannot contain numbers or special characters [<>="`!?%~${}\].
stateyesstringUS Persons - Must be a valid two-letter US state/territory abbreviation (e.g., CA).
Reference: US Postal Service guide.
postalCodeyesstringBusiness’ US ZIP Code. Must be either 5 digits (e.g., 50314) or ZIP+4 (e.g., 50314-1234).
businessNameyesstringRegistered business name. Must be ≤ 255 characters and cannot include special characters [<>="`!?%~${}\].
doingBusinessAsnostringPreferred business name – also known as a fictitious name or assumed name. Must be ≤ 255 characters and cannot include special characters [<>="`!?%~${}\].
businessTypeyesstringBusiness structure. Accepted values: corporation, llc, partnership.
businessClassificationyesstringThe industry classification ID corresponding to the Customer’s business.
Reference: Business Classifications.
einyesstringEmployer Identification Number (EIN). Must be 9 numeric characters (e.g., 123456789).
Note: If businessType is soleProprietorship, then ein and controller can be omitted.
websitenostringBusiness’ website. Must be a valid URL (e.g., https://www.domain.com).
phonenostringBusiness’s 10-digit phone number. Must contain only numbers (e.g., 3334447777). No hyphens, spaces, or separators.
controllerconditionalobjectA Controller JSON object.
Required unless businessType is soleProprietorship.

Controller JSON object #

ParameterRequiredTypeDescription
firstNameyesstringThe legal first name of the Controller. Must be ≤ 50 characters and cannot include special characters [<>="`!?%~${}\].
lastNameyesstringThe legal last name of the Controller. Must be ≤ 50 characters and cannot include special characters [<>="`!?%~${}\].
titleyesstringJob title of the Controller. Examples: Chief Financial Officer, Managing Director. Must be ≤ 100 characters and cannot contain numbers or special characters [<>="`!?%~${}\].
dateOfBirthyesstringController’s date of birth in YYYY-MM-DD format. Must be between 18 to 125 years old.
ssnconditionalstringLast four digits or full 9-digit Social Security Number (SSN).
Required for US residents.
If omitted, a passport object is required.
addressyesobjectA Controller Address JSON Object containing the Controller’s full physical address.
Reference: Controller Address JSON Object.
passportconditionalobjectA Controller Passport JSON Object.
Required for non-US individuals. Includes Passport Identification Number and Country.
Reference: Controller Passport JSON Object.

Controller address JSON object #

ParameterRequiredTypeDescription
address1yesstringStreet number and name of Controller’s physical address.
Must be ≤ 50 characters.
Cannot contain special characters [<>="`!?%~${}\].
PO Boxes are not allowed.
address2nostringApartment, floor, suite, or building number of Controller’s physical address.
Must be ≤ 50 characters.
Cannot contain special characters [<>="`!?%~${}\].
PO Boxes are not allowed.
address3nostringThird line of the address, if applicable.
Must be ≤ 50 characters.
Cannot contain special characters [<>="`!?%~${}\].
PO Boxes are not allowed.
cityyesstringCity name of Controller’s physical address.
Must be ≤ 50 characters.
Cannot contain numbers or special characters [<>="`!?%~${}\].
stateProvinceRegionyesstringUS Persons - Two-letter US state abbreviation. See the US Postal Service guide.
Non-US Persons - Two-letter ISO abbreviation for state, province, or region. See the ISO guide.
If a country does not have a two-letter abbreviation for a state/province, use the country’s two-letter ISO code instead.
Must be uppercase (e.g., CA).
postalCodeconditionalstringUS Persons - Must provide a 5-digit ZIP code (e.g., 12345) or ZIP+4 code (e.g., 12345-6789).
Non-US Persons - Optional. Can include alphanumeric postal codes where applicable.
countryyesstringTwo-letter ISO country code (e.g., US for United States, CA for Canada).
Reference the ISO country codes list.

Controller passport JSON object #

ParameterRequiredTypeDescription
numberconditionalstringRequired if the controller is a non-US person and does not have a Social Security Number (SSN).
Must be ≤ 255 characters.
countryconditionalstringCountry where the passport was issued.
Must be a two-letter ISO country code (e.g., GB for United Kingdom, IN for India).

Once you submit this request, Dwolla will perform some initial validation to check for formatting issues such as an invalid date of birth, invalid email format, etc. If successful, the response will be a HTTP 201/Created with the URL of the new Customer resource contained in the Location header.

Business with Controller - Request and response

Raw
POST https://api-sandbox.dwolla.com/customers
Content-Type: application/vnd.dwolla.v1.hal+json
Accept: application/vnd.dwolla.v1.hal+json
Authorization: Bearer 0Sn0W6kzNic+oWhDbQcVSKLRUpGjIdl/YyrHqrDDoRnQwE7Q

{
    "firstName": "Account",
    "lastName": "Admin",
    "email": "accountAdmin@email.com",
    "ipAddress": "143.156.7.8",
    "type": "business",
    "address1": "99-99 33rd St",
    "city": "Some City",
    "state": "NY",
    "postalCode": "11101",
    "controller": {
        "firstName": "John",
        "lastName": "Controller",
        "title": "CEO",
        "ssn": "6789",
        "dateOfBirth": "1980-01-31",
        "address": {
            "address1": "1749 18th st",
            "address2": "apt 12",
            "city": "Des Moines",
            "stateProvinceRegion": "IA",
            "postalCode": "50266",
            "country": "US"
        }
    },
    "businessClassification": "9ed3f670-7d6f-11e3-b1ce-5404a6144203",
    "businessType": "llc",
    "businessName":"Jane Corp",
    "ein":"00-0000000"
}

HTTP/1.1 201 Created
Location: https://api-sandbox.dwolla.com/customers/62c3aa1b-3a1b-46d0-ae90-17304d60c3d5

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

Raw
GET https://api-sandbox.dwolla.com/customers/62c3aa1b-3a1b-46d0-ae90-17304d60c3d5
Accept: application/vnd.dwolla.v1.hal+json
Authorization: Bearer pBA9fVDBEyYZCEsLf/wKehyh1RTpzjUj5KzIRfDi0wKTii7DqY

...

{
    "_links": {
        "verify-beneficial-owners": {
            "href": "https://api-sandbox.dwolla.com/customers/d56c07fa-3832-427d-bb88-a9eb2d375c14/beneficial-owners",
            "type": "application/vnd.dwolla.v1.hal+json",
            "resource-type": "beneficial-owner"
        },
        "beneficial-owners": {
            "href": "https://api-sandbox.dwolla.com/customers/d56c07fa-3832-427d-bb88-a9eb2d375c14/beneficial-owners",
            "type": "application/vnd.dwolla.v1.hal+json",
            "resource-type": "beneficial-owner"
        },
        "deactivate": {
            "href": "https://api-sandbox.dwolla.com/customers/d56c07fa-3832-427d-bb88-a9eb2d375c14",
            "type": "application/vnd.dwolla.v1.hal+json",
            "resource-type": "customer"
        },
        "self": {
            "href": "https://api-sandbox.dwolla.com/customers/d56c07fa-3832-427d-bb88-a9eb2d375c14",
            "type": "application/vnd.dwolla.v1.hal+json",
            "resource-type": "customer"
        },
        "receive": {
            "href": "https://api-sandbox.dwolla.com/transfers",
            "type": "application/vnd.dwolla.v1.hal+json",
            "resource-type": "transfer"
        },
        "edit-form": {
            "href": "https://api-sandbox.dwolla.com/customers/d56c07fa-3832-427d-bb88-a9eb2d375c14",
            "type": "application/vnd.dwolla.v1.hal+json; profile=\"https://github.com/dwolla/hal-forms\"",
            "resource-type": "customer"
        },
        "edit": {
            "href": "https://api-sandbox.dwolla.com/customers/d56c07fa-3832-427d-bb88-a9eb2d375c14",
            "type": "application/vnd.dwolla.v1.hal+json",
            "resource-type": "customer"
        },
        "certify-beneficial-ownership": {
            "href": "https://api-sandbox.dwolla.com/customers/d56c07fa-3832-427d-bb88-a9eb2d375c14/beneficial-ownership",
            "type": "application/vnd.dwolla.v1.hal+json",
            "resource-type": "beneficial-ownership"
        },
        "funding-sources": {
            "href": "https://api-sandbox.dwolla.com/customers/d56c07fa-3832-427d-bb88-a9eb2d375c14/funding-sources",
            "type": "application/vnd.dwolla.v1.hal+json",
            "resource-type": "funding-source"
        },
        "transfers": {
            "href": "https://api-sandbox.dwolla.com/customers/d56c07fa-3832-427d-bb88-a9eb2d375c14/transfers",
            "type": "application/vnd.dwolla.v1.hal+json",
            "resource-type": "transfer"
        }
    },
    "id": "d56c07fa-3832-427d-bb88-a9eb2d375c14",
    "firstName": "Account",
    "lastName": "Admin",
    "email": "accountAdmin@email.com",
    "type": "business",
    "status": "verified",
    "created": "2018-04-26T19:11:41.290Z",
    "address1": "99-99 33rd St",
    "city": "Some City",
    "state": "NY",
    "postalCode": "11101",
    "businessName": "Jane Corp",
    "controller": {
        "firstName": "John",
        "lastName": "Controller",
        "title": "CEO",
        "address": {
            "address1": "1749 18th st",
            "address2": "apt 12",
            "city": "Des Moines",
            "stateProvinceRegion": "IA",
            "country": "US",
            "postalCode": "50266"
        }
    },
    "businessType": "llc",
    "businessClassification": "9ed3f670-7d6f-11e3-b1ce-5404a6144203"
}

You will want to ensure that both your Controller and your Business have been verified, as the Customer will be unable to send or receive funds until then. If the Customer is in retry or document status, head to the next step to learn how to handle these statuses.

Test in the Sandbox for free today.
Use sandbox environment to test API requests.
Get API Keys
2025 All Rights Reserved
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.