# Requires: npm i -g @infinite_dev/cli && export INFINITE_API_KEY=sk_sandbox_...
# Escape hatch for any endpoint: infinite api <METHOD> <path>
infinite api PUT /v1/sandbox/customers/cus_abc123/status \
--body '<request-json>'Set customer verification status (cus_abc123).
# 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/sandbox/customers/{id}/status"
payload = { "status": "ACTIVE" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({status: 'ACTIVE'})
};
fetch('https://sandbox.api.infinite.dev/v1/sandbox/customers/{id}/status', 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/sandbox/customers/{id}/status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'status' => 'ACTIVE'
]),
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/sandbox/customers/{id}/status"
payload := strings.NewReader("{\n \"status\": \"ACTIVE\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://sandbox.api.infinite.dev/v1/sandbox/customers/{id}/status")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"status\": \"ACTIVE\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.infinite.dev/v1/sandbox/customers/{id}/status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"status\": \"ACTIVE\"\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
}
]
}Set customer verification status
Set the verification status of a customer to any status for testing purposes. This endpoint is only available in the sandbox environment and allows you to simulate different verification states.
# Requires: npm i -g @infinite_dev/cli && export INFINITE_API_KEY=sk_sandbox_...
# Escape hatch for any endpoint: infinite api <METHOD> <path>
infinite api PUT /v1/sandbox/customers/cus_abc123/status \
--body '<request-json>'Set customer verification status (cus_abc123).
# 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/sandbox/customers/{id}/status"
payload = { "status": "ACTIVE" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({status: 'ACTIVE'})
};
fetch('https://sandbox.api.infinite.dev/v1/sandbox/customers/{id}/status', 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/sandbox/customers/{id}/status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'status' => 'ACTIVE'
]),
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/sandbox/customers/{id}/status"
payload := strings.NewReader("{\n \"status\": \"ACTIVE\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://sandbox.api.infinite.dev/v1/sandbox/customers/{id}/status")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"status\": \"ACTIVE\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.infinite.dev/v1/sandbox/customers/{id}/status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"status\": \"ACTIVE\"\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
Path Parameters
Customer ID
Body
The verification status to set for the customer
DRAFT, IN_REVIEW, NEED_ACTIONS, REJECTED, ACTIVE, INACTIVE, SUSPENDED "ACTIVE"
Response
Customer status updated 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?