Scan To Pay

This page describes the current resource objects used by the Scan-to-Pay OpenAPI v3 and the current Scan-to-Pay webhook resource objects. Unless otherwise stated: - Country codes follow ISO 3166-1 alpha-2. - Fiat currencies follow ISO 4217. - A field described as Numeric string must be sent as a JSON string containing digits. - Timestamp fields are Unix timestamps in milliseconds.

Upload Files Request Resource

This resource describes the multipart form-data payload used to upload Scan-to-Pay onboarding and compliance files.

Example JSON

files: <front-id.png>
files: <back-id.png>
files: <selfie-with-id.png>

Upload Files Request Properties

files array required Uploaded files - File list submitted through multipart/form-data. Maximum 5 files are allowed per request.

Uploaded File Resource

This resource describes a file object returned by the Scan-to-Pay file upload API.

Example JSON

{
  "id": "2046061141584039936",
  "name": "passport-front.png"
}

Uploaded File Properties

id string required File identifier - Numeric string representing the uploaded file identifier used by subsequent customer onboarding or update requests (e.g., "2046061141584039936").


name string required Original file name - Original file name of the uploaded document (e.g., "passport-front.png").

Register Customer Request Resource

This resource describes the payload used to create a Scan-to-Pay customer profile and submit the data required for compliance review.

Example JSON

{
  "customerEmail": "[email protected]",
  "version": "v3",
  "firstName": "John",
  "lastName": "Smith",
  "dateOfBirth": "1990-01-01",
  "gender": "M",
  "nationality": "US",
  "nationalId": "A123456789",
  "idType": "PASSPORT",
  "issueDate": "2018-05-10",
  "expiryDate": "2028-05-10",
  "nationalAddress": {
    "addressLine1": "123 Main Street",
    "addressLine2": "Apt 4B",
    "city": "New York",
    "state": "NY",
    "country": "US",
    "postalCode": "10001"
  },
  "mailAddress": {
    "addressLine1": "200 Market Street",
    "addressLine2": "Suite 900",
    "city": "San Francisco",
    "state": "CA",
    "country": "US",
    "postalCode": "94105"
  },
  "idFrontId": "2046061141584039936",
  "idBackId": "2046061141584039937",
  "idHoldId": "2046061141584039938",
  "ipAddress": "203.0.113.25",
  "phoneNumber": "6505551234",
  "phoneCountryCode": "1",
  "occupation": "01",
  "transactionCountries": [
    "VN",
    "TH"
  ]
}

Register Customer Request Properties

customerEmail string required Customer email - Email address associated with the customer profile (e.g., "[email protected]").


version string optional API version - Version associated with the customer onboarding request (e.g., "v3").


firstName string required First name - Customer first name (e.g., "John").


lastName string required Last name - Customer last name (e.g., "Smith").


dateOfBirth string required Date of birth - Date of birth in YYYY-MM-DD format (e.g., "1990-01-01").


gender string required Gender code - Customer gender code. For detailed descriptions of each value, see the Gender Enum Resource (e.g., "M").


nationality string required Nationality - Two-letter nationality country code (e.g., "US").


nationalId string required Government-issued ID number - Customer identity document number (e.g., "A123456789").


idType string required Government-issued ID type - Identity document type. For detailed descriptions of each value, see the Government ID Type Enum Resource (e.g., "PASSPORT").


issueDate string optional Identity document issue date - Issue date in YYYY-MM-DD format.


expiryDate string optional Identity document expiry date - Expiry date in YYYY-MM-DD format.


nationalAddress Address required Identity document address - Residential address shown on the identity document. For the full structure, see the Address Resource.


mailAddress Address optional Mailing or billing address - Mailing or billing address associated with the customer. For the full structure, see the Address Resource.


idFrontId string required Front ID file identifier - Numeric string representing the uploaded file identifier for the front side of the identity document.


idBackId string required Back ID file identifier - Numeric string representing the uploaded file identifier for the back side of the identity document.


idHoldId string required Selfie-with-ID file identifier - Numeric string representing the uploaded file identifier for the selfie holding the identity document.


ipAddress string optional Source IP address - IP address captured during customer onboarding.


phoneNumber string required Phone number - Phone number without the country calling code.


phoneCountryCode string required Country calling code - International dialing code in digits only, without the plus sign.


occupation string optional Occupation code - Occupation code used for customer profile and KYC assessment. For detailed descriptions of each value, see the Occupation Code Enum Resource.


transactionCountries array required Transaction countries - List of transaction countries to activate for Scan-to-Pay (e.g., ["VN", "TH"]).

Update Customer Request Resource

This resource describes the payload used to update an existing Scan-to-Pay customer profile.

Example JSON

