Accounts
An account owns balances, bank accounts, blockchain wallets and ledger entries. Each account belongs to a vault and is linked to the identification of its holder.
- Your organization has a main account. Create a sub-account for each of your customers to keep their funds and records segregated.
- Link an account to its holder with
identification_uuid, or with theexternal_uuidyou gave the identification. referralis the account's payment reference. Incoming transfers to a pooled bank account that quote it are credited to this account automatically; transfers without a recognised reference wait aspendinguntil you assign them (see Fiat Payments).balanceis a quick per-currency summary. For the authoritative figures and the entries behind them, use Ledger.
/accountsReturns the accounts your user can access, your main account and its sub-accounts, with a balance summary and the verification status of each holder.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Query Parameters
Page number, starting at 1.
1 <= value1Number of results per page. Defaults to 80.
1 <= valueResponse Body
application/json
application/json
curl -X GET "https://example.com/accounts?page=1&per_page=80" \ -H "Authorization: <token>"{ "data": [ { "id": "8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23", "referral": "P2ZRZ5", "status": "active", "alias": "Acme Ltd – operating", "created_at": 1772813114, "balance": { "EUR": 12500.5, "USDC": 3000 }, "status_verification": "approved", "complete_name": "Acme Ltd", "identification_external_uuid": "016aba24-5d22-4008-b7ed-0c77bbe044c6", "identification_uuid": "25f21bf7-54d2-4b47-9db2-af48558df5eb" } ], "pagination": { "current_page": 1, "per_page": 80, "total_pages": 1, "total_count": 2 }}/accountsCreates a sub-account and links it to the identification of its holder. Identify the
identification with identification_uuid (Depa's ID) or external_uuid (your ID for it).
Returns 404 with the code identification_not_found if no identification matches.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Link the new account to an identification with either identification_uuid or external_uuid.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/accounts" \ -H "Authorization: <token>" \ -H "Content-Type: application/json" \ -d '{ "identification_uuid": "25f21bf7-54d2-4b47-9db2-af48558df5eb" }'{ "data": { "id": "8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23", "referral": "P2ZRZ5", "status": "active", "alias": "Acme Ltd – operating", "created_at": 1772813114, "balance": { "EUR": 12500.5, "USDC": 3000 }, "status_verification": "approved", "complete_name": "Acme Ltd", "identification_external_uuid": "016aba24-5d22-4008-b7ed-0c77bbe044c6", "identification_uuid": "25f21bf7-54d2-4b47-9db2-af48558df5eb" }}/accounts/{id}Returns an account with its balance summary and the verification status of its holder.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Path Parameters
ID of the account.
uuidResponse Body
application/json
application/json
application/json
curl -X GET "https://example.com/accounts/8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23" \ -H "Authorization: <token>"{ "data": { "id": "8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23", "referral": "P2ZRZ5", "status": "active", "alias": "Acme Ltd – operating", "created_at": 1772813114, "balance": { "EUR": 12500.5, "USDC": 3000 }, "status_verification": "approved", "complete_name": "Acme Ltd", "identification_external_uuid": "016aba24-5d22-4008-b7ed-0c77bbe044c6", "identification_uuid": "25f21bf7-54d2-4b47-9db2-af48558df5eb" }}/accounts/{id}Changes an account's alias, its payment reference (referral) or the identification it's linked to. Send only the fields you want to change.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Path Parameters
ID of the account.
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Send only the fields you want to change.
Response Body
application/json
application/json
application/json
application/json
curl -X PUT "https://example.com/accounts/8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23" \ -H "Authorization: <token>" \ -H "Content-Type: application/json" \ -d '{ "alias": "Acme Ltd – operating" }'{ "data": { "id": "8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23", "referral": "P2ZRZ5", "status": "active", "alias": "Acme Ltd – operating", "created_at": 1772813114, "balance": { "EUR": 12500.5, "USDC": 3000 }, "status_verification": "approved", "complete_name": "Acme Ltd", "identification_external_uuid": "016aba24-5d22-4008-b7ed-0c77bbe044c6", "identification_uuid": "25f21bf7-54d2-4b47-9db2-af48558df5eb" }}/accounts/{account_id}/link_blockchain_paymentAssigns an on-chain deposit to a sub-account. Use it after a customer sends funds to a deposit wallet of your main account: pass the transaction hash, and Depa checks the transaction against the wallet's whitelisted asset and network before crediting the account in the path.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Path Parameters
ID of the account.
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/accounts/8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23/link_blockchain_payment" \ -H "Authorization: <token>" \ -H "Content-Type: application/json" \ -d '{ "tx_hash": "0x9fc76417374aa880d4449a1f7f31ec597f00b1f6f3dd2d66f4c9c6c445836d8b", "to_sepa": false }'{ "data": [ { "id": "0c4f8a2e-6b1d-4e7a-8f3c-9d5b2a1e7c60", "amount": "500.0", "currency": "USDC", "kind": "outgoing", "status": "sent", "created_at": 1772813114, "approval_progress": "1/2", "initiated_by": "maria@acme.example", "approved_by": [ "jon@acme.example" ], "rejected_by": null } ]}/accounts/{account_id}/withdrawSends funds from the account to its holder's registered source bank account. Use it when each customer has a single external bank account; to pay any other account, create a fiat payment.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Path Parameters
ID of the account.
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/accounts/8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23/withdraw" \ -H "Authorization: <token>" \ -H "Content-Type: application/json" \ -d '{ "amount": 250, "description": "Withdrawal March 2026" }'{ "data": { "id": "7e2a9c4b-5d1f-4b8e-9a3c-6f0e2d8b1a74", "iban": "DE89370400440532013000", "description": "Invoice 2026-0142", "recipient": "Müller Bürobedarf GmbH", "amount": "1250.0", "currency": "EUR", "kind": "outgoing", "status": "sent", "card_bin": null, "last_four": null, "account_number": null, "fiat_payment_fee": 1.5, "created_at": 1772447756, "approval_progress": "1/2", "initiated_by": "maria@acme.example", "approved_by": [ "jon@acme.example" ], "rejected_by": null, "payment_rail": "sepa", "settlement_status": null, "refusal_description": null }}