KYC via API — Sphere-Managed
Step-by-step guide for onboarding individual customers using the default Sphere-Managed model. Sphere handles TOS acceptance, face liveness verification, and OTP via hosted links.
Introduction
This guide covers the Sphere-Managed KYC integration — the default onboarding model for all new API integrations.
In this model, Sphere handles compliance steps in-flow using hosted links and redirects: Terms of Service acceptance, face liveness verification, and OTP contact verification.
Eligible for Platform-Managed onboarding?
If your platform already performs KYC/KYB, collects liveness, and embeds Sphere's ToS, you may qualify for Platform-Managed onboarding. See KYC via API — Platform-Managed and the Onboarding Guide for qualification requirements.
Before you begin
Ensure you have:
- A SpherePay API key — see Authentication
- The customer's personal information ready (name, date of birth, full address, tax ID)
- A copy of the customer's government-issued identity document for upload
KYC via API Flow — Sphere-Managed
Core Steps
The following steps are required for every Sphere-Managed KYC API integration.
1. Create a Customer
To create a customer, use the Create Customer endpoint.
POSThttps://api.spherepay.co/v2/customer
Information
When using the API integration path, include personalInformation and a full address in the creation request. These fields allow SpherePay to verify the customer's identity programmatically — you will not need to generate a KYC link. You will still need to upload identity documents and complete face liveness verification in the following steps.
Request Example
{
"type": "individual",
"email": "jane.smith@example.com",
"phone": "+14155550123",
"address": {
"line1": "233 South Wacker Drive",
"line2": "Suite 4700",
"city": "Chicago",
"postalCode": "60606",
"state": "IL",
"country": "USA"
},
"personalInformation": {
"taxIdentificationNumber": "123456789",
"taxIdentificationNumberType": "ssn",
"taxIdentificationNumberCountry": "USA"
}
}Personal Information Fields
The personalInformation object contains the customer's tax identification details. The accepted values depend on the customer's country of residence:
taxIdentificationNumberCountry— The customer's country code (e.g.USA,SGP,GBR).taxIdentificationNumberType— The type of identification number. Accepted values vary by country — for example,ssnfor the United States,nricfor Singapore, orninofor the United Kingdom.taxIdentificationNumber— The actual identification number.taxIdentificationNumberDescription— A human-readable description of the document type. Optional — only required whentaxIdentificationNumberTypeisother.
For the full list of accepted identification types and codes by country, see Tax ID Numbers by Country.
2. Accept Terms of Service
Generate a Terms of Service link and redirect the customer to accept the Terms and Conditions and Privacy Policy. To generate a TOS link, use the Generate TOS Link endpoint.
POSThttps://api.spherepay.co/v2/customer/{id}/tos-link
Once the link is generated, redirect the customer to complete the Terms of Service acceptance. This step can be done in parallel with creating the customer.
3. Upload Required Documents
Upload the required documents for the KYC process using the Upload Document endpoint.
Required Documents
For the full list of required documents and accepted formats, see the Document Guideline.
https://api.spherepay.co/v2/document
Request Example
curl --location 'https://api.spherepay.co/v2/document' \
--header 'Authorization: Bearer <your_api_key>' \
--form 'target="customer"' \
--form 'targetId="customer_4914a2f6226e42cc8d207ead9573b29f"' \
--form 'documentType="id_card"' \
--form 'side="front"' \
--form 'file=@"/path/to/your/document.jpg"' \
--form 'country="SGP"'Response Example
{
"target": "customer",
"targetId": "customer_4914a2f6226e42cc8d207ead9573b29f",
"documentType": "id_card",
"fileName": "document.jpg",
"fileSize": 2048576,
"mimeType": "image/jpeg",
"createdAt": "2025-05-23T11:45:00Z"
}4. Liveness Verification
Each customer requires liveness verification. Check the customer's required array using the Get Customer endpoint to determine which path applies, then perform only one of the following.
Do exactly one of the following
Check the required array in the customer's verification profile and follow only the matching path. Do not perform both.
5. Poll for Verification Result
Once all required steps are complete, SpherePay automatically processes the verification — no submit call is needed. Poll the Get Customer endpoint until status in verificationProfiles reaches approved.
https://api.spherepay.co/v2/customer/{id}
Approved Response Example
{
"id": "customer_f31121c389624d3697cbf3ea8830b7a4",
"email": "jane.smith@example.com",
"phone": "+14155550123",
"verificationProfiles": [
{
"name": "kyc_profile_a",
"status": "approved",
"criteria": {
"complete": [
"email_address",
"phone_number",
"residential_address",
"tax_identification_number",
"identity_document",
"liveness_report_document"
],
"pending": [],
"required": [],
"errors": []
}
}
],
"createdAt": "2026-03-09T20:46:31.305Z",
"updatedAt": "2026-03-09T20:46:31.305Z",
"type": "individual"
}When required is empty and status is approved, the customer is fully onboarded and ready to transfer.
Additional Steps
The following steps are only required for some integrations. Check the required array in your customer's verification profile using the Get Customer endpoint — only perform a step if its corresponding item appears there. See the Verification Profile reference for details on each field.
What's Next
With the customer onboarded, register their payment methods before initiating a transfer.
Register Payment Methods
Create a Transfer
Make Routine Transfers Easier with Onramper Accounts & Offloader Wallets
Last updated on