{
  "customerId": "1986466477083709441",
  "customerEmail": "[email protected]",
  "firstName": "John",
  "lastName": "Smith",
  "dateOfBirth": "1990-01-01",
  "gender": "M",
  "nationality": "US",
  "nationalId": "A123456789",
  "idType": "PASSPORT",
  "issueDate": "2018-05-10",
  "expiryDate": "2028-05-10",
  "nationalAddress": {
    "addressLine1": "123 Main Street",
    "addressLine2": "Apt 4B",
    "city": "New York",
    "state": "NY",
    "country": "US",
    "postalCode": "10001"
  },
  "mailAddress": {
    "addressLine1": "200 Market Street",
    "addressLine2": "Suite 900",
    "city": "San Francisco",
    "state": "CA",
    "country": "US",
    "postalCode": "94105"
  },
  "idFrontId": "2046061141584039936",
  "idBackId": "2046061141584039937",
  "idHoldId": "2046061141584039938",
  "phoneNumber": "6505551234",
  "phoneCountryCode": "1",
  "occupation": "01",
  "extend": {
    "customerTag": "vip",
    "source": "partner-portal"
  }
}

Update Customer Request Properties

customerId string required Interlace customer identifier - Numeric string representing a 64-bit Interlace customer identifier used to locate the customer record (e.g., "1986466477083709441").


customerEmail string optional Customer email - Email address associated with the customer profile.


firstName string optional First name - Customer first name.


lastName string optional Last name - Customer last name.


dateOfBirth string optional Date of birth - Date of birth in YYYY-MM-DD format.


gender string optional Gender code - Customer gender code. For detailed descriptions of each value, see the Gender Enum Resource.


nationality string optional Nationality - Two-letter nationality country code.


nationalId string optional Government-issued ID number - Customer identity document number.


idType string optional Government-issued ID type - Identity document type. For detailed descriptions of each value, see the Government ID Type Enum Resource.


issueDate string optional Identity document issue date - Issue date in YYYY-MM-DD format.


expiryDate string optional Identity document expiry date - Expiry date in YYYY-MM-DD format.


nationalAddress Address optional Identity document address - Residential address shown on the identity document. For the full structure, see the Address Resource.


mailAddress Address optional Mailing or billing address - Mailing or billing address associated with the customer. For the full structure, see the Address Resource.


idFrontId string optional Front ID file identifier - Numeric string representing the uploaded file identifier for the front side of the identity document.


idBackId string optional Back ID file identifier - Numeric string representing the uploaded file identifier for the back side of the identity document.


idHoldId string optional Selfie-with-ID file identifier - Numeric string representing the uploaded file identifier for the selfie with the identity document.


phoneNumber string optional Phone number - Phone number without the country calling code.


phoneCountryCode string optional Country calling code - International dialing code in digits only, without the plus sign.


occupation string optional Occupation code - Occupation code used for customer profile and KYC assessment. For detailed descriptions of each value, see the Occupation Code Enum Resource.


extend object optional Client-defined metadata - Custom extension fields supplied by the API client.

Activate Customer Request Resource

This resource describes the payload used to request Scan-to-Pay activation for a customer in a specific transaction country.

Example JSON

{
  "transactionCountry": "VN",
  "customerId": "1986466477083709441"
}

Activate Customer Request Properties

transactionCountry string required Transaction country - Two-letter transaction country code to activate for the customer (e.g., "VN").


customerId string required Interlace customer identifier - Numeric string representing a 64-bit Interlace customer identifier (e.g., "1986466477083709441").

Customer Resource

This resource describes the customer object returned by customer registration, customer update, and customer profile APIs.

Example JSON

{
  "customerId": "1986466477083709441",
  "customerEmail": "[email protected]",
  "version": "v3",
  "firstName": "John",
  "lastName": "Smith",
  "dateOfBirth": "1990-01-01",
  "gender": "M",
  "nationality": "US",
  "nationalId": "A123456789",
  "idType": "PASSPORT",
  "issueDate": "2018-05-10",
  "expiryDate": "2028-05-10",
  "nationalAddress": {
    "addressLine1": "123 Main Street",
    "addressLine2": "Apt 4B",
    "city": "New York",
    "state": "NY",
    "country": "US",
    "postalCode": "10001"
  },
  "mailAddress": {
    "addressLine1": "200 Market Street",
    "addressLine2": "Suite 900",
    "city": "San Francisco",
    "state": "CA",
    "country": "US",
    "postalCode": "94105"
  },
  "idFrontId": "2046061141584039936",
  "idBackId": "2046061141584039937",
  "idHoldId": "2046061141584039938",
  "ipAddress": "203.0.113.25",
  "phoneNumber": "6505551234",
  "phoneCountryCode": "1",
  "occupation": "01"
}

Customer Properties

customerId string required Interlace customer identifier - Numeric string representing a 64-bit Interlace customer identifier.


customerEmail string optional Customer email - Email address associated with the customer profile.


version string optional API version - Version associated with the customer record.


firstName string optional First name - Customer first name.


lastName string optional Last name - Customer last name.


dateOfBirth string optional Date of birth - Date of birth in YYYY-MM-DD format.


gender string optional Gender code - Customer gender code. For detailed descriptions of each value, see the Gender Enum Resource.


nationality string optional Nationality - Two-letter nationality country code.


nationalId string optional Government-issued ID number - Customer identity document number.


