Create customer
Create a new customer.
Creates a new customer for the authenticated organization. Supports both individual and corporate account types. Requires Bearer token authentication.
Authorization
bearerAuth Organization API key obtained on Settings > API Keys page in Compose UI.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST 'https://compose.finance/api/v2/customers' \ -H 'Authorization: Bearer YOUR_API_KEY' \ -H 'Content-Type: application/json' \ -d '{ "name": "JOHN DOE", "accountType": "individual", "email": "[email protected]" }'# You can also create corporate customers:# -d '{ "name": "ACME CORP LTD", "accountType": "corporate", "email": "[email protected]" }'# With optional expectedMonthlyVolume:# -d '{ "name": "JOHN DOE", "accountType": "individual", "expectedMonthlyVolume": 25000 }'{
"customerId": "550e8400-e29b-41d4-a716-446655440001",
"email": "[email protected]",
"name": "JOHN DOE",
"accountType": "individual",
"expectedMonthlyVolume": 25000,
"kycVerified": false
}{
"error": "Please enter a valid email address, Name is required"
}{
"error": "Unauthorized - Invalid or missing API key or session"
}{
"error": "Customers feature is not enabled for your organization"
}{
"error": "Internal server error"
}Get deposit addresses GET
Returns the on-chain addresses your organization can be paid on. **Custodial addresses** credit the matching custodial balance. The same asset is credited to one balance regardless of which supported chain it arrives on, so `USDC` received on Ethereum, Arbitrum or Solana all increase your `usdc` custodial balance. **Wallet addresses** credit your organization's self-custody wallet. Always send the listed currency on the listed chain. Funds sent on a different chain, or in a different asset, cannot be recovered automatically. Self-custody wallet destinations and organization-specific custodial destinations are omitted if their address cannot be verified. EVM deposit addresses use checksummed formatting.
Get customer GET
Returns details for a specific customer including KYC status. Requires Bearer token authentication.

