Tarifs et frais
Le prix tout compris par zone, qui le paie, et comment connaître le montant exact avant d'encaisser.
Tarifs et frais
Genuka Pay affiche un prix tout compris. Le taux ci-dessous est le total prélevé sur la transaction, frais opérateur inclus — pas une commission qui s'ajoute à autre chose.
Barème
| Zone | Devise | Tarif | Minimum |
|---|---|---|---|
| Afrique centrale (CEMAC) | XAF | 3 % + 25 | 50 XAF |
| Afrique de l'Ouest (UEMOA) | XOF | 3 % + 25 | 50 XOF |
| Côte d'Ivoire | XOF | 4 % + 25 | 50 XOF |
Le minimum s'applique au total : si 3 % + 25 donne moins de 50, c'est 50 qui est prélevé.
Ce que « tout compris » veut dire
Sur 10 000 XOF encaissés en Côte d'Ivoire, le total prélevé est 4 % × 10 000 + 25 = 425 XOF, quelle que soit la part que prend l'opérateur ce jour-là. Vous recevez 9 575 XOF.
Des tarifs négociés peuvent être appliqués à votre compte. Dans ce cas ils remplacent le barème ci-dessus, et le devis ci-dessous reste la source de vérité.
Qui paie les frais
Le porteur des frais est un réglage de votre compte (fee_bearer), renvoyé dans chaque transaction.
| Valeur | Effet |
|---|---|
COMPANY | Le client est débité du montant demandé. Les frais sont déduits de ce que vous recevez. |
CUSTOMER | Les frais sont ajoutés au montant débité du client. Vous recevez le montant demandé. |
Connaître le montant exact avant d'encaisser
POST /api/v1/payments/quote| Paramètre | Type | Requis | Description |
|---|---|---|---|
amount | number | Oui | Montant de la commande |
currency | string | Oui | XAF ou XOF |
payer_phone | string | Oui (sauf carte) | Numéro au format E.164, ex. +2250700000001 |
operator_code | string | Non | Déduit du numéro s'il est omis |
country | string | Non | Code ISO 2 lettres. Détermine le barème et l'opérateur retenu. |
curl -X POST "{{BASE_URL}}/api/v1/payments/quote" \
-H "X-Public-Key: YOUR_PUBLIC_KEY" \
-H "X-Timestamp: UNIX_TIMESTAMP" \
-H "X-Signature: HMAC_SHA256_SIGNATURE" \
-H "Content-Type: application/json" \
-d '{
"amount": 10000,
"currency": "XOF",
"payer_phone": "+2250700000001",
"country": "CI"
}'{
"message": "payin_fees_quoted",
"data": {
"amount": 10000,
"currency": "XOF",
"fee_bearer": "COMPANY",
"provider_fee_amount": 150,
"genuka_fee_amount": 275,
"total_fee_amount": 425,
"customer_pays": 10000,
"merchant_receives": 9575
}
}Affichez customer_pays à votre client et merchant_receives dans votre back-office. La répartition entre provider_fee_amount et genuka_fee_amount est informative : seul le total vous est facturé.
Le devis est une estimation, pas un engagement
Si l'opérateur visé refuse la transaction, elle est automatiquement reprise ailleurs, et le barème appliqué peut changer. Quand les frais sont à la charge du client (fee_bearer = CUSTOMER), le montant réellement débité est alors recalculé. Le montant ferme est celui renvoyé par la transaction elle-même.
Les frais après coup
Chaque paiement renvoie le détail réellement appliqué :
{
"amount": 10000,
"charged_amount": 10000,
"provider_fee_amount": 150,
"genuka_fee_amount": 275,
"total_fee_amount": 425,
"net_amount": 9575,
"fee_bearer": "COMPANY",
"fee_breakdown": {
"customer_pays": 10000,
"merchant_receives": 9575
}
}Ces montants sont définitifs une fois la transaction en SUCCESS : ils sont réconciliés avec ce que l'opérateur a réellement facturé.
À voir ensuite
How is this guide?
Last updated on