idType string optional Government-issued ID type - Identity document type. For detailed descriptions of each value, see the Government ID Type Enum Resource.


issueDate string optional Identity document issue date - Issue date in YYYY-MM-DD format.


expiryDate string optional Identity document expiry date - Expiry date in YYYY-MM-DD format.


nationalAddress Address optional Identity document address - Residential address shown on the identity document. For the full structure, see the Address Resource.


mailAddress Address optional Mailing or billing address - Mailing or billing address associated with the customer. For the full structure, see the Address Resource.


idFrontId string optional Front ID file identifier - Numeric string representing the uploaded file identifier for the front side of the identity document.


idBackId string optional Back ID file identifier - Numeric string representing the uploaded file identifier for the back side of the identity document.


idHoldId string optional Selfie-with-ID file identifier - Numeric string representing the uploaded file identifier for the selfie with the identity document.


ipAddress string optional Source IP address - IP address captured during customer onboarding.


phoneNumber string optional Phone number - Phone number without the country calling code.


phoneCountryCode string optional Country calling code - International dialing code in digits only, without the plus sign.


occupation string optional Occupation code - Occupation code used for customer profile and KYC assessment. For detailed descriptions of each value, see the Occupation Code Enum Resource.

Country Activation Resource

This resource describes the activation result for a single customer in a single transaction country.

Example JSON

{
  "customerId": "1986466477083709441",
  "transactionCountry": "VN",
  "status": "REJECTED",
  "errorMessage": "Additional KYC documents are required.",
  "missingMaterials": [
    {
      "fieldName": "idFrontId",
      "description": "Front ID image is blurred",
      "issueType": "INVALID",
      "suggestedAction": "REUPLOAD"
    }
  ]
}

Country Activation Properties

customerId string required Interlace customer identifier - Numeric string representing a 64-bit Interlace customer identifier.


transactionCountry string required Transaction country - Two-letter transaction country code associated with this activation result.


status string required Activation status - Current activation result for the specified transaction country. For detailed descriptions of each value, see the Country Activation Status Enum Resource.


errorMessage string optional Failure reason - Reason for rejection or processing failure, if applicable.


missingMaterials array

Customer Profile Resource

This resource describes the combined customer profile response returned by the customer profile API.

Example JSON

{
  "customer": {
    "customerId": "1986466477083709441",
    "customerEmail": "[email protected]",
    "version": "v3",
    "firstName": "John",
    "lastName": "Smith",
    "dateOfBirth": "1990-01-01",
    "gender": "M",
    "nationality": "US",
    "nationalId": "A123456789",
    "idType": "PASSPORT",
    "issueDate": "2018-05-10",
    "expiryDate": "2028-05-10",
    "nationalAddress": {
      "addressLine1": "123 Main Street",
      "addressLine2": "Apt 4B",
      "city": "New York",
      "state": "NY",
      "country": "US",
      "postalCode": "10001"
    },
    "mailAddress": {
      "addressLine1": "200 Market Street",
      "addressLine2": "Suite 900",
      "city": "San Francisco",
      "state": "CA",
      "country": "US",
      "postalCode": "94105"
    },
    "idFrontId": "2046061141584039936",
    "idBackId": "2046061141584039937",
    "idHoldId": "2046061141584039938",
    "ipAddress": "203.0.113.25",
    "phoneNumber": "6505551234",
    "phoneCountryCode": "1",
    "occupation": "01"
  },
  "countryActivations": [
    {
      "customerId": "1986466477083709441",
      "transactionCountry": "VN",
      "status": "ACTIVATED",
      "errorMessage": null,
      "missingMaterials": []
    },
    {
      "customerId": "1986466477083709441",
      "transactionCountry": "TH",
      "status": "PROCESSING",
      "errorMessage": null,
      "missingMaterials": []
    }
  ]
}

Customer Profile Properties

customer Customer required Customer profile information - Customer master profile returned by the customer APIs. For the full structure, see the Customer Resource.


countryActivations array

QR Parse Request Resource

This resource describes the request payload used to parse a raw Scan-to-Pay QR payload.

Example JSON

{
  "qrContent": "00020101021138560010A0000007270126000697040701128888123456780208QRIBFTTA53037045802VN63042249",
  "customerId": "1986466477083709441",
  "fiatCurrency": "VND"
}

QR Parse Request Properties

qrContent string optional Raw QR payload - Full QR payload content to be parsed.


customerId string optional Interlace customer identifier - Optional numeric string representing a 64-bit Interlace customer identifier used to apply customer-specific parsing rules.


fiatCurrency string optional Transaction currency - Optional ISO 4217 currency code used to assist QR parsing.

QR Parse Response Resource

This resource describes the normalized QR parsing result returned by the QR parse API.

Example JSON

