Documentation Index
Fetch the complete documentation index at: https://developers.circle.com/llms.txt
Use this file to discover all available pages before exploring further.
The Partner 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:- You have an API key for the Partner Onboarding API from the Circle Mint Console.
- You can create a client and initialize an application using
POST /v1/partner/clients(covered in Step 1).
Steps
Step 1. Create a client and initialize the application
Create a client record and initialize an onboarding application in one request:| Field | Type | Required | Description |
|---|---|---|---|
clientName | string | Yes | Display name for the client entity. |
country | string | Yes | ISO 3166-1 alpha-2 country code. |
clientType | string | Yes | Type of client. Currently business is the only supported value. |
businessDetails | object | Yes (for business) | Business-specific details. Required when clientType is business. |
businessDetails.natureOfBusiness | string | Yes (for business) | Industry classification (for example, trust, cryptoExchange). Determines which sections and fields appear in the application. |
businessDetails.institutionType | string | Yes (for business) | Legal entity type. Must be one of: publicCo, privateCo, trust, foundation, partnership, soleTrader, associationOrConsortium, coop, governmentBody. |
applicationId. 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.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.
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
| Use case | Recommended endpoint |
|---|---|
| Interactive form-based UI (one section at a time) | PUT /sections/{sectionName} |
| Programmatic integration with all data available | PATCH /data |
| RFI response updating multiple affected sections | PATCH /data |
| Reading saved data or deleting individual entities | GET/DELETE /sections/... |
Cancel an application
Cancel aDRAFT application that is no longer needed:
DRAFT status. Other statuses return a
409 error.