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:
- Send Moov the user platform terms of service agreement acceptance.
This can be done upon account creation, or by patching the account using the
termsOfServicefield. If you're creating a business account with the business typellc,partnership, orprivateCorporation, 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 access this endpoint using an access token you'll need
to specify the /accounts.write scope.
POST
/accounts
curl -X POST "https://api.moov.io/accounts" \
-H "Authorization: Bearer {token}" \
-H "X-Moov-Version: v2026.04.00" \
-d '{
"accountType": "business",
"profile": {
"business": {
"businessType": "llc",
"legalBusinessName": "Whole Body Fitness LLC",
"website": "wbfllc.com"
}
}
}'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",
},
},
})
import { Moov } from "@moovio/sdk";
const moov = new Moov({
security: {
username: "",
password: "",
},
});
async function run() {
const result = await moov.accounts.create({
accountType: "business",
profile: {
business: {
legalBusinessName: "Whole Body Fitness LLC",
},
},
});
console.log(result);
}
run();declare(strict_types=1);
require 'vendor/autoload.php';
use Moov\MoovPhp;
use Moov\MoovPhp\Models\Components;
$sdk = MoovPhp\Moov::builder()
->setSecurity(
new Components\Security(
username: '',
password: '',
)
)
->build();
$request = new Components\CreateAccount(
accountType: Components\CreateAccountType::Business,
profile: new Components\CreateProfile(
business: new Components\CreateBusinessProfile(
legalBusinessName: 'Whole Body Fitness LLC',
),
),
);
$response = $sdk->accounts->create(
request: $request
);
if ($response->account !== null) {
// handle response
}package hello.world;
import io.moov.sdk.Moov;
import io.moov.sdk.models.components.*;
import io.moov.sdk.models.errors.CreateAccountError;
import io.moov.sdk.models.errors.GenericError;
import io.moov.sdk.models.operations.CreateAccountResponse;
import java.lang.Exception;
public class Application {
public static void main(String[] args) throws GenericError, CreateAccountError, Exception {
Moov sdk = Moov.builder()
.security(Security.builder()
.username("")
.password("")
.build())
.build();
CreateAccount req = CreateAccount.builder()
.accountType(CreateAccountType.BUSINESS)
.profile(CreateProfile.builder()
.business(CreateBusinessProfile.builder()
.legalBusinessName("Whole Body Fitness LLC")
.build())
.build())
.build();
CreateAccountResponse res = sdk.accounts().create()
.request(req)
.call();
if (res.account().isPresent()) {
System.out.println(res.account().get());
}
}
}from moovio_sdk import Moov
from moovio_sdk.models import components
from moovio_sdk.utils import parse_datetime
with Moov(
security=components.Security(
username="",
password="",
),
) as moov:
res = moov.accounts.create(account_type=components.CreateAccountType.BUSINESS, profile=components.CreateProfile(
business=components.CreateBusinessProfile(
legal_business_name="Whole Body Fitness LLC",
),
), metadata={
"optional": "metadata",
}, terms_of_service={
"manual": {
"accepted_date": parse_datetime("2026-07-27T08:57:17.388Z"),
"accepted_ip": "172.217.2.46",
"accepted_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36",
"accepted_domain": "https://rundown-depot.org/",
},
}, customer_support={
"phone": {
"number": "8185551212",
"country_code": "1",
},
"email": "jordan.lee@classbooker.dev",
"address": {
"address_line1": "123 Main Street",
"address_line2": "Apt 302",
"city": "Boulder",
"state_or_province": "CO",
"postal_code": "80301",
"country": "US",
},
}, settings={
"card_payment": {
"statement_descriptor": "Whole Body Fitness",
},
"ach_payment": {
"company_name": "WholeBodyFitness",
},
}, mode=components.Mode.PRODUCTION)
# Handle response
print(res)require 'moov_ruby'
Models = ::Moov::Models
s = ::Moov::Client.new(
security: Models::Components::Security.new(
username: '',
password: ''
)
)
req = Models::Components::CreateAccount.new(
account_type: Models::Components::CreateAccountType::BUSINESS,
profile: Models::Components::CreateProfile.new(
business: Models::Components::CreateBusinessProfile.new(
legal_business_name: 'Whole Body Fitness LLC'
)
)
)
res = s.accounts.create(request: req)
unless res.account.nil?
# handle response
endusing Moov.Sdk;
using Moov.Sdk.Models.Components;
var sdk = new MoovClient(security: new Security() {
Username = "",
Password = "",
});
CreateAccount req = new CreateAccount() {
AccountType = CreateAccountType.Business,
Profile = new CreateProfile() {
Business = new CreateBusinessProfile() {
LegalBusinessName = "Whole Body Fitness LLC",
},
},
};
var res = await sdk.Accounts.CreateAsync(req);
// handle responseThe request completed successfully.
{
"accountID": "53ca67ea-6fd3-423f-9544-ce2404159d33",
"accountType": "business",
"createdOn": "2024-12-16T17:55:20.557151867Z",
"displayName": "Whole Body Fitness LLC",
"mode": "sandbox",
"profile": {
"business": {
"legalBusinessName": "Whole Body Fitness LLC",
"ownersProvided": false
}
},
"settings": {
"achPayment": {
"companyName": "Whole Body Fitne"
},
"cardPayment": {
"statementDescriptor": "Whole Body Fitness LLC"
}
},
"updatedOn": "2024-12-16T17:55:20.557151867Z",
"verification": {
"status": "unverified",
"verificationStatus": "unverified"
}
}Response headers
x-request-id
string
required
A unique identifier used to trace requests.
The server could not understand the request due to invalid syntax.
{
"error": "string"
}Response headers
x-request-id
string
required
A unique identifier used to trace requests.
The request contained missing or expired authentication.
Response headers
x-request-id
string
required
A unique identifier used to trace requests.
The user is not authorized to make the request.
Response headers
x-request-id
string
required
A unique identifier used to trace requests.
The requested resource was not found.
Response headers
x-request-id
string
required
A unique identifier used to trace requests.
The request conflicted with the current state of the target resource.
{
"error": "string"
}Response headers
x-request-id
string
required
A unique identifier used to trace requests.
The request was well-formed, but the contents failed validation. Check the request for missing or invalid fields.
{
"accountType": "string",
"profile": {
"individual": {
"name": {
"firstName": "string",
"middleName": "string",
"lastName": "string",
"suffix": "string"
},
"phone": {
"number": "string",
"countryCode": "string"
},
"email": "string",
"address": {
"addressLine1": "string",
"addressLine2": "string",
"city": "string",
"stateOrProvince": "string",
"postalCode": "string",
"country": "string"
},
"birthDate": {
"day": "string",
"month": "string",
"year": "string"
},
"governmentID": {
"ssn": {
"full": "string",
"lastFour": "string"
},
"itin": {
"full": "string",
"lastFour": "string"
}
}
},
"business": {
"legalBusinessName": "string",
"doingBusinessAs": "string",
"businessType": "string",
"address": {
"addressLine1": "string",
"addressLine2": "string",
"city": "string",
"stateOrProvince": "string",
"postalCode": "string",
"country": "string"
},
"phone": {
"number": "string",
"countryCode": "string"
},
"email": "string",
"website": "string",
"description": "string",
"taxID": {
"ein": {
"number": "string"
}
},
"industryCodes": {
"naics": "string",
"sic": "string",
"mcc": "string"
},
"industry": "electronics-appliances",
"primaryRegulator": "string"
}
},
"metadata": "string",
"termsOfService": {
"token": "string",
"manual": {
"acceptedDate": "string",
"acceptedDomain": "string",
"acceptedIP": "string",
"acceptedUserAgent": "string"
}
},
"foreignID": "string",
"customerSupport": {
"phone": {
"number": "string",
"countryCode": "string"
},
"email": "string",
"address": {
"addressLine1": "string",
"addressLine2": "string",
"city": "string",
"stateOrProvince": "string",
"postalCode": "string",
"country": "string"
},
"website": "string"
},
"settings": {
"cardPayment": {
"statementDescriptor": "string"
},
"achPayment": {
"companyName": "string"
}
},
"capabilities": {
"0": "first element failed validation..."
}
}Response headers
x-request-id
string
required
A unique identifier used to trace requests.
Request was refused due to rate limiting.
Response headers
x-request-id
string
required
A unique identifier used to trace requests.
The request failed due to an unexpected error.
Response headers
x-request-id
string
required
A unique identifier used to trace requests.
The request failed because a downstream service failed to respond.
Response headers
x-request-id
string
required
A unique identifier used to trace requests.
Headers
X-Moov-Version
string
Set this header to v2026.04.00 to use the API described in this specification. When omitted, the server defaults to v2024.01.00, which may not match the behavior documented here.
Possible values:
v2026.04.00
Body
application/json
accountType
string<enum>
required
Possible values:
individual,
business
profile
object
required
Show child attributes
business
object
Show child attributes
legalBusinessName
string
<=64 characters
required
Pattern
The legal name under which the entity is registered.
address
object
Show child attributes
addressLine1
string
<=60 characters
required
Pattern
city
string
<=32 characters
required
Pattern
country
string
<=2 characters
required
postalCode
string
<=5 characters
required
stateOrProvince
string
<=2 characters
required
addressLine2
string
<=32 characters
Pattern
businessType
string<enum>
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
Pattern
doingBusinessAs
string
<=64 characters
Pattern
A registered trade name under which the business operates, if different from its legal name.
string<email>
<=255 characters
industry
string
Classification identifier for the industry. Use the GET industries endpoint to retrieve an array of valid industry details for a merchant, inducing all industry field values.
industryCodes
object
Show child attributes
mcc
string
4 characters
naics
string
[2 to 6] characters
sic
string
4 characters
phone
object
Show child attributes
countryCode
string
<=1 characters
number
string
<=10 characters
primaryRegulator
string<enum>
If the business is a financial institution, this field describes its primary regulator.
Possible values:
OCC,
FDIC,
NCUA,
FRB,
state-cu-regulator
taxID
object
An EIN (employer identification number) for the business. For sole proprietors, an SSN can be used as the EIN.
Show child attributes
ein
object
required
Show child attributes
number
string
required
website
string<uri>
<=100 characters
individual
object
Show child attributes
name
object
required
Show child attributes
firstName
string
<=64 characters
required
Pattern
The individual's first given name.
lastName
string
<=64 characters
required
Pattern
The individual's family name.
middleName
string
<=64 characters
Pattern
The individual's second given name, if any.
suffix
string
<=20 characters
Pattern
Suffix of a given name.
address
object
Show child attributes
addressLine1
string
<=60 characters
required
Pattern
city
string
<=32 characters
required
Pattern
country
string
<=2 characters
required
postalCode
string
<=5 characters
required
stateOrProvince
string
<=2 characters
required
addressLine2
string
<=32 characters
Pattern
birthDate
object
Show child attributes
day
integer
required
month
integer
required
year
integer
required
string<email>
<=255 characters
governmentID
object
Show child attributes
itin
object
Show child attributes
full
string
Pattern
lastFour
string
ssn
object
Show child attributes
full
string
Pattern
lastFour
string
phone
object
Show child attributes
countryCode
string
<=1 characters
number
string
<=10 characters
capabilities
array<string>
Possible values:
transfers,
send-funds,
send-funds.push-to-card,
money-transfer.push-to-card,
send-funds.ach,
send-funds.rtp,
send-funds.instant-bank,
collect-funds,
collect-funds.card-payments,
money-transfer.pull-from-card,
collect-funds.ach,
wallet,
wallet.balance,
card-issuing,
platform.production-app,
platform.wallet-transfers
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.
Show child attributes
address
object
Show child attributes
addressLine1
string
<=60 characters
required
Pattern
city
string
<=32 characters
required
Pattern
country
string
<=2 characters
required
postalCode
string
<=5 characters
required
stateOrProvince
string
<=2 characters
required
addressLine2
string
<=32 characters
Pattern
string<email>
<=255 characters
phone
object
Show child attributes
countryCode
string
<=1 characters
number
string
<=10 characters
website
string<uri>
foreignID
string
<=64 characters
Pattern
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 operating mode for an account.
Possible values:
sandbox,
production
settings
object
User provided settings to manage an account.
Show child attributes
achPayment
object
Show child attributes
companyName
string
[1 to 16] characters
required
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.
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
Show child attributes
manual
object
Describes the acceptance of the Terms of Service. All data is required, and must be from the user.
Show child attributes
acceptedDate
string<date-time>
required
The date and time the terms of service were accepted.
acceptedDomain
string<uri>
required
acceptedIP
string<ipv4>
required
The IP address from which the terms of service were accepted.
acceptedUserAgent
string
<=255 characters
required
The user-agent of the user making the request.
token
string
Response
accountID
string
required
Unique identifier for this account.
accountType
string<enum>
required
The type of entity represented by this account.
Possible values:
individual,
business,
guest
createdOn
string<date-time>
required
displayName
string
<=64 characters
required
mode
string<enum>
required
The operating mode for an account.
Possible values:
sandbox,
production
profile
object
required
Describes a Moov account profile. A profile will have a business, individual, or guest depending on the account's type.
Show child attributes
business
object
Describes a business.
Show child attributes
legalBusinessName
string
<=64 characters
required
Pattern
The legal name under which the entity is registered.
ownersProvided
boolean
required
address
object
Show child attributes
addressLine1
string
<=60 characters
required
Pattern
city
string
<=32 characters
required
Pattern
country
string
<=2 characters
required
postalCode
string
<=5 characters
required
stateOrProvince
string
<=2 characters
required
addressLine2
string
<=32 characters
Pattern
businessType
string<enum>
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
Pattern
doingBusinessAs
string
<=64 characters
Pattern
A registered trade name under which the business operates, if different from its legal name.
string<email>
<=255 characters
industry
string
Classification identifier for the industry. Use the GET industries endpoint to retrieve an array of valid industry details for a merchant, inducing all industry field values.
industryCodes
object
Show child attributes
mcc
string
4 characters
naics
string
[2 to 6] characters
sic
string
4 characters
phone
object
Show child attributes
countryCode
string
<=1 characters
number
string
<=10 characters
primaryRegulator
string<enum>
If the business is a financial institution, this field describes its primary regulator.
Possible values:
OCC,
FDIC,
NCUA,
FRB,
state-cu-regulator
representatives
array<object>
Show child attributes
address
object
Show child attributes
addressLine1
string
<=60 characters
required
Pattern
city
string
<=32 characters
required
Pattern
country
string
<=2 characters
required
postalCode
string
<=5 characters
required
stateOrProvince
string
<=2 characters
required
addressLine2
string
<=32 characters
Pattern
birthDateProvided
boolean
Indicates whether this representative's birth date has been provided.
createdOn
string<date-time>
disabledOn
string<date-time>
string<email>
<=255 characters
governmentIDProvided
boolean
Indicates whether a government ID (SSN, ITIN, etc.) has been provided for this representative.
name
object
Show child attributes
firstName
string
<=64 characters
required
Pattern
The individual's first given name.
lastName
string
<=64 characters
required
Pattern
The individual's family name.
middleName
string
<=64 characters
Pattern
The individual's second given name, if any.
suffix
string
<=20 characters
Pattern
Suffix of a given name.
phone
object
Show child attributes
countryCode
string
<=1 characters
number
string
<=10 characters
representativeID
string
Unique identifier for this representative.
responsibilities
object
Describes the job responsibilities of a business representative.
Show child attributes
isController
boolean
Indicates whether this individual has significant management responsibilities within the business.
isOwner
boolean
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
Pattern
ownershipPercentage
integer
The percentage of ownership this individual has in the business (required if
isOwner is true).
updatedOn
string<date-time>
taxIDProvided
boolean
Indicates whether a tax ID has been provided for this business.
website
string<uri>
<=100 characters
guest
object
Describes a guest account profile.
Show child attributes
name
string
<=64 characters
required
Pattern
The name associated with the guest account.
This will default to "Guest {accountIDfirst8}" if no other name is provided.
string<email>
<=255 characters
phone
object
Show child attributes
countryCode
string
<=1 characters
number
string
<=10 characters
individual
object
Describes an individual.
Show child attributes
name
object
required
Show child attributes
firstName
string
<=64 characters
required
Pattern
The individual's first given name.
lastName
string
<=64 characters
required
Pattern
The individual's family name.
middleName
string
<=64 characters
Pattern
The individual's second given name, if any.
suffix
string
<=20 characters
Pattern
Suffix of a given name.
address
object
Show child attributes
addressLine1
string
<=60 characters
required
Pattern
city
string
<=32 characters
required
Pattern
country
string
<=2 characters
required
postalCode
string
<=5 characters
required
stateOrProvince
string
<=2 characters
required
addressLine2
string
<=32 characters
Pattern
birthDateProvided
boolean
Indicates whether this individual's birth date has been provided.
string<email>
<=255 characters
governmentIDProvided
boolean
Indicates whether a government ID (SSN, ITIN, etc.) has been provided for this individual.
phone
object
Show child attributes
countryCode
string
<=1 characters
number
string
<=10 characters
updatedOn
string<date-time>
required
verification
object
required
Describes identity verification status and relevant identity verification documents.
Show child attributes
status
string<enum>
required
deprecated
Possible states an account verification can be in.
Possible values:
unverified,
pending,
verified,
errored
details
string<enum>
deprecated
Additional detail for a verification status.
Possible values:
failedAutoVerify,
docDobMismatch,
docNameMismatch,
docAddressMismatch,
docNumberMismatch,
docIncomplete,
docFailedRisk,
potentialAccountSanctionsMatch,
potentialRepresentativeSanctionsMatch,
failedOther
documents
array<object>
Show child attributes
contentType
string
The document's MIME type.
documentID
string
parseErrors
array<string>
Optional array of errors encountered during automated parsing.
type
string<enum>
Types of documents that can be uploaded.
Possible values:
driversLicense,
passport,
utilityBill,
bankStatement
uploadedAt
string<date-time>
verificationStatus
string<enum>
deprecated
Possible states an account verification can be in.
Possible values:
unverified,
pending,
resubmit,
review,
verified,
failed
capabilities
array<object>
Show child attributes
capability
string
status
string
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.
Show child attributes
address
object
Show child attributes
addressLine1
string
<=60 characters
required
Pattern
city
string
<=32 characters
required
Pattern
country
string
<=2 characters
required
postalCode
string
<=5 characters
required
stateOrProvince
string
<=2 characters
required
addressLine2
string
<=32 characters
Pattern
string<email>
<=255 characters
phone
object
Show child attributes
countryCode
string
<=1 characters
number
string
<=10 characters
website
string<uri>
disconnectedOn
string<date-time>
foreignID
string
<=64 characters
Pattern
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.
settings
object
User provided settings to manage an account.
Show child attributes
achPayment
object
Show child attributes
companyName
string
[1 to 16] characters
required
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.
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.
Show child attributes
acceptedDate
string<date-time>
required
The date and time the terms of service were accepted.
acceptedIP
string<ipv4>
required
The IP address from which the terms of service were accepted.