Skip to main content
GET
Get details of a specific auto account transaction

Authorizations

x-api-key
string
header
required

Path Parameters

auto_transaction_id
string
required

Unique identifier of the auto account transaction KSUID is a 27-character globally unique ID that combines a timestamp with a random component. Used for all entity identifiers in the Dakota platform.

Required string length: 27
Pattern: ^[0-9A-Za-z]{27}$
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

Response

Auto account transaction details

A transaction relating to an auto account

id
string
required

KSUID is a 27-character globally unique ID that combines a timestamp with a random component. Used for all entity identifiers in the Dakota platform.

Required string length: 27
Pattern: ^[0-9A-Za-z]{27}$
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

client_id
string
required

KSUID is a 27-character globally unique ID that combines a timestamp with a random component. Used for all entity identifiers in the Dakota platform.

Required string length: 27
Pattern: ^[0-9A-Za-z]{27}$
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

auto_account_id
string
required

KSUID is a 27-character globally unique ID that combines a timestamp with a random component. Used for all entity identifiers in the Dakota platform.

Required string length: 27
Pattern: ^[0-9A-Za-z]{27}$
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

destination_id
string
required

KSUID is a 27-character globally unique ID that combines a timestamp with a random component. Used for all entity identifiers in the Dakota platform.

Required string length: 27
Pattern: ^[0-9A-Za-z]{27}$
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

type
enum<string>
required

Type of transaction.

Available options:
onramp,
offramp,
swap
Example:

"onramp"

status
enum<string>
required

Current status of a transaction.

Auto-account transactions (GET /auto-transactions and the transaction.auto.* events) return the snake_case values.

Wallet transactions, the wallet.transaction.* events and the auto-account transactions listed by GET /transactions (the WalletTransaction, Transaction, NestedTransaction, FXPageKnownTransaction and FXTransaction objects) return a display label such as Waiting For Signature or Success, meant for showing to people. Branch on their status_code instead.

canceled is a legacy spelling and is never returned.

Available options:
timed_out,
not_started,
in_progress,
awaiting_confirmation,
pending,
processing,
completed,
invalid,
failed,
cancelled,
canceled,
reversed,
rejected,
broadcasted,
pending_return,
returned,
pending_reversal,
paused_credits,
Timed Out,
Not Started,
In Progress,
Awaiting Confirmation,
Success,
Invalid,
Failed,
Cancelled,
Reversed,
Rejected,
Needs Manual Input,
Waiting For Signature,
Broadcasted,
Pending Return,
Returned,
Pending Reversal,
Unknown
created_at
integer
required

Unix timestamp when the transaction was created.

Example:

1234567890

updated_at
integer
required

Unix timestamp when the transaction was last updated.

Example:

1234567890

provider_id
string
required

Provider identifier

Example:

"dakota"

provider_external_id
string
required

Provider external transaction identifier

Example:

"txn_123456789"

provider_status
string
required

Status reported by provider

Example:

"processing"

fx_pricing
object

How the FX rate and fee on this transaction were priced. Absent when the transaction has no FX pricing, including every transaction created before it was introduced. Transaction and receipt endpoints omit it when there is none. In events (webhooks, GET /events and webhook history) a transaction.auto.updated or transaction.one_off.updated event carries fx_pricing set to null when the provider withdrew a previously quoted price and nothing replaced it; discard any quoted pricing you hold. The null may also appear when the provider repeats a withdrawal. A final pricing is never withdrawn.

fx_outgoing_amounts
object

Version 1 foreign outgoing amount_state unknown, with exact known source amount/currency and destination currency. Not a quote.

fx_settlement
object

Version 1 verified outgoing native settlement and bank payout evidence. Absent is unknown.

fx_amounts
object

Versioned incoming FX evidence: the foreign amount that arrived (source_asset, source_amount) and the net token output. In v2, source_amount_state is unknown while the original foreign amount is not yet known. The settled USD amount is not part of this object; see the receipt's converted amount.

failure_reason
string

