Skip to main content
POST
Simulate a deposit
Sandbox only. Production has no route for this call and answers 404 route_not_found, so this page lists one base URL instead of two. There is no production equivalent — a real deposit is what production has.
It returns as soon as the bank has been asked. No deposit exists yet — one appears when the bank’s callback lands, so read List virtual account deposits or wait for the virtual_account.deposit_funds_received webhook. Nothing in the response identifies the deposit, because it has not been created.

Authorizations

Authorization
string
header
required

The data.access_token value from Get access token.

x-api-key
string
header
required

API key issued by Kira.

Headers

X-Api-Version
string

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

Example:

"2026-06-01"

Path Parameters

virtual_account_id
string<uuid>
required

The virtual account to deposit into. It has to be one of yours, and active.

Example:

"3f6c1e8a-91d4-4f2b-9c07-5a1b8e2d4c60"

Body

application/json
via_provider
boolean
required

Reports the deposit through the bank instead of writing one directly. Anything other than true is refused rather than reinterpreted.

amount
string
required

How much to deposit in USD, as a positive decimal string with up to 2 decimals.

Example:

"100.00"

payment_type
enum<string>
default:wire

The rail the deposit arrives on.

Available options:
wire,
ach

Response

The bank was asked to report the deposit.

An acknowledgement, not a deposit.

accepted
boolean

Always true. A refusal arrives as a 400 or a 404 instead.

virtual_account_id
string

The account the deposit was asked for.

Example:

"3f6c1e8a-91d4-4f2b-9c07-5a1b8e2d4c60"

message
string

What happens next, in one sentence.