v3

latestOpenAPI 3.0.3UNLICENSED2026-07-2796235396.3 KB
orders-orders

Cancel a BUY order

Cancel an ongoing BUY order owned by the caller. Allowed only while the order is awaiting the buyer's fiat — PENDING_INIT, ASSET_LOCKED, or PAYMENT_INIT. For PAYMENT_INIT the pay-in is re-scanned first; if the fiat has already landed the cancel is refused and the order proceeds to completion. Cancellation releases the merchant's locked asset and cancels the pay-in. SELL orders are not cancellable through this endpoint.

post/orders/clients/orders/{orderRef}/cancel

Path parameters

orderRefstring required

the order reference

Response

Order cancelled successfully

idstring uuid required

General format for UUID

merchantIdstring uuid

General format for UUID

merchantAccountIdstring uuid

General format for UUID

clientIdstring uuid

General format for UUID

referencestring required
assetCurrencystring required
payoutCurrencystring required
payoutReferencestring
payoutRequestReferencestring
paymentChannel'BANK_TRANSFER' | 'MOBILE_MONEY' | 'P2P_WALLET'

Payment channel a provider is used for

type'BUY' | 'SELL' required
status'FAILED' | 'ONGOING' | 'COMPLETED' required
createdAtstring date-time required

Timestamp field.

responseTypestring required
amountnumber required

Amount for the order, always specified in the base currency. In merchant's view, this is the amount to receive (SELL) or amount to be sent (BUY) In the client's view, this is the amount they'll receive (BUY) or amount they are sending (SELL)

ratenumber required

The rate displayed to merchant or client.

paymentMode'DEPOSIT' | 'INTERNAL_TRANSFER'

How the buyer is paying fiat for a BUY order. Chosen at quote time on POST /quotes and persisted on the resulting quote; the BUY order then inherits the value when it references the quote. Clients do not (and cannot) re-specify it on the order request — the quote is the binding contract.

  • DEPOSIT — buyer transfers fiat from an external bank account into the merchant's pay-in account. Every payouts provider supports this and it is the default when the field is omitted.
  • INTERNAL_TRANSFER — buyer pays via an internal transfer routed through a configured override provider (currently onb-nuban for merchants on onb-nuban-collections). Quote generation filters out merchants whose payment account doesn't have providerDetails.supportsCustomPayin=true, or whose provider has no configured internal-transfer override on the order service. If no merchant satisfies the request, quote generation returns NoMatchingQuoteException rather than producing a quote that would later fail at order placement.

Example response

{
  "id": "3a5aaea8-504a-4404-ad3d-b82574fba5e5",
  "merchantId": "3a5aaea8-504a-4404-ad3d-b82574fba5e5",
  "merchantAccountId": "3a5aaea8-504a-4404-ad3d-b82574fba5e5",
  "clientId": "3a5aaea8-504a-4404-ad3d-b82574fba5e5"
}