Dakota's explanation of why the transaction failed, present if status is 'failed'. Descriptive text for display; use failure_code for logic.

failure_code
enum<string>

Stable, machine-readable reason a transaction failed, was returned, or was reversed. Pair it with the human-readable failure_reason, return_reason or reversal_reason, which carry Dakota's message for this code. Switch on failure_code, not on the message text, which may be reworded.

failure_code is not a status: read status for the outcome. A returned payout keeps its code on returned and on the later reversed (the refund to the source wallet); payouts returned before this behaviour shipped may carry none. payment_returned is the code for a return whose bank reason does not map to a more specific value, including a return that carried no bank code at all. A payout that completes after a return (for example a resent wire) or after a rejected ACH reversal has no failure_code.

The set of values is open: Dakota may add codes without a new API version, so treat any value you do not recognize like processing_error. processing_error is the general code for anything not listed; contact support with the transaction ID.

Available options:
recipient_account_not_found,
recipient_account_number_invalid,
recipient_account_blocked,
recipient_account_type_unsupported,
recipient_refused,
recipient_name_mismatch,
recipient_details_missing,
recipient_address_invalid,
recipient_bank_routing_invalid,
recipient_bank_bic_invalid,
limit_exceeded,
payment_reversed_duplicate,
payment_reversed_wrong_recipient,
payment_reversed_wrong_amount,
payment_returned,
processing_error
Example:

"recipient_account_not_found"

hold_reason
string | null

Why this transaction is held, when it is held for a reason you can act on. status stays processing while it is held. null when the transaction is not held, or is held for a reason that is not shared.

  • proof_of_address_required: the customer is an individual without an approved proof of address who went over the rolling 7-day volume limit. It is set on the deposit that went over the limit and on every later deposit until a valid proof of address is approved. When one is approved, hold_reason returns to null.

An open set: ignore values you do not recognise. The value is sent in transaction.auto.created and every change in transaction.auto.updated.

Example:

"proof_of_address_required"

completed_at
integer

Unix timestamp when the transaction was completed.

Example:

1234567890

receipt
object

Detailed receipt information for a transaction

crypto_details
object

Blockchain-specific details for crypto transactions

sender_details
object

Originating sender details for onramp/offramp/swap transactions. Populated when source-side metadata is available (e.g., from inbound wire/ACH source data).

return_code
string

Return code (e.g., R01) when the transaction was returned by the receiving bank. NACHA/Fedwire codes for US bank rails; international (SWIFT) wire returns carry no NACHA code and may return a reduced amount after intermediary fees. A return can arrive with no code; failure_code is still set (to payment_returned). Cleared if the transaction later completes.

Example:

"R01"

return_reason
string

Dakota's explanation of why the payment was returned. Descriptive text for display; use failure_code for logic.

Example:

"The recipient account could not be found."

return_initiated_at
integer

Unix timestamp when the return was initiated.

Example:

1234567890

return_deadline
integer

Unix timestamp deadline for return processing.

Example:

1234567890

net_recovered_amount
string | null

Decimal amount recovered when a returned payout came back short and the customer bore the deduction, denominated in the transaction's own currency (the same basis as its face amount), so face amount minus this value is what the customer went without. Present only in that case; it never means zero. It is set once the refund to the source wallet has been sized. It is absent on pending_return and returned whatever came back, can first appear on pending_reversal, and stays on reversed. After the refund is sized, absence means the customer was refunded the face amount in full, because the whole amount came back, Dakota absorbed the bank's deduction (a refund made before the bank reported what it returned), or the rail reports no net figure (ACH never does). Cleared, like the other return fields, if the payout later completes (for example a returned wire that was resent and delivered).

Example:

"24955"

reversal_reason
string

ACH reversal reason when the originator reverses the transaction (e.g., duplicate, receiver_incorrect). Cleared if the transaction later completes (the bank rejected the reversal).

Example:

"duplicate"

reversal_initiated_at
integer

Unix timestamp when the reversal was initiated. Cleared if the transaction later completes (the bank rejected the reversal).

Example:

1234567890