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

# Create Scheduled Wire Transfer

> Creates a recurring or one-off future wire to an external counterparty. Each occurrence is sent in US dollars on the schedule's business-day rules.



## OpenAPI

````yaml POST /accounts/{account_id}/wire/scheduled
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}/wire/scheduled:
    post:
      tags:
        - Transfers
      summary: Create Scheduled Wire Transfer
      description: >-
        Creates a recurring or one-off future wire to an external counterparty.
        Each occurrence is sent in US dollars on the schedule's business-day
        rules.
      operationId: create_scheduled_wire_transfer_accounts__account_id__wire_scheduled_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: Idempotency-Key
          in: header
          required: false
          schema:
            anyOf:
              - type: string
                minLength: 1
                maxLength: 50
                pattern: ^[!-~]+$
              - type: 'null'
            description: >-
              A unique key you generate (1-50 printable ASCII characters, no
              spaces) so retrying this request never creates a duplicate.
              Reusing a key is rejected.
            title: Idempotency-Key
          description: >-
            A unique key you generate (1-50 printable ASCII characters, no
            spaces) so retrying this request never creates a duplicate. Reusing
            a key is rejected.
        - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateScheduledWireTransferRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateScheduledWireTransferResponse'
        '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:
    CreateScheduledWireTransferRequest:
      properties:
        amount:
          anyOf:
            - type: number
              maximum: 1000000000
              minimum: 1
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
          description: Amount to send on each occurrence, in USD.
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
          description: Contact to pay. Use list_contacts to find one.
        instructions:
          anyOf:
            - type: string
              maxLength: 140
              minLength: 1
            - type: 'null'
          title: Instructions
          description: Wire instructions sent to the receiving bank.
        purpose:
          anyOf:
            - type: string
              minLength: 1
            - type: 'null'
          title: Purpose
          description: >-
            Purpose of payment. Required by some receiving banks. Your account's
            bank sets the maximum length: 16 characters on most accounts, 50 on
            some. A longer purpose is rejected with a message giving your limit.
        internal_note:
          anyOf:
            - type: string
              maxLength: 255
              minLength: 5
            - type: 'null'
          title: Internal Note
          description: Private note, visible only inside Meow.
        email:
          anyOf:
            - type: string
              format: email
            - type: 'null'
          title: Email
          description: Address to notify on each occurrence.
        metadata:
          anyOf:
            - additionalProperties:
                type: string
                maxLength: 200
              propertyNames:
                maxLength: 40
                minLength: 1
              type: object
              maxProperties: 20
            - type: 'null'
          title: Metadata
          description: >-
            Your own key/value data to attach to this object. Meow stores it
            unchanged and returns it on every read of the object and on every
            webhook event about it, so you can match it back to your own
            records. Up to 20 pairs; keys up to 40 characters, values up to 200,
            and 5 KB serialized as JSON in total — note that a non-ASCII
            character counts as 6 bytes and an emoji as 12. Values must be
            strings. Meow never interprets it — do not put anything here that
            needs to stay private.
        idempotency_key:
          anyOf:
            - type: string
              maxLength: 50
              minLength: 1
            - type: 'null'
          title: Idempotency Key
          description: >-
            Deprecated: send the key in the `Idempotency-Key` header instead.
            When both are sent they must match.
          deprecated: true
        rrule:
          type: string
          maxLength: 120
          minLength: 1
          title: Rrule
          description: Recurrence rule (RFC 5545 RRULE) defining the schedule.
      type: object
      required:
        - amount
        - counterparty_id
        - rrule
      title: CreateScheduledWireTransferRequest
    CreateScheduledWireTransferResponse:
      properties:
        id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Id
          description: >-
            Identifier of the schedule, for use with List Scheduled Wire
            Transfers. `null` until the schedule is actually created, so it is
            always absent while `status` is `processing` or `pending_approval`.
            Use `approval_id` as the stable handle instead.
        status:
          $ref: '#/components/schemas/TransferStatus'
          description: >-
            State of the schedule, not of any individual wire. `pending` means
            the schedule is live and waiting for its first occurrence;
            `pending_approval` means an approval policy is holding it;
            `processing` means it was queued for creation.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: Amount sent on each occurrence, in USD. Echoes the request.
        instructions:
          anyOf:
            - type: string
            - type: 'null'
          title: Instructions
          description: >-
            Wire instructions sent to the receiving bank on each occurrence.
            Echoes the request, except for contacts paid through your brokerage
            account, where Meow replaces the submitted memo with
            system-generated instructions.
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
          description: Contact paid on each occurrence. Echoes the request.
        rrule:
          type: string
          maxLength: 120
          minLength: 1
          title: Rrule
          description: >-
            Recurrence rule (RFC 5545 RRULE) driving the schedule. Echoes the
            request.
        first_occurrence:
          anyOf:
            - $ref: '#/components/schemas/Timestamp'
            - type: 'null'
          description: >-
            When the first wire will be sent. Scheduled payments run at 10:00
            UTC, and an occurrence that falls on a weekend or bank holiday moves
            to the previous business day. `null` until the schedule is created.
        transfer_type:
          $ref: '#/components/schemas/TransferMethod'
          description: Rail used on each occurrence. Always `wire` for this endpoint.
        approval_id:
          type: string
          format: uuid
          title: Approval Id
          description: >-
            Handle for this schedule, returned whether or not an approval policy
            gated it. Pass it to `GET /approvals/{approval_id}` to follow the
            request to completion.
        message:
          anyOf:
            - type: string
            - type: 'null'
          title: Message
          description: >-
            Human-readable next step. Set only when `status` is
            `pending_approval`; otherwise `null`.
        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 schedule was created, unchanged.
            Every wire the schedule sends carries it too, so the webhook for any
            occurrence reports the same value. `null` when none was attached.
      type: object
      required:
        - status
        - amount
        - instructions
        - counterparty_id
        - rrule
        - transfer_type
        - approval_id
      title: CreateScheduledWireTransferResponse
    TransferStatus:
      type: string
      enum:
        - pending
        - pending_approval
        - canceled
        - processing
        - error
        - sent
        - returned
        - void
      title: TransferStatus
    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)).
    TransferMethod:
      type: string
      enum:
        - book
        - usdc
        - usdt
        - pyusd
        - cash
        - usdg
        - path_usd
        - ach
        - wire
        - international
      title: TransferMethod
      description: The rail a transfer moves on, as the customer API reports it.
      x-enum-varnames:
        - book
        - usdc
        - usdt
        - pyusd
        - cash
        - usdg
        - path_usd
        - ach
        - wire
        - international
    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

````