| title | Secure Payments API Reference |
|---|---|
| description | Generate secure payment URLs, retrieve payment metadata, and get executable calldata. |
POST /v2/secure-payments— Create a secure paymentGET /v2/secure-payments— Lookup by request IDGET /v2/secure-payments/:token— Get payment metadataGET /v2/secure-payments/:token/pay— Get payment calldataPOST /v2/secure-payments/:token/intent— Record crosschain payment intent
| Endpoint | Supported auth |
|---|---|
POST /v2/secure-payments |
x-api-key, x-client-id + Origin, or session |
GET /v2/secure-payments |
Session only |
GET /v2/secure-payments/:token |
x-api-key or x-client-id |
GET /v2/secure-payments/:token/pay |
x-api-key or x-client-id |
POST /v2/secure-payments/:token/intent |
x-api-key or x-client-id |
Create a secure payment entry and return a hosted payment URL.
Array of payment requests. One item creates a single payment. Multiple items create a batch payment. ERC-7828 composite destination ID encoding payee wallet, chain, and token. Format: `{interopAddress}:{tokenAddress}`. Optional when the authenticated client ID has a bound payee destination. Human-readable payment amount (e.g., `"10.50"`). Must be greater than 0. Optional fee percentage from `0` to `100` (e.g., `"2.5"` for 2.5%). Optional fee recipient address. Required when `feePercentage` is set. Optional merchant reference for reconciliation (max 255 chars). Optional payer identifier (max 255 chars). ```bash cURL curl -X POST "https://api.request.network/v2/secure-payments" \ -H "x-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "requests": [ { "destinationId": "0x6923831ACf5c327260D7ac7C9DfF5b1c3cB3C7D7@eip155:11155111#80B12379:0x370DE27fdb7D1Ff1e1BaA7D11c5820a324Cf623C", "amount": "10" } ], "feePercentage": "2.5", "feeAddress": "0x6923831ACf5c327260D7ac7C9DfF5b1c3cB3C7D7", "reference": "ORDER-2024-001" }' ``` ```json 201 Created { "requestIds": [ "01e273ecc29d4b526df3a0f1f05ffc59372af8752c2b678096e49ac270416a7cdb" ], "securePaymentUrl": "https://pay.request.network/?token=01ABC123DEF456GHI789JKL", "token": "01ABC123DEF456GHI789JKL" } ```400: invalid body or unsupported secure payment configuration401: unauthorized429: rate limited
Lookup a secure payment by request ID. Requires a SIWE wallet session.
The request ID to look up. ```json 200 OK { "token": "01ABC123DEF456GHI789JKL", "securePaymentUrl": "https://pay.request.network/?token=01ABC123DEF456GHI789JKL", "status": "pending", "paymentType": "single", "createdAt": "2026-03-15T10:00:00.000Z", "expiresAt": "2026-03-15T10:15:00.000Z" } ```404: secure payment not found for the given request ID
Retrieve payment metadata and display information. Returns amounts, destination info, status, and optionally crosschain payment options — but not executable transaction calldata. Use /pay for calldata.
403: token expired or not payable404: token not found409: secure payment already completed429: rate limited
Retrieve executable transaction calldata for the secure payment. For crosschain payments, provide chain and token query parameters to select the source route.
curl -X GET "https://api.request.network/v2/secure-payments/01ABC123DEF456GHI789JKL/pay?wallet=0x1234...&chain=ARBITRUM&token=USDT" \
-H "x-api-key: YOUR_API_KEY"400: invalid calldata request or unsupported crosschain configuration403: token expired or not payable404: token not found409: secure payment already completed429: rate limited
Record a crosschain payment intent after the payer broadcasts the source-chain LiFi transaction. This allows the system to track the bridge execution and trigger payment detection on the destination chain.
Secure payment token. The source-chain transaction hash (66 characters: `0x` + 64 hex chars). The source chain. Values: `BASE`, `OPTIMISM`, `ARBITRUM`, `ETHEREUM`. The source token. Values: `USDC`, `USDT`. ```bash cURL curl -X POST "https://api.request.network/v2/secure-payments/01ABC123DEF456GHI789JKL/intent" \ -H "x-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "txHash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", "chain": "ARBITRUM", "token": "USDT" }' ``` ```json 200 OK { "intentId": "01HXEXAMPLE123", "paymentReference": "0xb3581f0b0f74cc61", "txHash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", "isListening": true } ```400: invalid or unsupported crosschain payload403: token expired or not payable404: token not found409: secure payment already completed429: rate limited