# Requires: npm i -g @infinite_dev/cli && export INFINITE_API_KEY=sk_sandbox_...
# Escape hatch for any endpoint: infinite api <METHOD> <path>
infinite api POST /v1/customers/individuals \
--body '<request-json>'Create a new individual customer.
# Infinite MCP is read-only for this endpoint — use a dedicated MCP tool when one exists, otherwise run the CLI tab.import requests
url = "https://sandbox.api.infinite.dev/v1/customers/individuals"
payload = {
"customerName": "<string>",
"email": "jsmith@example.com",
"requestedCapabilities": [],
"firstName": "John",
"lastName": "Smith",
"middleName": "Michael",
"transliteratedFirstName": "Li Ming",
"transliteratedMiddleName": "Wen",
"transliteratedLastName": "Wang",
"dateOfBirth": "1990-01-15",
"nationality": "US",
"taxResidenceCountry": "GB",
"phone": "+14155551234",
"occupation": "151252",
"sourceOfIncome": "SALARY",
"sourceOfFundsDescription": "<string>",
"enableMinimalRequirements": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
customerName: '<string>',
email: 'jsmith@example.com',
requestedCapabilities: [],
firstName: 'John',
lastName: 'Smith',
middleName: 'Michael',
transliteratedFirstName: 'Li Ming',
transliteratedMiddleName: 'Wen',
transliteratedLastName: 'Wang',
dateOfBirth: '1990-01-15',
nationality: 'US',
taxResidenceCountry: 'GB',
phone: '+14155551234',
occupation: '151252',
sourceOfIncome: 'SALARY',
sourceOfFundsDescription: '<string>',
enableMinimalRequirements: true
})
};
fetch('https://sandbox.api.infinite.dev/v1/customers/individuals', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.api.infinite.dev/v1/customers/individuals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'customerName' => '<string>',
'email' => 'jsmith@example.com',
'requestedCapabilities' => [
],
'firstName' => 'John',
'lastName' => 'Smith',
'middleName' => 'Michael',
'transliteratedFirstName' => 'Li Ming',
'transliteratedMiddleName' => 'Wen',
'transliteratedLastName' => 'Wang',
'dateOfBirth' => '1990-01-15',
'nationality' => 'US',
'taxResidenceCountry' => 'GB',
'phone' => '+14155551234',
'occupation' => '151252',
'sourceOfIncome' => 'SALARY',
'sourceOfFundsDescription' => '<string>',
'enableMinimalRequirements' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.api.infinite.dev/v1/customers/individuals"
payload := strings.NewReader("{\n \"customerName\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"requestedCapabilities\": [],\n \"firstName\": \"John\",\n \"lastName\": \"Smith\",\n \"middleName\": \"Michael\",\n \"transliteratedFirstName\": \"Li Ming\",\n \"transliteratedMiddleName\": \"Wen\",\n \"transliteratedLastName\": \"Wang\",\n \"dateOfBirth\": \"1990-01-15\",\n \"nationality\": \"US\",\n \"taxResidenceCountry\": \"GB\",\n \"phone\": \"+14155551234\",\n \"occupation\": \"151252\",\n \"sourceOfIncome\": \"SALARY\",\n \"sourceOfFundsDescription\": \"<string>\",\n \"enableMinimalRequirements\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.api.infinite.dev/v1/customers/individuals")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customerName\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"requestedCapabilities\": [],\n \"firstName\": \"John\",\n \"lastName\": \"Smith\",\n \"middleName\": \"Michael\",\n \"transliteratedFirstName\": \"Li Ming\",\n \"transliteratedMiddleName\": \"Wen\",\n \"transliteratedLastName\": \"Wang\",\n \"dateOfBirth\": \"1990-01-15\",\n \"nationality\": \"US\",\n \"taxResidenceCountry\": \"GB\",\n \"phone\": \"+14155551234\",\n \"occupation\": \"151252\",\n \"sourceOfIncome\": \"SALARY\",\n \"sourceOfFundsDescription\": \"<string>\",\n \"enableMinimalRequirements\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.infinite.dev/v1/customers/individuals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customerName\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"requestedCapabilities\": [],\n \"firstName\": \"John\",\n \"lastName\": \"Smith\",\n \"middleName\": \"Michael\",\n \"transliteratedFirstName\": \"Li Ming\",\n \"transliteratedMiddleName\": \"Wen\",\n \"transliteratedLastName\": \"Wang\",\n \"dateOfBirth\": \"1990-01-15\",\n \"nationality\": \"US\",\n \"taxResidenceCountry\": \"GB\",\n \"phone\": \"+14155551234\",\n \"occupation\": \"151252\",\n \"sourceOfIncome\": \"SALARY\",\n \"sourceOfFundsDescription\": \"<string>\",\n \"enableMinimalRequirements\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"customerName": "<string>",
"organizationId": "<string>",
"type": "INDIVIDUAL",
"status": "DRAFT",
"createdAt": "2026-01-15T10:00:00Z",
"updatedAt": "2026-01-15T10:00:00Z",
"email": "<string>",
"countryCode": "AD",
"imageUrl": "<string>",
"requestedCapabilities": [
"USD_ACH_PAYIN"
],
"capabilities": [
{
"capability": "USD_WIRE_PAYIN",
"status": "READY"
}
],
"customerDetails": {
"firstName": "John",
"lastName": "Smith",
"middleName": "Michael",
"transliteratedFirstName": "Li Ming",
"transliteratedMiddleName": "Wen",
"transliteratedLastName": "Wang",
"dateOfBirth": "1990-01-15",
"nationality": "US",
"taxResidenceCountry": "GB",
"phone": "+14155551234",
"occupation": "151252",
"employmentStatus": "EMPLOYED",
"sourceOfIncome": "SALARY",
"sourceOfFundsDescription": "<string>"
},
"associatedEntities": [
{
"id": "asp_abc123",
"createdAt": "2026-01-15T10:30:00Z",
"updatedAt": "2026-01-15T10:30:00Z",
"entityType": "BUSINESS",
"hasOwnership": true,
"hasControl": true,
"parentEntityId": "asp_parent123",
"details": {
"firstName": "John",
"nickname": "Johnny",
"lastName": "Doe",
"middleName": "Michael",
"dateOfBirth": "1985-03-15",
"taxResidenceCountry": "GB",
"transliteratedFirstName": "<string>",
"transliteratedMiddleName": "<string>",
"transliteratedLastName": "<string>",
"taxIdentificationDocumentType": "UTR"
},
"countryCode": "US",
"email": "contact@acmeholdings.com",
"phone": "+14155551234",
"address": {
"addressLine1": "123 Main Street",
"city": "San Francisco",
"postalCode": "94102",
"country": "US",
"addressLine2": "Apt 4B",
"state": "CA",
"transliterated": {
"addressLine1": "123 Main Street",
"addressLine2": "Apt 4B",
"city": "Beijing",
"state": "Hebei"
}
},
"ownershipPercentage": 51,
"isSigner": false,
"isDirector": false,
"role": "CEO",
"title": "Managing Director",
"documents": [
"doc_abc123"
],
"attestedOwnershipStructureAt": "2026-01-15T10:30:00Z",
"displayName": "Acme Holdings LLC",
"verificationLink": {
"sessionId": "vsess_abc123",
"verificationUrl": "https://verify.infinite.dev/?sessionId=vsess_abc123",
"expiresAt": "2026-01-09T10:30:00Z",
"status": "ACTIVE"
}
}
],
"addresses": [
{
"addressLine1": "123 Main Street",
"city": "San Francisco",
"postalCode": "94102",
"country": "US",
"addressLine2": "Apt 4B",
"state": "CA",
"transliterated": {
"addressLine1": "123 Main Street",
"addressLine2": "Apt 4B",
"city": "Beijing",
"state": "Hebei"
},
"label": "HOME",
"isDefault": true
}
],
"missingRequirements": [
{
"requirementType": "FIELD",
"key": "businessData.taxIdentificationNumber",
"displayName": "Tax Identification Number"
},
{
"requirementType": "DOCUMENT",
"key": "ownership.ownership_structure",
"displayName": "Ownership Information"
}
],
"accounts": [
"<array>"
],
"documents": [
{
"id": "doc_abc123",
"organizationId": "org_xyz789",
"customerId": "cus_abc123",
"documentType": "INVOICE",
"fileName": "invoice-2026-001.pdf",
"contentType": "application/pdf",
"sizeBytes": 1024000,
"status": "UPLOADED",
"createdAt": "2023-11-07T05:31:56Z",
"transferId": "txn_xyz789",
"documentSubtype": "BANK_STATEMENT",
"remarks": "<string>",
"fileHash": "<string>",
"downloadUrl": "<string>",
"uploadedAt": "2023-11-07T05:31:56Z",
"associatedEntityId": "<string>"
}
],
"treasury": {
"customerId": "cus_abc123",
"treasuries": [
{
"id": "trs_abc123",
"balances": {},
"fundingMethods": [
{
"id": "vba_abc123",
"type": "BANK_ACCOUNT",
"provider": "INFINITE",
"currency": "USD",
"currencyCodes": [
"USDC"
],
"rail": "ACH",
"rails": [
"ACH",
"WIRE"
],
"bankName": "Infinite Bank",
"beneficiaryName": "Acme Treasury",
"accountNumber": "1234567890",
"routingNumber": "021000021",
"iban": "GB82WEST12345698765432",
"swiftBic": "CHASUS33",
"address": "0x1234567890abcdef1234567890abcdef12345678",
"addressType": "EVM",
"chains": [
"ETHEREUM",
"BASE"
]
}
],
"wallets": [
{
"accountId": "inw_abc123",
"address": "0x1234567890abcdef1234567890abcdef12345678",
"addressType": "EVM",
"balances": [
{
"currency": "USDC",
"balance": {
"currency": "USD",
"exponent": 2,
"value": "12345",
"displayValue": "123.45"
},
"chain": "ETHEREUM"
}
]
}
],
"name": "Main Treasury",
"provider": "INFINITE"
}
]
},
"verificationSessions": [
{
"id": "vs_abc123",
"status": "COMPLETED",
"createdAt": "2026-01-15T10:30:00Z",
"completedAt": "2026-01-15T11:00:00Z",
"progressPercentage": 100
}
]
}Create a new individual customer
Create an individual customer record without sending a polymorphic customer type in the request body. Use this endpoint to create INDIVIDUAL customers.
# Requires: npm i -g @infinite_dev/cli && export INFINITE_API_KEY=sk_sandbox_...
# Escape hatch for any endpoint: infinite api <METHOD> <path>
infinite api POST /v1/customers/individuals \
--body '<request-json>'Create a new individual customer.
# Infinite MCP is read-only for this endpoint — use a dedicated MCP tool when one exists, otherwise run the CLI tab.import requests
url = "https://sandbox.api.infinite.dev/v1/customers/individuals"
payload = {
"customerName": "<string>",
"email": "jsmith@example.com",
"requestedCapabilities": [],
"firstName": "John",
"lastName": "Smith",
"middleName": "Michael",
"transliteratedFirstName": "Li Ming",
"transliteratedMiddleName": "Wen",
"transliteratedLastName": "Wang",
"dateOfBirth": "1990-01-15",
"nationality": "US",
"taxResidenceCountry": "GB",
"phone": "+14155551234",
"occupation": "151252",
"sourceOfIncome": "SALARY",
"sourceOfFundsDescription": "<string>",
"enableMinimalRequirements": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
customerName: '<string>',
email: 'jsmith@example.com',
requestedCapabilities: [],
firstName: 'John',
lastName: 'Smith',
middleName: 'Michael',
transliteratedFirstName: 'Li Ming',
transliteratedMiddleName: 'Wen',
transliteratedLastName: 'Wang',
dateOfBirth: '1990-01-15',
nationality: 'US',
taxResidenceCountry: 'GB',
phone: '+14155551234',
occupation: '151252',
sourceOfIncome: 'SALARY',
sourceOfFundsDescription: '<string>',
enableMinimalRequirements: true
})
};
fetch('https://sandbox.api.infinite.dev/v1/customers/individuals', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.api.infinite.dev/v1/customers/individuals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'customerName' => '<string>',
'email' => 'jsmith@example.com',
'requestedCapabilities' => [
],
'firstName' => 'John',
'lastName' => 'Smith',
'middleName' => 'Michael',
'transliteratedFirstName' => 'Li Ming',
'transliteratedMiddleName' => 'Wen',
'transliteratedLastName' => 'Wang',
'dateOfBirth' => '1990-01-15',
'nationality' => 'US',
'taxResidenceCountry' => 'GB',
'phone' => '+14155551234',
'occupation' => '151252',
'sourceOfIncome' => 'SALARY',
'sourceOfFundsDescription' => '<string>',
'enableMinimalRequirements' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.api.infinite.dev/v1/customers/individuals"
payload := strings.NewReader("{\n \"customerName\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"requestedCapabilities\": [],\n \"firstName\": \"John\",\n \"lastName\": \"Smith\",\n \"middleName\": \"Michael\",\n \"transliteratedFirstName\": \"Li Ming\",\n \"transliteratedMiddleName\": \"Wen\",\n \"transliteratedLastName\": \"Wang\",\n \"dateOfBirth\": \"1990-01-15\",\n \"nationality\": \"US\",\n \"taxResidenceCountry\": \"GB\",\n \"phone\": \"+14155551234\",\n \"occupation\": \"151252\",\n \"sourceOfIncome\": \"SALARY\",\n \"sourceOfFundsDescription\": \"<string>\",\n \"enableMinimalRequirements\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.api.infinite.dev/v1/customers/individuals")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customerName\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"requestedCapabilities\": [],\n \"firstName\": \"John\",\n \"lastName\": \"Smith\",\n \"middleName\": \"Michael\",\n \"transliteratedFirstName\": \"Li Ming\",\n \"transliteratedMiddleName\": \"Wen\",\n \"transliteratedLastName\": \"Wang\",\n \"dateOfBirth\": \"1990-01-15\",\n \"nationality\": \"US\",\n \"taxResidenceCountry\": \"GB\",\n \"phone\": \"+14155551234\",\n \"occupation\": \"151252\",\n \"sourceOfIncome\": \"SALARY\",\n \"sourceOfFundsDescription\": \"<string>\",\n \"enableMinimalRequirements\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.infinite.dev/v1/customers/individuals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customerName\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"requestedCapabilities\": [],\n \"firstName\": \"John\",\n \"lastName\": \"Smith\",\n \"middleName\": \"Michael\",\n \"transliteratedFirstName\": \"Li Ming\",\n \"transliteratedMiddleName\": \"Wen\",\n \"transliteratedLastName\": \"Wang\",\n \"dateOfBirth\": \"1990-01-15\",\n \"nationality\": \"US\",\n \"taxResidenceCountry\": \"GB\",\n \"phone\": \"+14155551234\",\n \"occupation\": \"151252\",\n \"sourceOfIncome\": \"SALARY\",\n \"sourceOfFundsDescription\": \"<string>\",\n \"enableMinimalRequirements\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"customerName": "<string>",
"organizationId": "<string>",
"type": "INDIVIDUAL",
"status": "DRAFT",
"createdAt": "2026-01-15T10:00:00Z",
"updatedAt": "2026-01-15T10:00:00Z",
"email": "<string>",
"countryCode": "AD",
"imageUrl": "<string>",
"requestedCapabilities": [
"USD_ACH_PAYIN"
],
"capabilities": [
{
"capability": "USD_WIRE_PAYIN",
"status": "READY"
}
],
"customerDetails": {
"firstName": "John",
"lastName": "Smith",
"middleName": "Michael",
"transliteratedFirstName": "Li Ming",
"transliteratedMiddleName": "Wen",
"transliteratedLastName": "Wang",
"dateOfBirth": "1990-01-15",
"nationality": "US",
"taxResidenceCountry": "GB",
"phone": "+14155551234",
"occupation": "151252",
"employmentStatus": "EMPLOYED",
"sourceOfIncome": "SALARY",
"sourceOfFundsDescription": "<string>"
},
"associatedEntities": [
{
"id": "asp_abc123",
"createdAt": "2026-01-15T10:30:00Z",
"updatedAt": "2026-01-15T10:30:00Z",
"entityType": "BUSINESS",
"hasOwnership": true,
"hasControl": true,
"parentEntityId": "asp_parent123",
"details": {
"firstName": "John",
"nickname": "Johnny",
"lastName": "Doe",
"middleName": "Michael",
"dateOfBirth": "1985-03-15",
"taxResidenceCountry": "GB",
"transliteratedFirstName": "<string>",
"transliteratedMiddleName": "<string>",
"transliteratedLastName": "<string>",
"taxIdentificationDocumentType": "UTR"
},
"countryCode": "US",
"email": "contact@acmeholdings.com",
"phone": "+14155551234",
"address": {
"addressLine1": "123 Main Street",
"city": "San Francisco",
"postalCode": "94102",
"country": "US",
"addressLine2": "Apt 4B",
"state": "CA",
"transliterated": {
"addressLine1": "123 Main Street",
"addressLine2": "Apt 4B",
"city": "Beijing",
"state": "Hebei"
}
},
"ownershipPercentage": 51,
"isSigner": false,
"isDirector": false,
"role": "CEO",
"title": "Managing Director",
"documents": [
"doc_abc123"
],
"attestedOwnershipStructureAt": "2026-01-15T10:30:00Z",
"displayName": "Acme Holdings LLC",
"verificationLink": {
"sessionId": "vsess_abc123",
"verificationUrl": "https://verify.infinite.dev/?sessionId=vsess_abc123",
"expiresAt": "2026-01-09T10:30:00Z",
"status": "ACTIVE"
}
}
],
"addresses": [
{
"addressLine1": "123 Main Street",
"city": "San Francisco",
"postalCode": "94102",
"country": "US",
"addressLine2": "Apt 4B",
"state": "CA",
"transliterated": {
"addressLine1": "123 Main Street",
"addressLine2": "Apt 4B",
"city": "Beijing",
"state": "Hebei"
},
"label": "HOME",
"isDefault": true
}
],
"missingRequirements": [
{
"requirementType": "FIELD",
"key": "businessData.taxIdentificationNumber",
"displayName": "Tax Identification Number"
},
{
"requirementType": "DOCUMENT",
"key": "ownership.ownership_structure",
"displayName": "Ownership Information"
}
],
"accounts": [
"<array>"
],
"documents": [
{
"id": "doc_abc123",
"organizationId": "org_xyz789",
"customerId": "cus_abc123",
"documentType": "INVOICE",
"fileName": "invoice-2026-001.pdf",
"contentType": "application/pdf",
"sizeBytes": 1024000,
"status": "UPLOADED",
"createdAt": "2023-11-07T05:31:56Z",
"transferId": "txn_xyz789",
"documentSubtype": "BANK_STATEMENT",
"remarks": "<string>",
"fileHash": "<string>",
"downloadUrl": "<string>",
"uploadedAt": "2023-11-07T05:31:56Z",
"associatedEntityId": "<string>"
}
],
"treasury": {
"customerId": "cus_abc123",
"treasuries": [
{
"id": "trs_abc123",
"balances": {},
"fundingMethods": [
{
"id": "vba_abc123",
"type": "BANK_ACCOUNT",
"provider": "INFINITE",
"currency": "USD",
"currencyCodes": [
"USDC"
],
"rail": "ACH",
"rails": [
"ACH",
"WIRE"
],
"bankName": "Infinite Bank",
"beneficiaryName": "Acme Treasury",
"accountNumber": "1234567890",
"routingNumber": "021000021",
"iban": "GB82WEST12345698765432",
"swiftBic": "CHASUS33",
"address": "0x1234567890abcdef1234567890abcdef12345678",
"addressType": "EVM",
"chains": [
"ETHEREUM",
"BASE"
]
}
],
"wallets": [
{
"accountId": "inw_abc123",
"address": "0x1234567890abcdef1234567890abcdef12345678",
"addressType": "EVM",
"balances": [
{
"currency": "USDC",
"balance": {
"currency": "USD",
"exponent": 2,
"value": "12345",
"displayValue": "123.45"
},
"chain": "ETHEREUM"
}
]
}
],
"name": "Main Treasury",
"provider": "INFINITE"
}
]
},
"verificationSessions": [
{
"id": "vs_abc123",
"status": "COMPLETED",
"createdAt": "2026-01-15T10:30:00Z",
"completedAt": "2026-01-15T11:00:00Z",
"progressPercentage": 100
}
]
}Authorizations
API Key in Bearer format (e.g., Bearer sk_test_...)
Headers
API key
Idempotency key for preventing duplicate requests
Body
Customer name
Customer email address. For business customers, use an email on the company domain when available; personal email domains such as Gmail may require additional due diligence.
Country code (ISO 3166-2)
AD, AE, AF, AG, AI, AL, AM, AO, AR, AS, AT, AU, AW, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BR, BS, BT, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, EU, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HN, HR, HT, HU, ID, IE, IL, IM, IN, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SY, SZ, TC, TD, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, YE, YT, ZA, ZM, ZW Capabilities requested by the customer
USD_ACH_PAYIN, USD_ACH_PAYOUT, USD_WIRE_PAYIN, USD_WIRE_PAYOUT, USD_BALANCE, USD_YIELD, SWIFT_PAYIN, SWIFT_PAYOUT, STABLECOIN_PAYIN, STABLECOIN_PAYOUT, STABLECOIN_SWAPS, AED_FX_PAYOUT, AUD_FX_PAYOUT, BHD_FX_PAYOUT, BOB_FX_PAYOUT, BRL_FX_PAYOUT, CLP_FX_PAYOUT, CNY_FX_PAYOUT, COP_FX_PAYOUT, DOP_FX_PAYOUT, EGP_FX_PAYOUT, EUR_FX_PAYOUT, GBP_FX_PAYOUT, HKD_FX_PAYOUT, IDR_FX_PAYOUT, INR_FX_PAYOUT, JPY_FX_PAYOUT, KRW_FX_PAYOUT, KWD_FX_PAYOUT, MXN_FX_PAYOUT, MYR_FX_PAYOUT, PEN_FX_PAYOUT, PHP_FX_PAYOUT, PYG_FX_PAYOUT, QAR_FX_PAYOUT, SAR_FX_PAYOUT, SGD_FX_PAYOUT, THB_FX_PAYOUT, TRY_FX_PAYOUT, TWD_FX_PAYOUT, USD_FX_PAYOUT, VND_FX_PAYOUT First name
1024"John"
Last name
1024"Smith"
Middle name
1024"Michael"
Transliterated first name (Latin characters).
Required when firstName contains non-Latin characters (Chinese, Arabic, Cyrillic, etc.).
256"Li Ming"
Transliterated middle name (Latin characters).
Required when middleName contains non-Latin characters.
256"Wen"
Transliterated last name (Latin characters).
Required when lastName contains non-Latin characters.
256"Wang"
Date of birth in ISO 8601 format (YYYY-MM-DD)
"1990-01-15"
Nationality (ISO 3166-2)
"US"
Optional. Country of tax residence (ISO 3166-1 alpha-2). Provide only when it differs from nationality; tax ID format validation falls back to nationality when omitted.
"GB"
Phone number in E.164 format
16"+14155551234"
Occupation code
"151252"
Employment status
EMPLOYED, SELF_EMPLOYED, UNEMPLOYED, STUDENT, RETIRED, HOMEMAKER Source of income
COMPANY_FUNDS, ECOMMERCE_RESELLER, GAMBLING_PROCEEDS, GIFTS, GOVERNMENT_BENEFITS, INHERITANCE, INVESTMENTS_LOANS, PENSION_RETIREMENT, SALARY, SALE_OF_ASSETS_REAL_ESTATE, SAVINGS, SOMEONE_ELSES_FUNDS "SALARY"
Source of funds description
Use the organization-enabled minimal verification requirements for this customer
Response
Customer created successfully
Customer ID
Customer name
Organization ID
Customer type
INDIVIDUAL, BUSINESS Customer status
DRAFT, IN_REVIEW, NEED_ACTIONS, REJECTED, ACTIVE, INACTIVE, SUSPENDED Customer creation date
"2026-01-15T10:00:00Z"
Customer last update date
"2026-01-15T10:00:00Z"
Customer email address
Country code (ISO 3166-2)
AD, AE, AF, AG, AI, AL, AM, AO, AR, AS, AT, AU, AW, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BR, BS, BT, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, EU, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HN, HR, HT, HU, ID, IE, IL, IM, IN, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PS, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SY, SZ, TC, TD, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, YE, YT, ZA, ZM, ZW Customer image URL
Capabilities requested by the customer
USD_ACH_PAYIN, USD_ACH_PAYOUT, USD_WIRE_PAYIN, USD_WIRE_PAYOUT, USD_BALANCE, USD_YIELD, SWIFT_PAYIN, SWIFT_PAYOUT, STABLECOIN_PAYIN, STABLECOIN_PAYOUT, STABLECOIN_SWAPS, AED_FX_PAYOUT, AUD_FX_PAYOUT, BHD_FX_PAYOUT, BOB_FX_PAYOUT, BRL_FX_PAYOUT, CLP_FX_PAYOUT, CNY_FX_PAYOUT, COP_FX_PAYOUT, DOP_FX_PAYOUT, EGP_FX_PAYOUT, EUR_FX_PAYOUT, GBP_FX_PAYOUT, HKD_FX_PAYOUT, IDR_FX_PAYOUT, INR_FX_PAYOUT, JPY_FX_PAYOUT, KRW_FX_PAYOUT, KWD_FX_PAYOUT, MXN_FX_PAYOUT, MYR_FX_PAYOUT, PEN_FX_PAYOUT, PHP_FX_PAYOUT, PYG_FX_PAYOUT, QAR_FX_PAYOUT, SAR_FX_PAYOUT, SGD_FX_PAYOUT, THB_FX_PAYOUT, TRY_FX_PAYOUT, TWD_FX_PAYOUT, USD_FX_PAYOUT, VND_FX_PAYOUT Computed capability statuses. Included on list responses. READY only when the customer is ACTIVE.
Show child attributes
Show child attributes
Customer details with transliteration support.
For INDIVIDUAL customers:
- firstName, lastName, middleName
- transliteratedFirstName, transliteratedMiddleName, transliteratedLastName
- dateOfBirth, phone, occupation, sourceOfIncome
For BUSINESS customers:
- businessName, tradeName, businessType, taxIdentificationNumber
- website, industry, email, phone
Verification and EDD-specific fields are submitted separately through the verification endpoints.
- Option 1
- Option 2
Show child attributes
Show child attributes
Associated entities (beneficial owners and control persons) for business customers.
Show child attributes
Show child attributes
Customer addresses.
Each address must include addressLine1, city, postalCode, and country.
Show child attributes
Show child attributes
Merged list of missing fields and documents required for full verification. Only populated when customer data is incomplete.
Show child attributes
Show child attributes
[
{
"requirementType": "FIELD",
"key": "businessData.taxIdentificationNumber",
"displayName": "Tax Identification Number"
},
{
"requirementType": "DOCUMENT",
"key": "ownership.ownership_structure",
"displayName": "Ownership Information"
}
]
Customer accounts (only included when expand=accounts). Returns all accounts for this customer.
Customer documents (only included when expand=documents). Returns all documents for this customer.
Show child attributes
Show child attributes
Treasury balances (only included when expand=treasury). Returns treasury wallet balances grouped by treasury.
Show child attributes
Show child attributes
Verification sessions (only included when expand=verificationSessions). Returns verification session summaries.
Show child attributes
Show child attributes
Was this page helpful?