Conversions

Payment / conversion lifecycle — request, accept, confirm, cancel, status and history

Request a conversion (create payment order)

post
/confirm_conversion/request

Creates a new payment order. The code returned is used in all subsequent calls (accept, confirm, cancel, status).

Either merchantIdentifier (POS/collector) or websiteUrl (e-commerce) must be provided — at least one is required.

If websiteUrl is set, sessionId is also required.

If alias is set, the order is treated as a payment link (valid for 1 month by default). Without an alias, the order expires after ~5 minutes.

The webhook at webhookUrl will receive a POST request with the full order status on each change.

Roles: SuperAdmin, Association, Manager, SuperManager, SimpleUser, Service, Cashier

Authorizations
AuthorizationstringRequired

JWT token obtained from /auth/login or /auth/login/manager. Include as Authorization: Bearer <token>.

Body
amountanyRequired

Payment amount in the fiat currency specified by fromAsset (minimum 0.10)

Example: 50
fromAssetstring · enumRequired

Fiat currency the merchant receives

Possible values:
toAssetstring · enumOptional

Target settlement asset (currently always settled in USDC)

Default: USDCPossible values:
merchantIdentifierstringOptional

POS / collector identifier (required for in-store payments). Either this or websiteUrl must be set.

websiteUrlstringOptional

E-commerce website URL (required for online payments). Either this or merchantIdentifier must be set.

sessionIdstringOptional

Buy button session ID — required when websiteUrl is provided

webhookUrlstringOptional

URL to receive status update notifications via HTTP POST

cancelUrlstring · max: 256Optional

Redirect URL when customer cancels

returnUrlstring · max: 256Optional

Redirect URL after successful payment

aliasstringOptional

Merchant order reference / alias. If set, the order is a payment link valid for 1 month.

anonymousbooleanOptional

If true, payer identity is not required

expirationDuration_minutesnumberOptional

Custom expiry in minutes (only applies to payment links with alias; minimum 10)

Responses
200

Order created. Display the code to the customer as a QR code pointing to pay.lyzi.io/pay?code=<code>.

application/json
successbooleanOptional

Whether the request succeeded

statusintegerOptional

HTTP status code

post
/confirm_conversion/request

Get conversion status

get
/confirm_conversion/status/{code}

Returns the current status and details of a payment order. This endpoint is public — no authentication required. Polled by the Lyzi payment portal.

Path parameters
codestringRequired

Order code returned by /confirm_conversion/request

Responses
200

Order status

application/json
successbooleanOptional

Whether the request succeeded

statusintegerOptional

HTTP status code

get
/confirm_conversion/status/{code}

Get conversion status by order reference

get
/confirm_conversion/status/order/{orderRef}

Returns the current status of a payment order using the merchant's own order reference (alias set at creation). This endpoint is public — no authentication required.

Path parameters
orderRefstringRequired

Merchant order reference (alias provided at creation time)

Responses
200

Order status

application/json
successbooleanOptional

Whether the request succeeded

statusintegerOptional

HTTP status code

get
/confirm_conversion/status/order/{orderRef}

Accept conversion (choose payment channel)

post
/confirm_conversion/accept/{code}

Called by the customer / payer to select a payment channel (Binance Pay, WhiteBIT, etc.) and accept the order. Returns payment instructions specific to the chosen channel.

Roles: SuperAdmin, Manager, Service, Cashier

Authorizations
AuthorizationstringRequired

JWT token obtained from /auth/login or /auth/login/manager. Include as Authorization: Bearer <token>.

Path parameters
codestringRequired

Order code

Body
paymentChannelstring · enumOptional

binance=Binance Pay, whitepay=WhiteBIT, whitepay-non-custody=WhiteBIT Any Wallet, cryptopay=Crypto.com, crypto=Non-Custodial Wallet, gatepay=Gate Pay, coinbase=Coinbase Onramp, kucoinpay=KuCoin Pay

Possible values:
cancelUrlstring · max: 256Optional
returnUrlstring · max: 256Optional
networkintegerOptional

Chain ID for non-custodial wallet payments

payerEmailstring · emailOptional
anonymousbooleanOptional
userAddressstringOptional

Payer's blockchain wallet address

posstringOptional

POS identifier

pastOrdersstring[]Optional

Previous order codes (for recurring payment context)

Responses
200

Conversion accepted. Response contains channel-specific payment instructions. For non-custodial wallet: includes toAddress and tokenAmount. For CEX (Binance, etc.): includes deeplink or QR data.

application/json
successbooleanOptional

Whether the request succeeded

statusintegerOptional

HTTP status code

dataobjectOptional

Payment instructions vary by payment channel

post
/confirm_conversion/accept/{code}

Confirm conversion (merchant confirmation)

post
/confirm_conversion/confirm/{code}

Called by the merchant or cashier to manually confirm receipt of payment, or triggered automatically by the system after on-chain verification.

Roles: SuperAdmin, Association, Manager, SuperManager, Service, Cashier

Authorizations
AuthorizationstringRequired

JWT token obtained from /auth/login or /auth/login/manager. Include as Authorization: Bearer <token>.

Path parameters
codestringRequired

Order code

Responses
200

Conversion confirmed

application/json
successbooleanOptional

Whether the request succeeded

statusintegerOptional

HTTP status code

dataanyOptional

Response payload

post
/confirm_conversion/confirm/{code}

Cancel conversion

post
/confirm_conversion/cancel/{code}

Cancels a pending payment order. Can be called by the merchant, cashier, or the customer.

Roles: SuperAdmin, Association, Manager, SuperManager, SimpleUser, Service, Cashier

Authorizations
AuthorizationstringRequired

JWT token obtained from /auth/login or /auth/login/manager. Include as Authorization: Bearer <token>.

