Blockchain Payments
Blockchain payments are on-chain transfers into and out of an account's wallets.
Incoming deposits appear automatically once confirmed. Outgoing payments are validated
and queued; follow them by polling or through webhooks. As with fiat payments, a
four-eyes policy can hold an outgoing payment in
pending_approval until it's approved. Check the network fee first with
GET /gas_fees.
/accounts/{account_id}/blockchain_wallets/{blockchain_wallet_id}/blockchain_paymentsReturns the incoming and outgoing transfers of a wallet, page by page. Filter by status.
Authorization
BearerAuth Token from POST /sign_in, sent as Authorization: Bearer <token>.
In: header
Path Parameters
ID of the account.
uuidID of the blockchain wallet.
uuidQuery Parameters
Return only payments with this status.
Value in
- "blocked"
- "completed"
- "confirmed"
- "failed"
- "initiated"
- "pending"
- "pending_approval"
- "ready_to_release"
- "rejected"
- "sent"
Page number, starting at 1.
1 <= value1Number of results per page. Defaults to 80.
1 <= valueResponse Body
application/json
application/json
application/json
curl -X GET "https://example.com/accounts/8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23/blockchain_wallets/9a7b3c2d-1e4f-4a6b-8c9d-0e1f2a3b4c5d/blockchain_payments?page=1&per_page=80"{ "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 } ], "pagination": { "current_page": 1, "per_page": 80, "total_pages": 1, "total_count": 2 }}/accounts/{account_id}/blockchain_wallets/{blockchain_wallet_id}/blockchain_paymentsCreates an outgoing on-chain payment of amount currency for the wallet in the path.
Depa validates and queues it; follow its status by polling or through webhooks. If a
four-eyes policy covers the amount, it waits in pending_approval until approved.
Estimate the network fee first with GET /gas_fees.
Authorization
BearerAuth Token from POST /sign_in, sent as Authorization: Bearer <token>.
In: header
Path Parameters
ID of the account.
uuidID of the blockchain wallet.
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/blockchain_wallets/9a7b3c2d-1e4f-4a6b-8c9d-0e1f2a3b4c5d/blockchain_payments" \ -H "Content-Type: application/json" \ -d '{ "amount": 500, "currency": "USDC" }'{ "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}/blockchain_wallets/{blockchain_wallet_id}/blockchain_payments/{id}Returns an on-chain transfer and its current status.
Authorization
BearerAuth Token from POST /sign_in, sent as Authorization: Bearer <token>.
In: header
Path Parameters
ID of the account.
uuidID of the blockchain wallet.
uuidID of the payment.
uuidResponse Body
application/json
application/json
application/json
curl -X GET "https://example.com/accounts/8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23/blockchain_wallets/9a7b3c2d-1e4f-4a6b-8c9d-0e1f2a3b4c5d/blockchain_payments/0c4f8a2e-6b1d-4e7a-8f3c-9d5b2a1e7c60"{ "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}/blockchain_wallets/{blockchain_wallet_id}/blockchain_payments/{id}/approveApproves 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 Token from POST /sign_in, sent as Authorization: Bearer <token>.
In: header
Path Parameters
ID of the account.
uuidID of the blockchain wallet.
uuidID of the payment to approve.
uuidResponse Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/accounts/8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23/blockchain_wallets/9a7b3c2d-1e4f-4a6b-8c9d-0e1f2a3b4c5d/blockchain_payments/0c4f8a2e-6b1d-4e7a-8f3c-9d5b2a1e7c60/approve"{ "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}/blockchain_wallets/{blockchain_wallet_id}/blockchain_payments/{id}/rejectRejects 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 Token from POST /sign_in, sent as Authorization: Bearer <token>.
In: header
Path Parameters
ID of the account.
uuidID of the blockchain wallet.
uuidID of the payment to reject.
uuidResponse Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/accounts/8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23/blockchain_wallets/9a7b3c2d-1e4f-4a6b-8c9d-0e1f2a3b4c5d/blockchain_payments/0c4f8a2e-6b1d-4e7a-8f3c-9d5b2a1e7c60/reject"{ "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 }}