---
title: "Create a payout order"
method: POST
path: "/open-api/v3/scan2pay/orders/payout"
tags: ["Orders"]
---

# Create a payout order

`POST /open-api/v3/scan2pay/orders/payout`

## Request

- Base URL: `https://api-sandbox.interlace.money`
- URL: `https://api-sandbox.interlace.money/open-api/v3/scan2pay/orders/payout`
- Auth: API key in header `x-access-token`

Creates a payout order by submitting the customer, amount, currency,
and either raw QR content or a QR parse token. Returns the Interlace
order number and the current order status.

For request structures and examples for each QR input mode, see the
[Create Payout Order Request Resource](https://developer.interlace.money/docs/scan-to-pay#create-payout-order-request-resource).
For the response structure, see the
[Payout Order Resource](https://developer.interlace.money/docs/scan-to-pay#payout-order-resource).

## Request body

- CreatePayoutOrderReqDTO
  - `customerId` string, required: Numeric string representing a 64-bit Interlace customer identifier
  - `clientTradeNo` string, required: Client-generated order number, unique for idempotency
  - `fiatAmount` string, required: Payout amount in decimal string format, up to 6 decimal places
  - `fiatCurrency` string, required: Payout currency (ISO 4217)
  - `country` string, required: Payout country code (ISO 3166-1 alpha-2)
  - `qrMode` 'RAW' | 'TOKEN': QR input mode. RAW = raw QR payload, TOKEN = QR parse token returned by the QR parse API
  - `qrToken` string: QR parse token returned by the QR parse API. Required when qrMode is TOKEN
  - `qrContent` string: Raw QR payload, used when qrMode is RAW
  - `extendInfo` object: Client-defined metadata echoed in subsequent order queries; not used for payment routing

## Response `200`

Successful operation

- ApiResultPayoutOrderRespDTO: Standard API response wrapper
  - `code` string: Business code, 000000 means success
  - `message` string: Message description
  - `data` PayoutOrderRespDTO: Scan-to-Pay payout order
    - `customerId` string: Numeric string representing a 64-bit Interlace customer identifier
    - `tradeNo` string: Numeric string representing the Interlace-generated order identifier
    - `clientTradeNo` string: Client-generated order number, unique for idempotency
    - `fiatAmount` string: Payout amount in decimal string format, up to 6 decimal places
    - `fiatCurrency` string: Order currency (ISO 4217)
    - `country` string: Order country code (ISO 3166-1 alpha-2)
    - `qrData` object: QR data associated with the order
    - `status` 'READY' | 'CLEARING' | 'PENDING' | 'PAID' | 'FAILED': Current order processing status
    - `description` string: Order description
    - `createTime` string: Numeric string representing the creation Unix timestamp in milliseconds
    - `completeTime` string: Numeric string representing the completion Unix timestamp in milliseconds, or null before completion
    - `type` 'PAYMENT': Payment type
    - `transaction` TransactionInfo: Final transaction settlement information
      - `amount` string: Actual paid amount in decimal string format
      - `currency` string: Actual paid currency
    - `fee` FeeInfo: Fee information charged for the order
      - `amount` string: Fee amount in decimal string format
      - `currency` string: Fee currency
    - `statusCode` string: Status or error code returned by the payment provider, if available
    - `statusMsg` string: Status or error message returned by the payment provider, if available

## Other responses

- `400`: Bad Request

---

[API](https://skmtc.dev/interlace/apis/scan-to-pay.md) - [All operations](https://skmtc.dev/interlace/apis/scan-to-pay/llms.txt) - [OpenAPI document](https://skmtc.dev/interlace/apis/scan-to-pay/revisions/81f4c583068b?raw)
