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

Shell
curl -fsS -X POST "$API/v1/payer/deposit-requests/dr_0198f80c-…/relay/quotes" \
  -H "Content-Type: application/json" \
  -d '{ "origin_chain_id": "8453" }'

Response

200 OK
{
  "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_ id
request_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_at
steps[]object
{ id: approve | deposit, transaction: { chain_id, to, data, value, gas } }.

Status codes

  • 404relay_unavailable
  • 409wallet_required
  • 410deposit_request_not_payable
  • 422relay_unsupported_origin Not one of the networks to pay from, or the request's own.
  • 502relay_quote_failed Relay has no route, or is unreachable.