For the complete documentation index, see llms.txt. This page is also available as Markdown.

Merchant Onboarding Schema

Use this page as the schema reference for merchant onboarding create requests.

The current onboarding API supports two create flows:

  • Full application using POST /merchant-onboarding/applications

  • Minimal application using POST /merchant-onboarding/applications-short

Full application

Use the full application flow when your system already has most merchant onboarding data and you want to prefill the application before sending it to the signer.

Endpoint

POST /merchant-onboarding/applications

Request body

The full application endpoint uses InitiateOnboardingRequest, which requires:

  • merchantData

  • submitImmediately (optional — omit or set to true for immediate send; set to false to create in Draft status)

merchantData

The merchantData object uses MerchantOnboardingRequest. It includes merchant identity, business details, ownership, banking, fees, and crypto environment settings. cryptoEnvironment is required in the full application flow.

Merchant identity and business details

{
  "merchantName": "string",
  "partnerId": "string",
  "partnerExternalId": "string",
  "registeredName": "string",
  "dbaName": "string | null",
  "isSettlementOnly": false,
  "isCommissionMerchant": false,
  "commissionMerchantId": "string | null",
  "representsPartnerId": "string | null",
  "proofOfBusinessType": "businessLicense | articlesOfIncorporation | null",
  "registrationDate": "date-time | null",
  "legalEntityType": "soleProprietorship | llc | llp | corporationSType | corporationCType | partnership | nonProfit | government | trust | cooperative | other | null",
  "otherLegalEntity": "string | null",
  "federalTaxIdType": "ein | ssn | itin | null",
  "federalTaxId": "string",
  "naicsCode": "string",
  "merchantCategoryCode": "string",
  "additionalMerchantCategoryCode": "string | null",
  "businessDescription": "string",
  "isSeasonal": true,
  "operationalMonths": ["january", "february"],
  "grossAnnualRevenue": 0,
  "highestMonthlyVolume": 0,
  "averageTicketSize": 0,
  "maxTicketSize": 0
}

Address and location details

Note: isLegalAddress, isOperatingAddress, and isVirtualAddress are mutually exclusive. Exactly one of these three flags must be true. Setting more than one to true will be rejected by the validator.

Business contact details

Ownership and stakeholder details

Note: taxIdNumber must be exactly 9 digits with no dashes or formatting (e.g., 123456789). Formatted values such as 123-45-6789 will be rejected.

Note: Exactly one stakeholder must have isApplicationSigner set to true. This designates the person who will receive and sign the hosted onboarding package.

Banking details

Fees and crypto environment

feeInformation is required, and cryptoEnvironment is required. Allowed cryptoEnvironment values are:

  • production

  • sandbox

Minimal application

Use the minimal application flow when you want to create the application shell and let the signer complete most of the hosted onboarding flow.

Endpoint

Request body

The minimal application endpoint uses InitiateEmptyOnboardingRequest. It requires:

  • merchantName

  • partnerId

  • partnerMid

  • signerFirstName

  • signerLastName

  • signerEmail

  • feeInformation

  • cryptoEnvironment

Minimal schema

Sandbox note

When testing in Sandbox, set:

For Production, set:

Shared sub-schemas

MailingAddress

ShortOwnerInfo

FixedFee

PercentageFee

Common enums

cryptoEnvironment

  • production

  • sandbox

proofOfBusinessType

  • businessLicense

  • articlesOfIncorporation

proofOfAddressType

  • utilityBill

  • bankStatement

  • other

taxIdType

  • ein

  • ssn

  • itin

legalEntityType

  • soleProprietorship

  • llc

  • llp

  • corporationSType

  • corporationCType

  • partnership

  • nonProfit

  • government

  • trust

  • cooperative

  • other

locationBusinessType

  • physical

  • virtual

ownershipType

  • direct

  • indirect

  • nonOwner

idType

  • driverLicense

  • passport

  • nationalId

accountType

  • checking

  • savings

proofOfBankAccountType

  • colorizedVoidCheck

  • bankLetter

bankDepositMethod

  • ach

  • wire

Create response schema

Both create endpoints return MerchantOnboardingResponse.

The current create response schema includes:

  • applicationId

  • envelopeId

  • status

Status values

The create response status uses the current agreement application status enum. Common values include:

  • unsent

  • sent

  • completed

  • declined

  • signed

  • resent

  • failed

Notes

  • Use the full application flow when you want to prefill merchant onboarding data.

  • Use the minimal application flow when you want the signer to complete most of the hosted onboarding flow.

  • feeInformation is required for both flows.

  • cryptoEnvironment is required for both flows.

  • In Sandbox, set cryptoEnvironment to sandbox.

Last updated