Depa LogoDocsv1
API Reference

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 the external_uuid you gave the identification.
  • referral is 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 as pending until you assign them (see Fiat Payments).
  • balance is a quick per-currency summary. For the authoritative figures and the entries behind them, use Ledger.

List accounts

GET/accounts

Returns 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

BearerAuth
AuthorizationBearer <token>

Token from POST /sign_in, sent as Authorization: Bearer <token>.

In: header

Query Parameters

page?integer

Page number, starting at 1.

Range1 <= value
Default1
per_page?integer

Number of results per page. Defaults to 80.

Range1 <= value

Response Body

application/json

application/json

curl -X GET "https://example.com/accounts?page=1&per_page=80"
{  "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  }}

Create an account

POST/accounts

Creates 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

BearerAuth
AuthorizationBearer <token>

Token from POST /sign_in, sent as Authorization: Bearer <token>.

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 "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"  }}

Retrieve an account

GET/accounts/{id}

Returns an account with its balance summary and the verification status of its holder.

Authorization

BearerAuth
AuthorizationBearer <token>

Token from POST /sign_in, sent as Authorization: Bearer <token>.

In: header

Path Parameters

id*string

ID of the account.

Formatuuid

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/accounts/8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23"
{  "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"  }}

Update an account

PUT/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

BearerAuth
AuthorizationBearer <token>

Token from POST /sign_in, sent as Authorization: Bearer <token>.

In: header

Path Parameters

id*string

ID of the account.

Formatuuid

Request 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 "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"  }}
POST/accounts/{account_id}/link_blockchain_payment

Assigns 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

BearerAuth
AuthorizationBearer <token>

Token from POST /sign_in, sent as Authorization: Bearer <token>.

In: header

Path Parameters

account_id*string

ID of the account.

Formatuuid

Request 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 "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    }  ]}
POST/accounts/{account_id}/withdraw

Sends 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

BearerAuth
AuthorizationBearer <token>

Token from POST /sign_in, sent as Authorization: Bearer <token>.

In: header

Path Parameters

account_id*string

ID of the account.

Formatuuid

Request 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 "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  }}
🍪 We do not track your behaviour or use any cookie on this site.