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

# Cancel Wire Transfer

> Cancels an outgoing wire that the bank has not yet sent. Returns the wire with its new status. A wire that has already left cannot be cancelled; contact your bank to request a recall instead.



## OpenAPI

````yaml POST /accounts/{account_id}/wires/{wire_transfer_id}/cancel
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 of 1,200 requests per minute, unless Meow has
    agreed a different limit with you. The limit works as a token bucket: you
    can spend the whole minute at once, and requests return steadily over the
    minute.


    Responses carry the `RateLimit-Policy` and `RateLimit` headers. They show
    your limit, the requests you have left, and the seconds until your full
    limit is back. These headers are informational today: going over the limit
    is logged, not rejected.


    A separate, coarser safeguard protects the API from abusive traffic and can
    reject requests with `429 Too Many Requests`. It returns a `Retry-After`
    header and a body with `error_code` set to `rate_limited` and a `message`,
    but not the quota headers above. 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:
  /accounts/{account_id}/wires/{wire_transfer_id}/cancel:
    post:
      tags:
        - Transfers
      summary: Cancel Wire Transfer
      description: >-
        Cancels an outgoing wire that the bank has not yet sent. Returns the
        wire with its new status. A wire that has already left cannot be
        cancelled; contact your bank to request a recall instead.
      operationId: >-
        cancel_wire_transfer_accounts__account_id__wires__wire_transfer_id__cancel_post
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the account.
            title: Account Id
          description: The ID of the account.
        - name: wire_transfer_id
          in: path
          required: true
          schema:
            type: string
            description: >-
              The transaction group ID for the wire transfer (e.g.
              `withdrawal_wire_...`), the wire ID returned when you created the
              transfer (e.g. `wire_...`), or the ID of an inbound wire (e.g.
              `iw_...`).
            title: Wire Transfer Id
          description: >-
            The transaction group ID for the wire transfer (e.g.
            `withdrawal_wire_...`), the wire ID returned when you created the
            transfer (e.g. `wire_...`), or the ID of an inbound wire (e.g.
            `iw_...`).
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WireTransferResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
        - apiKeyAuth:
            - transfers:wire: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:
    WireTransferResponse:
      properties:
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: How much moved, in USD.
        status:
          $ref: '#/components/schemas/TransferStatus'
          description: >-
            Where the transfer is in its lifecycle. `pending` and `processing`
            still change; poll until the transfer settles. An ACH transfer
            settles at `sent`, `returned`, `canceled`, or `error`; a wire
            settles at `sent`, `canceled`, `error`, or `void`.
        direction:
          $ref: '#/components/schemas/TransferDirection'
          description: >-
            Whether the money moved into this account (`inbound`) or out of it
            (`outbound`). Inbound transfers were sent to you by someone else, so
            they have no counterparty you configured.
        counterparty_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Counterparty Id
          description: >-
            The contact you sent to. Null on inbound transfers, which arrive
            from someone you never configured.
        counterparty_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Counterparty Name
          description: Who you sent to, or who sent to you on an inbound transfer.
        counterparty_account_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Counterparty Account Number
          description: >-
            The other side's account number, when the bank reports it. Often
            absent on inbound transfers.
        counterparty_routing_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Counterparty Routing Number
          description: >-
            The other side's routing number, when the bank reports it. Often
            absent on inbound transfers.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: When the transfer was created.
        updated_at:
          $ref: '#/components/schemas/Timestamp'
          description: When the transfer last changed, so you can detect new activity.
        internal_note:
          anyOf:
            - type: string
            - type: 'null'
          title: Internal Note
          description: Your private note on this transfer. Never leaves Meow.
        metadata:
          anyOf:
            - additionalProperties:
                type: string
                maxLength: 200
              propertyNames:
                maxLength: 40
                minLength: 1
              type: object
              maxProperties: 20
            - type: 'null'
          title: Metadata
          description: >-
            The metadata attached when this object was created, unchanged.
            `null` when none was attached. Rarely, a `.created` webhook can be
            published before the create request finishes committing, and that
            one event reports `null`; every later event and every read of the
            object carries the metadata.
        id:
          type: string
          title: Id
          description: Pass this back to Get Wire Transfer to check on the transfer.
        instructions:
          anyOf:
            - type: string
            - type: 'null'
          title: Instructions
          description: >-
            The originator to beneficiary information carried on the wire. On an
            inbound wire this is where a sender puts a reference you can match
            on.
        counterparty_bank_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Counterparty Bank Name
          description: >-
            The other side's bank, when the bank reports it. Often absent on
            inbound wires.
        error:
          anyOf:
            - type: string
            - type: 'null'
          title: Error
          description: Why the transfer failed, when it did.
        imad:
          anyOf:
            - type: string
            - type: 'null'
          title: Imad
          description: >-
            The wire's IMAD, which uniquely identifies it on the Fedwire
            network. Use it when tracing a wire with a bank.
        purpose:
          anyOf:
            - type: string
            - type: 'null'
          title: Purpose
          description: >-
            The purpose you stated when sending. Null on inbound wires, which
            carry no purpose you set.
        counterparty_address:
          anyOf:
            - type: string
            - type: 'null'
          title: Counterparty Address
          description: >-
            The sender's postal address as their bank reported it. Only set on
            inbound wires.
        counterparty_bank_address:
          anyOf:
            - type: string
            - type: 'null'
          title: Counterparty Bank Address
          description: >-
            The sending bank's postal address as it arrived on the wire. Only
            set on inbound wires.
        is_international:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is International
          description: >-
            True when an inbound wire came from a bank outside the US. Null when
            the bank did not say, and on outbound wires.
      type: object
      required:
        - amount
        - status
        - direction
        - created_at
        - updated_at
        - id
      title: WireTransferResponse
      examples:
        - amount: '1000.00'
          counterparty_account_number: '123456789'
          counterparty_bank_name: Example Bank N.A.
          counterparty_id: cp_3b0d5e2a41f2
          counterparty_name: Catnip Coffee Co
          counterparty_routing_number: '021000021'
          created_at: '2026-01-15T14:46:41.375Z'
          direction: outbound
          id: wire_9f1c3b6e2a1d
          imad: '2026011500000001'
          instructions: catnip-payroll-2026
          internal_note: Q1 roasting supplies
          purpose: invoice_payment
          status: sent
          updated_at: '2026-01-15T14:46:41.375Z'
    TransferStatus:
      type: string
      enum:
        - pending
        - pending_approval
        - canceled
        - processing
        - error
        - sent
        - returned
        - void
      title: TransferStatus
    TransferDirection:
      type: string
      enum:
        - inbound
        - outbound
      title: TransferDirection
    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'
    Forbidden:
      description: The API key is not authorized for this operation.
      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
        - 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

````