Skip to main content

Webhooks: versioning policy and legacy removal date

The deprecated event names — payout.update, balance.updated and card.transaction.refund — will be removed on 15 November 2026. Both the new and the legacy names are delivered until then, so point your handlers at the new names before that date.The webhooks reference now also documents how events are versioned and deprecated. Events are versioned by event type: breaking changes ship as a new type with a version suffix, such as payin.updated.v2, never as a change to an existing one. Adding an optional field is not a breaking change, so your handler must ignore fields it doesn’t recognize. Deprecations get at least 90 days of notice, parallel delivery of both events for the whole window, and are not removed until subscribers have migrated.

Self-custody wallets

New Self-custody section documenting the SDKs that add a stablecoin wallet to your web or mobile app. Users hold and send US-dollar stablecoins, sign in with email or a passkey, and never see a seed phrase or a network fee — the wallet key is created on the user’s device and never leaves it. Covers the overview, a quickstart, authentication, passkeys, the wallet flow, and the backend handler, with SDKs for Web, React Native, Flutter, iOS and Android.Also adds a page for the white-label wallet, a fully branded wallet product powered by Meru, currently in development.

Webhooks: standardized event names

Some webhook event names are being standardized: payout.updatepayout.updated, card.transaction.refundcard.transaction.refunded, and balance.updated is split into payin.updated (fiat deposits) and crypto_deposit.updated (on-chain deposits). During the transition both the new and legacy names are delivered for the same event, each carrying a shared data.eventId for deduplication. The legacy names are deprecated and will be removed on 15 November 2026.

Meru Checkout

New Checkout section documenting the hosted crypto payment page: an overview, a quickstart, the POST /v1/checkouts and GET /checkouts/{id} references, the crypto-exchanges and QR Bolivia payment methods, and the iframe embed with postMessage events. Also adds a React SDK guide for @meru.app/checkout-react (<MeruCheckout>, redirectToCheckout, and the useCheckoutStatus hook).

Payin codes (PIX & QR)

New reference pages for generating a payin code via POST /v1/payins/qr-code — routed by currency to a PIX copy-and-paste code (BRL), a QR code (BOB), or a default QR — and for checking its status via GET /v1/payins/qr-code/{paymentId}/status. Adds a TypeScript “Collect a Payin” guide covering the quote → generate → status flow for Bolivia and Brazil.

Webhooks reference

The webhooks reference now covers every event we send — payout.update, balance.updated, customer.status.updated, customer.product.request.updated, and card.transaction.* — split into a page per event, each with its payload, states, and an example.

Date range filtering and export

The payins and payouts list endpoints now support startDate and endDate filters (ISO 8601). New GET /v1/payins/export and GET /v1/payouts/export endpoints download the full filtered range as CSV (default) or JSON.

Webhooks reference

The webhooks documentation now reflects the real event payloads: the payout.update and balance.updated events, the full list of payout states, the data fields, and how to verify request signatures.

Spanish documentation

The Meru API reference is now available in Spanish. Use the language selector in the navigation bar to switch between English and Spanish.