Documentation

Encaissez en Mobile Money ou par carte, et reversez vers un compte Mobile Money — avec une seule API.

Vous êtes sur WordPress ? Encaissez avec WooCommerce sans écrire de code.

Clés d’API

Sandbox
Clé d’API
kpay_test_xxxxxxxxxxxxxxxx
En-tête
x-api-key
URL de base
https://test.admin.kpay.site

Une seule URL : la clé décide de l’environnement.

Données de test →

Essayer

Choisissez la façon dont vous encaissez. Chaque parcours part de la même clé et de la même URL.

Encaisser via page hébergée
curl -X POST https://test.admin.kpay.site/api/v1/payments/init \
  -H "x-api-key: kpay_test_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 5000,
    "externalId": "CMD-2026-001",
    "returnUrl": "https://monsite.com/paiement/retour",
    "description": "Commande #2026-001"
  }'

# → { "mode": "GATEWAY", "gatewayUrl": "https://…/pay/gw_…" }
# Redirigez le client vers gatewayUrl.
Guide complet — Encaisser via page hébergée

Parcourir par sujet

Bon à savoir

Ce qui vaut pour tous les endpoints, quel que soit le parcours.

Format des réponses

Toutes les réponses sont en JSON. Une erreur porte toujours un `statusCode`, un `message` lisible et un libellé `error`.

Succès
{
  "id": "pay_abc123",
  "reference": "KPAY-20260514-ABC123",
  "status": "PENDING",
  "amount": 5000,
  "currency": "XAF",
  "externalId": "CMD-2026-001"
}
Erreur
{
  "statusCode": 400,
  "message": "Description lisible de l'erreur",
  "error": "Bad Request"
}

Codes HTTP

200
OKRequête traitée.
201
CreatedRessource créée (init de paiement ou de retrait).
400
Bad RequestChamp manquant ou mal formé.
401
UnauthorizedClé d’API absente, inconnue ou révoquée.
403
ForbiddenClé valide mais non autorisée sur cette ressource.
404
Not FoundRessource introuvable.
409
ConflictexternalId déjà utilisé — la transaction existe.
422
UnprocessableMontant hors limites ou opérateur non autorisé.
429
Too Many RequestsLimite de débit atteinte.
500
Server ErrorErreur côté KPay. Réessayez avec un backoff.
Tous les codes d’erreur

Environnements

Une seule URL, deux clés. `kpay_test_` route vers le bac à sable, `kpay_live_` vers la production — rien d’autre ne change dans votre code.

Environnements →

Limites de débit

Un dépassement renvoie un 429. Réessayez avec un délai exponentiel plutôt qu’en boucle serrée.

Tarifs & limites →

Versionnement

L’API est en `v1`, portée par l’URL. Les ajouts de champs sont rétrocompatibles : ignorez ceux que vous ne connaissez pas.

Spécification OpenAPI →

K-PAY — Mobile Money and card payments across Central Africa.