Skip to main content
This guide walks through the canonical flow for receiving payments via Request Network: creating a payment destination and Client ID in the Dashboard, registering a webhook for payment notifications, and creating a payment link. Every other use-case page links back to specific steps here.

Overview

The flow involves three services:
  1. Dashboard (dashboard.request.network) β€” Sign in with your wallet, create payment destinations, and generate Client IDs
  2. Auth API (auth.request.network) β€” Programmatic alternative for Client IDs, and the home of webhooks
  3. Request API (api.request.network) β€” Create payment links (secure payments)
Your wallet session cookie (session_token) is shared across dashboard.request.network, auth.request.network, and api.request.network β€” so signing in once on the Dashboard gives you access to the API docs as well.

Prerequisites

  • An EVM wallet (e.g. MetaMask) or a Tron wallet (e.g. TronLink) that will receive payments
  • The ability to sign messages with that wallet

Step 1: Sign in with Your Wallet

1

Open the Dashboard

2

Connect and sign

Connect your EVM or Tron wallet and sign the authentication message when prompted.
3

Active session

Once signed in, you have an active wallet session. This sets a session_token cookie in your browser that is shared across Request Network services.
Wallet sessions expire after 15 minutes of idle time. If your session expires during the following steps, return to the Dashboard and sign in again.

Step 2: Create a Payment Destination

A payment destination registers where you want to receive payments β€” it links your wallet address to a specific token on a specific chain.
1

Navigate to setup

In the Dashboard, navigate to the payment destination setup.
2

Pick chain and token

Select the chain and token you want to receive payments in.
3

Confirm

Confirm the creation.
The Dashboard returns a destinationId (also shown as humanReadableInteropAddress). Save this value β€” you’ll need it in Step 5. The destinationId follows the ERC-7828 format:

Supported Chains and Tokens

The Dashboard UI exposes USDT for Tron destinations. To create a USDC-on-Tron destination, call POST /v1/payee-destination on the Auth API directly with the USDC token address. Testnet:

Step 3: Create a Client ID

A Client ID identifies your application and is required to create payment links and register webhooks.
1

Open Dashboard

2

Open destination settings

Open your payment destination settings.
3

Open Client IDs

Open the Client IDs section.
4

Generate

Click Generate New Client ID.
5

Name and configure

Enter a human-readable name. Add Allowed Domains if the Client ID will be used from a frontend application. Leave empty for backend/server-side usage only.
6

Save

Confirm to generate the Client ID. Copy and save the generated clientId β€” you’ll use it in Steps 4 and 5.
Allowed domains must use https:// (except for localhost, 127.0.0.1, or ::1 which allow http://). No path, query, or fragment allowed.

Option B β€” Auth API (for automation)

Open the Scalar docs at auth.request.network/open-api and call:
Your wallet session from Step 1 is sent automatically via cookie. Example response (201 Created):
Save the clientId value (e.g. cli_nz1bj41szV2fvjm9pbxdIhro3ld4x4) β€” you’ll use it in Steps 4 and 5.

Step 4: Register a Webhook

Register a webhook to receive payment.confirmed when the payment completes. For endpoint setup, event routing, payloads, and signature verification, see Webhooks. With the destinationId from Step 2 and the clientId from Step 3, you can now create a payment link. When the payment is completed, the webhook from Step 4 will be notified automatically.
1

Open the API docs

Open the Request API docs: api.request.network/open-api.
2

Set the Client ID header

Set the x-client-id header to the clientId value from Step 3.
3

Fill in the request body

4

Send

Click Send.

Constructing the destinationId

The destinationId in the request body is a composite value that combines the payee destination’s humanReadableInteropAddress (from Step 2) with the tokenAddress, separated by ::
For example:

Request body fields

Submitting multiple requests[] items where any destination is on Tron returns a 400 with Batch payments are not supported for TRON networks. Please submit individual payment requests. Tron secure payments are single-recipient. EVM batches up to 200 payees per link work as expected.
Example response (201 Created):
Share the securePaymentUrl with the payer. They can open it in their browser to complete the payment.
The payment link expires after 7 days or once it has been paid, whichever comes first.

Step 6: Check Payment Status (Optional)

In addition to receiving webhook notifications (Step 4), you can also poll for payment status using the requestId from Step 5. Endpoint: GET https://api.request.network/v2/request/{requestId} You can call this from the Request API docs using the same wallet session, or programmatically with the x-client-id header. Example response (200 OK β€” paid):
Example response (200 OK β€” not yet paid):

Quick Reference

Troubleshooting

What’s next

No-code payment links

Skip the code β€” generate payment links from the Dashboard UI.

Programmatic payment links

Server-side payment link creation with TS / Python / cURL examples.

Multi-chain checkout

Let payers pay from any chain/token; receive on your preferred one.

Webhook reconciliation

Automated payment notifications wired into your accounting/order systems.
Last modified on August 26, 2026