Create an account

You can create business or individual accounts for your users (i.e., customers, merchants) by passing the required information to Moov. Requirements differ per account type and requested capabilities.

If you’re requesting the wallet, send-funds, collect-funds, or card-issuing capabilities, you’ll need to:

If you’re creating a business account with the business type llc, partnership, or privateCorporation, you’ll need to:

  • Provide business representatives after creating the account.
  • Patch the account to indicate that business representative ownership information is complete.

Visit our documentation to read more about creating accounts and verification requirements.

Note that the mode field (for production or sandbox) is only required when creating a facilitator account. All non-facilitator account requests will ignore the mode field and be set to the calling facilitator’s mode.

To use this endpoint from the browser, you will need to specify the /accounts.write scope when generating a token.

POST
/accounts
cURL (Business) Go (Business) JavaScript (Business)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
curl -X POST "https://api.moov.io/accounts" \
  -H "Authorization: Bearer {token}" \
  --data-raw '{
    "accountType": "business",
    "profile": {
      "business": {
        "legalBusinessName": "Whole Body Fitness LLC",
        "businessType": "llc",
        "website": "wbfllc.com"
      }
    },
    "foreignId": "your-correlation-id"
  }'\
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
mc, _ := moov.NewClient()

mc.CreateAccount(ctx, moov.CreateAccount{
  Type: moov.AccountType_Business,
  Profile: moov.CreateProfile{
    Business: &moov.CreateBusinessProfile{
      Name: "Whole Body Fitness LLC",
      Type: "llc",
      Website: "wbfllc.com",
    },
  },
})
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
const moov = new Moov(credentialsObject);

const accountPayload = {
  accountType: "business",
  profile: {
    business: {
      legalBusinessName: "Whole Body Fitness LLC",
      businessType: "llc",
      website: "wbfllc.com"
    }
  },
  foreignId: "your-correlation-id"
};

const account = await moov.accounts.create(accountPayload);
200 400 409 422 429
Account created
Describes a Moov account.
{
  "accountID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
  "accountType": "business",
  "capabilities": [
    {
      "capability": "transfers",
      "status": "enabled"
    }
  ],
  "createdOn": "2019-08-24T14:15:22Z",
  "customerSupport": {
    "address": {
      "addressLine1": "123 Main Street",
      "addressLine2": "Apt 302",
      "city": "Boulder",
      "country": "US",
      "postalCode": "80301",
      "stateOrProvince": "CO"
    },
    "email": "amanda@classbooker.dev",
    "phone": {
      "countryCode": "1",
      "number": "8185551212"
    },
    "website": "www.wholebodyfitnessgym.com"
  },
  "disconnectedOn": "2019-08-24T14:15:22Z",
  "displayName": "Whole Body Fitness",
  "foreignID": "4528aba-b9a1-11eb-8529-0242ac13003",
  "metadata": {
    "property1": "string",
    "property2": "string"
  },
  "mode": "production",
  "profile": {
    "business": {
      "address": {
        "addressLine1": "123 Main Street",
        "addressLine2": "Apt 302",
        "city": "Boulder",
        "country": "US",
        "postalCode": "80301",
        "stateOrProvince": "CO"
      },
      "businessType": "llc",
      "description": "Local fitness gym paying out instructors",
      "doingBusinessAs": "string",
      "email": "amanda@classbooker.dev",
      "industryCodes": {
        "mcc": "7997",
        "naics": "713940",
        "sic": "7991"
      },
      "legalBusinessName": "string",
      "ownersProvided": true,
      "phone": {
        "countryCode": "1",
        "number": "8185551212"
      },
      "primaryRegulator": "FDIC",
      "representatives": [],
      "taxIDProvided": false,
      "website": "www.wholebodyfitnessgym.com"
    },
    "individual": {
      "address": {
        "addressLine1": "123 Main Street",
        "addressLine2": "Apt 302",
        "city": "Boulder",
        "country": "US",
        "postalCode": "80301",
        "stateOrProvince": "CO"
      },
      "birthDateProvided": false,
      "email": "amanda@classbooker.dev",
      "governmentIDProvided": false,
      "name": {
        "firstName": "Amanda",
        "lastName": "Yang",
        "middleName": "Amanda",
        "suffix": "Jr"
      },
      "phone": {
        "countryCode": "1",
        "number": "8185551212"
      }
    }
  },
  "settings": {
    "achPayment": {
      "companyName": "WholeBodyFitness"
    },
    "cardPayment": {
      "statementDescriptor": "Whole Body Fitness"
    }
  },
  "termsOfService": {
    "acceptedDate": "2019-08-24T14:15:22Z",
    "acceptedIP": "127.0.0.1"
  },
  "updatedOn": "2019-08-24T14:15:22Z",
  "verification": {
    "details": "failedAutoVerify",
    "documents": [
      {
        "contentType": "application/pdf",
        "documentID": "e210a9d6",
        "parseErrors": [
          "string"
        ],
        "type": "DriversLicense",
        "uploadedAt": "2019-08-24T14:15:22Z"
      }
    ],
    "status": "unverified",
    "verificationStatus": "unverified"
  }
}
The request was invalid.
ForeignID already associated with another account.
The request body could not be processed.
Request was refused due to rate limiting.

