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.Prerequisites
Before you begin, ensure that you’ve:- Obtained an API key for the End User Onboarding API from the Circle Mint Console.
Steps
Step 1. Create a client and initialize the application
1.1. Create a client record and initialize onboarding
Create a client record and initialize an onboarding application in one request:1.2. Save the application ID
Save theapplicationId. You’ll use it in all subsequent
/v1/onboarding/partner/applications/... calls.
Using the same
clientName and country combination returns a 409 Conflict
error. Use a different clientName to create another client in the same
country.1.3. Retrieve the newly created application
Retrieve the newly created application to inspect its sections and statuses:Step 2. Discover the schema
Retrieve the JSON Schema (draft 2020-12) for your application. It defines every required field:minLength,
maxLength, pattern, enum, and format.
Use this schema to:
- Enumerate all sections and their fields.
- Drive client-side form rendering and validation.
- Understand which fields are conditional. See Conditional logic for details.
Step 3. List all sections
List all sections with their current completion status:not_started, incomplete, complete, or
action_required.
Example response:
?includeData=true.
Step 4. Save section data
Save data for a single section:422 response with per-field errors. Each
error includes a dot-notation path, error code, and message.
Example 422 error response:
Step 5. Bulk save (optional)
If your backend already has all the data, use the bulk save endpoint. It fills multiple sections in one request:When to use bulk vs. per-section
Step 6. Read all saved data
To retrieve the complete current state of an application in one request, use the bulk read endpoint:data field is an object keyed by section name, the same structure
as the PATCH /data request body, making it straightforward to pre-fill a UI or
sync application state to your backend. The sections array lists each visible
section with its current status. For full parameter and response details, see
the Get all application data
API reference.
Example response:
Cancel an application
Cancel aDRAFT application that is no longer needed:
DRAFT status. Other statuses return a
409 error.