Get customer deposit details
Get bank deposit details for a KYC-verified customer.
Returns bank deposit details for a KYC-verified customer. The customer must have completed KYC verification to access deposit details. For USD SWIFT, the shared reference account includes its ClearBank IBAN; a dedicated iban with depositModel: "virtual_account" is returned when the customer holds an active USD virtual account. EUR/SEPA deposit details may reference a different receiving bank depending on your organization's banking configuration. For AUD-only customers, use currency=aud (or paymentRail=AU_BANK_TRANSFER); the details are returned once the customer's AUD account is ready, and 409 is returned until then, after the account is closed, or when it cannot be set up because AUD functionality is not enabled for your organization.
Authorization
bearerAuth Organization API key obtained on Settings > API Keys page in Compose UI.
In: header
Path Parameters
Unique identifier of the customer
Query Parameters
Optional payment rail for deposit instructions. When omitted, currency=eur maps to SEPA and currency=usd maps to FEDWIRE. Use SWIFT for USD SWIFT deposits. At least one of paymentRail or currency is required. Case-insensitive. Use AU_BANK_TRANSFER for AUD-only customers.
"SEPA" | "FEDWIRE" | "SWIFT" | "AU_BANK_TRANSFER"Currency for the deposit rail. Supported values: EUR (SEPA) and USD (FEDWIRE). Use paymentRail=SWIFT for USD SWIFT deposits. Case-insensitive. When both are given they must match (EUR with SEPA; USD with FEDWIRE or SWIFT). Use aud for AUD-only customers; AUD-only customers support only aud.
"eur" | "usd" | "aud"Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET 'https://compose.finance/api/v2/customers/{customerId}/deposit?currency=eur' \ -H 'Authorization: Bearer YOUR_API_KEY'{
"customerId": "550e8400-e29b-41d4-a716-446655440001",
"currency": "eur",
"paymentRail": "SEPA",
"reference": "A7B3C9D2E1",
"accountName": "AAA Corp.",
"accountAddress": "123 Example St., 00-001 Warsaw, Poland",
"iban": "DK0012345678123456",
"bic": "DUMMYBICXXX",
"bankName": "Dummy Bank",
"bankAddress": "1 Placeholder Rd, Test City, 12345, Country",
"bankCountry": "Denmark",
"depositInstructions": "To deposit funds, simply transfer money from your bank using your reference and the bank details below.",
"warning": "Include your unique reference in the transfer details",
"thirdPartyEnabled": false,
"depositModel": "reference"
}{
"error": "Missing required query parameter: paymentRail"
}{
"error": "Unauthorized - Invalid or missing API key or session"
}{
"error": "Customers feature is not enabled for your organization"
}{
"error": "Customer not found"
}{
"error": "AUD deposit details are still being set up for this customer. Try again in a few minutes."
}{
"error": "Rate limit exceeded. Please try again later."
}{
"error": "Internal server error"
}{
"error": "AUD deposit data is temporarily unavailable. Please try again shortly."
}Update customer wallet PATCH
Updates a customer deposit wallet. `walletType` and `ownershipAttested: true` are optional for now and will become required in a future release. When `walletType` is supplied, `ownershipAttested: true` is required and custodial wallets also require `vaspName`. Omit them when updating other fields and the wallet's existing declaration is kept unchanged. Changing the address without supplying a declaration clears the wallet's current declaration, because the previous declaration was made about the previous address — send the declaration alongside the new address to keep the wallet declared. Earlier declarations are retained against the address they were made about.
Claim developer fees POST
Initiates a transfer of your accumulated developer fees to your organization's wallet. **Claim Process** 1. Request to claim developer fees is received. 2. Transfer is initiated to your organization's wallet. 3. Transaction status can be monitored via the returned transaction ID 4. Balance updates when the on-chain transfer completes

