---
title: "List Card Transactions"
method: GET
path: "/cards/transactions"
tags: ["Cards"]
---

# List Card Transactions

`GET /cards/transactions`

## Request

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

Returns transactions for the cards you have access to. A purchase produces several entries: an authorization when the merchant places the hold, a clearing when the money moves, and a refund or reversal if it comes back. Entries that share a `trace_id` are the same purchase; it can be absent, in which case an entry stands alone. Every amount is positive and `type` carries the direction, so to total actual spend take the clearing entries minus the refund and reversal entries: an authorization and its clearing are the same money, so counting both doubles the purchase. Filter by card, status, merchant, date range, or amount.

## Query parameters

- `public_filters` ListCardTransactionsFilter
  - `card_id` string, uuid, nullable: Only transactions on this card.
  - `statuses` CardTransactionStatus[], nullable: Only transactions in these states.
  - `merchant_name` string, nullable: Only transactions whose merchant matches.
  - `trace_id` string, nullable: All entries of one purchase, by its trace_id.
  - `from_authorized_at` string, date-time, nullable: Only transactions authorized at or after this.
  - `to_authorized_at` string, date-time, nullable: Only transactions authorized at or before this.
  - `amount_min` union: Only transactions of at least this amount.
    - number
    - string
  - `amount_max` union: Only transactions of at most this amount.
    - number
    - string
- `limit` integer: Maximum number of results to return.
- `offset` string, nullable: Opaque offset identifier for pagination. Use the nextOffset from a previous response.

## Headers

- `x-entity-id` string, uuid

## Response `200`

Successful Response

- CardTransactionsResponse
  - `data` CardTransactionResponse[], required: Transactions on the cards you have access to.
    - `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)).
  - `page` PageMetadata
    - `nextOffset` string, nullable: Opaque offset identifier.

## 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)
