Customers

Save business customer verification

Save complete business verification data for a BUSINESS customer.

Key features:

  • Submit comprehensive business verification data
  • Reference previously uploaded business and supporting documents via document IDs (doc_xxx)
  • Optionally submit the customer for review in the same request via ?submit=true

Data model covers the business verification payload:

  • Legal name, business type, addresses, tax info, UBOs, business docs, regulatory info
  • associatedEntities on this payload should contain only individual leaf beneficial owners and control persons
  • If ownership passes through an intermediate business, create that business first via the associated entity endpoints and then create child entities with parentEntityId set to that business entity ID

Document workflow:

  1. Upload documents using POST /documents (with customerId in body)
  2. Confirm each document using POST /documents/:id/confirm
  3. Save the complete verification data to this endpoint using document references (doc_xxx)

Required for all files:

  1. Create a minimal customer record first using POST /customers/businesses with basic info (name, email, country code)
  2. Upload documents using POST /documents (with customerId in body) and POST /documents/:id/confirm
  3. Save the complete verification data to this endpoint using document references (doc_xxx)
post/v1/customers/{id}/verification/business

Path parameters

idstring required
Example:cus_abc123

Customer ID

Query parameters

submitboolean
Example:true

If true, submit the customer for review after saving verification data.

Headers

X-API-Keystring

API key

Request body

metadataobject

Additional metadata

hasAgreedToTosboolean

Set to true to indicate the customer has agreed to the Terms of Service and Privacy Policy. When true, a TOS acceptance record will be automatically created. This is a convenience for API-based integrations - alternatively, you can use the /v1/tos endpoints to create a TOS acceptance record and pass the ID in metadata.infiniteTosAcceptanceId.

legalNamestring

Legal name of business

transliteratedLegalNamestring

Transliterated legal name

tradeNamestring

Trade name / DBA. Separate multiple names with semicolons.

transliteratedTradeNamestring

Transliterated trade name

businessType'CORPORATION' | 'LLC' | 'PARTNERSHIP' | 'GEN_PARTNERSHIP' | 'LLP' | 'LP' | 'SOLE_PROPRIETORSHIP' | 'NON_PROFIT' | 'TRUST' | 'COOPERATIVE' | 'PRIVATE_LIMITED_COMPANY' | 'SPV' | 'JOINT_VENTURE'

Business type

descriptionstring

Brief business description

industrystring

6-digit NAICS industry classification code

industryCryptoSubtype'PROTOCOL' | 'EXCHANGE' | 'INVESTMENT' | 'LENDER' | 'MARKET_MAKER' | 'SAAS' | 'MINER'

Crypto-specific industry subtype. Required when isCrypto is true.

industryFinancialServicesSubtype'GAMING' | 'CROWD_FUNDING' | 'BANK' | 'FUND' | 'INSURANCE' | 'RIA' | 'INVESTMENT_MANAGER' | 'MSB' | 'NBFI' | 'PAYMENT_PROCESSOR' | 'VASP'

Financial-services-specific industry subtype

industryExplanationstring

Additional industry explanation

isCryptoboolean

Set true if the business operates in crypto or digital assets.

emailstring email

Business email address. Use an email on the company domain when available; personal email domains such as Gmail may require additional due diligence.

phonestring

Business phone number in E.164 format

websitestring uri

Primary website

otherWebsitesstring[]

Other websites and social media

isRemoteCompanyboolean

Set true when the business operates remotely from an owner or director address.

registrationDatestring

Date of business registration (YYYY-MM-DD)

registrationNumberstring

Business registration number issued by the state/authority when the business was registered (e.g., LLC filing number, corporation charter number). This is different from the tax identification number.

taxIdentificationNumberstring

Tax identification number issued by the tax authority (e.g., EIN in the US, VAT number in EU). This is different from the business registration number.

Validated against country-specific formats when countryCode is provided. Accepts NOT_APPLICABLE when no tax ID is available. If the value does not match the expected format, prefix with OVERRIDE: (e.g. OVERRIDE:12-3456789) to store it as-is. These should be used sparingly — missing or overridden tax IDs may trigger additional customer due diligence.

accountPurpose'PAYROLL' | 'VENDOR_PAYMENTS' | 'TREASURY' | 'OPERATIONS' | 'CAPITAL_DEPLOYMENT' | 'CROSS_BORDER_PAYMENTS' | 'STABLECOIN_CONVERSION' | 'ECOMMERCE' | 'OTHER'

Purpose of account

requestedCapabilitiesstring[]

Capabilities requested by the customer

accountPurposeExplanationstring

Account purpose explanation (required if other)

sourceOfFunds'BUSINESS_REVENUE' | 'INVESTMENT' | 'OWNER_CAPITAL' | 'LOAN' | 'GRANTS' | 'EQUITY' | 'INHERITANCE' | 'GIFT' | 'OTHER'

