Customers
Les objets Customer vous permettent de créer un profil client persistant auquel vous pouvez associer des transactions, des méthodes de paiement, des abonnements et des factures.
Utiliser des Customers vous donne une vue consolidée de l’activité de chaque client dans votre dashboard, et permet d’envoyer automatiquement des reçus sans devoir préciser l’email à chaque paiement.
Vous pouvez créer des PaymentIntents sans Customer (paiements anonymes), mais associer un Customer enrichit vos données : historique complet, méthodes de paiement sauvegardées, reçus automatiques, et détection de fraude améliorée.
Endpoints
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /customers/ | Créer un nouveau Customer |
| GET | /customers/ | Lister les Customers (paginé, filtrable) |
| GET | /customers/{id}/ | Récupérer un Customer par son ID |
| PATCH | /customers/{id}/ | Mettre à jour les données d'un Customer |
| DELETE | /customers/{id}/ | Supprimer définitivement un Customer |
| GET | /customers/{id}/transactions/ | Lister les transactions du Customer |
| GET | /customers/{id}/payment-methods/ | Lister les méthodes de paiement du Customer |
Schéma de l’objet
Créer un Customer
Crée un nouveau profil client associé à votre App. L’email est l’identifiant unique du Customer — deux clients de la même App ne peuvent pas avoir le même email.
email Requis Adresse email unique du Customer au sein de votre App. Utilisée pour l’envoi automatique des reçus et comme clé de déduplication.
Si vous tentez de créer un Customer avec un email déjà existant pour la même App,
l’API retourne une erreur 409 Conflict — elle ne crée pas de doublon.
Utilisez PATCH pour mettre à jour un Customer existant.
name Requis Nom complet du Customer. Le backend décompose automatiquement ce champ en
firstname et lastname (split sur le premier espace).
L’objet retourné expose les deux champs séparés.
Pour les noms composés (ex. “Jean-Claude” ou “Madeleine Nguema Obame”), le split
se fait sur le premier espace. “Jean-Claude Ondo” →
firstname: Jean-Claude, lastname: Ondo.
phone Optionnel Numéro de téléphone au format international E.164. Obligatoire pour les paiements par Mobile Money associés à ce Customer.
En savoir plus
Le format E.164 commence par + suivi du code pays et du numéro local
sans espaces ni tirets. Exemples valides : +24177000001 (Gabon),
+237612345678 (Cameroun). Les formats locaux (ex. 077 000 001) sont
rejetés.
metadata Optionnel Dictionnaire clé/valeur pour stocker vos propres identifiants — ID utilisateur de votre base, numéro de contrat, segment client, etc.
En savoir plus
Les métadonnées sont retournées dans tous les webhooks liés à ce Customer. Max 50 clés, 500 caractères par valeur. Non indexées — non utilisables comme critère de recherche via l’API.
Créer un Customer
Lister les Customers
search Optionnel Recherche textuelle sur l’email, le prénom et le nom du Customer. La recherche est partielle (contient) et insensible à la casse.
En savoir plus
Exemple : search=madeleine retourne tous les Customers dont email,
prénom ou nom contient “madeleine”.
status Optionnel Filtrer par statut. Valeurs : active, inactive,
blocked.
ordering Optionnel Tri des résultats. Champs disponibles : created_at,
email, total_spent.
page Optionnel Numéro de page (pagination offset, commence à 1).
page_size Optionnel Résultats par page. Minimum : 1. Maximum : 100.
Mettre à jour un Customer
Modifie un ou plusieurs champs d’un Customer existant. Tous les champs sont optionnels — seuls les champs fournis sont mis à jour.
email Optionnel Nouvel email. Doit être unique parmi les Customers de l’App. Retourne
409 si déjà utilisé.
name Optionnel Nouveau nom complet. Redécomposé en firstname /
lastname côté backend.
phone Optionnel Nouveau numéro de téléphone au format E.164. Passez null pour
supprimer.
metadata Optionnel Fusion des métadonnées. Les clés existantes non mentionnées sont conservées.
Passez une clé avec valeur null pour la supprimer.
En savoir plus
Exemple : si le Customer a { "a": "1", "b": "2" } et
vous envoyez { "b": null, "c": "3" }, le résultat sera
{ "a": "1", "c": "3" }.
Supprimer un Customer
Supprime définitivement un Customer (hard delete). L’action est irréversible.
La suppression d’un Customer est permanente. Ses transactions passées sont conservées dans les logs pour des raisons de conformité légale OHADA, mais le profil client lui-même est détruit. Les PaymentIntents en cours associés à ce Customer restent valides mais perdent la référence Customer.
Rechercher des Customers
Mettre à jour un Customer
Supprimer un Customer