Sécurité

Des paiements protégés, de bout en bout

Aucun paiement Jɛmɛnipay ne se fait sans l'accord du client. Ajoutez à cela une API signée, des marchands vérifiés et une équipe qui traite chaque signalement.

Protection intégrée

Six protections, actives sur chaque paiement

Rien à activer : elles s'appliquent automatiquement, sans compliquer le paiement.

Validé par votre client

Chaque paiement est confirmé par le client lui-même dans son application Jɛmɛnipay : aucun débit sans son accord.

API protégée

Chaque appel est authentifié (clé API et jeton), horodaté et signé : une requête modifiée est refusée.

Données protégées

Échanges chiffrés (HTTPS), documents d'identité stockés de façon privée et journal des actions sensibles.

Marchands vérifiés

Les documents d'identité et d'entreprise de chaque marchand sont contrôlés par notre équipe avant la mise en production.

Requêtes à durée limitée

Une requête d'API n'est valable que 5 minutes, et ne peut pas être rejouée en production.

Comptes suspendus

Un marchand bloqué ne peut plus encaisser : ses paiements sont refusés immédiatement.

En cas de problème

Une équipe qui traite chaque signalement

Un paiement vous semble suspect ? Contactez-nous : voici comment il est traité.

Signalement

Une transaction suspecte est signalée à notre équipe, qui l'examine.

Remboursement

Si nécessaire, la transaction est annulée et le client remboursé.

Fidélité protégée

Les points JemeniPoint gagnés sur une transaction frauduleuse sont annulés, et le compte de fidélité concerné est suspendu.

Contacter le support →

Développeurs

Vérifiez l'origine de chaque notification

Chaque webhook est signé avec votre clé secrète. Recalculez la signature : si elle ne correspond pas, ignorez le message.

  • Signature HMAC-SHA512 dans l'en-tête X-Jemeni-Signature.
  • Nouvelles tentatives automatiques après 1, 5 puis 30 minutes en cas d'échec.
  • Adresse de secours utilisée si votre adresse principale ne répond pas.
Vérifier un webhook (PHP)
// Corps brut reçu et signature envoyée par Jɛmɛnipay
$payload   = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_JEMENI_SIGNATURE'] ?? '';

$attendue = hash_hmac('sha512', $payload, $secretWebhook);

if (!hash_equals($attendue, $signature)) {
    http_response_code(401); // message non authentique
    exit;
}

Prêt à encaisser ?

Créez votre compte gratuitement et testez tout dans l'environnement de test. Notre équipe vous accompagne jusqu'à la mise en production.