Customers

Save individual customer verification

Save complete individual verification data for an INDIVIDUAL customer.

Key features:

  • Submit comprehensive individual verification data
  • Reference previously uploaded identity 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 individual verification payload:

  • Personal info, address, employment, tax ID, government ID, supporting docs

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/individuals 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/individual

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.

firstNamestring

First name

middleNamestring

Middle name

nicknamestring

Nickname

lastNamestring

Last name

transliteratedFirstNamestring

Transliterated first name (required if firstName has non-Latin-1 chars)

transliteratedMiddleNamestring

Transliterated middle name (required if middleName has non-Latin-1 chars)

transliteratedLastNamestring

Transliterated last name (required if lastName has non-Latin-1 chars)

emailstring email

Email address

phonestring

Phone number in E.164 format

dateOfBirthstring

Date of birth (YYYY-MM-DD)

nationalitystring

Nationality (ISO 3166-2)

taxIdentificationNumberstring

Tax/identity number (e.g., SSN in US, NINO in UK). This is the number only - for physical ID documents (passport, driver's license, state ID), use the governmentId field.

Validated against country-specific formats when nationality is provided. Accepts NOT_APPLICABLE when no tax ID is available, except for US nationals, who must provide a real SSN/ITIN. If the value does not match the expected format, prefix with OVERRIDE: (e.g. OVERRIDE:123-45-6789) to store it as-is. These should be used sparingly — missing or overridden tax IDs may trigger additional customer due diligence.

occupationstring

Current occupation as an occupation code

employmentStatus'EMPLOYED' | 'SELF_EMPLOYED' | 'UNEMPLOYED' | 'STUDENT' | 'RETIRED' | 'HOMEMAKER'

Employment status

accountPurpose'PERSONAL_EXPENSES' | 'BUSINESS_OPERATIONS' | 'INVESTMENT' | 'SAVINGS' | 'OTHER'

Purpose of account

requestedCapabilitiesstring[]

Capabilities requested by the customer

accountPurposeExplanationstring

Account purpose explanation (required if purpose is other)

sourceOfFunds'COMPANY_FUNDS' | 'ECOMMERCE_RESELLER' | 'GAMBLING_PROCEEDS' | 'GIFTS' | 'GOVERNMENT_BENEFITS' | 'INHERITANCE' | 'INVESTMENTS_LOANS' | 'PENSION_RETIREMENT' | 'SALARY' | 'SALE_OF_ASSETS_REAL_ESTATE' | 'SAVINGS' | 'SOMEONE_ELSES_FUNDS'

Source of funds

sourceOfFundsDescriptionstring

Source of funds description

expectedMonthlyPaymentsUsdnumber

Expected monthly payment volume in USD

actingAsIntermediaryboolean

Acting as intermediary for others

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

providerSpecificDataobject

Example request

{
  "metadata": {
    "source": "mobile_app",
    "referrer": "partner_xyz"
  },
  "hasAgreedToTos": true,
  "firstName": "John",
  "middleName": "Michael",
  "nickname": "Johnny",
  "lastName": "Doe",
  "transliteratedFirstName": "Zhang",
  "transliteratedLastName": "San",
  "email": "john.doe@example.com",
  "phone": "+14155551234",
  "dateOfBirth": "1990-01-15",
  "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"
    }
  },
  "nationality": "US",
  "taxIdentificationNumber": "123-45-6789",
  "occupation": "151252",
  "expectedMonthlyPaymentsUsd": 5000,
  "governmentId": {
    "type": "PASSPORT",
    "countryCode": "US",
    "number": "A12345678",
    "issuanceDate": "2020-01-15",
    "expirationDate": "2030-01-15",
    "frontImage": "doc_abc123"
  },
  "proofOfAddress": {
    "type": "PROOF_OF_ADDRESS",
    "subtype": "UTILITY_BILL",
    "description": "Passport issued in 2020",
    "remarks": "Uploaded to support proof of business address",
    "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"
    }
  ],
  "proofOfSourceOfFunds": [
    {
      "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.