{
  "country": "VN",
  "transactionCurrency": "VND",
  "transactionAmount": "100000.00",
  "bankCode": "970407",
  "bankAccountNumber": "888812345678",
  "bankName": "Techcombank",
  "merchantName": "INTERLACE SHOP",
  "qrType": "VIET_QR",
  "content": "00020101021138560010A0000007270126000697040701128888123456780208QRIBFTTA53037045802VN63042249",
  "crc": "2249",
  "merchantCategoryCode": "0000",
  "dynamic": true,
  "qrToken": "qr_parse_202607220001",
  "additionalData": {
    "merchantCity": "HO_CHI_MINH",
    "providerName": "NAPAS"
  }
}

QR Parse Response Properties

country string optional Country code - Country code extracted from the QR payload, if available.


transactionCurrency string optional Transaction currency - Currency extracted from the QR payload, if available.


transactionAmount string optional Transaction amount - Amount extracted from the QR payload, if available.


bankCode string optional Bank or payment channel code - Bank or payment channel code extracted from the QR payload, if available.


bankAccountNumber string optional Beneficiary bank account number - Bank account number extracted from the QR payload, if available.


bankName string optional Beneficiary bank name - Bank or payment institution name extracted from the QR payload, if available.


merchantName string optional Merchant or beneficiary name - Merchant or beneficiary name extracted from the QR payload, if available.


qrType string optional QR type - QR type identified by the parser.


content string optional Original QR payload content - Original QR payload returned for reference. Depending on the QR standard, this may be an encrypted string, an EMV or TLV payload, or a payment URL.


crc string optional CRC checksum - CRC checksum extracted from the QR payload, if available.


merchantCategoryCode string optional Merchant category code - Merchant category code extracted from the QR payload, if available.


dynamic boolean optional Dynamic QR indicator - Whether the QR payload represents a dynamic QR code.


qrToken string optional QR parse token - Token returned by the QR parse API that can be reused when creating a payout order.


additionalData object optional Additional structured data - Country-specific or channel-specific structured data returned by the parser.

Create Payout Order Request Resource

This resource describes the payload used to create a Scan-to-Pay payout order.

Example JSON

Select the QR input mode that matches the data available to the API client.

{
  "customerId": "1986466477083709441",
  "clientTradeNo": "ORD20260722000001-RAW",
  "fiatAmount": "100.50",
  "fiatCurrency": "VND",
  "country": "VN",
  "qrMode": "RAW",
  "qrInfo": {
    "content": "00020101021138560010A0000007270126000697040701128888123456780208QRIBFTTA53037045802VN63042249"
  },
  "extendInfo": {
    "orderSource": "mobile-app"
  }
}
{
  "customerId": "1986466477083709441",
  "clientTradeNo": "ORD20260722000001-DATA",
  "fiatAmount": "100.50",
  "fiatCurrency": "VND",
  "country": "VN",
  "qrMode": "DATA",
  "qrInfo": {
    "qrType": "VIET_QR",
    "qrData": {
      "bankCode": "970407",
      "bankAccountNumber": "888812345678",
      "merchantName": "INTERLACE SHOP"
    }
  },
  "recipient": {
    "recipientName": "INTERLACE SHOP",
    "bankCode": "970407",
    "bankName": "Techcombank",
    "bankAccountNumber": "888812345678"
  },
  "extendInfo": {
    "orderSource": "mobile-app"
  }
}
{
  "customerId": "1986466477083709441",
  "clientTradeNo": "ORD20260722000001-TOKEN",
  "fiatAmount": "100.50",
  "fiatCurrency": "VND",
  "country": "VN",
  "qrMode": "TOKEN",
  "qrToken": "7f3e18a4c82d4f6ba197de204bcf5821",
  "extendInfo": {
    "orderSource": "mobile-app"
  }
}

Create Payout Order Request Properties

customerId string required Interlace customer identifier - Numeric string representing a 64-bit Interlace customer identifier.


clientTradeNo string required Client order number - Client-generated order number that must be unique for idempotency.


fiatAmount string required Payout amount - Decimal string representing the payout amount, supporting up to 6 decimal places.


fiatCurrency string required Payout currency - ISO 4217 currency code used for the payout.


country string required Payout country - Two-letter payout country code.


qrMode string optional QR input mode - QR input mode used to tell the system whether the request provides raw QR content, structured QR data, or a QR parse token. For detailed descriptions of each value, see the Payout QR Mode Enum Resource.


qrToken string optional QR parse token - Token returned by the QR parse API. Required when qrMode is TOKEN.


qrInfo SellerOrderQrInfo optional QR data object - Structured QR input object supplied with the payout order. For the full structure, see the Seller Order QR Info Resource.


recipient SellerOrderRecipientInfo optional Recipient data object - Structured recipient information supplied with the payout order. For the full structure, see the Seller Order Recipient Info Resource.


extendInfo object optional Client-defined metadata - Metadata echoed back in subsequent order queries. It is not used for payment routing.

Payout Order Resource

This resource describes a Scan-to-Pay payout order returned by the create payout order and payout order detail APIs. The same structure is also used by the SCAN2PAY_SERVICE_ORDER.UPDATED webhook resource.

Example JSON

