Skip to main content
POST
Create Scheduled Wire Transfer

Authorizations

x-api-key
string
header
required

Your Meow API key, sent in the x-api-key header for authentication.

Headers

Idempotency-Key
string | null

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.

Required string length: 1 - 50
Pattern: ^[!-~]+$
x-entity-id
string<uuid>

Optional entity_id to scope requests to a specific entity.

Path Parameters

account_id
string
required

The ID of the account.

Body

application/json
amount
required

Amount to send on each occurrence, in USD.

Required range: 1 <= x <= 1000000000
counterparty_id
string<uuid>
required

Contact to pay. Use list_contacts to find one.

rrule
string
required

Recurrence rule (RFC 5545 RRULE) defining the schedule.

Required string length: 1 - 120
instructions
string | null

Wire instructions sent to the receiving bank.

Required string length: 1 - 140
purpose
string | null

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.

Minimum string length: 1
internal_note
string | null

Private note, visible only inside Meow.

Required string length: 5 - 255
email
string<email> | null

Address to notify on each occurrence.

metadata
Metadata · object | null

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
string | null
deprecated

Deprecated: send the key in the Idempotency-Key header instead. When both are sent they must match.

Required string length: 1 - 50

Response

Successful Response

status
enum<string>
required

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.

Available options:
pending,
pending_approval,
canceled,
processing,
error,
sent,
returned,
void
amount
string
required

Amount sent on each occurrence, in USD. Echoes the request.

Pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
instructions
string | null
required

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
string<uuid>
required

Contact paid on each occurrence. Echoes the request.

rrule
string
required

Recurrence rule (RFC 5545 RRULE) driving the schedule. Echoes the request.

Required string length: 1 - 120
transfer_type
enum<string>
required

Rail used on each occurrence. Always wire for this endpoint.

Available options:
book,
usdc,
usdt,
pyusd,
cash,
usdg,
path_usd,
ach,
wire,
international
approval_id
string<uuid>
required

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.

id
string<uuid> | null

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.

first_occurrence
string<date-time> | null

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.

message
string | null

Human-readable next step. Set only when status is pending_approval; otherwise null.

metadata
Metadata · object | null

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.