Documentation d'intégration

Documentation d'intégration

Intégrez Aventopay dans votre application en quelques minutes

Démarrage rapide

Étape 1: Créer une session de paiement

Créez une session de paiement via l'API en fournissant le montant et les informations du client.

// Créer une session de paiement
fetch('https://votre-domaine.com/api/payment/session', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer votre_api_key'
  },
  body: JSON.stringify({
    merchant_id: 'votre_merchant_id',
    user_id: 'client_123', // Votre ID utilisateur interne
    transaction_id: 'TXN_12345', // Optionnel - votre ID de transaction
    amount: 5000, // Montant en centimes (50.00€)
    currency: 'EUR', // Optionnel, défaut: 'EUR'
    return_url: 'https://votre-site.com/success', // Optionnel
    callback_url: 'https://votre-site.com/webhook', // Optionnel
    payment_method: 'card', // Optionnel, défaut: 'card'
    metadata: {} // Optionnel - vos propres données
  })
})
.then(res => res.json())
.then(data => {
  console.log('Session créée:', data);
  // data.session_token - Token de session
  // data.payment_url - URL de paiement
  // data.iframe_url - URL pour iframe
  // data.signature - Signature HMAC
  // data.expires_at - Date d'expiration
});
i

Notes importantes

  • Les montants doivent toujours être en centimes (50.00€ = 5000)
  • return_url: Redirection de l'utilisateur après paiement
  • callback_url: URL de votre webhook pour recevoir les notifications
  • user_id: Votre identifiant interne du client
  • transaction_id: Votre ID de transaction (sera renvoyé dans le callback)

Clés API

Vous trouverez vos clés API dans votre dashboard, section Paramètres (Se connecter)

Merchant ID

Identifiant unique de votre compte marchand (requis dans le body)

API Key

Clé d'authentification à utiliser dans l'header Authorization: Bearer

Webhook Secret

Clé secrète pour vérifier la signature des webhooks

!

Sécurité

Ne partagez jamais votre API Key et Webhook Secret. Utilisez-les uniquement côté serveur.

Méthodes d'intégration

Redirection directe

Redirigez vos clients vers la page de paiement hébergée par AventoPay.

// Après avoir créé la session, redirigez l'utilisateur
const paymentUrl = `https://votre-domaine.com/pay/${data.session_token}`;
window.location.href = paymentUrl;

// Ou avec un lien HTML
<a href="https://votre-domaine.com/pay/SESSION_TOKEN">
  Payer maintenant
</a>

Recommandé pour

Applications web classiques, e-commerce, paiements ponctuels

Webhooks

AventoPay envoie des notifications webhook vers votre callback_url pour vous informer du résultat des paiements.

Format du callback

{
  "merchant_id": "m_abc123",
  "transaction_id": "TXN_12345",
  "external_user_id": "player_789",
  "status": "success",
  "amount": 5000,
  "currency": "EUR",
  "provider_reference": "pi_3xxxxx",
  "timestamp": 1710000000,
  "metadata": {
    "order_id": "ORD-12345"
  },
  "signature": "HMAC_SHA256_HASH"
}

Statuts possibles

successPaiement réussi et autorisé
failedPaiement échoué
pendingPaiement en attente de traitement
cancelledPaiement annulé

Exemple de webhook handler

// Endpoint webhook (Node.js/Express)
app.post('/webhooks/aventopay', express.json(), (req, res) => {
  const signature = req.headers['x-aventopay-signature'];
  const payload = req.body;

  // Vérifier la signature HMAC
  const dataToSign = { ...payload };
  delete dataToSign.signature; // Exclure la signature du calcul

  const expectedSignature = crypto
    .createHmac('sha256', WEBHOOK_SECRET)
    .update(JSON.stringify(dataToSign))
    .digest('hex');

  if (signature !== expectedSignature) {
    return res.status(401).send('Invalid signature');
  }

  // Vérifier le timestamp (protection anti-replay)
  const currentTimestamp = Math.floor(Date.now() / 1000);
  if (Math.abs(currentTimestamp - payload.timestamp) > 300) {
    return res.status(401).send('Timestamp too old');
  }

  // Traiter selon le statut
  const { merchant_id, transaction_id, external_user_id, status, amount } = payload;

  switch (status) {
    case 'success':
      // Créditer le wallet de l'utilisateur
      console.log(`Paiement réussi pour joueur ${external_user_id}: ${amount/100}€`);
      // Mettre à jour votre base de données
      // await creditUserWallet(external_user_id, amount);
      break;

    case 'failed':
    case 'cancelled':
      // Traiter l'échec
      console.log(`Paiement échoué: ${transaction_id}`);
      break;

    case 'pending':
      // Mettre en attente
      console.log(`Paiement en attente: ${transaction_id}`);
      break;
  }

  res.status(200).send('OK');
});
i

Points importants

  • La signature HMAC est envoyée dans le header X-AventoPay-Signature
  • Vérifiez toujours la signature avant de traiter le paiement
  • Le timestamp prévient les attaques replay (max 5 minutes)
  • Retrouvez votre Webhook Secret dans les Paramètres

Cartes de test

Utilisez ces cartes de test pour effectuer des paiements en mode test. Toutes acceptent n'importe quel CVC à 3 chiffres et une date d'expiration future.

Mastercard

Paiement réussi

5555 5555 5555 4444
CVC : 3 chiffres au choix • Date : Supérieure à aujourd'hui

Visa

Paiement réussi

4000 0566 5566 5556
CVC : 3 chiffres au choix • Date : Supérieure à aujourd'hui
!

Mode Test uniquement

Ces cartes ne fonctionnent qu'en mode test. En production, seules les vraies cartes bancaires sont acceptées.

Besoin d'aide ?

Consultez nos exemples complets ou contactez notre support technique.

Se connecter pour accéder aux clés API