{
  "customerId": "1986466477083709441",
  "tradeNo": "1965738216225083393",
  "clientTradeNo": "ORD20260722000001",
  "fiatAmount": "100.50",
  "fiatCurrency": "VND",
  "country": "VN",
  "qrData": {
    "qrType": "VIET_QR",
    "bankCode": "970407",
    "bankName": "Techcombank",
    "bankAccountNumber": "888812345678",
    "merchantName": "INTERLACE SHOP"
  },
  "status": "PENDING",
  "description": "Customer payout order for Vietnam QR payment",
  "createTime": "1784683200000",
  "completeTime": null,
  "type": "PAYMENT",
  "transaction": null,
  "fee": null,
  "statusCode": null,
  "statusMsg": null
}
{
  "customerId": "1986466477083709441",
  "tradeNo": "1965738216225083393",
  "clientTradeNo": "ORD20260722000001",
  "fiatAmount": "100.50",
  "fiatCurrency": "VND",
  "country": "VN",
  "qrData": {
    "qrType": "VIET_QR",
    "bankCode": "970407",
    "bankName": "Techcombank",
    "bankAccountNumber": "888812345678",
    "merchantName": "INTERLACE SHOP"
  },
  "status": "PAID",
  "description": "Customer payout order for Vietnam QR payment",
  "createTime": "1784683200000",
  "completeTime": "1784683265000",
  "type": "PAYMENT",
  "transaction": {
    "amount": "98.50",
    "currency": "USDT"
  },
  "fee": {
    "amount": "1.50",
    "currency": "USDT"
  },
  "statusCode": "SUCCESS",
  "statusMsg": "Transaction completed successfully"
}

Payout Order Properties

customerId string required Interlace customer identifier - Numeric string representing the customer identifier associated with the payout order.


tradeNo string required Interlace order number - Numeric string representing the Interlace-generated order identifier.


clientTradeNo string required Client order number - Client-generated order number used for idempotency and partner-side order reconciliation.


fiatAmount string required Payout amount - Decimal string representing the payout amount.


fiatCurrency string required Order currency - ISO 4217 currency code for the payout order.


country string required Order country - Two-letter country code for the payout order.


qrData object optional QR data - QR data associated with the payout order.


status string required Order status - Current order processing status. For detailed descriptions of each value, see the Payout Order Status Enum Resource.


description string optional Order description - Order description or partner-provided note associated with the payout order.


createTime string required Order creation time - Numeric string representing the creation Unix timestamp in milliseconds.


completeTime string optional Order completion time - Numeric string representing the completion Unix timestamp in milliseconds. It is null while the order is not yet in a final state.


type string required Payment type - Scan-to-Pay order type. For detailed descriptions of each value, see the Payment Type Enum Resource. The current public value is PAYMENT.


transaction TransactionInfo optional Transaction information - Final transaction settlement information, if available. For the full structure, see the Transaction Info Resource.


fee FeeInfo optional Fee information - Fee information charged for the order, if available. For the full structure, see the Fee Info Resource.


statusCode string optional Channel status code - Status or error code returned by the payment provider, if available.


statusMsg string optional Channel status message - Status or error message returned by the payment provider, if available.

Top-Up Search Request Resource

This resource describes the request payload used to search top-up records.

Example JSON

{
  "page": 1,
  "limit": 10,
  "type": "CHARGE",
  "amountCurrency": "USDT",
  "status": "SUCCESS",
  "chain": "ARB",
  "transactionHash": "0x694d6a05709123c0a123457403b6e190b76b1ecd5a466d320dec65153873df17",
  "minGmtCreate": "1784596800000",
  "maxGmtCreate": "1784683199999",
  "minGmtModified": "1784596800000",
  "maxGmtModified": "1784683199999"
}

Top-Up Search Request Properties

page integer optional Page number - Page number for paginated queries. Minimum value is 1. Default is 1.


limit integer optional Page size - Number of records per page. Minimum value is 1. Maximum value is 100. Default is 10.


type string optional Top-up record type - Top-up record type used for filtering. For detailed descriptions of each value, see the Top-Up Record Type Enum Resource.


amountCurrency string optional Asset symbol - Asset symbol used for filtering. For detailed descriptions of each value, see the Crypto Currency Enum Resource.


status string optional Top-up status - Top-up processing status used for filtering. For detailed descriptions of each value, see the Top-Up Status Enum Resource.


chain string optional Blockchain network - Blockchain network used for filtering. For detailed descriptions of each value, see the Chain Type Enum Resource.


transactionHash string optional Transaction hash - Blockchain transaction hash used for filtering.


minGmtCreate string optional Minimum creation time - Numeric string representing the minimum creation Unix timestamp in milliseconds.


maxGmtCreate string optional Maximum creation time - Numeric string representing the maximum creation Unix timestamp in milliseconds.


minGmtModified string optional Minimum last-updated time - Numeric string representing the minimum last-updated Unix timestamp in milliseconds.


maxGmtModified string optional Maximum last-updated time - Numeric string representing the maximum last-updated Unix timestamp in milliseconds.

Top-Up Record Resource

This resource describes a top-up record item returned by the top-up search API.

Example JSON

