Every event Meow sends has the same envelope. TheDocumentation Index
Fetch the complete documentation index at: https://developer.meow.com/llms.txt
Use this file to discover all available pages before exploring further.
data object is the
resource snapshot (or {id, object} in thin mode). The lifecycle stage
lives on data.status — dispatch on that, not the event name.
Envelope
-
Meow-managed IDs (
entity_id,account_id,counterparty_id,virtual_account_id,subscription_id,delivery_id) are UUIDs. -
Resource IDs (
ach_transfer.id,wire_transfer.id, inbound transactionid,check_deposit.id,global_account_transfer.id) are opaque strings whose format varies by the underlying bank:- CRB / FirstBank:
deposit_inach_11mn5s777xgveb9,withdrawal_txc_15wp3bd309xenf6p,book_11n0b3vs9vy0ypw,interest_txc_15wp2ghq09qm3141. - Bridge global accounts:
bridge_va_inach_<uuid>(incoming ACH),bridge_va_iw_<uuid>(incoming wire),bridge_wallet_ext_ach_<uuid>(external ACH off-ramp),bridge_wallet_ext_wire_<uuid>(external wire),wallet_transfer_group_<uuid>/wallet_deposit_group_<uuid>(wallet send / receive). - Treasury Prime: TP’s own external IDs.
- CRB / FirstBank:
| Event | When it fires |
|---|---|
ach_transfer.created | A new outbound ACH transfer was created. |
ach_transfer.updated | An outbound ACH transfer changed state. |
wire_transfer.created | A new outbound wire was created. |
wire_transfer.updated | An outbound wire changed state. |
inbound_ach_transfer.created | An ACH credit or debit hit your account. |
inbound_ach_transfer.updated | An inbound ACH changed state. |
inbound_wire_transfer.created | A wire arrived at your account. |
inbound_wire_transfer.updated | An inbound wire changed state. |
check_deposit.created | A check deposit was submitted. |
check_deposit.updated | A check deposit changed state. |
global_account_transfer.created | Activity on a global (virtual) account. Single-emission. |
webhook.test | A test event you triggered. |
message.attempt.exhausted | A delivery hit 10 failed attempts and the subscription was auto-disabled. |
ach_transfer
status values: pending, processing, sent, returned, canceled, error.
Optional fields not shown in the sample: operation_request_id.
wire_transfer
Samestatus values as ach_transfer. Extra wire-only fields: counterparty_bank_name, purpose, imad (Fed reference), instructions.
inbound_ach_transfer
status values: pending, posted, scheduled, failed, canceled, returned. Casing matches outbound (lowercase on the wire).
inbound_wire_transfer
Same shape as inbound ACH;object is inbound_wire_transfer.
check_deposit
Same shape as inbound ACH;object is check_deposit.
global_account_transfer
Activity on a global (virtual) account. Each activity is one-shot —funds_scheduled and funds_received for the same deposit share deposit_id but arrive as two separate events with different ids.
activity_type values: funds_scheduled, funds_received, payment_submitted, payment_processed, refund_in_flight, refunded, refund_failed.
currency is lowercase: usd, usdc, usdt, usdb, usdg, pyusd, dai, cash.
webhook.test
Triggered manually viaPOST /webhooks/subscriptions/{id}/test. Always sent in full (the thin mode falls through because there’s no id to GET).
message.attempt.exhausted
Fires when a delivery hits 10 failed attempts. The subscription is auto-disabled (disabled_reason=retry_exhausted). Use this to page an on-call. last_response_status is null if every attempt failed before getting an HTTP response (timeout, DNS, TLS).