Changelog
User-facing changes to the Merchant API and docs.
2026-10-28
- Every Merchant API error body now has
request_id, the same value as thex-request-idheader.validation_failederrors also list every failed field inissues. Malformed JSON, an unknown path, and other framework errors now return the same JSON error envelope. - Payout create refuses a Payout that the available balance cannot cover with
422 insufficient_available_balance. Before, the Payout was created and then failed. This refusal is not stored for theIdempotency-Key, so a retry with the same key after a top-up checks the balance again. invalid_currencyandinvalid_countryare nowcurrency_not_enabledandcountry_not_enabled, with status 422. No Merchant received the old codes in Live.- When the Provider does not accept the platform credential, Payment create returns
payment_configuration_unavailable, notpayment_method_invalid. The status (422),reasonandpayment_intent_iddo not change. This is not a payer error. approval_requiredandapproval_not_requiredare reserved. The errors reference now also listsquota_exceeded, which the API already sent.- Some error messages have new wording. Switch on
code, not onmessage. Merchant API v1 does not send them. - A 503 response now has a
Retry-Afterheader.
2026-08-16
- Direct Payment creation and Hosted Checkout creation are now separate resources. Payment intents
require a complete payment method before routing;
POST /checkoutsaccepts the minimum Payment facts and returns a signed payer URL without contacting a Provider. - The Merchant API no longer accepts or returns
checkout_mode. The selected endpoint determines presentation ownership and route eligibility.
2026-08-10
- Payment and Payout Provider-truth recovery now runs independently of an active request, while hosted checkout and late Provider callbacks project the resulting status safely.
- M1Pay
boost_dnqrand Touch 'n Go payments can now return inline base64 QR images; hosted checkout displays them and refreshes the payment state automatically after scanning. - Test Environment workflow releases on the production target now bind each application-only Operator rollout to immutable reviewed artefacts before checking the exact registered status handlers.
2026-08-07
- Hosted payment creation keeps the signed checkout link available while processing continues, rather than returning an actionless processing intent.
2026-08-06
- Internal P2P and provider bank-transfer routes now use the canonical
BANK_TRANSFERMerchant payment method. LinkDeepCode continues to use its own provider-specific route. - Merchant payment creation and hosted checkout now collect payer bank-account details only when the selected route requires them.
2026-07-30
- Direct Payment intents accept Provider-neutral payment methods and return a closed
next_action; Hosted Checkout collects the payment method separately and returnscheckout_url. - Organisation operators can create Test Environment Merchant top-ups, complete routed Test payment and payout intents, replay Merchant webhooks, and manage Merchant webhook endpoints from the dashboard.
- Two-factor authentication enrolment reports verification errors and refreshes the authenticated session after setup.
2026-07-23
- LinkDeepCode P2P bank-transfer deposits open through a hosted payment page, keeping provider payment URLs and bank details out of Merchant API responses.
2026-07-16
- Merchants can add settlement bank accounts and configure automatic settlement thresholds, targets, and allocation splits from the dashboard.
- Organisation operators can manage integration access, policy rules, pricing, limits, reserves, and settlement controls in one consolidated team view.
- Platform-managed integrations now keep provider costs and wholesale Operator pricing separate, while Operators retain control of downstream Merchant pricing.
- Settlement and policy money fields now accept currency-aware decimal amounts and validate them consistently before saving.
2026-07-15
- Dashboard date ranges now include every transaction in the selected organisation-local calendar days.
- Dashboard payout and net-flow totals include committed payouts that are still processing.
- Analytics reports now distinguish failed, delayed, refreshing, and unbuilt reporting projections.
2026-05-28
- Payment intent examples use the public
FPXmethod code and include the requiredcustomerobject. - Payout cancellation examples show the immediate
202response before the asynchronous terminal cancellation state. - Webhook documentation lists the signed events Merchants can receive without advertising a webhook-management endpoint.
New entries land here the moment a public change ships.