Depa LogoDocsv1
API Reference

Fiat Payments

Fiat payments are bank transfers into and out of a bank account. They post to the ledger and send webhooks as their status changes.

  • Outgoing payments are created with POST …/fiat_payments. If a four-eyes policy covers the amount, the payment waits in pending_approval until enough users approve it.
  • Incoming payments appear when money arrives. A transfer that reaches a pooled bank account without a recognised referral arrives as pending; assign it to the right account with the link_pending endpoint.
  • GET /vaults/{vault_id}/fiat_payments lists payments across every account in a vault, for reconciliation.

Fiat payments are banking transfers. To pay out in local currency to Colombia, Mexico, China or the UAE, use Quotes & Payouts.

List fiat payments

GET/accounts/{account_id}/bank_accounts/{bank_account_id}/fiat_payments

Returns the incoming and outgoing transfers of a bank account, page by page. Filter by status.

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
bank_account_id*string

ID of the bank account.

Formatuuid

Query Parameters

status?string

Return only payments with this status.

Value in

  • "blocked"
  • "completed"
  • "confirmed"
  • "failed"
  • "initiated"
  • "pending"
  • "pending_approval"
  • "ready_to_release"
  • "rejected"
  • "sent"
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

application/json

curl -X GET "https://example.com/accounts/8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23/bank_accounts/6d1c9e2a-3f4b-4c8d-a7e6-5b2f0e9d1c47/fiat_payments?page=1&per_page=80"
{  "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    }  ],  "pagination": {    "current_page": 1,    "per_page": 80,    "total_pages": 1,    "total_count": 2  }}

Create a fiat payment

POST/accounts/{account_id}/bank_accounts/{bank_account_id}/fiat_payments

Sends a bank transfer from this bank account. kind tells the bank whether the beneficiary is a Person or a Business; include swift for payments outside SEPA.

If a four-eyes policy covers the amount, the payment is created as pending_approval and is sent once it's approved. Status changes are reported by webhook.

For local payouts in other currencies, use Quotes & Payouts.

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
bank_account_id*string

ID of the bank account.

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Beneficiary and amount of a bank transfer.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/accounts/8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23/bank_accounts/6d1c9e2a-3f4b-4c8d-a7e6-5b2f0e9d1c47/fiat_payments" \  -H "Content-Type: application/json" \  -d '{    "amount": 1250,    "description": "Invoice 2026-0142",    "recipient": "Müller Bürobedarf GmbH",    "iban": "DE89370400440532013000",    "address_line1": "Friedrichstraße 123",    "city": "Berlin",    "postal_code": "10117",    "country": "DE",    "kind": "Business"  }'
{  "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  }}

Retrieve a fiat payment

GET/accounts/{account_id}/bank_accounts/{bank_account_id}/fiat_payments/{id}

Returns a bank transfer and its current status.

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
bank_account_id*string

ID of the bank account.

Formatuuid
id*string

ID of the payment.

Formatuuid

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/accounts/8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23/bank_accounts/6d1c9e2a-3f4b-4c8d-a7e6-5b2f0e9d1c47/fiat_payments/7e2a9c4b-5d1f-4b8e-9a3c-6f0e2d8b1a74"
{  "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  }}

Approve a fiat payment

POST/accounts/{account_id}/bank_accounts/{bank_account_id}/fiat_payments/{id}/approve

Approves an outgoing payment that's waiting for four-eyes approval. Each user can approve a payment once. When it has enough approvals it moves to ready_to_release and is sent automatically.

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
bank_account_id*string

ID of the bank account.

Formatuuid
id*string

ID of the payment to approve.

Formatuuid

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/accounts/8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23/bank_accounts/6d1c9e2a-3f4b-4c8d-a7e6-5b2f0e9d1c47/fiat_payments/7e2a9c4b-5d1f-4b8e-9a3c-6f0e2d8b1a74/approve"
{  "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  }}

Reject a fiat payment

POST/accounts/{account_id}/bank_accounts/{bank_account_id}/fiat_payments/{id}/reject

Rejects an outgoing payment that's waiting for four-eyes approval. It becomes rejected immediately and won't be sent. Each user can review a payment once.

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
bank_account_id*string

ID of the bank account.

Formatuuid
id*string

ID of the payment to reject.

Formatuuid

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/accounts/8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23/bank_accounts/6d1c9e2a-3f4b-4c8d-a7e6-5b2f0e9d1c47/fiat_payments/7e2a9c4b-5d1f-4b8e-9a3c-6f0e2d8b1a74/reject"
{  "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  }}

Assign a pending payment

POST/accounts/{account_id}/bank_accounts/{bank_account_id}/fiat_payments/{id}/link_pending

Assigns an unmatched incoming payment to an account in the same vault. Incoming transfers that reach a pooled bank account without a recognised referral arrive as pending. Once you link one, it's confirmed, posted to the destination account's ledger, screened by transaction monitoring, and reported by webhook.

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 the payment currently sits under (the pooled or main account).

Formatuuid
bank_account_id*string

ID of the bank account.

Formatuuid
id*string

ID of the pending payment.

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/bank_accounts/6d1c9e2a-3f4b-4c8d-a7e6-5b2f0e9d1c47/fiat_payments/7e2a9c4b-5d1f-4b8e-9a3c-6f0e2d8b1a74/link_pending" \  -H "Content-Type: application/json" \  -d '{    "destination_account_uuid": "2b9e4f6a-1c3d-4a8b-b5e7-9f0c2d4e6a81"  }'
{  "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  }}
GET/vaults/{vault_id}/fiat_payments

Returns the incoming and outgoing transfers of every account in a vault, page by page, for reconciliation. Filter by creation time and status.

Authorization

BearerAuth
AuthorizationBearer <token>

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

In: header

Path Parameters

vault_id*string

ID of the vault. The vaults you can access are listed in the vaults claim of your token.

Formatuuid

Query Parameters

since?string

Return payments created at or after this time (Unix seconds).

until?string

Return payments created before this time (Unix seconds).

status?string

Return only payments with this status.

Value in

  • "blocked"
  • "completed"
  • "confirmed"
  • "failed"
  • "initiated"
  • "pending"
  • "pending_approval"
  • "ready_to_release"
  • "rejected"
  • "sent"
page?integer

Page number, starting at 1.

Range1 <= value
Default1

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/vaults/3c8e1f5a-7b2d-4e9c-a6f1-0d4b8e2c7a95/fiat_payments?since=1772323200&until=1775001600&page=1"
{  "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    }  ],  "pagination": {    "current_page": 1,    "per_page": 80,    "total_pages": 1,    "total_count": 2  }}
🍪 We do not track your behaviour or use any cookie on this site.