3. Verify the account (KYC)
Without verified KYC, the business stays in test: sk_live_ keys cannot collect (422 "account not KYC verified"). KYC takes three calls per document, with files going straight to secure storage.
File status
GET/kycSession token
File status and documents still missing.
Response 200
{
"success": true,
"data": {
"status": "none",
"status_label": "Non vérifié",
"has_live_access": false,
"can_submit_documents": true,
"requirements": {
"identity": [
"id_front",
"passport"
],
"...": "..."
},
"missing_groups": [
"identity",
"niu"
],
"documents": []
},
"meta": {
"request_id": "...",
"timestamp": "..."
}
}Account statuses: none (nothing submitted), pending (under review), verified (live access), suspended. The exact list of required documents is in requirements / missing_groups.
Send a document (3 calls)
POST/kyc/upload-urlSession token
1. Requests a temporary upload address (valid 15 min) for a document.
Request body
{
"document_type": "business_registration",
"content_type": "application/pdf"
}Response 200
{
"success": true,
"data": {
"upload_url": "https://...",
"document_key": "kyc/2/business_registration/550e...pdf",
"expires_in": 900
},
"meta": {
"request_id": "...",
"timestamp": "..."
}
}2. Upload the file: PUT {upload_url} with the same Content-Type, the body being the file.
POST/kyc/documentsSession token
3. Confirm the upload:
Request body
{
"document_type": "business_registration",
"document_key": "kyc/2/business_registration/550e...pdf",
"expires_at": "2030-05-14"
}Response 201
{
"success": true,
"data": {
"document_type": "business_registration",
"document_type_label": "Registre de commerce",
"status": "pending",
"status_label": "En attente de vérification",
"rejection_reason": null,
"requires_expiry": false,
"created_at": "2026-11-02T14:30:00Z"
},
"meta": {
"request_id": "...",
"timestamp": "..."
}
}Document rules
- Document types:
id_front,id_back,passport,location_plan,niu_certificate(individual);business_registration,tax_compliance,manager_id_front,manager_id_back,manager_passport(business);merchant_contract,bank_domiciliation_certificate(both);address_proof,residence_proof,additional_financial_documents(optional). - Formats:
image/jpeg,image/png,application/pdf.expires_atis only required for identity documents (requires_expiry: true). - Each document's state: pending, approved, rejected (with
rejection_reason). An approved document cannot be overwritten; a pending one is replaced by a new upload. Delete a pending document:DELETE /kyc/documents/{id}. - Errors: 422 if the type or format is invalid, if the file was not uploaded before confirming, or if the document is already approved.