---
title: "Get Card Transaction"
method: GET
path: "/cards/transactions/{transaction_id}"
tags: ["Cards"]
---

# Get Card Transaction

`GET /cards/transactions/{transaction_id}`

## Request

- Base URL: `https://api.meow.com/v1`
- URL: `https://api.meow.com/v1/cards/transactions/{transaction_id}`
- Auth: API key in header `x-api-key`
- TypeScript: <https://skmtc.dev/meow/apis/meow-api/docs/cards/transactions/:transaction_id/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns one entry from a card's transaction history, by the `id` returned in List Card Transactions or in Get Card Spending Insights. An entry is one step of a purchase, so to see the whole purchase filter List Card Transactions by this entry's `trace_id`.

## Path parameters

- `transaction_id` string, uuid, required: The transaction's identifier.

## Headers

- `x-entity-id` string, uuid

## Response `200`

Successful Response

- CardTransactionResponse: A single movement in a card transaction's life. A purchase produces several of these: an `authorization` when the merchant places the hold, then a `clearing` when the money actually moves, and a `refund` or `reversal` if it comes back. Entries sharing a `trace_id` are the same purchase. Do not add up every entry. An `authorization` and the `clearing` that follows it are the same money: the hold, then the settlement that replaces it. Every amount is positive, and `type` carries the direction, so to total what was actually spent take the `clearing` entries minus the `refund` and `reversal` entries, and read `authorization` as money held but not yet taken. Whether a state is final depends on the issuer, so do not infer it from `status` alone: an expired authorization can still be captured late on some networks. Treat `cleared`, `reversed` and `failed` as settled and re-read anything else.
  - `id` string, uuid, required: Meow's identifier for this entry. It is stable, but it identifies one step rather than the whole purchase, so an authorization and its later clearing have different ids.
  - `card_id` string, uuid, required: The card this was made on.
  - `card_last_four` string, required: Last 4 digits of that card.
  - `type` 'authorization' | 'clearing' | 'refund' | 'reversal' | 'original_credit', required
  - `status` 'pending' | 'approved' | 'cleared' | 'reversed' | 'failed' | 'expired', required
  - `description` string, required: Merchant descriptor as it was sent.
  - `amount` string, required: Amount billed to the card, in the card's currency. Always positive, including on a refund or reversal, where `type` is what tells you the money came back. An authorization and its clearing carry the same amount, so summing both double-counts the purchase.
  - `currency` 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SLE' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VED' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XBA' | 'XBB' | 'XBC' | 'XBD' | 'XCD' | 'XDR' | 'XOF' | 'XPD' | 'XPF' | 'XPT' | 'XSU' | 'XTS' | 'XUA' | 'XXX' | 'YER' | 'ZAR' | 'ZMW' | 'ZWG' | 'ZWL', required
  - `merchant_amount` string, required: Amount in the currency the merchant charged in, always positive. Differs from `amount` on a foreign-currency purchase that was priced; divide the two to get the rate applied. They are equal, and the rate undefined, when `currency` equals `merchant_currency`.
  - `merchant_currency` 'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SLE' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VED' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XBA' | 'XBB' | 'XBC' | 'XBD' | 'XCD' | 'XDR' | 'XOF' | 'XPD' | 'XPF' | 'XPT' | 'XSU' | 'XTS' | 'XUA' | 'XXX' | 'YER' | 'ZAR' | 'ZMW' | 'ZWG' | 'ZWL', required
  - `merchant` CardTransactionMerchant
    - `name` string, required: The merchant's name as Meow resolved it.
    - `website` string, nullable: The merchant's website.
  - `category` 'Advertising' | 'Airlines' | 'Books and Newspapers' | 'Car Rental' | 'Charity' | 'Clothing' | 'Electronics' | 'Entertainment' | 'Facilities Expenses' | 'Financial Institutions and Fees' | 'Fuel' | 'Furniture' | 'Gifts and Flowers' | 'Government Services' | 'Grocery' | 'Ground Transportation' | 'Insurance' | 'Legal' | 'Lodging' | 'Meals' | 'Medical' | 'Memberships and Dues' | 'Office Supplies' | 'Parking' | 'Personal Care' | 'Political' | 'Professional Services' | 'Recruiting' | 'Rent' | 'Restaurants' | 'Shipping' | 'Software' | 'Taxes' | 'Taxis and Rideshare' | 'Technology Infrastructure' | 'Training and Education' | 'Travel Services' | 'Utilities' | 'Vehicle Expenses'
  - `memo` string, nullable: Your memo for this transaction, such as what the purchase was for. Null when it has none. On some cards related entries, such as a clearing and its refund, share one memo.
  - `trace_id` string, nullable: Identifier for the purchase this entry belongs to. Entries sharing one are the same purchase, so filter List Card Transactions by it to tie an authorization to its later clearing or refund. It is the same trace_id the rest of Meow shows for this transaction. Absent on an entry the network gave no identifier for, which then stands alone.
  - `decline_reason` string, nullable: Why this was declined, when it was.
  - `authorized_at` string, date-time, required: ISO 8601 date-time in the format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` (per [IETF RFC 3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)).
  - `created_at` string, date-time, required: ISO 8601 date-time in the format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` (per [IETF RFC 3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)).
  - `updated_at` string, date-time: ISO 8601 date-time in the format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` (per [IETF RFC 3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)).

## Other responses

- `400`: The request could not be processed.
- `401`: Authentication failed.
- `403`: The API key is not authorized for this operation, or the user of a global API key is an admin or controller without approved KYC. The KYC case returns the message `KYC is required for controllers and admins.` until that user completes KYC in the Meow dashboard.
- `429`: Too many requests.

---

[API](https://skmtc.dev/meow/apis/meow-api.md) - [All operations](https://skmtc.dev/meow/apis/meow-api/llms.txt) - [OpenAPI document](https://skmtc.dev/meow/apis/meow-api/revisions/ea2d7e25b63b?raw)
