Create a bank transfer

post/api/tradfi/v1/bank-transfers

Creates a new bank transfer using the walletId and bankAccountId as counterparties. Most details are inferred from bankAccountId. The walletId and bankAccountId must be owned by the same enterpriseId.

Request Body

Bank transfer details including amount, direction, and counterparties
amount string
The absolute value of the total amount of funds to be transferred as a decimal string (e.g., "500.00" for $500 USD). Include decimal places where applicable. Mutually exclusive with `baseAmount`.
Min length: >= 1 characters
applyInstantCredit boolean
Whether to apply instant credit to the transfer.
Default: false
bankAccountId string required
The bank account to use. Determines the bank rails. Presently, only ACH accounts are supported.
baseAmount string
The transfer amount in the currency's smallest unit as a string (e.g., "50000" for $500.00 USD, where the base unit is cents). The value is converted to a decimal using the currency's unit precision (e.g., 2 for USD, 0 for JPY). Mutually exclusive with `amount`.
Min length: >= 1 characters
id string required
Client-generated transfer ID. Serves as the idempotency key. Prefer UUID v4, v5, or v7.
transferDirection string required
The direction of the transfer. Only `in` is currently supported.
Allowed value: in
walletId string required
The Go Account wallet to use as counterparty.
Min length: >= 1 characters

201 Response

amount string required
The absolute value of the total amount of funds to be transferred to or from the related bank. Always returned as a decimal string with the currency's full precision (e.g., "500.00" for USD), regardless of whether the request used `amount` or `baseAmount`.
applyInstantCredit boolean required
Whether to apply "instant credit" to the transfer. This allows funds to be made available to customer from the CaaS reserve account if they are available.
bankAccountId string required
The bank account used for the transfer. This also determines the bank rails used for the transfer.
createdAt string <date-time>required
When the transfer was created/initiated.
enterpriseId string required
The enterprise related to the transfer. Determined automatically by the walletId.
estimatedEffectiveOn
string or null
<date>required
The date when the transfer is expected to become "effective" or "posted" by the related bank. Without instant credit this will usually be either T+1 or T+4 depending on risk profile of the related enterprise and bank account. Null when not yet determined.
id string required
The ID of the transfer. This should be generated by the client (prefer v4, v5, or v7) because it also serves as the idempotency key. Using an automatically generated ID provides no idempotency guarantees.
instantCreditLiability boolean required
Whether the current transfer counts against the CaaS reserve for instant credit. Only applies to transfers that opted for applyInstantCredit and have not yet settled. Once settled, transitions to false.
memoId string required
An automatically generated memo used for matching with bank transfers. Informational only.
settledAt
string or null
<date-time>required
When the transfer was settled (posted by the bank). Null until status is settled.
status string required
The status of a transfer. `initiated` means newly created and not yet completed processing. `processing` means currently processing with bank providers with funds in flight. `settled` means funds successfully processed and no longer flagged as instantCreditLiability. `reversed` means a previously settled transfer was reversed by the processor. `failed` means an unrecoverable error occurred before settlement.
Allowed values: initiated processing settled reversed failed
transferDirection string required
The direction of the transfer. `in` is a deposit (funds from bank to wallet), `out` is a withdrawal (funds from wallet to bank).
Allowed value: in
transferType string required
The bank rails being used by the transfer. Inferred from the bankAccountId.
Allowed value: ach-us
txid string required
The transaction ID correlated with wallet platform. Can also be used in GET requests as an identifier.
walletId string required
The wallet (Go Account) used as counterparty to the transfer. Also determines the related enterprise.

400 Response

errorName string required
error string required

401 Response

errorName string required
error string required

404 Response

errorName string required
error string required

500 Response

errorName string required
error string required