Skip to main content

Overview

When the wallet paying a secure payment is an existing Gnosis Safe multisig, the payment cannot be broadcast in a single signature โ€” it has to be proposed on the Safe, signed by the required owners, and then executed. Request Network supports this flow directly: you ask the calldata endpoint for Safe-ready transactions, execute them on your Safe off-platform, and then hand the resulting Safe transaction hash back to the API so it can track settlement. This is distinct from the smart-account path on the hosted secure payment page, which derives its own ERC-4337 account automatically. Use the flow on this page when your own payer wallet is a Safe and you execute the transaction yourself.
Safe multisig payments are EVM-only. They are not supported on Tron โ€” requesting Safe calldata for a Tron network returns a 400.

How it works

1

Request Safe-ready calldata

Call GET /v2/secure-payments/:token/pay with isSafe=true and wallet set to the Safe address. The API returns calldata sized and priced for a Safe (it includes the required approval transactions and skips the EOA native-gas balance check).
isSafe=true is mutually exclusive with eoaWallet, and wallet is required. The wallet value must be the Safe address that will execute the payment.
2

Propose and execute on your Safe

Propose the returned transactions to your Safe, collect the required owner signatures, and execute. This happens entirely on your side using your Safe tooling โ€” Request Network does not custody keys or co-sign.
3

Record the Safe transaction

Once the Safe transaction is created, tell the API to start tracking it by calling POST /v2/secure-payments/:token/intent with safeTxHash (instead of txHash).
Exactly one of txHash or safeTxHash must be provided. safePaymentDeadline is optional (Unix seconds) and can only be sent alongside safeTxHash.
4

Poll for settlement

While the Safe transaction is pending execution, GET /v2/secure-payments/:token returns HTTP 423 (Locked) with the message Secure payment is in progress and a requestStatuses[] array carrying safeTxHash, chainId, and safePaymentDeadline. Request Network resolves the Safe transaction in the background: once executed it records the real on-chain transaction hash and confirms the payment; if it fails or the deadline passes, the payment is marked failed.

Request fields

GET /v2/secure-payments/:token/pay

wallet
string
required
The Safe address that will execute the payment. Used for balance and approval calculation.
isSafe
boolean
Set to true to prepare calldata for a Gnosis Safe multisig payer. Mutually exclusive with eoaWallet; wallet must be set to the Safe address.
chain
string
Source chain for cross-chain payments. Values: BASE, OPTIMISM, ARBITRUM, ETHEREUM, POLYGON, BNB. Provide together with token.
token
string
Source currency for cross-chain payments. Values: USDC, USDT. Provide together with chain.

POST /v2/secure-payments/:token/intent

safeTxHash
string
The Safe transaction hash to track. Provide either safeTxHash (Safe multisig flow) or txHash (already-broadcast on-chain hash) โ€” exactly one.
safePaymentDeadline
number
Unix timestamp (seconds) โ€” the hard on-chain execution deadline for the Safe + cross-chain route. Only valid alongside safeTxHash; the API stops tracking once this passes.
chain
string
required
Source chain. Values: BASE, OPTIMISM, ARBITRUM, ETHEREUM, POLYGON, BNB.
token
string
required
Source token. Values: USDC, USDT.
payerAddress
string
Optional address of the wallet making the payment. Echoed back on the response.

Status while a Safe payment is in progress

Treat 423 as โ€œkeep pollingโ€ โ€” the Safe transaction has been recorded but not yet executed on-chain. Once Request Network detects execution, the request flips to paid (and GET /v2/secure-payments/:token returns the completed state); a payment.confirmed webhook fires as usual.

Secure Payments API Reference

Full request/response schemas for the secure payment endpoints.

Smart account payments

The automatic ERC-4337 path on the hosted page (for EOA payers).