{
  "id": "1987123001000000001",
  "type": "CHARGE",
  "amountCurrency": "USDT",
  "status": "SUCCESS",
  "chain": "ARB",
  "amount": "98.50",
  "transactionHash": "0x694d6a05709123c0a123457403b6e190b76b1ecd5a466d320dec65153873df17",
  "createTime": "1784683200000",
  "updateTime": "1784683235000"
}

Top-Up Record Properties

id string required Top-up record identifier - Numeric string representing the top-up record identifier.


type string required Top-up record type - Top-up record type. For detailed descriptions of each value, see the Top-Up Record Type Enum Resource.


amountCurrency string required Asset symbol - Asset symbol associated with the top-up record. For detailed descriptions of each value, see the Crypto Currency Enum Resource.


status string required Top-up status - Current top-up status. For detailed descriptions of each value, see the Top-Up Status Enum Resource.


chain string required Blockchain network - Blockchain network associated with the top-up record. For detailed descriptions of each value, see the Chain Type Enum Resource.


amount string required Top-up amount - Decimal string representing the top-up amount.


transactionHash string optional Transaction hash - Blockchain transaction hash associated with the top-up record.


createTime string required Creation time - Numeric string representing the creation Unix timestamp in milliseconds.


updateTime string required Last-updated time - Numeric string representing the last-updated Unix timestamp in milliseconds.

Top-Up Record Detail Resource

This resource describes the detailed top-up record object returned by the top-up detail API.

Example JSON

{
  "id": "1987123001000000001",
  "type": "CHARGE",
  "amountCurrency": "USDT",
  "status": "SUCCESS",
  "chain": "ARB",
  "amount": "98.50",
  "transactionHash": "0x694d6a05709123c0a123457403b6e190b76b1ecd5a466d320dec65153873df17",
  "sourceAddress": "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113",
  "destinationAddress": "0x8ba1f109551bd432803012645ac136ddd64dba72",
  "createTime": "1784683200000",
  "updateTime": "1784683235000"
}

Top-Up Record Detail Properties

id string required Top-up record identifier - Numeric string representing the top-up record identifier.


type string required Top-up record type - Top-up record type. For detailed descriptions of each value, see the Top-Up Record Type Enum Resource.


amountCurrency string required Asset symbol - Asset symbol associated with the top-up record. For detailed descriptions of each value, see the Crypto Currency Enum Resource.


status string required Top-up status - Current top-up status. For detailed descriptions of each value, see the Top-Up Status Enum Resource.


chain string required Blockchain network - Blockchain network associated with the top-up record. For detailed descriptions of each value, see the Chain Type Enum Resource.


amount string required Top-up amount - Decimal string representing the top-up amount.


transactionHash string optional Transaction hash - Blockchain transaction hash associated with the top-up record.


sourceAddress string optional Source wallet address - Source blockchain address associated with the top-up.


destinationAddress string optional Destination wallet address - Destination blockchain address associated with the top-up.


createTime string required Creation time - Numeric string representing the creation Unix timestamp in milliseconds.


updateTime string required Last-updated time - Numeric string representing the last-updated Unix timestamp in milliseconds.

Balance Resource

This resource describes a Scan-to-Pay funding balance record.

Example JSON

{
  "id": "1987000000000000001",
  "currency": "USDT",
  "amount": "1500.75"
}

Balance Properties

id string required Balance record identifier - Numeric string representing the balance record identifier.


currency string required Asset symbol - Asset symbol of the balance record. For detailed descriptions of each value, see the Crypto Currency Enum Resource (e.g., "USDT").


amount string required Balance amount - Decimal string representing the current available balance.

Wallet Address Query Request Resource

This resource describes the request payload used to retrieve a deposit wallet address.

Example JSON

{
  "currency": "USDT",
  "chainType": "ARB"
}

Wallet Address Query Request Properties

currency string required Asset symbol - Asset symbol used to select the deposit wallet address. For detailed descriptions of each value, see the Crypto Currency Enum Resource.


chainType string required Blockchain network - Blockchain network used to select the deposit wallet address. For detailed descriptions of each value, see the Chain Type Enum Resource.

Wallet Address Resource

This resource describes the deposit wallet address object returned by the wallet address query API.

Example JSON

{
  "id": "1987234567890000001",
  "merchantId": "1986000000000000001",
  "currency": "USDT",
  "chainType": "ARB",
  "chainAddress": "0x8ba1f109551bd432803012645ac136ddd64dba72"
}

Wallet Address Properties

id string required Wallet address record identifier - Numeric string representing the wallet address record identifier.


merchantId string required API client account identifier - Numeric string representing the API client account identifier associated with the wallet address.


currency string required Asset symbol - Asset symbol associated with the wallet address. For detailed descriptions of each value, see the Crypto Currency Enum Resource.


chainType string required Blockchain network - Blockchain network associated with the wallet address. For detailed descriptions of each value, see the Chain Type Enum Resource.


chainAddress string required Deposit wallet address - Deposit wallet address that can be used for on-chain funding.

