# 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/businesses \
--body '<request-json>'Create a new business customer.
# Use MCP tool create_business_customer with customerName, email, countryCode, and a UUID operationId.import requests
url = "https://sandbox.api.infinite.dev/v1/customers/businesses"
payload = {
"customerName": "<string>",
"email": "contact@acme.com",
"requestedCapabilities": [],
"businessName": "Acme Corporation",
"businessType": "LLC",
"taxIdentificationNumber": "12-3456789",
"website": "https://acme.com",
"industry": "522320",
"isCrypto": False,
"isRemoteCompany": False,
"yearEstablished": 2010,
"numberOfEmployees": 50,
"tradeName": "Acme Services; Acme Pay",
"description": "Cloud software services provider",
"phone": "+14155551234",
"registrationDate": "2020-01-15",
"registrationNumber": "123456789",
"hasMaterialIntermediaryOwnership": False,
"accountPurpose": "OPERATIONS",
"accountPurposeExplanation": "Operating expenses and customer settlements",
"sourceOfFunds": "BUSINESS_REVENUE",
"sourceOfFundsDescription": "Revenue from software services",
"expectedMonthlyPaymentsUsd": 50000,
"primaryTargetMarket": "COMMERCIAL",
"primaryTargetMarketExplanation": "Marketplace serving mixed B2B and B2C sellers",
"operatesInProhibitedCountries": False,
"highRiskActivities": ["MONEY_SERVICES"],
"highRiskActivitiesExplanation": "Cryptocurrency exchange services",
"signedAgreementId": "tos_abc123"
}
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: 'contact@acme.com',
requestedCapabilities: [],
businessName: 'Acme Corporation',
businessType: 'LLC',
taxIdentificationNumber: '12-3456789',
website: 'https://acme.com',
industry: '522320',
isCrypto: false,
isRemoteCompany: false,
yearEstablished: 2010,
numberOfEmployees: 50,
tradeName: 'Acme Services; Acme Pay',
description: 'Cloud software services provider',
phone: '+14155551234',
registrationDate: '2020-01-15',
registrationNumber: '123456789',
hasMaterialIntermediaryOwnership: false,
accountPurpose: 'OPERATIONS',
accountPurposeExplanation: 'Operating expenses and customer settlements',
sourceOfFunds: 'BUSINESS_REVENUE',
sourceOfFundsDescription: 'Revenue from software services',
expectedMonthlyPaymentsUsd: 50000,
primaryTargetMarket: 'COMMERCIAL',
primaryTargetMarketExplanation: 'Marketplace serving mixed B2B and B2C sellers',
operatesInProhibitedCountries: false,
highRiskActivities: ['MONEY_SERVICES'],
highRiskActivitiesExplanation: 'Cryptocurrency exchange services',
signedAgreementId: 'tos_abc123'
})
};
fetch('https://sandbox.api.infinite.dev/v1/customers/businesses', 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/businesses",
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' => 'contact@acme.com',
'requestedCapabilities' => [
],
'businessName' => 'Acme Corporation',
'businessType' => 'LLC',
'taxIdentificationNumber' => '12-3456789',
'website' => 'https://acme.com',
'industry' => '522320',
'isCrypto' => false,
'isRemoteCompany' => false,
'yearEstablished' => 2010,
'numberOfEmployees' => 50,
'tradeName' => 'Acme Services; Acme Pay',
'description' => 'Cloud software services provider',
'phone' => '+14155551234',
'registrationDate' => '2020-01-15',
'registrationNumber' => '123456789',
'hasMaterialIntermediaryOwnership' => false,
'accountPurpose' => 'OPERATIONS',
'accountPurposeExplanation' => 'Operating expenses and customer settlements',
'sourceOfFunds' => 'BUSINESS_REVENUE',
'sourceOfFundsDescription' => 'Revenue from software services',
'expectedMonthlyPaymentsUsd' => 50000,
'primaryTargetMarket' => 'COMMERCIAL',
'primaryTargetMarketExplanation' => 'Marketplace serving mixed B2B and B2C sellers',
'operatesInProhibitedCountries' => false,
'highRiskActivities' => [
'MONEY_SERVICES'
],
'highRiskActivitiesExplanation' => 'Cryptocurrency exchange services',
'signedAgreementId' => 'tos_abc123'
]),
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/businesses"
payload := strings.NewReader("{\n \"customerName\": \"<string>\",\n \"email\": \"contact@acme.com\",\n \"requestedCapabilities\": [],\n \"businessName\": \"Acme Corporation\",\n \"businessType\": \"LLC\",\n \"taxIdentificationNumber\": \"12-3456789\",\n \"website\": \"https://acme.com\",\n \"industry\": \"522320\",\n \"isCrypto\": false,\n \"isRemoteCompany\": false,\n \"yearEstablished\": 2010,\n \"numberOfEmployees\": 50,\n \"tradeName\": \"Acme Services; Acme Pay\",\n \"description\": \"Cloud software services provider\",\n \"phone\": \"+14155551234\",\n \"registrationDate\": \"2020-01-15\",\n \"registrationNumber\": \"123456789\",\n \"hasMaterialIntermediaryOwnership\": false,\n \"accountPurpose\": \"OPERATIONS\",\n \"accountPurposeExplanation\": \"Operating expenses and customer settlements\",\n \"sourceOfFunds\": \"BUSINESS_REVENUE\",\n \"sourceOfFundsDescription\": \"Revenue from software services\",\n \"expectedMonthlyPaymentsUsd\": 50000,\n \"primaryTargetMarket\": \"COMMERCIAL\",\n \"primaryTargetMarketExplanation\": \"Marketplace serving mixed B2B and B2C sellers\",\n \"operatesInProhibitedCountries\": false,\n \"highRiskActivities\": [\n \"MONEY_SERVICES\"\n ],\n \"highRiskActivitiesExplanation\": \"Cryptocurrency exchange services\",\n \"signedAgreementId\": \"tos_abc123\"\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/businesses")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customerName\": \"<string>\",\n \"email\": \"contact@acme.com\",\n \"requestedCapabilities\": [],\n \"businessName\": \"Acme Corporation\",\n \"businessType\": \"LLC\",\n \"taxIdentificationNumber\": \"12-3456789\",\n \"website\": \"https://acme.com\",\n \"industry\": \"522320\",\n \"isCrypto\": false,\n \"isRemoteCompany\": false,\n \"yearEstablished\": 2010,\n \"numberOfEmployees\": 50,\n \"tradeName\": \"Acme Services; Acme Pay\",\n \"description\": \"Cloud software services provider\",\n \"phone\": \"+14155551234\",\n \"registrationDate\": \"2020-01-15\",\n \"registrationNumber\": \"123456789\",\n \"hasMaterialIntermediaryOwnership\": false,\n \"accountPurpose\": \"OPERATIONS\",\n \"accountPurposeExplanation\": \"Operating expenses and customer settlements\",\n \"sourceOfFunds\": \"BUSINESS_REVENUE\",\n \"sourceOfFundsDescription\": \"Revenue from software services\",\n \"expectedMonthlyPaymentsUsd\": 50000,\n \"primaryTargetMarket\": \"COMMERCIAL\",\n \"primaryTargetMarketExplanation\": \"Marketplace serving mixed B2B and B2C sellers\",\n \"operatesInProhibitedCountries\": false,\n \"highRiskActivities\": [\n \"MONEY_SERVICES\"\n ],\n \"highRiskActivitiesExplanation\": \"Cryptocurrency exchange services\",\n \"signedAgreementId\": \"tos_abc123\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.infinite.dev/v1/customers/businesses")
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\": \"contact@acme.com\",\n \"requestedCapabilities\": [],\n \"businessName\": \"Acme Corporation\",\n \"businessType\": \"LLC\",\n \"taxIdentificationNumber\": \"12-3456789\",\n \"website\": \"https://acme.com\",\n \"industry\": \"522320\",\n \"isCrypto\": false,\n \"isRemoteCompany\": false,\n \"yearEstablished\": 2010,\n \"numberOfEmployees\": 50,\n \"tradeName\": \"Acme Services; Acme Pay\",\n \"description\": \"Cloud software services provider\",\n \"phone\": \"+14155551234\",\n \"registrationDate\": \"2020-01-15\",\n \"registrationNumber\": \"123456789\",\n \"hasMaterialIntermediaryOwnership\": false,\n \"accountPurpose\": \"OPERATIONS\",\n \"accountPurposeExplanation\": \"Operating expenses and customer settlements\",\n \"sourceOfFunds\": \"BUSINESS_REVENUE\",\n \"sourceOfFundsDescription\": \"Revenue from software services\",\n \"expectedMonthlyPaymentsUsd\": 50000,\n \"primaryTargetMarket\": \"COMMERCIAL\",\n \"primaryTargetMarketExplanation\": \"Marketplace serving mixed B2B and B2C sellers\",\n \"operatesInProhibitedCountries\": false,\n \"highRiskActivities\": [\n \"MONEY_SERVICES\"\n ],\n \"highRiskActivitiesExplanation\": \"Cryptocurrency exchange services\",\n \"signedAgreementId\": \"tos_abc123\"\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 business customer
Create a business customer record without sending a polymorphic customer type in the request body. Use this endpoint to create BUSINESS 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/businesses \
--body '<request-json>'Create a new business customer.
# Use MCP tool create_business_customer with customerName, email, countryCode, and a UUID operationId.import requests
url = "https://sandbox.api.infinite.dev/v1/customers/businesses"
payload = {
"customerName": "<string>",
"email": "contact@acme.com",
"requestedCapabilities": [],
"businessName": "Acme Corporation",
"businessType": "LLC",
"taxIdentificationNumber": "12-3456789",
"website": "https://acme.com",
"industry": "522320",
"isCrypto": False,
"isRemoteCompany": False,
"yearEstablished": 2010,
"numberOfEmployees": 50,
"tradeName": "Acme Services; Acme Pay",
"description": "Cloud software services provider",
"phone": "+14155551234",
"registrationDate": "2020-01-15",
"registrationNumber": "123456789",
"hasMaterialIntermediaryOwnership": False,
"accountPurpose": "OPERATIONS",
"accountPurposeExplanation": "Operating expenses and customer settlements",
"sourceOfFunds": "BUSINESS_REVENUE",
"sourceOfFundsDescription": "Revenue from software services",
"expectedMonthlyPaymentsUsd": 50000,
"primaryTargetMarket": "COMMERCIAL",
"primaryTargetMarketExplanation": "Marketplace serving mixed B2B and B2C sellers",
"operatesInProhibitedCountries": False,
"highRiskActivities": ["MONEY_SERVICES"],
"highRiskActivitiesExplanation": "Cryptocurrency exchange services",
"signedAgreementId": "tos_abc123"
}
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: 'contact@acme.com',
requestedCapabilities: [],
businessName: 'Acme Corporation',
businessType: 'LLC',
taxIdentificationNumber: '12-3456789',
website: 'https://acme.com',
industry: '522320',
isCrypto: false,
isRemoteCompany: false,
yearEstablished: 2010,
numberOfEmployees: 50,
tradeName: 'Acme Services; Acme Pay',
description: 'Cloud software services provider',
phone: '+14155551234',
registrationDate: '2020-01-15',
registrationNumber: '123456789',
hasMaterialIntermediaryOwnership: false,
accountPurpose: 'OPERATIONS',
accountPurposeExplanation: 'Operating expenses and customer settlements',
sourceOfFunds: 'BUSINESS_REVENUE',
sourceOfFundsDescription: 'Revenue from software services',
expectedMonthlyPaymentsUsd: 50000,
primaryTargetMarket: 'COMMERCIAL',
primaryTargetMarketExplanation: 'Marketplace serving mixed B2B and B2C sellers',
operatesInProhibitedCountries: false,
highRiskActivities: ['MONEY_SERVICES'],
highRiskActivitiesExplanation: 'Cryptocurrency exchange services',
signedAgreementId: 'tos_abc123'
})
};
fetch('https://sandbox.api.infinite.dev/v1/customers/businesses', 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/businesses",
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' => 'contact@acme.com',
'requestedCapabilities' => [
],
'businessName' => 'Acme Corporation',
'businessType' => 'LLC',
'taxIdentificationNumber' => '12-3456789',
'website' => 'https://acme.com',
'industry' => '522320',
'isCrypto' => false,
'isRemoteCompany' => false,
'yearEstablished' => 2010,
'numberOfEmployees' => 50,
'tradeName' => 'Acme Services; Acme Pay',
'description' => 'Cloud software services provider',
'phone' => '+14155551234',
'registrationDate' => '2020-01-15',
'registrationNumber' => '123456789',
'hasMaterialIntermediaryOwnership' => false,
'accountPurpose' => 'OPERATIONS',
'accountPurposeExplanation' => 'Operating expenses and customer settlements',
'sourceOfFunds' => 'BUSINESS_REVENUE',
'sourceOfFundsDescription' => 'Revenue from software services',
'expectedMonthlyPaymentsUsd' => 50000,
'primaryTargetMarket' => 'COMMERCIAL',
'primaryTargetMarketExplanation' => 'Marketplace serving mixed B2B and B2C sellers',
'operatesInProhibitedCountries' => false,
'highRiskActivities' => [
'MONEY_SERVICES'
],
'highRiskActivitiesExplanation' => 'Cryptocurrency exchange services',
'signedAgreementId' => 'tos_abc123'
]),
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/businesses"
payload := strings.NewReader("{\n \"customerName\": \"<string>\",\n \"email\": \"contact@acme.com\",\n \"requestedCapabilities\": [],\n \"businessName\": \"Acme Corporation\",\n \"businessType\": \"LLC\",\n \"taxIdentificationNumber\": \"12-3456789\",\n \"website\": \"https://acme.com\",\n \"industry\": \"522320\",\n \"isCrypto\": false,\n \"isRemoteCompany\": false,\n \"yearEstablished\": 2010,\n \"numberOfEmployees\": 50,\n \"tradeName\": \"Acme Services; Acme Pay\",\n \"description\": \"Cloud software services provider\",\n \"phone\": \"+14155551234\",\n \"registrationDate\": \"2020-01-15\",\n \"registrationNumber\": \"123456789\",\n \"hasMaterialIntermediaryOwnership\": false,\n \"accountPurpose\": \"OPERATIONS\",\n \"accountPurposeExplanation\": \"Operating expenses and customer settlements\",\n \"sourceOfFunds\": \"BUSINESS_REVENUE\",\n \"sourceOfFundsDescription\": \"Revenue from software services\",\n \"expectedMonthlyPaymentsUsd\": 50000,\n \"primaryTargetMarket\": \"COMMERCIAL\",\n \"primaryTargetMarketExplanation\": \"Marketplace serving mixed B2B and B2C sellers\",\n \"operatesInProhibitedCountries\": false,\n \"highRiskActivities\": [\n \"MONEY_SERVICES\"\n ],\n \"highRiskActivitiesExplanation\": \"Cryptocurrency exchange services\",\n \"signedAgreementId\": \"tos_abc123\"\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/businesses")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customerName\": \"<string>\",\n \"email\": \"contact@acme.com\",\n \"requestedCapabilities\": [],\n \"businessName\": \"Acme Corporation\",\n \"businessType\": \"LLC\",\n \"taxIdentificationNumber\": \"12-3456789\",\n \"website\": \"https://acme.com\",\n \"industry\": \"522320\",\n \"isCrypto\": false,\n \"isRemoteCompany\": false,\n \"yearEstablished\": 2010,\n \"numberOfEmployees\": 50,\n \"tradeName\": \"Acme Services; Acme Pay\",\n \"description\": \"Cloud software services provider\",\n \"phone\": \"+14155551234\",\n \"registrationDate\": \"2020-01-15\",\n \"registrationNumber\": \"123456789\",\n \"hasMaterialIntermediaryOwnership\": false,\n \"accountPurpose\": \"OPERATIONS\",\n \"accountPurposeExplanation\": \"Operating expenses and customer settlements\",\n \"sourceOfFunds\": \"BUSINESS_REVENUE\",\n \"sourceOfFundsDescription\": \"Revenue from software services\",\n \"expectedMonthlyPaymentsUsd\": 50000,\n \"primaryTargetMarket\": \"COMMERCIAL\",\n \"primaryTargetMarketExplanation\": \"Marketplace serving mixed B2B and B2C sellers\",\n \"operatesInProhibitedCountries\": false,\n \"highRiskActivities\": [\n \"MONEY_SERVICES\"\n ],\n \"highRiskActivitiesExplanation\": \"Cryptocurrency exchange services\",\n \"signedAgreementId\": \"tos_abc123\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.infinite.dev/v1/customers/businesses")
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\": \"contact@acme.com\",\n \"requestedCapabilities\": [],\n \"businessName\": \"Acme Corporation\",\n \"businessType\": \"LLC\",\n \"taxIdentificationNumber\": \"12-3456789\",\n \"website\": \"https://acme.com\",\n \"industry\": \"522320\",\n \"isCrypto\": false,\n \"isRemoteCompany\": false,\n \"yearEstablished\": 2010,\n \"numberOfEmployees\": 50,\n \"tradeName\": \"Acme Services; Acme Pay\",\n \"description\": \"Cloud software services provider\",\n \"phone\": \"+14155551234\",\n \"registrationDate\": \"2020-01-15\",\n \"registrationNumber\": \"123456789\",\n \"hasMaterialIntermediaryOwnership\": false,\n \"accountPurpose\": \"OPERATIONS\",\n \"accountPurposeExplanation\": \"Operating expenses and customer settlements\",\n \"sourceOfFunds\": \"BUSINESS_REVENUE\",\n \"sourceOfFundsDescription\": \"Revenue from software services\",\n \"expectedMonthlyPaymentsUsd\": 50000,\n \"primaryTargetMarket\": \"COMMERCIAL\",\n \"primaryTargetMarketExplanation\": \"Marketplace serving mixed B2B and B2C sellers\",\n \"operatesInProhibitedCountries\": false,\n \"highRiskActivities\": [\n \"MONEY_SERVICES\"\n ],\n \"highRiskActivitiesExplanation\": \"Cryptocurrency exchange services\",\n \"signedAgreementId\": \"tos_abc123\"\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
Business email address. Use an email on the company domain when available; personal email domains such as Gmail may require additional due diligence.
255"contact@acme.com"
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 Legal business name
1024"Acme Corporation"
Business legal structure
CORPORATION, LLC, PARTNERSHIP, GEN_PARTNERSHIP, LLP, LP, SOLE_PROPRIETORSHIP, NON_PROFIT, TRUST, COOPERATIVE, PRIVATE_LIMITED_COMPANY, SPV, JOINT_VENTURE "LLC"
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.
50"12-3456789"
Business website URL
512"https://acme.com"
6-digit NAICS industry classification code
6^\d{6}$"522320"
Set true if the business operates in crypto or digital assets.
false
Set true when the business operates remotely from an owner or director address.
false
Crypto-specific industry subtype. Required when isCrypto is true.
PROTOCOL, EXCHANGE, INVESTMENT, LENDER, MARKET_MAKER, SAAS, MINER Year the business was established
x >= 18002010
Number of employees
x >= 050
Business trade name (DBA). Separate multiple names with semicolons.
1024"Acme Services; Acme Pay"
Business description
2048"Cloud software services provider"
Business phone number in E.164 format
16"+14155551234"
Business registration date in ISO 8601 format (YYYY-MM-DD)
"2020-01-15"
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.
50"123456789"
Whether the business has material intermediary ownership (25%+ owned by another entity)
false
Purpose of the account
PAYROLL, VENDOR_PAYMENTS, TREASURY, OPERATIONS, CAPITAL_DEPLOYMENT, CROSS_BORDER_PAYMENTS, STABLECOIN_CONVERSION, ECOMMERCE, OTHER "OPERATIONS"
Detailed explanation of account purpose
2048"Operating expenses and customer settlements"
Source of funds for the business
BUSINESS_REVENUE, INVESTMENT, OWNER_CAPITAL, LOAN, GRANTS, EQUITY, INHERITANCE, GIFT, OTHER "BUSINESS_REVENUE"
Detailed description of source of funds
2048"Revenue from software services"
Estimated annual revenue in USD
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 Expected monthly fiat payment volume in USD-equivalent
x >= 050000
Primary target market. RETAIL = B2C (consumers), COMMERCIAL = B2B (businesses), GOVERNMENT = B2G (government entities), OTHER = another market not covered by the standard options.
RETAIL, COMMERCIAL, GOVERNMENT, OTHER "COMMERCIAL"
Primary target market explanation (required if primaryTargetMarket is OTHER)
2048"Marketplace serving mixed B2B and B2C sellers"
Whether the business operates in prohibited countries
false
List of high-risk activities the business engages in
MONEY_SERVICES, LENDING_BANKING, OTC_FX_CRYPTO_BROKERAGE, HOLD_CLIENT_FUNDS, INVESTMENT_SERVICES, SAFE_DEPOSIT_BOX, PRECIOUS_METALS_STONES_JEWELRY, NICOTINE_TOBACCO, MARIJUANA, PHARMACEUTICALS, THIRD_PARTY_PAYMENT_PROCESSING, ADULT_ENTERTAINMENT, WEAPONS_FIREARMS_EXPLOSIVES, GAMBLING ["MONEY_SERVICES"]
Explanation of high-risk activities
2048"Cryptocurrency exchange services"
Signed agreement ID
256"tos_abc123"
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?