> ## Documentation Index
> Fetch the complete documentation index at: https://developer.meow.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Card Transaction Memo

> Sets or removes your memo on a card transaction, such as what the purchase was for. The memo replaces any memo already on the transaction, and it counts toward a memo requirement in your card spend policy. On some cards related entries, such as a clearing and its refund, share one memo, so it changes on all of them. Send `null` to remove it. You can safely retry with the same memo.



## OpenAPI

````yaml PUT /cards/transactions/{transaction_id}/memo
openapi: 3.1.0
info:
  title: Meow API
  description: >
    ## Overview


    The Meow API provides financial services and billing capabilities for your
    business.


    ### Core Features


    - **Financial data access**: access account information, transactions,
    balances, and payment networks.

    - **Crypto operations**: create and manage crypto contacts, and initiate
    USDC transfers across blockchain networks.

    - **Bill pay**: draft bills payable to your vendors and track them through
    payment.


    ### Bill Pay API


    The Bill Pay API lets you create bills for your vendors and track them
    through payment:


    - **Bill drafting**: create bills as drafts. Nothing is paid until someone
    approves the bill in the Meow dashboard.

    - **Attachments**: upload invoices and supporting documents to a bill.

    - **Bulk loads**: send an `Idempotency-Key` with every create so a retry
    never duplicates a bill. Drafting is capped at 500 bills per rolling 24
    hours per creator — your entity key, or the user a user-scoped key acts as.
    Creates past the cap return `429 Too Many Requests`.


    ### Billing API


    The Billing API lets you create and manage invoices and collect payments:


    - **Product management**: create and manage products with custom pricing.

    - **Customer management**: maintain invoicing customers with their
    addresses.

    - **Invoice creation**: generate invoices with line items, discounts, and
    custom notes.

    - **Payment options**: accept payments via ACH, wire, international wire,
    card, and USDC.

    - **Collection accounts**: configure accounts for payment collection.


    ### Getting Started


    Authenticate by sending your API key in the `x-api-key` request header.


    To scope requests to a specific entity, include the `x-entity-id` header.
    Use the `/api-keys/accessible-entities` endpoint to list all entities
    accessible by your API key.


    ### Rate Limits


    Each API key has a limit on requests per minute. The `RateLimit-Policy`
    header on every response shows your key's limit. The limit counts your
    requests in each clock minute, so you can spend the whole minute at once,
    and the count starts over when the minute ends.


    Responses carry the `RateLimit-Policy` and `RateLimit` headers. They show
    your limit, the requests you have left, and the seconds until the current
    minute ends.


    Meow is rolling out enforcement of this limit. Until it is enforced, going
    over the limit is logged, not rejected. Once it is, a request over the limit
    returns `429 Too Many Requests` with a `Retry-After` header, the headers
    above, and a body with `error_code` set to `rate_limited` and a `message`.


    A separate, coarser safeguard protects the API from abusive traffic and can
    also reject requests with `429`. Its response carries `Retry-After` and the
    same body, but not the quota headers.


    Whichever sends it, wait at least `Retry-After` seconds and add a small
    random delay. If the retry is limited again, back off exponentially. Send an
    `Idempotency-Key` when you retry a request that creates something or moves
    money.


    ### Error Responses


    Errors return JSON with `code`, `message`, and `debug_message`. The `code`
    aligns with FDX where possible; use `debug_message` for troubleshooting
    only.


    Common error codes:


    - `500`: Internal server error

    - `501`: Subsystem unavailable

    - `503`: Scheduled maintenance

    - `601`: Data not found

    - `602`: Customer not authorized

    - `701`: Account not found

    - `703`: Invalid input (including invalid date ranges)

    - `704`: Account type not supported

    - `705`: Account is closed

    - `801`: Transaction not found
  contact:
    name: Meow
    url: https://meow.com/
    email: support@meow.com
  version: 1.0.0
  license:
    name: Proprietary
    url: https://www.meow.com/terms-of-service
servers:
  - url: https://api.meow.com/v1
    description: Meow API Production
  - url: https://api.sandbox.meow.com/v1
    description: Meow API Sandbox
  - url: https://api.dev.meow.com/v1
    description: Meow API Development
security:
  - apiKeyAuth: []
