Skip to main content
The End User Onboarding API base URL is https://api-sandbox.circle.com for sandbox and https://api.circle.com for production. All requests require a Bearer token obtained via Circle key exchange in the Authorization header. All POST requests require an X-Idempotency-Key header with a client-generated UUID v4.
Stablecoin KYB requires a Persona Sentinel device check before you submit or resubmit the application. Install @circle-fin/device-checks and call checkDevice in the browser. The SDK loads an iframe, Circle records the result, and you then call submit. Circle looks up that result on submit and RFI resubmit.
@circle-fin/device-checks is web only. It cannot run in Node.js or other server-side environments.

Prerequisites

Before you begin, ensure that you’ve:

Steps

Step 1. Check whether your template requires a device check

Confirm that the application uses a Stablecoin KYB template. Only Stablecoin KYB requires this check. For other templates, go to Submit and track applications.

Step 2. Run checkDevice in the browser

Install the SDK in your web project:
Follow the @circle-fin/device-checks README for token setup and options. Then call checkDevice in your web client:
checkDevice loads an iframe and collects device signals. Circle records the result. For the full list of options, see the @circle-fin/device-checks README.

Step 3. Submit the application

Call POST .../submit (or resubmit after you address RFIs). See Submit and track applications. Use code to identify the outcome. A declined device check still submits. Review of a declined check is manual. 181110 and 181103 both return HTTP 404 and message: "Not found". 181111 and 181109 both return HTTP 504 and message: "Gateway timeout". Use code to tell them apart.