Skip to main content
GET
Get a deposit

Authorizations

Authorization
string
header
required

The data.access_token value from Get access token.

Headers

X-Api-Version
string

Version applied to this request. It wins over your account's pinned version — see Versioning.

Example:

"2026-04-14"

Path Parameters

virtual_account_id
string<uuid>
required

UUID of the account the deposit arrived in.

deposit_id
string<uuid>
required

UUID of the deposit, as id in a deposit list or deposit_id in a deposit webhook.

Response

The deposit.

One deposit.

source repeats what sender holds and adds the rail and its tracking numbers. Both are null together, when the bank has not told us who sent the money.

id
string<uuid>

Deposit UUID.

virtual_account_id
string<uuid>

UUID of the account the money arrived in.

amount
string

How much arrived, before charges, as a decimal string.

currency
string

Currency of amount.

status
string

Where the deposit has got to — see Virtual account values. Available options: PENDING, COMPLETED, FAILED, REFUNDED, KYT_PENDING, KYT_REJECTED, NEEDS_ACTION.

sender
object | null

Who sent the money, as the bank reported it.

recipient
object

The user who owns the account the money arrived in. Every field is null if that user can no longer be read.

payment_rail
string | null

How the money travelled, such as wire or ach_push. Mirrors source.payment_rail.

settlement_tx_hash
string | null

On-chain transaction that settled the deposit, the same as settlement.tx_hash. null on a fiat account, and until settlement runs.

source
object | null

Who sent the money, plus what the rail recorded about the transfer.

fees
object

What was charged on this deposit. Every figure is a decimal string, and they are all 0.00 when nothing was charged. On a crypto inbound they read 0.00 until it is COMPLETED, and stay 0.00 if it is not credited.

net_amount
string

What reaches the account, as a decimal string, never below 0.00. It is what was credited only once status is COMPLETED; before that it is what is expected to be credited, and a FAILED, KYT_REJECTED or REFUNDED deposit credited nothing, whatever this reads. A crypto inbound stopped before it was priced shows the tokens that arrived, with the token in net_currency.

net_currency
string

Currency of net_amount: USD once the deposit is priced, otherwise the currency it arrived in.

fee_total
string

Everything charged on this deposit, your markup included, as a decimal string: the same figure as fees.total_fees.

fee_currency
string

Currency of fee_total, the same as net_currency.

markup_total
string

The part of fee_total that is your own markup (fees.client_markup), as a decimal string. 0.00 when none was charged.

quotation
object

The itemized price a crypto inbound was converted at: every fee line, the totals and the rate, shaped like the quotation object. Absent on every other deposit.

depeg_cost
string

What the conversion did not credit because the token traded below one dollar, as a decimal string. It is part of the rate, not a fee, so it is in no fee line: see How you're charged. 0.00 at par. Present only with quotation.

events
object[]

The stages the deposit went through, oldest first. Only a crypto inbound records them; every other deposit returns []. Absent when the stages could not be read.

settlement
object | null

What a crypto-mode account converted the deposit into and sent to its wallet, read from the send itself, so a later change to the account's destination never rewrites it. null on a fiat account, and until the deposit settles: the account's mode tells which.

created_at
string

When the deposit was first recorded, as an ISO 8601 timestamp.

updated_at
string

When it last changed, as an ISO 8601 timestamp.

metadata
object

Key/value pairs attached to the deposit. {} when there are none.

rfi
object | null

The open request for information holding this deposit, or null. Present whenever status reads NEEDS_ACTION, and names the request to answer.

Example: