Payment links
Public pay page data
No authentication. Returns payer-facing payment details.
GET
/
pay
/
{id}
Public pay page data
curl --request GET \
--url http://localhost:4000/v1/pay/{id}const options = {method: 'GET'};
fetch('http://localhost:4000/v1/pay/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "http://localhost:4000/v1/pay/{id}"
response = requests.get(url)
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"
}
}
}⌘I
Public pay page data
curl --request GET \
--url http://localhost:4000/v1/pay/{id}const options = {method: 'GET'};
fetch('http://localhost:4000/v1/pay/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "http://localhost:4000/v1/pay/{id}"
response = requests.get(url)
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"
}
}
}