Customers
Customers represent the people paying you. Link payments, subscriptions, and invoices to a customer for tracking and management.
Create a customer
Retrieve a customer
Update a customer
List customers
Manage wallets
Customers can have multiple wallets across different chains. Add and remove wallets to track which addresses belong to a customer.
Methods reference
| Method | Description |
|---|---|
create(params) | Create a new customer |
retrieve(id) | Retrieve a customer with wallets and history |
list(params?) | List customers with pagination |
update(id, params) | Update customer details |
addWallet(customerId, params) | Add a wallet to a customer |
removeWallet(customerId, walletId) | Remove a wallet |
TypeScript types
Response body reference
All responses are wrapped in { success: true, data: ... }. The fields below describe what's inside data.
create() and update() response
Customer
idstringUnique customer ID (UUID)appIdstringYour app IDexternalIdstring | nullYour external customer IDemailstring | nullCustomer emailnamestring | nullCustomer nameaddressstring | nullStreet addresscitystring | nullCitystatestring | nullState or provincecountrystring | nullCountrypostalCodestring | nullPostal/ZIP codemetadataobjectYour metadata key-value pairscreatedAtstringISO 8601 creation timestampupdatedAtstringISO 8601 last update timestampwalletsCustomerWallet[]All wallets linked to this customerCustomerWallet (nested in wallets[])
idstringWallet record ID (UUID)customerAccountIdstringParent customer IDchainIdnumberChain ID (e.g. 1, 137, 8453)walletAddressstringWallet address (lowercased)hasActiveAuthorizationbooleanWhether the wallet has an active authorizationauthorizationTypestring | nullType of authorization (PERMIT, NATIVE, etc.)authorizationTxHashstring | nullAuthorization transaction hashauthorizedAtstring | nullWhen authorization was grantedcreatedAtstringISO 8601 timestampupdatedAtstringISO 8601 timestampretrieve() response
Returns all customer fields above, plus rich nested data:
Additional fields on retrieve
appAppFull app objectwallets[].chain{ chainId, name }Chain info on each walletpaymentIntentsPaymentIntent[]Last 50 payment intents (selected fields: id, status, amount, currency, cryptoAmount, cryptoTokenKey, authorizationChainId, createdAt, capturedAt)invoicesInvoice[]Last 50 invoices (selected fields: id, invoiceNumber, status, total, currency, dueDate, paidAt, createdAt)list() response
Returns paginated customers. Each includes wallets[] plus counts:
Additional fields on list
_count.paymentIntentsnumberTotal number of payment intents_count.subscriptionsnumberTotal number of subscriptions_count.invoicesnumberTotal number of invoicesaddWallet() response
Returns the new wallet with chain info:
Wallet response
idstringWallet ID (UUID)customerAccountIdstringParent customer IDchainIdnumberChain IDwalletAddressstringWallet address (lowercased)chain{ chainId, name }Chain metadataremoveWallet() response
Returns 204 No Content (no response body).