Retry-After

number

Headers

X-Wait-For

string
Optional header that indicates whether to wait for the connection to be created before returning from the account creation.
Possible values: connection

Body

application/json
Describes the fields available when creating a Moov account.

accountType

string<enum> required
The type of entity represented by this account.
Possible values: individual, business

profile

object required
Describes the fields available when creating a profile. If accountType is set to individual, the individual object should be completed. All others should populate business.
right_key Show child attributes

business

object
Describes the fields available when creating a business.
right_key Show child attributes

address

object
right_key Show child attributes

addressLine1

string <=60 characters required

addressLine2

string <=32 characters

city

string <=24 characters required

country

string <=2 characters required

postalCode

string <=5 characters required

stateOrProvince

string <=2 characters required

businessType

string
The type of entity represented by this business.
Possible values: soleProprietorship, unincorporatedAssociation, trust, publicCorporation, privateCorporation, llc, partnership, unincorporatedNonProfit, incorporatedNonProfit, governmentEntity

description

string [10 to 100] characters

doingBusinessAs

string <=64 characters Pattern

email

string<email> <=255 characters Pattern
Email address.

industryCodes

object
Describes industry specific identifiers.
right_key Show child attributes

mcc

string 4 characters

naics

string [2 to 6] characters

sic

string 4 characters

legalBusinessName

string <=64 characters required Pattern

phone

object
right_key Show child attributes

countryCode

string <=1 characters

number

string<phone> <=10 characters

primaryRegulator

string
If the business is a financial institution, this field describes its primary regulator.
Possible values: OCC, FDIC, NCUA, FRB

taxID

object
An EIN (employer identification number) for the business. For sole proprietors, an SSN can be used as the EIN.
right_key Show child attributes

ein

object
right_key Show child attributes

number

string <=64 characters

website

string <=100 characters

individual

object
Describes the fields available when creating an individual.
right_key Show child attributes

address

object
right_key Show child attributes

addressLine1

string <=60 characters required

addressLine2

string <=32 characters

city

string <=24 characters required

country

string <=2 characters required

postalCode

string <=5 characters required

stateOrProvince

string <=2 characters required

birthDate

object
An individual’s birthdate.
right_key Show child attributes

day

integer required

month

integer required

year

integer required

email

string<email> <=255 characters Pattern
Email address.

governmentID

object
right_key Show child attributes

itin

object
right_key Show child attributes

full

string <=64 characters

lastFour

string <=4 characters

ssn

object
right_key Show child attributes

full

string <=64 characters

lastFour

string <=4 characters

name

object required
An individual’s name.
right_key Show child attributes

firstName

string <=64 characters required Pattern
Name this person was given. This is usually the same as first name.

lastName

string <=64 characters required Pattern
Family name of this person. This is usually the same as last name.

middleName

string <=64 characters Pattern
Name this person was given. This is usually the same as first name.

suffix

string <=20 characters Pattern
Suffix of a given name.

phone

object
right_key Show child attributes

countryCode

string <=1 characters

number

string<phone> <=10 characters

capabilities

array
The list of capabilities to request when the account is created.
Possible values: transfers, send-funds, collect-funds, wallet, card-issuing

customerSupport

object
User-provided information that can be displayed on credit card transactions for customers to use when contacting a customer support team. This data is only allowed on a business account.
right_key Show child attributes

address

object
right_key Show child attributes

addressLine1

string <=60 characters required

addressLine2

string <=32 characters

city

string <=24 characters required

country

string <=2 characters required

