Skip to main content
POST
/
pay
/
{id}
/
quote
Quote pay page payment
curl --request POST \
  --url http://localhost:4000/v1/pay/{id}/quote \
  --header 'Content-Type: application/json' \
  --data '
{
  "originChainKey": "tron",
  "originCurrency": "USDT"
}
'
const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({originChainKey: 'tron', originCurrency: 'USDT'})
};

fetch('http://localhost:4000/v1/pay/{id}/quote', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
import requests

url = "http://localhost:4000/v1/pay/{id}/quote"

payload = {
"originChainKey": "tron",
"originCurrency": "USDT"
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
{
  "status": "success",
  "message": "Pay page fetched",
  "data": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567891",
    "status": "awaiting_origin",
    "linkMode": "invoice",
    "checkoutLinkId": null,
    "embedConfig": {
      "layout": "default"
    },
    "pricingType": "fixed",
    "payerSource": "wallet",
    "paymentMethod": "deposit",
    "supportsConnectedWallet": true,
    "label": "Invoice #1042",
    "fromName": null,
    "payeeName": "Acme Ltd",
    "logoUrl": null,
    "receiveAmount": 500,
    "sendAmount": null,
    "amount": 500,
    "origin": null,
    "destination": {
      "key": "solana",
      "network": "Solana",
      "symbol": "USDC"
    },
    "payOptions": [
      {
        "key": "tron-solana-usdc",
        "name": "Tron USDT → Solana USDC",
        "originNetworkKey": "tron",
        "originNetwork": "Tron",
        "originSymbol": "USDT",
        "addressFormat": "tron",
        "minDepositUsd": 5
      },
      {
        "key": "bitcoin-solana-usdc",
        "name": "Bitcoin → Solana USDC",
        "originNetworkKey": "bitcoin",
        "originNetwork": "Bitcoin",
        "originSymbol": "BTC",
        "addressFormat": "bitcoin"
      }
    ],
    "originSelected": false,
    "quoted": false,
    "needsOriginSelection": true,
    "canChangeOrigin": false,
    "expectedAmountOut": null,
    "receivedAmountOut": null,
    "refundTo": null,
    "depositAddress": null,
    "relayStatus": null,
    "failReason": null,
    "depositTxHash": null,
    "successRedirectUrl": null,
    "quoteValidUntil": null,
    "quotedAt": null,
    "quoteExpired": false,
    "isOpenAmount": false,
    "completedAt": null,
    "recoveryInfo": {
      "message": "If payment fails, funds return to your return address on the origin network.",
      "recoveryUrl": "https://relay.link/withdraw"
    }
  }
}

Path Parameters

id
string<uuid>
required

Body

application/json
originChainKey
string
required

Origin network key from pay options (e.g. tron, bitcoin).

originCurrency
string
required

Token code on the origin network (e.g. USDT).

payerSource
enum<string>
default:wallet
Available options:
wallet,
exchange
paymentMethod
enum<string>
default:deposit
Available options:
deposit,
connected_wallet
refundTo
string

Required when paymentMethod is deposit.

Required string length: 8 - 128
walletAddress
string

Required when paymentMethod is connected_wallet.

Required string length: 8 - 128
payerDetails
object

Collected payer information. Required fields must be present when the link configures payerFields with required: true.

Response

200 - application/json

Public pay page state

status
string
Example:

"success"

message
string
data
object