Intégrer PayTech
La demande de paiement et les notifications IPN de PayTech, la vérification de l'IPN et la checklist de production.
PayTech est un agrégateur sénégalais : Orange Money, Wave, Free Money, Wizall, E-money et cartes. Une seule intégration couvre plusieurs moyens de paiement. Fiche du fournisseur : PayTech dans l'annuaire.
Le parcours PayTech
Source : documentation PayTech, vérifiée le 28 septembre 2026.
-
Votre serveur appelle
POST https://paytech.sn/api/payment/request-paymentavec les en-têtesAPI_KEYetAPI_SECRET. Champs obligatoires :item_name,item_price,ref_command(unique),command_name. Champs utiles :currency(XOFpar défaut),env(testouprod,prodpar défaut),ipn_url(HTTPS),success_url,cancel_url,custom_field,target_payment. -
PayTech répond avec
success: 1, untokenet uneredirect_url. Redirigez le client vers cette adresse. -
Le client choisit son moyen de paiement et paie.
-
PayTech envoie une notification IPN à
ipn_url. Le champtype_eventvautsale_complete,sale_canceled,refund_complete,transfer_successoutransfer_failed.
Mode test de PayTech
Avec env: "test", PayTech débite un montant aléatoire entre 100
et 150 FCFA, quel que soit le montant demandé.
Tester l'IPN
Pour tester la vérification de l'IPN, utilisez env: "test" chez PayTech, ou
construisez vous-même une IPN de test avec votre API_KEY et votre
API_SECRET. Correspondance de statuts proposée, pour votre fonction de
traduction :
PayTech (type_event) | État de votre application |
|---|---|
| aucune notification encore | en attente |
sale_complete | payée |
sale_canceled | échouée ou annulée |
refund_complete | remboursée |
transfer_success et transfer_failed concernent les transferts sortants.
Vérifier les notifications
IPN PayTech
PayTech recommande de vérifier hmac_compute : HMAC-SHA256, avec votre
API_SECRET comme clé, du message <montant>|<ref_command>|<API_KEY>. Le
montant est final_item_price, ou item_price s'il est absent. L'autre
méthode compare api_key_sha256 et api_secret_sha256 au SHA-256 de vos
clés. Source : documentation PayTech,
vérifiée le 28 septembre 2026.
import { createHmac, timingSafeEqual } from 'node:crypto';
// ipn : les champs reçus sur ipn_url (corps décodé).
export function verifierIpnPaytech(ipn, apiKey, apiSecret) {
const montant = ipn.final_item_price || ipn.item_price;
const attendu = createHmac('sha256', apiSecret).update(`${montant}|${ipn.ref_command}|${apiKey}`).digest('hex');
const recu = String(ipn.hmac_compute ?? '');
return recu.length === attendu.length && timingSafeEqual(Buffer.from(recu), Buffer.from(attendu));
}Checklist de production
Source des pièces : fiche annuaire, vérifiée le 28 septembre 2026.
- Compte PayTech validé manuellement. Pièces : NINEA, pièce d'identité, registre de commerce, statuts, justificatif de domicile.
- Entreprise immatriculée : RCCM et NINEA (démarche).
- Déclaration à la CDP faite et récépissé reçu (démarche).
- Tarifs vérifiés sur le site de PayTech.
envpassé àprod,ipn_urlen HTTPS.- Clés
API_KEYetAPI_SECRETstockées hors du code, jamais côté client. ref_commandunique par commande, IPN traitée de façon idempotente.- SDK officiels disponibles en PHP et Android, si votre stack s'y prête.