Payer routes
Quote a payment from another network
POST/v1/payer/deposit-requests/{id}/relay/quotes
Asks Relay for a route and records it as a quote.
Unauthenticated · Payday-Payer-Session unlocks gated content.
Request
curl -fsS -X POST "$API/v1/payer/deposit-requests/dr_0198f80c-…/relay/quotes" \
-H "Content-Type: application/json" \
-d '{ "origin_chain_id": "8453" }'Response
{
"id": "rli_0198f80c-8d2f-7dc1-a369-90556a64f7b1",
"request_id": "0x1789…",
"origin": { "chain_id": "8453", "name": "Base", "…": "…" },
"amount_in": "10.520798", "amount_in_base_units": "10520798",
"amount_out": "10.500000", "amount_out_base_units": "10500000",
"relayer_fee_usd": "0.02", "time_estimate_seconds": 1,
"expires_at": "2026-09-06T12:20:00Z",
"steps": [
{ "id": "approve", "transaction": { "chain_id": "8453", "to": "0x8335…", "data": "0x095e…", "value": "0", "gas": "73112" } },
{ "id": "deposit", "transaction": { "chain_id": "8453", "to": "0x4cd0…", "data": "0xe801…", "value": "0", "gas": null } }
]
}Payday makes the quote, never the page: it pins the attested wallet as the sender, the payment address as the recipient, USDC on the request's network as what lands, and exactly the amount still due as the output. The answer is the transactions the wallet sends on the origin network, in order (an ERC-20 approve, then Relay's deposit), and what they cost. Ask again after expires_at. Every quote is a rli_ record; only one reported as sent is followed.
Headers
Payday-Payer-Sessionstring- Required for gated modes.
Path parameters
iddr_ idrequired
Body
origin_chain_idstringrequired- Decimal chain id, one of the networks to pay from.
Response
idrli_ idrequest_idstring- Relay's request id.
originobject- The network, as listed.
amount_in, amount_outstring- USDC the wallet sends on the origin network, and exactly what lands on the payment address (the amount due). Base-unit counterparts included.
relayer_fee_usd, time_estimate_seconds, expires_atsteps[]object- { id: approve | deposit, transaction: { chain_id, to, data, value, gas } }.
Status codes
- 404
relay_unavailable - 409
wallet_required - 410
deposit_request_not_payable - 422
relay_unsupported_originNot one of the networks to pay from, or the request's own. - 502
relay_quote_failedRelay has no route, or is unreachable.