Path parameters
codestringRequired

Order code

Responses
200

Conversion cancelled

application/json
successbooleanOptional

Whether the request succeeded

statusintegerOptional

HTTP status code

dataanyOptional

Response payload

post
/confirm_conversion/cancel/{code}

Revert / refund conversion

post
/confirm_conversion/revert/{code}

Initiates a refund for a paid order.

Roles: SuperAdmin, Manager, SuperManager, Cashier

Authorizations
AuthorizationstringRequired

JWT token obtained from /auth/login or /auth/login/manager. Include as Authorization: Bearer <token>.

Path parameters
codestringRequired

Order code

Responses
200

Refund initiated

application/json
successbooleanOptional

Whether the request succeeded

statusintegerOptional

HTTP status code

dataanyOptional

Response payload

post
/confirm_conversion/revert/{code}

Expire a payment link

post
/confirm_conversion/expire/{code}

Manually expires a payment order / link, preventing further payments.

Roles: SuperAdmin, Manager, SuperManager, Cashier

Authorizations
AuthorizationstringRequired

JWT token obtained from /auth/login or /auth/login/manager. Include as Authorization: Bearer <token>.

Path parameters
codestringRequired

Order code

Responses
200

Link expired

application/json
successbooleanOptional

Whether the request succeeded

statusintegerOptional

HTTP status code

dataanyOptional

Response payload

post
/confirm_conversion/expire/{code}

Get order history

get
/confirm_conversion

Returns a paginated list of orders for the authenticated merchant or user. Supports filtering by status, date range, amount and search query.

Roles: SuperAdmin, Manager, SuperManager, Cashier, Observer, SimpleUser, Service

Authorizations
AuthorizationstringRequired

JWT token obtained from /auth/login or /auth/login/manager. Include as Authorization: Bearer <token>.

Query parameters
statusone ofOptional

Filter by one or more statuses

string · enumOptional

INITIAL: awaiting payment | PENDING: accepted by merchant | AWAITING: sent to CEX, not yet paid | PAID: completed | CANCELLED: aborted | ERROR: process error | REFUNDING: refund in progress | REFUNDED: partial refund | FULL_REFUNDED: full refund | EXPIRED: expired after inactivity | WAITING_CHAIN_CONFIRMATION: waiting on-chain confirmation | KYT_FAILED: wallet risk screening failed

Possible values:
or
pageintegerOptionalDefault: 1
limitintegerOptionalDefault: 20
startDatestringOptional
endDatestringOptional
searchstringOptional

Search by code, alias, or amount

amountFromstringOptional
amountTostringOptional
sortDirstringOptional
sortBystringOptional
conversionTypestring · enumOptionalPossible values:
managerEmailstringOptional

SuperAdmin/SuperManager: filter by manager email

Responses
200

Paginated list of orders

application/json
successbooleanOptional

Whether the request succeeded

statusintegerOptional

HTTP status code

get
/confirm_conversion

Download order history (CSV/Excel)

get
/confirm_conversion/download

Downloads order history as a CSV or Excel file. Supports the same date, amount and search filters as the history endpoint.

Roles: SuperAdmin, Manager, SuperManager, Observer, Cashier, SimpleUser

Authorizations
AuthorizationstringRequired

JWT token obtained from /auth/login or /auth/login/manager. Include as Authorization: Bearer <token>.

Query parameters
startDatestringOptional
endDatestringOptional
searchstringOptional
amountFromstringOptional
amountTostringOptional
conversionTypestring · enumOptionalPossible values:
managerEmailstringOptional
Responses
200

File download (CSV or Excel)

No content

get
/confirm_conversion/download

No content

get
/confirm_conversion/links

Returns all active payment links (orders with alias) created by the merchant.

Roles: SuperAdmin, Manager, SuperManager, Cashier

Authorizations
AuthorizationstringRequired

JWT token obtained from /auth/login or /auth/login/manager. Include as Authorization: Bearer <token>.

Responses
200

List of payment links

application/json
successbooleanOptional

Whether the request succeeded

statusintegerOptional

HTTP status code

get
/confirm_conversion/links

Save payer information

post
/confirm_conversion/payer-information

Saves KYC-light declarative information about the payer for a given order. Required for orders above the light KYC threshold.

Roles: Authenticated users

Authorizations
AuthorizationstringRequired

JWT token obtained from /auth/login or /auth/login/manager. Include as Authorization: Bearer <token>.

Body
codestringRequired

Order code

Responses
200

Payer information saved

application/json
successbooleanOptional

Whether the request succeeded

statusintegerOptional

HTTP status code

dataanyOptional

Response payload

post
/confirm_conversion/payer-information

Set payer email

post
/confirm_conversion/email/{code}

Associates an email address with an existing payment order.

Roles: Association, Manager, SuperManager, SimpleUser, SuperAdmin, Service

Authorizations
AuthorizationstringRequired

JWT token obtained from /auth/login or /auth/login/manager. Include as Authorization: Bearer <token>.

Path parameters
codestringRequired

Order code

Body
emailstring · emailRequired
Responses
200

Email set

application/json
successbooleanOptional

Whether the request succeeded

statusintegerOptional

HTTP status code

dataanyOptional

Response payload

post
/confirm_conversion/email/{code}

Get exchange rate information

get
/confirm_conversion/exchangeInfo

Returns the current exchange rate between two assets. No authentication required.

Query parameters
fromAssetstringRequired

Source asset (e.g. EUR)

toAssetstringRequired

Target asset (e.g. USDC)

Responses
200

Exchange rate data

application/json
successbooleanOptional

Whether the request succeeded

statusintegerOptional

HTTP status code

get
/confirm_conversion/exchangeInfo

Last updated