EN
  • EN
  • ZH
EN
  • EN
  • ZH
  1. Read Before Development
  • Read Before Development
    • Environmental Information
    • API signature + signature verification specification
    • Common Issue List
    • Transfer API Flow
  • Api Reference General
    • MARKET SPECIFICS
    • Errors
  • Authentication
    • Obtain Access Token
      POST
  • Base Data API
    • List occupations
      POST
    • List provinces
      POST
    • List cities
      POST
    • List countries
      POST
    • List remittance purposes
      POST
    • List sources of funds
      POST
    • List relationships
      POST
    • List all countries currencies
      POST
    • List all banks
      POST
    • List all branches
      POST
    • List cities (Japan | China)
      POST
    • Supported local Bank and Bank Code
      POST
    • Supported local E-wallet and InstCode/Biller Code
      POST
  • Pay Out
    • International Remittance
      • Transfer API
        • Create Transfer | China | B2C E-Wallet
        • Create Transfer | China | B2C Bank-account
        • Create Transfer | Global USD Wires | B2B Bank Account
        • Create Transfer | CHN CNH | B2B Bank Account
        • Create Transfer | HKG CNH | B2B Bank Account
        • Create Transfer | CHN CNY | B2B Bank_Account
        • Create Transfer | Global | USD Wires | C2C Bank_account
        • Create Transfer | Global | USD Wires | B2C Bank_account
        • Create Transfer | Global | USD Wires | C2B Bank_account
        • Create Transfer | SGP | SGD | B2B Bank_account
        • Create Transfer | SGP | SGD | C2C Bank_account
        • Create Transfer | SGP | SGD | C2B Bank_account
        • Create Transfer | SGP | SGD | B2C Bank_account
        • Create Transfer | MYS | MYR | B2B Bank_account
        • Create Transfer | MYS | MYR | C2B Bank_account
        • Create Transfer | MYS | MYR | C2C Bank_account
        • Create Transfer | HKG | HKD | B2B Bank_account
        • Create Transfer | HKG | HKD | C2C Bank_account
        • Create Transfer | HKG | HKD | B2C Bank_account
        • Create Transfer | HKG | HKD | C2B Bank_account
        • Create Transfer | SEPA | EUR | B2B Bank_account
        • Create Transfer | SEPA | EUR | C2C Bank_account
        • Create Transfer | SEPA | EUR | B2C Bank_account
        • Create Transfer | SEPA | EUR | C2B Bank_account
        • Create Transfer | GBR | GBP | B2B Bank_account
        • Create Transfer | GBR | GBP | C2C Bank_account
        • Create Transfer | GBR | GBP | C2B Bank_account
        • Create Transfer | GBR | GBP | B2C Bank_account
      • Confirm Transfer
      • Get International Transfer
      • Retrieve a quote
    • Domestic Transfer
      • Indonesian PayOut - Sandbox environment materials
      • Notification
      • Create Domestic Transfer
      • Domestic Verify Bank Account
      • Get Domestic Transfer
    • Get Remittance List
      POST
  • Pay In
    • Virtual Account API
      • Create Merchant Virtual Account
      • Create Merchant's Customer Virtual Account
      • Get Virtual Account Payment Record
      • List Merchant Va payment record
      • Get Available VirtualAccount Banks
      • Va Payment Notification
  • Merchant
    • List all balances
  • Upload
    POST
  1. Read Before Development

API signature + signature verification specification

Request Method#

All Easylink requests are made using the POST method.

Common Request Headers#

FieldTypeRequiredDescription
Content-typestringYesapplication/json
AuthorizationstringYesThe AccessToken obtained through App ID and App Secret, in the format Bearer + space + AccessToken
X-EasyLink-AppKeystringYesThe App Key provided by Easylink
X-EasyLink-NoncestringYesUnique request ID
X-EasyLink-TimestampintYesMillisecond-level timestamp of the current time (valid within 5 minutes)
X-EasyLink-SignstringYesThe generated signature string

Common Response Structure#

{
    "code": 0,
    "message": "",
    "data": {}
}
ParameterTypeDescription
codeintResponse code, 0 indicates success
messagestrtingResponse message
dataobjectResponse data
💡
Note that only when code is 0 does it indicate a successful request. Any other value indicates a failure.

Key pair usage#

Principle: Whoever requests signs, and whoever responds verifies the signature.
Merchants generate a pair of keys for requesting Easylink.
Easylink generates a pair of keys for callback to merchants.

Signature Mechanism#

To ensure the security of transactions and API calls, Easylink performs signature verification on all interface requests. You need to sign all requests to confirm your identity.
Before integration, Easylink will provide sandbox environment materials for merchants. For details on how to obtain these, refer to Environmental Information. The App Key is used for signing, while the App ID and App Secret are used to obtain Easylink's AccessToken.
📌
When requesting Easylink's API interface, merchants should pass the AccessToken through the Authorization header field in the format: Bearer + space + AccessToken.
When requesting Easylink's API interface, merchants should pass the App Key through the X-EasyLink-AppKey header field.
1.
Merchants should follow these steps to generate a request signature: Obtain the set of parameters to be signed: common parameters (from Header) + business parameters (from Body). Common parameters include X-EasyLink-AppKey, X-EasyLink-Nonce, and X-EasyLink-Timestamp. Business parameters depend on the specific interface, such as order number, amount, currency, etc.
2.
Sort all request parameters: sort the parameters by the ASCII value of the first character (alphabetical order). If the first character is the same, sort by the ASCII value of the second character, and so on.
3.
Concatenate: combine the sorted parameters and their corresponding values into the format parameter=parameter value, and connect these parameters with the & character. The resulting string is called the original string. Then, append the App Key to both the beginning and end of this string to generate the string to be signed.
4.
Calculate the signature using the SHA-256 algorithm and RSA private key, and then Base64-encode the resulting signature to generate the signature to be transmitted in the Header.
5.
Pass the signature through the X-EasyLink-Sign header.

Signature Code Example#

JAVA
PHP
GOLANG

Signature Verification Code Example#

📌
The signature verification requires the public key provided by Easylink for you. If it is not provided, please contact us
📌
(Different from signing, EasyLink's callback to merchants does not include X-EasyLink-Nonce in the Header, so it is also not included in the signature.)
JAVA
PHP
GOLANG
Previous
Environmental Information
Next
Common Issue List