Source of funds

sourceOfFundsDescriptionstring

Source of funds description

estimatedAnnualRevenueUsd'PRE_REVENUE' | 'LESS_THAN_10K' | '10K_TO_50K' | '50K_TO_100K' | '100K_TO_500K' | '500K_TO_1M' | '1M_TO_5M' | '5M_TO_10M' | '10M_TO_50M' | '50M_TO_250M' | 'MORE_THAN_250M' | 'LESS_THAN_100K'

Estimated annual revenue in USD

expectedMonthlyPaymentsUsdnumber

Expected monthly fiat payment volume in USD-equivalent

expectedCounterpartyCountriesstring[]

Expected counterparty countries

expectedCryptoMonthlyVolumenumber

Expected monthly crypto volume in USD-equivalent

expectedMonthlyAchnumber

Expected monthly ACH volume in USD-equivalent

expectedMonthlyWirenumber

Expected monthly wire volume in USD-equivalent

primaryTargetMarket'RETAIL' | 'COMMERCIAL' | 'GOVERNMENT' | 'OTHER'

Primary target market. RETAIL = B2C (consumers), COMMERCIAL = B2B (businesses), GOVERNMENT = B2G (government entities), OTHER = another market not covered by the standard options.

moneyServicesDescriptionstring

Money services description. Collected through enhanced diligence when required.

complianceScreeningExplanationstring

Compliance screening explanation. Collected through enhanced diligence when required.

operatesInProhibitedCountriesboolean

Operates in prohibited countries

highRiskActivitiesstring[]

High risk activities the business engages in

highRiskActivitiesExplanationstring

Explanation of high risk activities (required if high risk activities present)

hasMaterialIntermediaryOwnershipboolean

Has intermediate legal entity ownership (25%+)

ownershipThresholdnumber

Ownership threshold percentage (0-100, default 25)

signedAgreementIdstring

Signed terms of service agreement ID. Use POST /v1/tos/generate to create a TOS agreement and obtain the ID. See Terms of Service documentation for details.

ipAddressstring

Client IP address for fraud detection

publiclyTradedboolean
sourceOfWealthstring
providerSpecificDataobject

Example request

