Skip to main content
GET
Get a card transaction
Sandbox only. This endpoint is available in sandbox only while we finish development. It is not available in production yet, and its request and response shapes may change before release.

Authorizations

x-api-key
string
header
required

Path Parameters

card_transaction_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"

Response

Card transaction details

A card transaction: one purchase, refund or other card-network event, across its whole life from authorization to settlement.

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"

card_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"

customer_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"

status
enum<string>
required

Current status of the card transaction. pending is the initial state before the first authorization event arrives. cleared/partially_cleared describe settled funds movement. returned is the status of a merchant refund, which is its own card transaction on the same card; the original purchase stays cleared. disputed is reserved and not emitted yet. declined means the authorization was refused and moved no money; read decline_reason and decline_code for why.

Available options:
pending,
authorized,
partially_cleared,
cleared,
auth_reversed,
expired,
returned,
disputed,
force_posted,
declined
Example:

"authorized"

cleared_amount
string
required

The settled amount, in major currency units. May differ from auth_amount and may arrive across multiple partial clearings.

Example:

"42.50"

outstanding_amount
string
required

The part of cleared_amount that no authorization covered, less any refunds, in major currency units: non-zero after a force post, or when a merchant clears more than it authorized.

Example:

"0.00"

currency
string
required

ISO 4217 currency code.

Example:

"USD"

created_at
integer
required

Unix timestamp (seconds) when Dakota first recorded this transaction.

updated_at
integer
required

Unix timestamp (seconds) of last update.

auth_amount
string | null

The authorized/held amount, in major currency units. Null only for a force-posted transaction, which arrives with no matching authorization.

Example:

"42.50"

merchant_descriptor
string | null

Raw merchant descriptor as reported by the card network.

merchant_category
string | null

Merchant category, derived from the merchant category code.

merchant_mcc
string | null

Merchant category code (MCC).

merchant_city
string | null

Merchant city as reported by the card network.

merchant_country
string | null

Merchant country as reported by the card network.

network
string | null

Card network that processed the transaction.

refund_state
enum<string> | null

How far a refund has actually progressed. Deliberately separate from status: status: returned means the card network returned the money, while refund_state: paid means it reached the customer's wallet. Both can be true at once and they answer different questions — do not treat status: returned alone as proof the customer has been paid. Null when the transaction is not a refund.

Available options:
pending,
paid,
reversed,
failed
Example:

"pending"

decline_reason
enum<string> | null

Why a declined authorization was refused. Null unless status is declined. insufficient_funds: the wallet did not have enough spendable balance. card_inactive: the card was not active (e.g. frozen or not yet activated). spend_limit_exceeded: the authorization would have exceeded the card's spend limit. merchant_not_allowed: a merchant or category restriction on the card refused this merchant. card_details_incorrect: the card number, expiry, or CVV presented did not match the card on file. suspected_fraud: the authorization was refused as suspected fraud. authorization_timeout: the authorization request timed out before a decision was reached. other: a reason not covered above, including one the card provider added after this list was written — an unrecognized reason from the card provider is reported as other rather than omitted, so this field is forward compatible.

Available options:
insufficient_funds,
card_inactive,
spend_limit_exceeded,
merchant_not_allowed,
card_details_incorrect,
suspected_fraud,
authorization_timeout,
other
Example:

"insufficient_funds"

decline_code
string | null

The raw network/processor code behind a decline, for support diagnostics. Null unless status is declined. Values can change upstream; do not branch on it — use decline_reason for that.

Example:

"INSUFFICIENT_FUNDS"

completed_at
integer | null

Unix timestamp (seconds) when the transaction reached a settled state, if it has.