postalCode

string <=5 characters required

stateOrProvince

string <=2 characters required

email

string<email> <=255 characters Pattern
Email address.

phone

object
right_key Show child attributes

countryCode

string <=1 characters

number

string<phone> <=10 characters

website

string <=100 characters

foreignID

string <=64 characters
Optional alias from a foreign/external system which can be used to reference this resource.

metadata

object
Free-form key-value pair list. Useful for storing information that is not captured elsewhere.

mode

string<enum>
The mode this account is allowed to be used within.
Possible values: sandbox, production

settings

object
User provided settings to manage an account.
right_key Show child attributes

achPayment

object
User provided settings to manage ACH payments.
right_key Show child attributes

companyName

string [1 to 16] characters Pattern
The description that shows up on ACH transactions. This will default to the account’s display name on account creation.

cardPayment

object
User provided settings to manage card payments. This data is only allowed on a business account.
right_key Show child attributes

statementDescriptor

string [4 to 22] characters Pattern
The description that shows up on credit card transactions. This will default to the accounts display name on account creation.

termsOfService

object
Describes the acceptance of the Terms of Service.
right_key Show child attributes
Token Manual entry
An encrypted value used to record acceptance of Moov’s Terms of Service.

token

string
Describes the acceptance of the Terms of Service. All data is required, and must be from the user.

acceptedDate

string<date-time> <=24 characters

acceptedDomain

string<url> <=255 characters

acceptedIP

string<ipv4> <=15 characters

acceptedUserAgent

string <=255 characters
The user-agent of the user making the request.

Response

application/json
Describes a Moov account.

accountID

string<uuid> <=36 characters
UUID

accountType

string<enum>
The type of entity represented by this account.
Possible values: individual, business

capabilities

array
right_key Show child attributes

capability

string<enum>
Identifier for the capability.
Possible values: transfers, send-funds, collect-funds, wallet, card-issuing

status

string<enum>
The status of the capability requested for an account.
Possible values: enabled, disabled, pending, in-review

createdOn

string<date-time> <=24 characters

customerSupport

object
User-provided information that can be displayed on credit card transactions for customers to use when contacting a customer support team. This data is only allowed on a business account.
right_key Show child attributes

address

object
right_key Show child attributes

addressLine1

string <=60 characters required

addressLine2

string <=32 characters

city

string <=24 characters required

country

string <=2 characters required

postalCode

string <=5 characters required

stateOrProvince

string <=2 characters required

email

string<email> <=255 characters Pattern
Email address.

phone

object
right_key Show child attributes

countryCode

string <=1 characters

number

string<phone> <=10 characters

website

string <=100 characters

disconnectedOn

string

displayName

string <=64 characters

foreignID

string <=64 characters
Optional alias from a foreign/external system which can be used to reference this resource.

metadata

object
Free-form key-value pair list. Useful for storing information that is not captured elsewhere.

mode

string<enum>
The mode this account is allowed to be used within.
Possible values: sandbox, production

profile

object
Describes a Moov account profile.
right_key Show child attributes

business

object
Describes a business.
right_key Show child attributes

address

object
right_key Show child attributes

addressLine1

string <=60 characters required

addressLine2

string <=32 characters

city

string <=24 characters required

country

string <=2 characters required

postalCode

string <=5 characters required

stateOrProvince

string <=2 characters required

businessType

string
The type of entity represented by this business.
Possible values: soleProprietorship, unincorporatedAssociation, trust, publicCorporation, privateCorporation, llc, partnership, unincorporatedNonProfit, incorporatedNonProfit, governmentEntity

description

string [10 to 100] characters

doingBusinessAs

string <=64 characters

email

string<email> <=255 characters Pattern
Email address.

industryCodes

object
Describes industry specific identifiers.
right_key Show child attributes

mcc

string 4 characters

naics

string [2 to 6] characters

sic

string 4 characters

legalBusinessName

string <=64 characters

ownersProvided

boolean required

phone

object
right_key Show child attributes

countryCode

string <=1 characters

number

string<phone> <=10 characters

primaryRegulator

string
If the business is a financial institution, this field describes its primary regulator.
Possible values: OCC, FDIC, NCUA, FRB

representatives

array
right_key Show child attributes

address

object
right_key Show child attributes

addressLine1

string <=60 characters required

addressLine2

string <=32 characters

city

string <=24 characters required

country

