Meow Cards API

Manage virtual and physical cards, and view transactions and insights.

OpenAPI Specification

meow-cards-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Meow Accounts Cards 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.


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


    ### 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
security:
- apiKeyAuth: []
tags:
- name: Cards
  description: Manage virtual and physical cards, and view transactions and insights.
paths:
  /cards:
    post:
      tags:
      - Cards
      summary: Create Card
      description: Creates a virtual card scoped to a single merchant and spend limit. Set `single_use` to `true` (default) for a one-shot card that auto-cancels after the first authorization, or `false` for a multi-use card that stays active until expiry or explicit revoke. Retrieve the PAN by calling `POST /cards/{card_id}/pan`.
      operationId: create_card_cards_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCardRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCardResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - apiKeyAuth:
        - cards:write
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
    get:
      tags:
      - Cards
      summary: List Cards
      description: Returns the cards you have access to. As an admin or viewer you see all entity cards; as a card manager you see your team's cards; as a card user you see only your own.
      operationId: list_cards_cards_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 200
          minimum: 1
          default: 10
          title: Limit
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 1000000
          minimum: 0
          default: 0
          title: Offset
      - name: query
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Query
      - name: statuses
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/CardStatus'
          - type: 'null'
          title: Statuses
      - name: card_types
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/CardFormFactor'
          default: []
          title: Card Types
      - name: from_created_time
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: From Created Time
      - name: to_created_time
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: To Created Time
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeowPaginatedList_CardResponse_'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - apiKeyAuth:
        - cards:read
  /cards/payment-token:
    post:
      tags:
      - Cards
      summary: Create Payment Token
      description: Creates a Shared Payment Token for merchants that support the Agentic Commerce Protocol. Returns a token string, not full card details. Use a payment token instead of a card when the merchant accepts one. This endpoint is not yet available.
      operationId: create_payment_token_cards_payment_token_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePaymentTokenRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentTokenResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - apiKeyAuth:
        - cards:write
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
  /cards/{card_id}/revoke:
    post:
      tags:
      - Cards
      summary: Revoke Card
      description: Immediately revoke a card. Revoke a card whose purchase failed to close it before it expires.
      operationId: revoke_card_cards__card_id__revoke_post
      parameters:
      - name: card_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Card Id
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RevokeCardResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - apiKeyAuth:
        - cards:write
  /cards/{card_id}/pan:
    post:
      tags:
      - Cards
      summary: Get Card PAN
      description: Returns the full card number (PAN), CVC, and expiration for a card created via the API. Requires the `cards:write` scope. Pass the `card_id` returned by Create Card. This can be called only once per card; subsequent calls return an error. Revoke and recreate the card if the PAN is needed again.
      operationId: get_card_pan_cards__card_id__pan_post
      parameters:
      - name: card_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Card Id
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardPanResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - apiKeyAuth:
        - cards:write
  /cards/transactions:
    get:
      tags:
      - Cards
      summary: List Card Transactions
      description: Returns transactions for cards you have access to. Supports filtering by card, date range, status, merchant, and amount.
      operationId: list_card_transactions_cards_transactions_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 200
          minimum: 1
          default: 10
          title: Limit
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          maximum: 1000000
          minimum: 0
          default: 0
          title: Offset
      - name: query
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 140
          - type: 'null'
          title: Query
      - name: merchant_name
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 140
          - type: 'null'
          title: Merchant Name
      - name: merchant_ids
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              format: uuid
          - type: 'null'
          title: Merchant Ids
      - name: cardholder_name
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 140
          - type: 'null'
          title: Cardholder Name
      - name: cardholder_emails
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              format: email
          - type: 'null'
          title: Cardholder Emails
      - name: card_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Card Id
      - name: card_ids
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              format: uuid
          - type: 'null'
          title: Card Ids
      - name: card_nickname
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 140
          - type: 'null'
          title: Card Nickname
      - name: card_is_physical
        in: query
        required: false
        schema:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Card Is Physical
      - name: card_last_4
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 4
          - type: 'null'
          title: Card Last 4
      - name: from_original_created_time
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: From Original Created Time
      - name: to_original_created_time
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: To Original Created Time
      - name: statuses
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/ExtAwxCardTransactionStatus'
          - type: 'null'
          title: Statuses
      - name: is_missing_requirements
        in: query
        required: false
        schema:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Missing Requirements
      - name: sort_by
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/AwxTransactionSortEnum'
          default: ORIGINAL_CREATED_TIME
      - name: is_ascending
        in: query
        required: false
        schema:
          type: boolean
          default: false
          title: Is Ascending
      - name: network_transaction_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Network Transaction Id
      - name: amount_min
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            maximum: 1000000000.0
            minimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          - type: 'null'
          title: Amount Min
      - name: amount_max
        in: query
        required: false
        schema:
          anyOf:
          - type: number
            maximum: 1000000000.0
            minimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          - type: 'null'
          title: Amount Max
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeowPaginatedList_AwxCardTransactionBusinessResponse_'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - apiKeyAuth:
        - cards:read
  /cards/insights:
    get:
      tags:
      - Cards
      summary: Get Card Spending Insights
      description: 'Returns entity-wide spending analytics for your entity: total spend, cashback earned, top merchants, top expenses, and weekly trends. Requires admin, viewer, or card manager access.'
      operationId: get_card_insights_cards_insights_get
      parameters:
      - name: from_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: From Date
      - name: to_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: To Date
      - name: limit_top_expenses
        in: query
        required: false
        schema:
          type: integer
          maximum: 25
          minimum: 1
          default: 5
          title: Limit Top Expenses
      - name: limit_top_merchants
        in: query
        required: false
        schema:
          type: integer
          maximum: 25
          minimum: 1
          default: 5
          title: Limit Top Merchants
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AwxCardInsightsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - apiKeyAuth:
        - cards:read
  /cards/{card_id}:
    get:
      tags:
      - Cards
      summary: Get Card
      description: Returns details of a specific card you have access to.
      operationId: get_card_cards__card_id__get
      parameters:
      - name: card_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Card Id
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - apiKeyAuth:
        - cards:read
    patch:
      tags:
      - Cards
      summary: Update Card
      description: Updates a card you created via the API. Freeze or unfreeze it with the `status` field, replace its spend limits with `spending_controls`, or change its allowed merchant categories. All fields are optional; omitted fields are left unchanged.
      operationId: update_card_cards__card_id__patch
      parameters:
      - name: card_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Card Id
      - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCardRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - apiKeyAuth:
        - cards:write
  /cards/{card_id}/details:
    get:
      tags:
      - Cards
      summary: Get Card Details
      description: 'Returns operational details of a card: billing address, delivery address, linked banking account, and shipping tracking URL.'
      operationId: get_card_details_cards__card_id__details_get
      parameters:
      - name: card_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Card Id
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardDetailsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - apiKeyAuth:
        - cards:read