SCAN2PAY_SERVICE_ORDER.UPDATED Resource Object

This resource defines the data structure of the webhook resource payload sent when a Scan-to-Pay payout order changes status.

The resource payload uses the same object structure as the Payout Order Resource.

Example JSON

{
  "customerId": "1986466477083709441",
  "tradeNo": "1965738216225083393",
  "clientTradeNo": "ORD20260722000001",
  "fiatAmount": "100.50",
  "fiatCurrency": "VND",
  "country": "VN",
  "qrData": {
    "qrType": "VIET_QR",
    "bankCode": "970407",
    "bankName": "Techcombank",
    "bankAccountNumber": "888812345678",
    "merchantName": "INTERLACE SHOP"
  },
  "status": "PAID",
  "description": "Customer payout order for Vietnam QR payment",
  "createTime": "1784683200000",
  "completeTime": "1784683265000",
  "type": "PAYMENT",
  "transaction": {
    "amount": "98.50",
    "currency": "USDT"
  },
  "fee": {
    "amount": "1.50",
    "currency": "USDT"
  },
  "statusCode": "SUCCESS",
  "statusMsg": "Transaction completed successfully"
}

Resource Properties

This webhook resource reuses the exact same field definitions as the Payout Order Resource.

SCAN2PAY.CUSTOMER_ACTIVATION_RESULT Resource Object

This resource defines the data structure of the webhook resource payload sent when customer activation results are produced for one or more transaction countries.

Example JSON

{
  "customerId": "1986466477083709441",
  "countryActivations": [
    {
      "transactionCountry": "VN",
      "status": "ACTIVATED",
      "errorMessage": null,
      "missingMaterials": []
    },
    {
      "transactionCountry": "TH",
      "status": "REJECTED",
      "errorMessage": "Additional KYC documents are required.",
      "missingMaterials": [
        {
          "fieldName": "idFrontId",
          "description": "Front ID image is blurred",
          "issueType": "INVALID",
          "suggestedAction": "REUPLOAD"
        }
      ]
    }
  ]
}

Resource Properties

customerId string required Interlace customer identifier - Numeric string representing a 64-bit Interlace customer identifier.


countryActivations array

Associated Sub-Resources

The Scan-to-Pay resources rely on the following sub-resources to complete data expression. Property descriptions above link directly to these resource definitions where applicable.

Address Resource

This resource describes the standard address object used in Scan-to-Pay customer onboarding and customer profile data.

Example JSON

{
  "addressLine1": "123 Main Street",
  "addressLine2": "Apt 4B",
  "city": "New York",
  "state": "NY",
  "country": "US",
  "postalCode": "10001"
}

Address Properties

addressLine1 string required Primary address line - Street address, PO Box, or company name.


addressLine2 string optional Secondary address line - Apartment, suite, unit, or building information.


city string required City - City name using English letters and spaces only.


state string required State / county / province / region - Required for all countries. For the US and Canada, use the two-letter subdivision code.


country string required Country code - Two-letter country code defined by ISO 3166-1 alpha-2.


postalCode string required Postal or ZIP code - Postal code of the address.

KYC Missing Material Resource

This resource describes a single KYC item that must be provided or corrected before a country activation can be completed.

Example JSON

{
  "fieldName": "idFrontId",
  "description": "Front ID image is blurred",
  "issueType": "INVALID",
  "suggestedAction": "REUPLOAD"
}

KYC Missing Material Properties

fieldName string required Payload field name - Field name in the KYC submission payload that requires action.


description string required Issue description - Human-readable explanation of the issue returned by the system or the payment provider.


issueType string required Issue type - Standardized issue category used by the activation workflow. For detailed descriptions of each value, see the KYC Material Issue Type Enum Resource.


suggestedAction string optional Suggested action - Recommended remediation action. This is currently a string value rather than a formal enum. Common values include REUPLOAD, CORRECT, and PROVIDE.

Seller Order QR Info Resource

This resource describes the structured QR object that can be submitted when creating a payout order.

Example JSON

{
  "content": "00020101021138560010A0000007270126000697040701128888123456780208QRIBFTTA53037045802VN63042249",
  "qrType": "VIET_QR",
  "qrData": {
    "bankCode": "970407",
    "bankAccountNumber": "888812345678",
    "merchantName": "INTERLACE SHOP"
  }
}

Seller Order QR Info Properties

content string optional Raw QR payload - Raw QR payload used when qrMode is RAW.


qrType string optional QR type identifier - QR type identifier such as "VIET_QR" or a channel-specific type value.


qrData object optional Structured QR data - Structured QR data object containing country-specific or channel-specific fields. Common keys include bankCode, bankAccountNumber, bankName, and merchantName, depending on the QR standard and country.

Seller Order Recipient Info Resource

This resource describes the structured recipient object that can be submitted when creating a payout order.

Example JSON

{
  "recipientName": "INTERLACE SHOP",
  "bankCode": "970407",
  "bankName": "Techcombank",
  "bankAccountNumber": "888812345678"
}

Seller Order Recipient Info Properties

