Plafonds et quotas
Les plafonds appliqués par l'API et les erreurs renvoyées pour chacun.
Quatre plafonds différents peuvent refuser le même appel. Chacun renvoie un code de statut distinct. Ce code vous indique immédiatement le plafond atteint.
| Plafond | Application | Refus |
|---|---|---|
| Montant de la devise | Chaque paiement et chaque transfert | 422 à la création |
| Mobile Money par débit | Un débit Mobile Money | 422 pendant le traitement |
| Plafonds du compte issus du KYC | Volume live entrant et sortant | 402 pour un paiement, 422 pour un payout |
| Requêtes par minute | Chaque appel | 429 |
Les quotas du plan constituent un cinquième type. Ils refusent la ressource plutôt que le montant. Vous ne pouvez plus créer de liens de paiement ni de factures lorsque le quota du plan est épuisé.
Montants par devise
Un même tableau régit les deux directions. POST /payments et POST /transfers utilisent les mêmes
plafonds par devise. Un payout est donc refusé avec les mêmes valeurs qu'un paiement du même montant.
Les montants utilisent les unités principales.
| Devise | Minimum | Maximum |
|---|---|---|
| 25 | 2 000 000 | |
| 25 | 2 000 000 | |
| 100 | 999 999,99 | |
| 0,50 | 999 999,99 | |
| 0,50 | 999 999,99 | |
| 0,50 | 999 999,99 | |
| 1 000 | 999 999 999 | |
| 500 | 999 999 999 | |
| 1 000 | 999 999 999 | |
| 0,50 | 999 999,99 | |
| 0,50 | 999 999,99 | |
| 0,50 | 999 999,99 | |
| 0,50 | 999 999,99 | |
| 0,50 | 999 999,99 |
Quatre-vingt-douze devises possèdent des limites, pas seulement celles affichées ci-dessus. Une devise absente du tableau n'est pas limitée à ce niveau. Seuls les plafonds du compte présentés plus bas s'appliquent alors.
Lorsqu'un montant dépasse les limites, l'appel n'atteint jamais le prestataire.
Le même refus sur POST /transfers contient Transfer amount must be between …, avec les deux mêmes
valeurs.
Un débit Mobile Money possède son propre plafond
Le plafond de la devise limite le montant total du paiement. Le plafond Mobile Money limite un seul débit sur un portefeuille et sa valeur est bien plus basse.
| Réseau | Plafond par débit | Origine |
|---|---|---|
| 500 000 XAF ou XOF | Règles de l'opérateur, par débit | |
| Plafond de la devise | Aucun plafond distinct | |
| Plafond de la devise | Aucun plafond distinct | |
| Plafond de la devise | Aucun plafond distinct |
Un débit Mobile Money supérieur à ce plafond est refusé pendant le traitement, pas à la création.
Le paiement reste pending et peut faire l'objet d'une nouvelle tentative.
Les autres devises sont converties, pas exemptées
Seuls XAF et XOF possèdent un plafond Mobile Money explicite. Pour un paiement dans une autre devise effectué avec un portefeuille d'Afrique occidentale ou centrale, les 500 000 XAF sont convertis au taux actuel puis arrondis à l'unité inférieure. Le plafond s'applique donc aussi en USD ou en EUR.
Le paiement fractionné permet de répartir un paiement entre deux et quatre débits. Le traitement des tranches fonctionne actuellement dans la sandbox. En mode live, considérez donc cette limite comme un plafond strict et utilisez un montant inférieur.
Montants autorisés pour votre compte
Six valeurs propres à votre équipe s'ajoutent aux limites par appel : plafonds unitaire, quotidien et mensuel pour les fonds entrants, puis les trois mêmes pour les fonds sortants. La vérification de conformité les détermine, pas votre plan.
| Palier | Paiement unitaire | Entrées quotidiennes | Payout unitaire | Sorties quotidiennes |
|---|---|---|---|---|
basic | 500 000 | 2 000 000 | 500 000 | 1 000 000 |
verified | 5 000 000 | 20 000 000 | 5 000 000 | 10 000 000 |
premium | 50 000 000 | 200 000 000 | 50 000 000 | 100 000 000 |
enterprise | 500 000 000 | 2 000 000 000 | 500 000 000 | 1 000 000 000 |
Ces valeurs de base sont exprimées en XAF et ne s'appliquent jamais seules. Quatre multiplicateurs s'y ajoutent et se cumulent.
| Multiplicateur | Valeurs |
|---|---|
| Niveau de risque | low 1,5, medium 1,0, high 0,5, critical 0,2 |
| Catégorie d'activité | Risque élevé 0,5, moyen 0,8, faible 1,2, sinon 1,0 |
| Structure juridique | Société 1,5, ONG 1,2, particulier 0,8, sinon 1,0 |
| Statut de conformité | verified 1,0, toute autre valeur 0 |
Une société vérifiée à faible risque dispose donc de 1,5 × 1,2 × 1,5 = 2,7 fois la valeur de base. Un marchand individuel en cours de vérification reste à zéro.
Zéro bloque les opérations, il ne signifie pas illimité
Les six plafonds d'un compte non vérifié valent 0. Cette valeur provoque un refus et n'est pas
interprétée comme une absence de limite. Chaque paiement live renvoie alors 402 avec
error_code: merchant_not_verified, et chaque payout renvoie 422 avec
Payouts are not available for this account yet. La sandbox n'est pas concernée.
Une fois le plafond défini, tout dépassement apparaît comme un refus.
Les compteurs quotidiens et mensuels utilisent les paiements live crédités dans la devise concernée.
Ils se réinitialisent à minuit UTC et le premier jour du mois. Les compteurs de payouts additionnent
les transferts pending, processing, review et succeeded. Un payout soumis à une vérification
consomme donc toujours le quota du jour.
Uniquement sur le réseau Wajub
Les plafonds entrants s'appliquent uniquement aux équipes dont Wajub est le seul prestataire actif. Si vous utilisez vos propres identifiants PSP, le plafond appartient à ce prestataire, pas à Wajub. Les plafonds des payouts ne bénéficient pas de cette exception.
Les fonds sont retenus avant leur retrait
Un paiement crédité arrive dans pending_balance, puis passe dans available_balance à la fin de
la période de retenue. Sa durée de base dépend du réseau utilisé pour recevoir les fonds.
| Réseau | Retenue par défaut | Raison |
|---|---|---|
| 24 heures | Règlements et litiges rapides chez l'opérateur | |
| 48 heures | Fenêtre d'annulation plus lente | |
| 72 heures | Risque de rétrofacturation | |
| 72 heures | Risque de rétrofacturation |
Votre niveau de risque multiplie cette durée par 0.5, 1, 2 ou 3. Le résultat reste compris entre 6 et 168 heures. Une équipe bénéficiant d'une dérogation explicite des opérations ignore entièrement ce calcul.
Les payouts possèdent leurs propres contrôles
Trois mécanismes interviennent entre la requête de payout et l'envoi des fonds. Ils sont indépendants des plafonds de montant ci-dessus.
| Contrôle | Déclencheur | Effet |
|---|---|---|
| Fréquence | Plus de 6 payouts ou plus de 3 000 000 XAF sur une heure glissante | Refusé |
| Vérification manuelle | Tout payout supérieur ou égal à 1 000 000 XAF | Retenu pour vérification |
| Vérification manuelle | Votre tout premier payout live | Retenu pour vérification |
| Vérification manuelle | Plus de 5 fois votre moyenne après 3 payouts réussis | Retenu pour vérification |
| Gel du compte | 2 rejets après vérification en 24 heures | Transferts limités jusqu'à l'intervention des opérations |
Un payout retenu n'a pas échoué. Il reste dans l'état review et se poursuit après son approbation.
Traitez review comme un état normal dans votre rapprochement, pas comme une erreur.
Quotas des plans
Le plan régit les ressources et le débit, jamais les montants.
| Quota | Pay as you go | Growth | Scale | Enterprise |
|---|---|---|---|---|
| Requêtes par minute | 120 | 360 | 720 | Illimité |
| Liens de paiement | 25 | Illimité | Illimité | Illimité |
| Factures | 10 | Illimité | Illimité | Illimité |
| Membres de l'équipe | 3 | 5 | Illimité | Illimité |
| Prestataires | 2 | 6 | Illimité | Illimité |
| Exports par mois | 10 | Illimité | Illimité | Illimité |
| Répétitions de webhooks par mois | 5 | 25 | Illimité | Illimité |
Les quotas de liens et de factures comptent uniquement les lignes live. Toute création au-delà de
ces quotas renvoie 403. Les liens et factures de la sandbox ne consomment aucun quota.
Requêtes par minute
Quatre compteurs s'appliquent à chaque appel et le premier dépassé provoque le refus. Ils ne sont pas interchangeables. Une requête sous le plafond de l'équipe peut toujours être refusée par celui de l'IP.
| Compteur | Plafond | Clé de comptage |
|---|---|---|
| Équipe | Valeur de votre plan | Identifiant de l'équipe |
| API key | 100 | En-tête Authorization |
| IP | 120 | IP du client |
| Endpoint | Voir ci-dessous | Identifiant de l'équipe et ressource |
| Sans authentification | 30 | IP du client |
Les plafonds par endpoint correspondent à une valeur de base multipliée selon le plan.
| Ressource | Pay as you go | Growth | Scale et Enterprise |
|---|---|---|---|
/payments | 60 | 180 | 30 |
/transfers | 40 | 120 | 20 |
/refunds | 20 | 60 | 10 |
/customers | 100 | 300 | 50 |
Le multiplicateur par endpoint ne favorise pas les plans supérieurs
Le multiplicateur dépend d'une correspondance exacte avec le plafond de l'équipe : 360 donne 6x, 120 donne 2x et toute autre valeur donne 1x. Une équipe Scale avec 720 et une équipe Enterprise sans plafond utilisent donc cette dernière valeur. Leurs plafonds par endpoint sont inférieurs à ceux de Growth. Dimensionnez votre concurrence selon les valeurs ci-dessus, pas selon votre plan.
Limites de requêtes présente les en-têtes de réponse et les deux formes du corps
d'une réponse 429.
Limites des champs
Voici les limites de validation que vous risquez le plus de rencontrer. Elles proviennent directement des règles des requêtes.
| Champ | Limite |
|---|---|
expires.in | De 5 à 43 200 minutes, 1 440 par défaut |
description | 500 caractères |
reference | 128 caractères |
callback | 2 048 caractères |
Idempotency-Key | 128 caractères, A-Za-z0-9._:- |
per_page | De 1 à 100, 25 par défaut |
split_count | 2, 3 ou 4 |
split_amounts | De 2 à 4 montants, chacun au moins égal à 0.01 |
| Fichier de justificatif d'un litige | 10 Mo, pdf jpg jpeg png doc docx txt |
| Message d'un litige | 5 000 caractères |
Livraison des webhooks
| Paramètre | Valeur |
|---|---|
| Tentatives par événement | 5 |
| Calendrier des nouvelles tentatives | 30 s, 1 min, 5 min, 10 min, 1 h |
| Délai d'expiration de la requête | 10 secondes |
| Tolérance de la signature | 300 secondes |
Répondez avant l'expiration du délai pour éviter une nouvelle livraison. Vous devez donc accuser réception avant de lancer le traitement.
Pages associées
- CouvertureLes canaux et les devises disponibles.
- Limites de requêtesLes en-têtes, les deux formes de réponse 429 et l'attente progressive à mettre en place.
- Dépannage des paiementsLes actions à effectuer lorsqu'un paiement est refusé.
- Transferts et payoutsLa création, la retenue et le règlement d'un payout.