curl --request GET \
--url https://api.platform.sandbox.dakota.xyz/card_transactions/{card_transaction_id} \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.platform.sandbox.dakota.xyz/card_transactions/{card_transaction_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.sandbox.dakota.xyz/card_transactions/{card_transaction_id}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.platform.sandbox.dakota.xyz/card_transactions/{card_transaction_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "2ZFHrqBHb3cTfLVkFSGmHZqdDPi",
"card_id": "2tQRvvnYkN6edEJUTmF1LzTj2ug",
"customer_id": "2tQRvD3xFcJ7bKpW9qNsT4hZmYr",
"status": "cleared",
"auth_amount": "39.00",
"cleared_amount": "39.00",
"outstanding_amount": "0.00",
"currency": "USD",
"merchant_descriptor": "COFFEE ROASTERS",
"merchant_mcc": "5814",
"merchant_city": "BROOKLYN",
"merchant_country": "USA",
"created_at": 1758211200,
"updated_at": 1758297660,
"completed_at": 1758297660
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}Get a card transaction
Get details for a specific card transaction by ID.
curl --request GET \
--url https://api.platform.sandbox.dakota.xyz/card_transactions/{card_transaction_id} \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.platform.sandbox.dakota.xyz/card_transactions/{card_transaction_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.sandbox.dakota.xyz/card_transactions/{card_transaction_id}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.platform.sandbox.dakota.xyz/card_transactions/{card_transaction_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "2ZFHrqBHb3cTfLVkFSGmHZqdDPi",
"card_id": "2tQRvvnYkN6edEJUTmF1LzTj2ug",
"customer_id": "2tQRvD3xFcJ7bKpW9qNsT4hZmYr",
"status": "cleared",
"auth_amount": "39.00",
"cleared_amount": "39.00",
"outstanding_amount": "0.00",
"currency": "USD",
"merchant_descriptor": "COFFEE ROASTERS",
"merchant_mcc": "5814",
"merchant_city": "BROOKLYN",
"merchant_country": "USA",
"created_at": 1758211200,
"updated_at": 1758297660,
"completed_at": 1758297660
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}Authorizations
Path Parameters
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.
27^[0-9A-Za-z]{27}$"1NFHrqBHb3cTfLVkFSGmHZqdDPi"
Response
Card transaction details
A card transaction: one purchase, refund or other card-network event, across its whole life from authorization to settlement.
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.
27^[0-9A-Za-z]{27}$"1NFHrqBHb3cTfLVkFSGmHZqdDPi"
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.
27^[0-9A-Za-z]{27}$"1NFHrqBHb3cTfLVkFSGmHZqdDPi"
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.
27^[0-9A-Za-z]{27}$"1NFHrqBHb3cTfLVkFSGmHZqdDPi"
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.
pending, authorized, partially_cleared, cleared, auth_reversed, expired, returned, disputed, force_posted, declined "authorized"
The settled amount, in major currency units. May differ from auth_amount and may arrive across multiple partial clearings.
"42.50"
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.
"0.00"
ISO 4217 currency code.
"USD"
Unix timestamp (seconds) when Dakota first recorded this transaction.
Unix timestamp (seconds) of last update.
The authorized/held amount, in major currency units. Null only for a force-posted transaction, which arrives with no matching authorization.
"42.50"
Raw merchant descriptor as reported by the card network.
Merchant category, derived from the merchant category code.
Merchant category code (MCC).
Merchant city as reported by the card network.
Merchant country as reported by the card network.
Card network that processed the transaction.
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.
pending, paid, reversed, failed "pending"
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.
insufficient_funds, card_inactive, spend_limit_exceeded, merchant_not_allowed, card_details_incorrect, suspected_fraud, authorization_timeout, other "insufficient_funds"
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.
"INSUFFICIENT_FUNDS"
Unix timestamp (seconds) when the transaction reached a settled state, if it has.
Was this page helpful?