recipientName string optional Recipient name - Recipient name, typically the merchant or beneficiary name extracted from the QR.


bankCode string optional Recipient bank code - Bank or payment institution code for the recipient.


bankName string optional Recipient bank name - Bank or payment institution name for the recipient.


bankAccountNumber string optional Recipient bank account number - Recipient bank account number or wallet identifier.

Transaction Info Resource

This resource describes the transaction settlement information embedded in payout order responses.

Example JSON

{
  "amount": "98.50",
  "currency": "USDT"
}

Transaction Info Properties

amount string required Transaction amount - Decimal string representing the actual paid amount.


currency string required Transaction currency - Currency code of the actual paid amount. For detailed descriptions of each value, see the Crypto Currency Enum Resource.

Fee Info Resource

This resource describes the fee object embedded in payout order responses.

Example JSON

{
  "amount": "1.50",
  "currency": "USDT"
}

Fee Info Properties

amount string required Fee amount - Decimal string representing the fee amount charged for the order.


currency string required Fee currency - Currency code of the fee amount. For detailed descriptions of each value, see the Crypto Currency Enum Resource.

Country Activation Resource

This resource describes the activation result for a single transaction country inside the customer activation result webhook.

Example JSON

{
  "transactionCountry": "TH",
  "status": "REJECTED",
  "errorMessage": "Additional KYC documents are required.",
  "missingMaterials": [
    {
      "fieldName": "idFrontId",
      "description": "Front ID image is blurred",
      "issueType": "INVALID",
      "suggestedAction": "REUPLOAD"
    }
  ]
}

Country Activation Properties

transactionCountry string required Transaction country - Two-letter country code associated with this activation result.


status string required Activation status - Activation result for the specified transaction country. For detailed descriptions of each value, see the Country Activation Status Enum Resource.


errorMessage string optional Failure reason - Reason for rejection or activation failure, if applicable.


missingMaterials array

Associated Enums

The following enums are used by the Scan-to-Pay resources above. Property descriptions link directly to the relevant enum resource where applicable.

Gender Enum Resource

This resource defines the supported gender codes used by the customer APIs.

Enum ValueDescription
MMale customer gender code.
FFemale customer gender code.

Government ID Type Enum Resource

This resource defines the supported government-issued identity document types used by the customer APIs.

Enum ValueDescription
PASSPORTPassport document type.
ID_CARDNational or government-issued ID card document type.

Occupation Code Enum Resource

This resource defines the supported occupation codes used by the customer APIs.

Enum ValueDescription
01Office employee or salaried staff.
02Independent freelancer.
03Self-employed business owner.
04Public sector or public institution employee.
05Employee of a state-owned enterprise.
06Healthcare professional or medical worker.
07Teacher or education professional.
08Construction or engineering worker.
09Ride-hailing driver, taxi driver, or freight driver.
10E-commerce or online retail practitioner.
11Food and beverage service worker.
12Financial services professional.
13Customer without a fixed occupation.
14Retired individual.
15Student.
16Other occupation category.

Country Activation Status Enum Resource

This resource defines the supported activation statuses used by country activation responses and customer activation result webhooks.

Enum ValueDescription
PROCESSINGCountry activation is in progress.
ACTIVATEDCountry activation completed successfully.
REJECTEDCountry activation was rejected or failed.

KYC Material Issue Type Enum Resource

This resource defines the supported issue categories returned in KYC missing material objects.

Enum ValueDescription
MISSINGRequired information was not provided.
INVALIDInformation was provided but is invalid.
EXPIREDThe submitted document has expired.
FORMAT_ERRORThe submitted file or field has an invalid format, such as size, type, or dimensions.
VERIFICATION_FAILEDIdentity verification failed.
INCOMPLETEInformation was only partially provided.

Payout QR Mode Enum Resource

This resource defines the supported QR input modes used by payout order creation.

Enum ValueDescription
RAWThe request provides raw QR content and the system parses it first.
DATAThe request provides already parsed QR data or structured recipient data.
TOKENThe request provides a qrToken returned by the QR parse API.

Payout Order Status Enum Resource

This resource defines the supported payout order statuses returned by payout order APIs and order update webhooks.

Enum ValueDescription
READYThe order has been created successfully and is ready for processing.
PENDINGThe payment provider is processing the order.
FAILEDThe order failed.
PAIDThe order completed successfully.

Payment Type Enum Resource

This resource defines the supported payment types currently returned by Scan-to-Pay payout order APIs.

Enum ValueDescription
PAYMENTStandard Scan-to-Pay payout payment order.

Top-Up Record Type Enum Resource

This resource defines the supported top-up record types returned by Scan-to-Pay funding APIs.

Enum ValueDescription
CHARGETop-up funding transaction

Top-Up Status Enum Resource

This resource defines the supported top-up statuses returned by Scan-to-Pay funding APIs.

Enum ValueDescription
SUCCESSTop-up completed successfully.
PENDINGTop-up is still being processed.
FAILEDTop-up failed.
FREEZETop-up funds are frozen.


Did this page help you?