Global Payment
  1. Core Functionality
Global Payment
  • Introduction
  • Signature
  • API Keys
  • Get Started
  • Webhook Service
  • Core Functionality
    • create-developer-user
    • create on-ramp request
    • create off-ramp request
    • create on-ramp whit wusd
    • create-developer-user-with-simple-kyb
  • AppendixDocs
    • Business Industry
    • Supported document
    • Appendix
  • Api Reference
    • Authentication
      • Get Access Token
      • Refresh Access Token
    • User
      • Create User
      • submit Kyb V2
      • User Info
      • Simple Kyb Submit
    • Trade
      • Create Fee Config
      • Update Fee Config
      • Get Fee Config
      • Create Trade Request
      • Confirm Transaction
      • Get Transaction
      • Get Exchange Rate
    • Remit
      • Create Remit
      • Update Remit
      • remit info page
      • Get Remit Info
    • File
      • Upload File
    • Webhook
      • Event Page
      • Simulate a Event Call
  • Schemas
    • Schemas
      • RefundOrderDTO
      • RefundPageReq
      • ApiPageApiPageRefundOrderDTO
      • ApiResponseApiPageRefundOrderDTO
      • CancelReq
  1. Core Functionality

create off-ramp request

First step#

Developers must first configure the transaction fee rate("If you have already configured the corresponding 'fee rate', you may skip this step.")
https://app.apifox.com/link/project/6641817/apis/api-312999613

Seconed step#

Initiate a payment request to perform OffRamp crediting,more info you can refer here

example request#

example response#

{
    "retcode": "200",
    "retdata": {
        "id": 835,
        "txNo": "TR202512250545249078",
        "clientId": 600002476,
        "requestId": "544b66e1-0d00-4d4a-89ba-a360cec35f03",
        "fromCurrency": "USDC",
        "toCurrency": "USD",
        "amount": 120,
        "reallyAmount": 120,
        "totalFee": 0,
        "requestType": 2,
        "status": 2,
        "depositAddress": "0xdeadbeef2usdcethereumd0d00adc-65e6-4285-8d51-99b594b9e397",
        "rate": 1
    },
    "success": true
}

Fourth step#

Obtain depositAddress and messageHash from the response parameters of the request
image.png

Fifth step#

Use a Web3 wallet to transfer the specified amount to the depositAddress (the sandbox environment only supports USDC).
image.png

Sixth step (Execute based on conditions.)#

In Step 2, if the response indicates "needConfirm": true, you must invoke the confirmTransactionAPI to confirm the transaction.
More about Confirm Transaction here

example request#

{
	"clientId": 600000001,
	"currency": "USDC",
	"fundType": "2",
	"amount": 100,
	"messageHash": "0x0670410400c8ca676f0ba32b78db765e9e387becf8b47d58c2e0ee18e911f9f3",
	"depositId": "0x2a2bb864dcf29a56bd53828f13911d1b1af2bdf61b50818b64a5f769dcffcbb4"
}

example response#

{
    "retcode": "200",
    "success": true
}

Final step#

Call the query request to check the transaction execution result

example request#

curl --location --request GET 'https://openapi.dev.stablelink.apptrade/trade/request/query-tx-no?txNo=TR202512250545249078'

example response#

{
    "retcode": "200",
    "retdata": {
        "status": "Processing",
        "paymentRequest": {
            "id": 835,
            "txNo": "TR202512250545249078",
            "clientId": 600002476,
            "requestId": "544b66e1-0d00-4d4a-89ba-a360cec35f03",
            "fromCurrency": "USDC",
            "toCurrency": "USD",
            "amount": 120.00000000,
            "reallyAmount": 120.00000000,
            "totalFee": 0E-8,
            "requestType": 2,
            "status": 2,
            "createdAt": "2025-12-25T05:45:24.193884"
        },
        "paymentFund": {
            "id": 444,
            "clientId": 600002476,
            "requestId": "81a84dea-16c2-4e09-aac6-a39d21472a5e",
            "currency": "USDC",
            "fundType": "Crypto",
            "amount": 120.00000000,
            "depositId": "81a84dea-16c2-4e09-aac6-a39d21472a5e",
            "amountLimit": 2.00000000,
            "status": "Executed"
        },
        "executeLegs": [
            {
                "id": 1445,
                "requestId": 835,
                "legType": 2,
                "fromCurrency": "USDC",
                "toCurrency": "USD",
                "channel": "bridgeOffRampExecutor",
                "stage": 1,
                "routeId": 5,
                "status": 1
            }
        ]
    },
    "success": true
}
If the status is "Completed", it means this OnRamp transaction has succeeded.You can view the enums of ClientStatus here.
Modified at 2025-12-26 07:20:11
Previous
create on-ramp request
Next
create on-ramp whit wusd
Built with