tags:
  - name: API Keys
    description: Retrieve metadata about API keys and their accessible entities.
  - name: Accounts
    description: Access and manage accounts.
  - name: Approvals
  - name: Balances
    description: Retrieve account balances and available funds.
  - name: Bill Pay
  - name: Bills
    description: View and manage bills for vendor payments.
  - name: Cards
    description: Manage virtual and physical cards, and view transactions and insights.
  - name: Collection Accounts
    description: Manage accounts for payment collection.
  - name: Contacts
    description: Manage contacts for crypto and USDC transfers.
  - name: Customers
    description: Manage invoicing customers and their details.
  - name: Entities
  - name: Feature Access
    description: >-
      Request access to restricted features, such as international payments, and
      track the status of your requests.
  - name: Invoices
    description: Create and manage invoices.
  - name: Limits
  - name: Line Items
    description: Manage invoice line items.
  - name: Partner Onboarding
    description: Onboard entities using your partner API key.
  - name: Partner Webhooks
  - name: Payment Methods
    description: View available payment method types.
  - name: Payment Networks
    description: Manage payment networks and routing information.
  - name: Products
    description: Manage products and pricing for invoicing.
  - name: Reimbursements
    description: View reimbursement requests by employee.
  - name: Routing Numbers
    description: Validate routing numbers and retrieve bank information.
  - name: Security Policies
  - name: Simulations
    description: >-
      Trigger simulated events (inbound transfers, card authorizations,
      application approval) to test integrations end-to-end without real money
      movement. **Not available in production**: these endpoints exist only in
      sandbox and development environments and return `404 Not Found` in
      production.
  - name: Tax Forms
    description: Retrieve IRS tax forms (1099 family) issued for accounts.
  - name: Transactions
    description: Retrieve account transaction history and details.
  - name: Transfers
    description: >-
      Initiate ACH, wire, book, and crypto transfers, and retrieve transfer
      details.
  - name: Users
    description: View active users for your entity.
  - name: Webhooks
    description: Manage webhook subscriptions and inspect delivery history.
  - name: Wire Drawdowns
    description: >-
      Review vendor requests to draw funds by wire, and pre-authorize trusted
      vendors.
paths:
  /cards/transactions/{transaction_id}/memo:
    put:
      tags:
        - Cards
      summary: Update Card Transaction Memo
      description: >-
        Sets or removes your memo on a card transaction, such as what the
        purchase was for. The memo replaces any memo already on the transaction,
        and it counts toward a memo requirement in your card spend policy. On
        some cards related entries, such as a clearing and its refund, share one
        memo, so it changes on all of them. Send `null` to remove it. You can
        safely retry with the same memo.
      operationId: >-
        update_card_transaction_memo_cards_transactions__transaction_id__memo_put
      parameters:
        - name: transaction_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: The transaction's identifier.
            title: Transaction Id
          description: The transaction's identifier.
        - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCardTransactionMemoRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardTransactionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
        - apiKeyAuth:
            - cards:write
