Skip to main content
Changes that affect what you send us or what we send back. Entries are newest first. A Breaking entry needs a code change before you take the release; everything else is additive.
Breaking changes are announced here and applied to both environments. Exercise them in the sandbox — it runs fully simulated provider rails — before updating your production integration.

2026-07-25

Breaking · you name the settlement network when buying stablecoin

POST /v1/treasury/conversion-quotes now requires settlementNetwork when sourceAsset is "AUD". Wayex no longer selects a chain for that direction. The network you name is the chain the purchased stablecoin is delivered onto, so it is the chain your account then holds the balance on and the chain you can withdraw it on. That is your decision, not ours, and there is no default and no fallback behind it.
Migration. Add settlementNetwork to every AUD-to-stablecoin quote request. Choose from the runtimeCapabilities entries on GET /v1/treasury, and choose a chain your account can actually withdraw on. Omitting it now fails with 400 settlement_network_required on the settlementNetwork parameter. Two refusals you should treat as “pick a different chain”, not as transient errors:
  • 400 unsupported_asset_network — the asset does not settle on that chain, or Wayex cannot receive it there. This is now checked before your account’s enabled pairs, so an unwired chain fails here rather than with 422 asset_network_unavailable. A pair that is wired but not enabled for your account still returns the 422.
  • 409 conversion_route_conflict — Wayex has a settlement route pinned for that asset and you named a different chain. This check is unchanged, but it is now reachable on every AUD-to-stablecoin quote, because previously nobody sent the field. If a route is pinned for your account, name exactly that chain.
Not affected: stablecoin to AUD. That direction is unchanged. settlementNetwork stays optional there, Wayex still routes from the chains your account holds the balance on, and a supplied value is still only an override. Do not make the field mandatory across both directions in your client. See Choosing the settlement network.

Breaking · free-form maps reject a reserved key

metadata on customers and counterparties, and partyContext, businessIdentity, and glMapping on Treasury requests, now refuse the reserved key @@wxtype and any @@wxtype.esc… variant, with 400 invalid_request. Nothing is written, including on a PATCH that would otherwise merge. These keys were previously accepted. Migration. Only integrations that happen to use that exact key name are affected. Near misses such as wxtype, @@wxtypes, and my@@wxtype remain ordinary keys. See Reserved metadata key.

New hold reason · withdrawal_network_not_held

A stablecoin withdrawal on a network your account has no credited deposit and no settled conversion for is now accepted as held with statusReason withdrawal_network_not_held, instead of proceeding. The source debit is reserved and nothing is sent until Wayex releases it. Retrying will not clear it: withdraw on a network you have funded, or convert onto that network first. The withdrawal preview does not test this restriction, so an unheld network previews cleanly with canProceed true and is held on create — treat the create response as authoritative. See Withdrawals on a network you do not hold.