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

# Get ACH Transfer

> Returns details about an ACH transfer (incoming or outgoing) for the specified account by ACH transfer ID, including the status of an outgoing ACH transfer after it has been initiated.



## OpenAPI

````yaml GET /accounts/{account_id}/achs/{ach_transfer_id}
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}/achs/{ach_transfer_id}:
    get:
      tags:
        - Transfers
      summary: Get ACH Transfer
      description: >-
        Returns details about an ACH transfer (incoming or outgoing) for the
        specified account by ACH transfer ID, including the status of an
        outgoing ACH transfer after it has been initiated.
      operationId: get_ach_transfer_accounts__account_id__achs__ach_transfer_id__get
      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: ach_transfer_id
          in: path
          required: true
          schema:
            type: string
            description: >-
              The transaction group ID for the ACH transfer (e.g.
              `withdrawal_ach_...`), or the ACH ID returned when you created the
              transfer (e.g. `ach_...`).
            title: Ach Transfer Id
          description: >-
            The transaction group ID for the ACH transfer (e.g.
            `withdrawal_ach_...`), or the ACH ID returned when you created the
            transfer (e.g. `ach_...`).
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AchTransferResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
        - apiKeyAuth:
            - accounts:transactions
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:
    AchTransferResponse:
      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 ACH Transfer to check on the transfer.
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: The description carried on the transfer.
        additional_details:
          anyOf:
            - type: string
            - type: 'null'
          title: Additional Details
          description: Extra detail the bank returned about the transfer.
        trace_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Trace Number
          description: >-
            The ACH trace number, which the receiving bank uses to look the
            transfer up.
        payment_related_info:
          anyOf:
            - type: string
            - type: 'null'
          title: Payment Related Info
          description: >-
            The addenda the sender attached, on inbound transfers. Use it to
            match a payment to an invoice or account on your side.
      type: object
      required:
        - amount
        - status
        - direction
        - created_at
        - updated_at
        - id
      title: AchTransferResponse
    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
        - 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.