components:
  schemas:
    WeeklyTimeSeries:
      properties:
        week:
          type: string
          format: date
          title: Week
        data:
          items:
            $ref: '#/components/schemas/SpendInsight'
          type: array
          title: Data
      type: object
      required:
      - week
      - data
      title: WeeklyTimeSeries
    MerchantRestrictionType:
      type: string
      enum:
      - allow
      - block
      title: MerchantRestrictionType
      x-enum-varnames:
      - allow
      - block
    MerchantSpendInsight:
      properties:
        total:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Total
        count:
          type: integer
          title: Count
        merchant:
          type: string
          title: Merchant
        logo_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Logo Url
        website:
          anyOf:
          - type: string
          - type: 'null'
          title: Website
      type: object
      required:
      - total
      - count
      - merchant
      title: MerchantSpendInsight
    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
    PaymentTokenResponse:
      properties:
        payment_type:
          type: string
          const: spt
          title: Payment Type
          default: spt
        token:
          type: string
          title: Token
          description: Shared Payment Token ID.
        provider:
          type: string
          title: Provider
          default: stripe
        usage_limits:
          $ref: '#/components/schemas/TokenUsageLimits'
        metadata:
          $ref: '#/components/schemas/CardMetadata'
      type: object
      required:
      - token
      - usage_limits
      - metadata
      title: PaymentTokenResponse
    DbIndustry:
      properties:
        mcc:
          type: string
          pattern: '[0-9]{4}$'
          title: Mcc
        description:
          type: string
          title: Description
        irs_description:
          anyOf:
          - type: string
          - type: 'null'
          title: Irs Description
      type: object
      required:
      - mcc
      - description
      - irs_description
      title: DbIndustry
    CardFormFactor:
      type: string
      enum:
      - physical
      - virtual
      title: CardFormFactor
      x-enum-varnames:
      - physical
      - virtual
    ExtAwxCardTransactionStatus:
      type: string
      enum:
      - APPROVED
      - PENDING
      - FAILED
      - CLEARED
      - REVERSED
      - EXPIRED
      title: ExtAwxCardTransactionStatus
      x-enum-varnames:
      - APPROVED
      - PENDING
      - FAILED
      - CLEARED
      - REVERSED
      - EXPIRED
    CardMetadata:
      properties:
        card_id:
          type: string
          format: uuid
          title: Card Id
          description: Identifier for the issued card.
        task_description:
          type: string
          title: Task Description
          description: What you are purchasing.
      type: object
      required:
      - card_id
      - task_description
      title: CardMetadata
    CardDetailsResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Unique card identifier.
        billing_address:
          $ref: '#/components/schemas/JAddress'
          description: Card billing address.
        delivery_address:
          anyOf:
          - type: string
          - type: 'null'
          title: Delivery Address
          description: Masked delivery address for the physical card.
        debit_account:
          $ref: '#/components/schemas/CardDebitAccount'
          description: Linked banking account.
        tracking_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Tracking Url
          description: Shipping tracking URL for the physical card.
      type: object
      required:
      - id
      - billing_address
      - debit_account
      title: CardDetailsResponse
    TransactionEarnedCashback:
      properties:
        dollars:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Dollars
        percentage:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,4}0*$
          title: Percentage
          description: Percentage represented as 4 digit decimal. 0.0001 = 0.01%. Max is 0.05 = 5%
      type: object
      required:
      - dollars
      - percentage
      title: TransactionEarnedCashback
    UpdateCardRequest:
      properties:
        status:
          anyOf:
          - $ref: '#/components/schemas/CardStatusUpdate'
          - type: 'null'
          description: Set to `inactive` to freeze the card or `active` to unfreeze it.
        nickname:
          anyOf:
          - type: string
            maxLength: 30
            minLength: 1
            pattern: ^[ -~]+$
          - type: 'null'
          title: Nickname
          description: Rename the card's display name (max 30 characters).
        spending_controls:
          anyOf:
          - $ref: '#/components/schemas/SpendingControls'
          - type: 'null'
          description: Replace the card's spend limits.
        allowed_categories:
          anyOf:
          - items:
              $ref: '#/components/schemas/CardTransactionCategory'
            type: array
          - type: 'null'
          title: Allowed Categories
          description: Restrict the card to these merchant categories. Pass `null` to clear all category restrictions.
      type: object
      title: UpdateCardRequest
    CreatePaymentTokenRequest:
      properties:
        amount:
          type: integer
          maximum: 25000.0
          exclusiveMinimum: 0.0
          title: Amount
          description: Maximum amount for this token in whole dollars.
        currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: Three-letter ISO 4217 currency code.
          default: USD
        merchant_name:
          type: string
          maxLength: 100
          minLength: 1
          pattern: ^[ -~]+$
          title: Merchant Name
          description: Name of the merchant.
        task_description:
          type: string
          title: Task Description
          description: Brief description of the purchase.
        expires_in_minutes:
          type: integer
          maximum: 1440.0
          exclusiveMinimum: 0.0
          title: Expires In Minutes
          description: Token expires after this many minutes (default 60).
          default: 60
      type: object
      required:
      - amount
      - merchant_name
      - task_description
      title: CreatePaymentTokenRequest
    MeowPage:
      properties:
        limit:
          type: integer
          maximum: 200.0
          minimum: 1.0
          title: Limit
          default: 10
        offset:
          type: integer
          maximum: 1000000.0
          minimum: 0.0
          title: Offset
          default: 0
      type: object
      title: MeowPage
    JAddress:
      properties:
        street_line_1:
          anyOf:
          - type: string
          - type: 'null'
          title: Street Line 1
        street_line_2:
          anyOf:
          - type: string
          - type: 'null'
          title: Street Line 2
        city:
          anyOf:
          - type: string
          - type: 'null'
          title: City
        state:
          anyOf:
          - type: string
          - type: 'null'
          title: State
        postal_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Postal Code
        country:
          anyOf:
          - type: string
          - type: 'null'
          title: Country
      type: object
      title: JAddress
    SpendInsight:
      properties:
        total:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Total
        value:
          type: string
          title: Value
      type: object
      required:
      - total
      - value
      title: SpendInsight
    CardDebitAccount:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Banking account ID.
        name:
          type: string
          title: Name
          description: Banking account display name.
        bank:
          $ref: '#/components/schemas/BankingAccountProductType'
          description: Banking account product type.
      type: object
      required:
      - id
      - name
      - bank
      title: CardDebitAccount
    CardControls:
      properties:
        spending_limit:
          type: integer
          title: Spending Limit
          description: Maximum spend limit in whole dollars.
        single_use:
          type: boolean
          title: Single Use
          description: Whether the card is single-use.
        expires_at:
          type: string
          format: date-time
          title: Expires At
          description: When the card is set to expire. The card is not revoked automatically; revoke it explicitly when you are done with it.
      type: object
      required:
      - spending_limit
      - single_use
      - expires_at
      title: CardControls
    TopExpense:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
        detail:
          type: string
          title: Detail
        logo_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Logo Url
        website:
          anyOf:
          - type: string
          - type: 'null'
          title: Website
        cardholder:
          type: string
          title: Cardholder
        posted_time:
          type: string
          format: date-time
          title: Posted Time
        card_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Card Id
        network_transaction_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Network Transaction Id
      type: object
      required:
      - id
      - amount
      - detail
      - cardholder
      - posted_time
      title: TopExpense
    TokenUsageLimits:
      properties:
        max_amount:
          type: integer
          title: Max Amount
          description: Maximum amount in whole dollars.
        currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: Three-letter ISO 4217 currency code.
        expires_at:
          type: string
          format: date-time
          title: Expires At
          description: Token expiration timestamp.
      type: object
      required:
      - max_amount
      - currency
      - expires_at
      title: TokenUsageLimits
    IssuingPlatform:
      type: string
      enum:
      - stripe
      - 

# --- truncated at 32 KB (51 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/meow/refs/heads/main/openapi/meow-cards-api-openapi.yml