Crosschain Payments
Pay requests using stablecoins from any supported network, without manual bridging or token swaps.
Last updated
Was this helpful?
Pay requests using stablecoins from any supported network, without manual bridging or token swaps.
Last updated
Was this helpful?
Warning: Crosschain payments are currently only available in our staging environment at and are not ready for production use. Use with caution.
Crosschain payments allow users to pay a request using a stablecoin from a different blockchain network than the one specified on the request. For example, a payer can pay a request for USDC on Base using USDT from their Polygon wallet.
Flexibility: Payers can pay with their preferred currency.
Cost-Effective: Automated routing balances cost and speed.
Time-Saving: Payers don't need to swap or bridge tokens manually.
Simplified UX: Payment settlement requires only 1 or 2 signatures from the Payer.
Crosschain payments are supported on the following blockchain networks:
Polygon
Base
Optimism
Arbitrum
Ethereum
Warning: Crosschain payments work only with mainnet funds (real money). Test networks are not supported.
The following stablecoins are supported for crosschain payments on both the sending and receiving networks.
USDC
USDT
DAI
To enable crosschain payments, the request must be created with the following parameters:
paymentCurrency
included in the Supported Stablecoins and Supported Networks.
amount
greater than 2 - executing crosschain payments under 2 stablecoins is not allowed, even though creating requests has no restrictions on amount
.
To display a list of possible routes for a given request and payer address, use the #v1-request-paymentreference-routes endpoint. It returns all of the possible routes based on the payer's token balances.
The API automatically ranks available payment routes based on the following factors:
Transaction fees
Processing speed
Routes that offer a balanced combination of lower fees and faster processing times are ranked higher in the results.
The API may return samechain routes if the payer address has supported currencies on the same chain as the paymentCurrency
.
Example: paymentCurrency
is USDC on Polygon, and the payer has USDT on Polygon
Gassless transactions - the transaction fees are added on top of the request amount
No native token (ETH, POL, etc..) needed for gas
If the selected route is a direct payment, the #v1-request-paymentreference-pay returns an unsigned payment calldata. It may also return an approval calldata. For direct payments, this endpoint IS approval aware - it will omit the approval calldata if sufficient approval has already been granted.
If the token does not support EIP-2612 Permit, the payer must sign and submit a standard ERC20 approval transaction.
Finally, the signed payment intent (and possibly the signed approval permit) are sent back to execute the crosschain payment via the #v1-request-paymentintentid-send endpoint. It will handle all the necessary steps to complete the payment. A payment.complete
event will be sent to the platform's webhooks when the payment is completed.
It will be possible in the future to add a custom fee to the payment, this is currently under development.
For more details about creating requests, please see the endpoint.
Once the route is selected, the payer needs to fetch the unsigned payment calldata or intents.
If the selected route is a crosschain payment, the #v1-request-paymentreference-pay endpoint returns an unsigned payment intent. It will also return an unsigned approval permit or unsigned approval calldata, depending on whether the paymentCurrency
supports . For crosschain payments, this endpoint is NOT approval aware - it will return an approval permit or approval calldata even if approval has already been granted.
The intents and calldata returned by the #v1-request-paymentreference-pay endpoint in the previous step must be signed by the payer's wallet to authorize the crosschain payment. The process for signing the approval varies depending on whether the paymentCurrency
supports , indicated by the metadata
response parameter.
Get the payment routes for a request
The payment reference of the request
0xb3581f0b0f74cc61
The wallet address of the payer
0x6923831ACf5c327260D7ac7C9DfF5b1c3cB3C7D7
API key for authentication
Get the calldata needed to pay a request.
The payment reference of the request
0xb3581f0b0f74cc61
The wallet address of the payer.
0x6923831ACf5c327260D7ac7C9DfF5b1c3cB3C7D7
The source chain of the cross chain payment
The source token of the cross chain payment
API key for authentication