KYC — soumission de documents
Un dossier KYC (kyc_verifications) ne se résume pas à un fichier générique — il exige une combinaison précise de pièces, selon ce qui est vérifié.
Endpoint : POST /api/v1/business/dashboard/kyc/submit — accessible même en pending_approval (voir Authentification).
Requête
multipart/form-data. Chaque champ fichier est nommé comme le type de document — pas de champ générique document.
Champs texte
| Champ | Requis | Valeurs |
|---|---|---|
verification_type | oui | identity, address, liveness, document, pep_screening |
provider | non | nom du prestataire KYC (libre) |
Champs fichiers (.pdf/.jpg/.jpeg/.png, 10 Mo max, type vérifié sur le contenu réel — pas sur le nom) :
id_card_front, id_card_back, passport, driver_license_front, driver_license_back, selfie, proof_of_address, business_registration_certificate, tax_identification_certificate, representative_id_front, representative_id_back, other
Combinaisons exigées
verification_type | Une des combinaisons suivantes doit être complète |
|---|---|
identity | passport seul ou id_card_front+id_card_back ou driver_license_front+driver_license_back ou representative_id_front+representative_id_back |
address | proof_of_address |
liveness | selfie |
document (KYB) | business_registration_certificate ou tax_identification_certificate |
pep_screening | aucun fichier — contrôle sur listes de surveillance, pas une pièce fournie |
Exemple
curl -X POST https://api.trustsend.africa/api/v1/business/dashboard/kyc/submit \
-H "Authorization: Bearer <token>" \
-F "verification_type=identity" \
-F "id_card_front=@/chemin/recto.jpg" \
-F "id_card_back=@/chemin/verso.jpg"
Réponse 201
{
"data": {
"kyc_id": "16",
"status": "pending",
"verification_type": "identity",
"documents": ["id_card_front", "id_card_back"],
"submitted_at": "..."
}
}
Erreurs
| Code | Cas |
|---|---|
400 | Combinaison incomplète — message explicite listant les combinaisons acceptées |
422 | Fichier trop lourd ou type de contenu invalide |
GET /api/v1/business/dashboard/kyc/status
Renvoie le dossier le plus récent.
{
"data": {
"kyc_id": "17", "status": "pending", "verification_type": "document",
"provider": null, "documents": ["business_registration_certificate"],
"submitted_at": "...", "decided_at": null, "decision_reason": null, "created_at": "..."
}
}
Sécurité
Chaque pièce est chiffrée individuellement au repos (AES-256-GCM), stockée hors de public/, sous un identifiant aléatoire opaque — jamais accessible par URL directe. Seule l'équipe TrustSend peut consulter les documents soumis, pour la revue.
:::caution Ce que ça ne couvre pas C'est une collecte de preuve protégée, pas une vérification d'authenticité — personne ne contrôle qu'un document n'est pas falsifié. Pour ça, il faudrait intégrer un vrai prestataire KYC/KYB (Smile Identity, Sumsub...). :::