components:
  parameters:
    EntityIdHeader:
      name: x-entity-id
      in: header
      required: false
      schema:
        type: string
        format: uuid
      description: Optional `entity_id` to scope requests to a specific entity.
  schemas:
    UpdateCardTransactionMemoRequest:
      properties:
        memo:
          anyOf:
            - type: string
              maxLength: 140
              minLength: 1
            - type: 'null'
          title: Memo
          description: >-
            The memo to save, up to 140 characters. It replaces the current
            memo. Send null to remove it.
          examples:
            - Team lunch with the Catnip Coffee Co buyers
      type: object
      required:
        - memo
      title: UpdateCardTransactionMemoRequest
    CardTransactionResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: >-
            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:
          type: string
          format: uuid
          title: Card Id
          description: The card this was made on.
        card_last_four:
          type: string
          title: Card Last Four
          description: Last 4 digits of that card.
          examples:
            - '4242'
        type:
          $ref: '#/components/schemas/CardTransactionType'
          description: Which step of the lifecycle this is.
        status:
          $ref: '#/components/schemas/CardTransactionStatus'
          description: >-
            State of this step. `pending` and `approved` mean money is held but
            not moved; `cleared` means it moved; `reversed` and `failed` mean it
            did not. `expired` means the hold lapsed, which does not always rule
            out a later clearing.
        description:
          type: string
          title: Description
          description: Merchant descriptor as it was sent.
          examples:
            - WHISKER ROASTERS  PORTLAND OR
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: >-
            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.
          examples:
            - '48.20'
        currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: >-
            The currency `amount` is in. Usually the card's currency, but a
            declined foreign-currency purchase is never priced, so `amount` and
            `currency` then match the merchant's.
          examples:
            - USD
        merchant_amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Merchant Amount
          description: >-
            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`.
          examples:
            - '44.15'
        merchant_currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: The currency the merchant charged in.
          examples:
            - EUR
        merchant:
          anyOf:
            - $ref: '#/components/schemas/CardTransactionMerchant'
            - type: 'null'
          description: The merchant, when Meow could identify it.
        category:
          anyOf:
            - $ref: '#/components/schemas/CardTransactionCategory'
            - type: 'null'
          description: Spend category, when known.
        memo:
          anyOf:
            - type: string
            - type: 'null'
          title: Memo
          description: >-
            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.
          examples:
            - Team lunch with the Catnip Coffee Co buyers
        trace_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Trace Id
          description: >-
            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.
          examples:
            - card_24692111234567890123456
        decline_reason:
          anyOf:
            - type: string
            - type: 'null'
          title: Decline Reason
          description: Why this was declined, when it was.
        authorized_at:
          $ref: '#/components/schemas/Timestamp'
          description: When the purchase was made, as reported by the network.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: When Meow recorded this step.
        updated_at:
          anyOf:
            - $ref: '#/components/schemas/Timestamp'
            - type: 'null'
          description: When Meow last updated this step.
      type: object
      required:
        - id
        - card_id
        - card_last_four
        - type
        - status
        - description
        - amount
        - currency
        - merchant_amount
        - merchant_currency
        - authorized_at
        - created_at
      title: CardTransactionResponse
      description: >-
        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.
    CardTransactionType:
      type: string
      enum:
        - authorization
        - clearing
        - refund
        - reversal
        - original_credit
      title: CardTransactionType
      x-enum-varnames:
        - authorization
        - clearing
        - refund
        - reversal
        - original_credit
    CardTransactionStatus:
      type: string
      enum:
        - pending
        - approved
        - cleared
        - reversed
        - failed
        - expired
      title: CardTransactionStatus
      x-enum-varnames:
        - pending
        - approved
        - cleared
        - reversed
        - failed
        - expired
    Iso4217Code:
      type: string
      enum:
        - 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
      title: Iso4217Code
    CardTransactionMerchant:
      properties:
        name:
          type: string
          title: Name
          description: The merchant's name as Meow resolved it.
          examples:
            - Whisker Roasters
        website:
          anyOf:
            - type: string
            - type: 'null'
          title: Website
          description: The merchant's website.
          examples:
            - https://whiskerroasters.com
      type: object
      required:
        - name
      title: CardTransactionMerchant
    CardTransactionCategory:
      type: string
      enum:
        - 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
      title: CardTransactionCategory
      x-enum-varnames:
        - 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
    Timestamp:
      type: string
      format: date-time
      title: Timestamp
      description: >-
        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)).
    CustomerApiError:
      oneOf:
        - $ref: '#/components/schemas/CustomerApiServiceError'
        - $ref: '#/components/schemas/CustomerApiGatewayError'
    CustomerApiGatewayError:
      type: object
      required:
        - error_code
        - message
      properties:
        error_code:
          type: string
        message:
          type: string
    CustomerApiServiceError:
      type: object
      required:
        - code
        - message
        - debug_message
      properties:
        code:
          type: integer
        message:
          type: string
        debug_message:
          type: string
  responses:
    BadRequest:
      description: The request could not be processed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerApiError'
    Unauthorized:
      description: Authentication failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerApiGatewayError'
    ForbiddenAdminKycRequired:
      description: >-
        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.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerApiGatewayError'
    RateLimited:
      description: Too many requests.
      headers:
        Retry-After:
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerApiGatewayError'
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your Meow API key, sent in the `x-api-key` header for authentication.
      x-scopes:
        - accounts:read
        - accounts:write
        - accounts:payment-networks
        - accounts:transactions
        - accounts:balances
        - accounts:statements
        - accounts:tax-documents
        - entity:create
        - transfers:crypto:write
        - transfers:usdc:write
        - transfers:ach:write
        - transfers:wire:write
        - transfers:book:write
        - transfers:international:write
        - contacts:read
        - contacts:write
        - billing:products:read
        - billing:products:write
        - billing:customers:read
        - billing:customers:write
        - billing:invoices:read
        - billing:invoices:write
        - billing:accounts:read
        - billpay:read
        - billpay:write
        - onboarding:read
        - onboarding:write
        - cards:read
        - cards:write
        - reimbursements:read
        - users:read
        - users:write
        - webhooks:read
        - webhooks:write
        - partner:onboarding:read
        - partner:onboarding:write
        - partner:webhooks:read
        - partner:webhooks:write
        - simulations:write
        - banking:limits:read
        - banking:limits:write
        - feature-access:read
        - feature-access:write

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.