Changelog
Changes to the merchant integration contract.
2026-10-08 — Rejected invoices#
- Invoice
statusgains the final valuerejected: a timely payment cannot be accepted and nothing was accepted on the invoice; the status staysrejectedeven if money is accepted later. If part of the amount was already accepted, the invoice closes asunderpaidinstead. No reason is published. - Added the
invoice.rejectedwebhook. Subscribe your endpoints to it under Developers → Webhooks & deliveries. - The change is additive. If you parse invoice
statusas a strict enum, including ininvoice.payment_reversedandinvoice.late_paymentpayloads and thestatuslist filter, accept the new value. See payments that take longer.
2026-09-23 — Refunds and integration updates#
- Dashboard refunds return each payment to its verified sender. All returns appear in
/v1/refunds; filter byinvoice_id, identify payments withpayment_id, and group returns withrefund_request_id. - Invoices include
refund_summaryand supportrefund_statusfiltering. - Added
refund.reversed,conversion.completed,conversion.failed, andconversion.source_restoredwebhooks. - Clarified currency errors, pagination, webhook source IP, and recovery after uncertain outcomes.
- The merchant SDK is retired; its repository is archived. Use the supported REST API and HTTP/webhook examples.
2026-09-14 — Merchant API contract refresh#
- Unified
/v1API: environment-specific keys, permissions, idempotency, and cursor pagination. - Added payout funding from other balances, conversions, and account operations.
- Documented signed webhooks, dashboard-managed keys and subscriptions, HTTP examples, and errors.