v3

latestOpenAPI 3.0.3UNLICENSED2026-07-2796235396.3 KB
orders-orders

Create SELL order (alias, returns OrderResponse)

Explicit SELL alias for POST /clients/orders. Accepts the same CreateOrderRequest body, but returns the full OrderResponse rather than the legacy StatusDto — same shape as POST /clients/orders/buy and GET /clients/orders/{orderRef}. Use this path when the caller wants the persisted order details directly; POST /clients/orders (no alias) keeps the legacy StatusDto response for backward compatibility.

post/orders/clients/orders/sell

Request body

quoteIdstring uuid required

General format for UUID

amountnumber required

Positive double

referencestring required
twoFaCodestring required
narrationstring

A description for the transfer that's passed to the recipient of the orders

type'BUY' | 'SELL'

Example request

{
  "quoteId": "3a5aaea8-504a-4404-ad3d-b82574fba5e5"
}

Response

Order created 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"
}