Intégrez Aventopay dans votre application en quelques minutes
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
});Notes importantes
Vous trouverez vos clés API dans votre dashboard, section Paramètres (Se connecter)
Identifiant unique de votre compte marchand (requis dans le body)
Clé d'authentification à utiliser dans l'header Authorization: Bearer
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.
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
AventoPay envoie des notifications webhook vers votre callback_url pour vous informer du résultat des paiements.
{
"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"
}successPaiement réussi et autoriséfailedPaiement échouépendingPaiement en attente de traitementcancelledPaiement annulé// 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');
});Points importants
X-AventoPay-SignatureUtilisez 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.
Paiement réussi
Paiement réussi
Mode Test uniquement
Ces cartes ne fonctionnent qu'en mode test. En production, seules les vraies cartes bancaires sont acceptées.
Consultez nos exemples complets ou contactez notre support technique.
Se connecter pour accéder aux clés API