Skip to main content

Overview

Client IDs enable frontend/browser-side authentication with the Request Network API. Unlike API keys (which are for server-to-server calls), Client IDs are designed to be used in client-side code with domain restrictions. Key differences from API keys:

Backend vs Frontend Client IDs

  • Frontend Client IDs — have allowedDomains set. The API validates the Origin header against the whitelist.
  • Backend Client IDs — have empty allowedDomains. No domain validation is performed. Useful for server-side orchestrators that need client ID scoping without browser restrictions.

Orchestrator Pattern

When a Client ID is bound to a payee destination, requests created with that Client ID automatically resolve the payee from the destination. This enables orchestrator flows where a third party creates payment requests on behalf of a merchant without knowing the merchant’s wallet details.

Two ways to manage Client IDs

Both paths use the same Client ID — there is no functional difference.

CRUD Operations

Client IDs can be managed through the auth API (session-based) or the request API (API key-based).

Create a Client ID

label
string
required
Display name for the Client ID (1-100 characters).
allowedDomains
string[]
List of allowed origins (max 10). Must be HTTPS, except http://localhost and http://127.0.0.1. Leave empty for backend Client IDs.
feePercentage
string
Default fee percentage for requests created with this Client ID (0-100).
feeAddress
string
Fee recipient address. Required when feePercentage is set.
payeeDestinationId
string
ERC-7828 destination ID to bind to this Client ID. Enables the orchestrator pattern.
operatorWalletAddress
string
Optional Ethereum address of a smart wallet with delegated operator permissions. Used in commerce payment (authorize/capture) flows.
defaultPreApprovalExpiry
number
Default pre-approval duration in seconds. Overrides per-request value when set.
defaultAuthorizationExpiry
number
Default authorization duration in seconds. Overrides per-request value when set.
Response (201)

List Client IDs

Get a Client ID

Update a Client ID

All fields are optional. You can update label, allowedDomains, feePercentage, feeAddress, payeeDestinationId, operatorWalletAddress, defaultPreApprovalExpiry, defaultAuthorizationExpiry, and status.

Revoke a Client ID

Revoking a Client ID is permanent and cannot be undone.

Webhook Scoping

Webhooks can be scoped to specific Client IDs. When a webhook is created with a clientId, it only receives events for requests created with that Client ID. See Webhooks for details.

Authentication

How to use Client IDs for API authentication.

Payee Destinations

Create destinations to bind to Client IDs.