string <=2 characters required

postalCode

string <=5 characters required

stateOrProvince

string <=2 characters required

birthDateProvided

boolean
Indicates whether this representative’s birth date has been provided.

createdOn

string<date-time> <=24 characters

disabledOn

string

email

string<email> <=255 characters Pattern
Email address.

governmentIDProvided

boolean
Indicates whether a government ID (SSN, ITIN, etc.) has been provided for this representative.

name

object
An individual’s name.
right_key Show child attributes

firstName

string <=64 characters required Pattern
Name this person was given. This is usually the same as first name.

lastName

string <=64 characters required Pattern
Family name of this person. This is usually the same as last name.

middleName

string <=64 characters Pattern
Name this person was given. This is usually the same as first name.

suffix

string <=20 characters Pattern
Suffix of a given name.

phone

object
right_key Show child attributes

countryCode

string <=1 characters

number

string<phone> <=10 characters

representativeID

string<uuid> <=36 characters
UUID

responsibilities

object
Describes the job responsibilities of an individual.
right_key Show child attributes

isController

boolean required
Indicates whether this individual has significant management responsibilities within the business.

isOwner

boolean required
If true, this field indicates that the individual has a business ownership stake of at least 25% in the business. If the representative does not own at least 25% of the business, this field should be false.

jobTitle

string <=64 characters required

ownershipPercentage

integer required
The percentage of ownership this individual has in the business (required if isOwner is true).

updatedOn

string<date-time> <=24 characters

taxIDProvided

boolean
Indicates whether a tax ID has been provided for this business.

website

string <=100 characters

individual

object
Describes an individual.
right_key Show child attributes

address

object
right_key Show child attributes

addressLine1

string <=60 characters required

addressLine2

string <=32 characters

city

string <=24 characters required

country

string <=2 characters required

postalCode

string <=5 characters required

stateOrProvince

string <=2 characters required

birthDateProvided

boolean
Indicates whether this individual’s birth date has been provided.

email

string<email> <=255 characters Pattern
Email address.

governmentIDProvided

boolean
Indicates whether a government ID (SSN, ITIN, etc.) has been provided for this individual.

name

object
An individual’s name.
right_key Show child attributes

firstName

string <=64 characters required Pattern
Name this person was given. This is usually the same as first name.

lastName

string <=64 characters required Pattern
Family name of this person. This is usually the same as last name.

middleName

string <=64 characters Pattern
Name this person was given. This is usually the same as first name.

suffix

string <=20 characters Pattern
Suffix of a given name.

phone

object
right_key Show child attributes

countryCode

string <=1 characters

number

string<phone> <=10 characters

settings

object
User provided settings to manage an account.
right_key Show child attributes

achPayment

object
User provided settings to manage ACH payments.
right_key Show child attributes

companyName

string [1 to 16] characters Pattern
The description that shows up on ACH transactions. This will default to the account’s display name on account creation.

cardPayment

object
User provided settings to manage card payments. This data is only allowed on a business account.
right_key Show child attributes

statementDescriptor

string [4 to 22] characters Pattern
The description that shows up on credit card transactions. This will default to the accounts display name on account creation.

termsOfService

object
Describes the acceptance of the Terms of Service.
right_key Show child attributes

acceptedDate

string<date-time> <=24 characters required

acceptedIP

string<ipv4> <=15 characters required

updatedOn

string<date-time> <=24 characters

verification

object
Describes identity verification status and relevant identity verification documents.
right_key Show child attributes

status

string<enum> required deprecated
This field is deprecated and will be removed in a future release.
Possible values: unverified, pending, verified, errored

details

string<enum> deprecated
This field is deprecated and will be removed in a future release.
Possible values: failedAutoVerify, docDobMismatch, docNameMismatch, docAddressMismatch, docNumberMismatch, docIncomplete, docFailedRisk, potentialAccountSanctionsMatch, potentialRepresentativeSanctionsMatch, failedOther

documents

array
right_key Show child attributes

contentType

string

documentID

string
A unique identifier for this document.

parseErrors

array
Optional array of errors encountered dring automated parsing.

type

string<enum>
Possible values: DriversLicense, Passport, UtilityBill, BankStatement

uploadedAt

string<date-time> <=24 characters

verificationStatus

string<enum> deprecated
This field is deprecated and will be removed in a future release.
Possible values: unverified, pending, resubmit, review, verified, failed