{
  "metadata": {
    "source": "mobile_app",
    "referrer": "partner_xyz"
  },
  "hasAgreedToTos": true,
  "legalName": "Acme Corporation Inc.",
  "tradeName": "Acme; Acme Pay",
  "businessType": "LLC",
  "description": "Software development and consulting services",
  "industry": "522320",
  "email": "contact@acme.com",
  "phone": "+14155551234",
  "website": "https://acme.com",
  "registeredAddress": {
    "addressLine1": "123 Main Street",
    "addressLine2": "Apt 4B",
    "city": "San Francisco",
    "state": "CA",
    "postalCode": "94102",
    "country": "US",
    "transliterated": {
      "addressLine1": "123 Main Street",
      "addressLine2": "Apt 4B",
      "city": "Beijing",
      "state": "Hebei"
    }
  },
  "physicalAddress": {
    "addressLine1": "123 Main Street",
    "addressLine2": "Apt 4B",
    "city": "San Francisco",
    "state": "CA",
    "postalCode": "94102",
    "country": "US",
    "transliterated": {
      "addressLine1": "123 Main Street",
      "addressLine2": "Apt 4B",
      "city": "Beijing",
      "state": "Hebei"
    }
  },
  "registrationDate": "2015-06-01",
  "registrationNumber": "123456789",
  "taxIdentificationNumber": "12-3456789",
  "expectedMonthlyPaymentsUsd": 50000,
  "expectedCounterpartyCountries": [
    "US",
    "CA"
  ],
  "expectedCryptoMonthlyVolume": 250000,
  "expectedMonthlyAch": 100000,
  "expectedMonthlyWire": 500000,
  "ownershipThreshold": 25,
  "associatedEntities": [
    {
      "associatedEntityId": "asp_abc123",
      "entityType": "BUSINESS",
      "parentEntityId": "asp_abc123",
      "dateOfBirth": "1990-01-15",
      "taxIdentificationDocumentType": "UTR",
      "dateOfIncorporation": "2020-01-15",
      "businessAddress": {
        "addressLine1": "123 Main Street",
        "addressLine2": "Apt 4B",
        "city": "San Francisco",
        "state": "CA",
        "postalCode": "94102",
        "country": "US",
        "transliterated": {
          "addressLine1": "123 Main Street",
          "addressLine2": "Apt 4B",
          "city": "Beijing",
          "state": "Hebei"
        }
      },
      "countryCode": "US",
      "address": {
        "addressLine1": "123 Main Street",
        "addressLine2": "Apt 4B",
        "city": "San Francisco",
        "state": "CA",
        "postalCode": "94102",
        "country": "US",
        "transliterated": {
          "addressLine1": "123 Main Street",
          "addressLine2": "Apt 4B",
          "city": "Beijing",
          "state": "Hebei"
        }
      },
      "proofOfAddress": {
        "type": "UTILITY_BILL",
        "countryCode": "US",
        "issueDate": "2026-10-01",
        "file": "doc_abc123"
      },
      "supportingDocuments": [
        {
          "type": "PROOF_OF_ADDRESS",
          "subtype": "UTILITY_BILL",
          "description": "Passport issued in 2020",
          "remarks": "Uploaded to support proof of business address",
          "file": "doc_abc123"
        }
      ],
      "attestedOwnershipStructureAt": "2026-06-01T10:45:05Z",
      "relationshipDate": "2020-01-15",
      "generateVerificationLink": true,
      "sendInvite": true
    }
  ],
  "supportingDocuments": [
    {
      "type": "PROOF_OF_ADDRESS",
      "subtype": "UTILITY_BILL",
      "description": "Passport issued in 2020",
      "remarks": "Uploaded to support proof of business address",
      "file": "doc_abc123"
    }
  ],
  "businessFormationDocuments": [
    {
      "type": "PROOF_OF_ADDRESS",
      "subtype": "UTILITY_BILL",
      "description": "Passport issued in 2020",
      "remarks": "Uploaded to support proof of business address",
      "file": "doc_abc123"
    }
  ],
  "ownershipInformationDocuments": [
    {
      "type": "PROOF_OF_ADDRESS",
      "subtype": "UTILITY_BILL",
      "description": "Passport issued in 2020",
      "remarks": "Uploaded to support proof of business address",
      "file": "doc_abc123"
    }
  ],
  "businessAddressProof": [
    {
      "type": "PROOF_OF_ADDRESS",
      "subtype": "UTILITY_BILL",
      "description": "Passport issued in 2020",
      "remarks": "Uploaded to support proof of business address",
      "file": "doc_abc123"
    }
  ],
  "amlPolicy": [
    {
      "type": "PROOF_OF_ADDRESS",
      "subtype": "UTILITY_BILL",
      "description": "Passport issued in 2020",
      "remarks": "Uploaded to support proof of business address",
      "file": "doc_abc123"
    }
  ],
  "directorsRegistry": [
    {
      "type": "PROOF_OF_ADDRESS",
      "subtype": "UTILITY_BILL",
      "description": "Passport issued in 2020",
      "remarks": "Uploaded to support proof of business address",
      "file": "doc_abc123"
    }
  ],
  "proofOfSignatoryAuthority": [
    {
      "type": "PROOF_OF_ADDRESS",
      "subtype": "UTILITY_BILL",
      "description": "Passport issued in 2020",
      "remarks": "Uploaded to support proof of business address",
      "file": "doc_abc123"
    }
  ],
  "msbLicense": [
    {
      "type": "PROOF_OF_ADDRESS",
      "subtype": "UTILITY_BILL",
      "description": "Passport issued in 2020",
      "remarks": "Uploaded to support proof of business address",
      "file": "doc_abc123"
    }
  ],
  "bankStatements": [
    {
      "type": "PROOF_OF_ADDRESS",
      "subtype": "UTILITY_BILL",
      "description": "Passport issued in 2020",
      "remarks": "Uploaded to support proof of business address",
      "file": "doc_abc123"
    }
  ],
  "signedAgreementId": "tos_abc123",
  "ipAddress": "192.168.1.1"
}

Response

Verification submitted successfully

customerIdstring required

Customer ID

statusstring required

Customer status after saving verification data

submittedAtstring

Submission timestamp when the customer has actually been submitted for review.

documentIdsstring[] required

Document IDs uploaded

reviewWarningsstring[]

Document validation warnings that did not block submission and should be manually reviewed.

Example response

{
  "customerId": "cus_abc123",
  "status": "DRAFT",
  "submittedAt": "2026-09-15T10:30:00Z",
  "documentIds": [
    "doc_abc123",
    "doc_xyz789"
  ],
  "missingRequirements": [
    {
      "requirementType": "FIELD",
      "key": "metadata.infiniteTosAcceptanceId",
      "displayName": "Infinite Terms of Service & Privacy Policy"
    },
    {
      "requirementType": "DOCUMENT",
      "key": "identity.government_id_front",
      "displayName": "Government ID"
    }
  ],
  "reviewWarnings": [
    "businessData.businessAddressProof[0] failed AI proof-of-address validation (confidence 0.62): The address appears similar but the issue date is unclear."
  ]
}

Changes

No recorded changes to this endpoint across all 1 revision of this API.