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.@circle-fin/device-checks
runs the check in the browser and returns a deviceId; Circle stores the result
against that identifier.
Run the check once per end user and keep the deviceId. It is used in two
places:
- Stablecoin KYB submission. A device check is required before you submit or
resubmit the application. Circle looks up the result on submit and on RFI
resubmit. This also applies to
PERIODIC_REVIEWandINFORMATION_UPDATEsubmits. The check from the client’s original onboarding counts. - Digital Asset Accounts money movement. Transfers, withdrawals, recipient
addresses, and wire accounts send the
deviceIdasriskSignals.deviceId, and Circle resolves it against this device check. See Implement Strong Customer Authentication.
@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:- Obtained an API key for the End User Onboarding API from the Circle Console.
- Created and populated a Stablecoin KYB application. See Create and populate applications.
Steps
Step 1. Check whether your template requires a device check
Confirm that the application uses a Stablecoin KYB template. Among onboarding templates, only Stablecoin KYB requires this check at submit. For other templates, go to Submit and track applications. End users of Digital Asset Accounts are onboarded through Stablecoin KYB, so this step applies to them.Step 2. Run checkDevice in the browser
Install the SDK in your web project:
@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
CallPOST .../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.