Introduction
L'API Axepta BNP Paribas Online est une solution de paiement en ligne conçue pour faciliter l'intégration des paiements sécurisés sur votre plateforme e-commerce. Cette documentation technique fournit toutes les informations nécessaires pour comprendre, configurer et utiliser notre API de manière efficace.
| Info |
|---|
La documentation technique de notre API est disponible ici: https://axeptabnpparibas-docs.redocly.app/ |
Présentation de l'API
1.1.Fonctionnalités Clés
Support de 350+ méthodes de paiement : L'API prend en charge une large gamme de méthodes de paiement à travers le monde.Architecture RESTful : L'API est basée sur les principes REST, offrant une interface prédictible et facile à utiliser.
Sécurité renforcée : Conformité aux normes PCI-DSS et communication sécurisée via HTTPS (TLS 1.2 ou supérieur).
Documentation complète : Documentation technique détaillée pour faciliter l'intégration.
Cas d'Utilisation
Paiements en ligne : Traitement des paiements en temps réel.
Gestion des transactions : Consultation et gestion des transactions passées.
2. Configuration de l'API
2.1. Prérequis
- Compte Merchant : Un compte marchand est nécessaire pour accéder à l'API.
- Clés d'API : Vous recevrez un Merchant ID et une API Key pour authentifier vos requêtes.
2.2. Environnements de Test et de Production
- Environnement de Test : Utilisé pour tester vos intégrations avant de passer en production.
- Environnement de Production : Utilisé pour les transactions réelles.
3. Authentification
3.1. Méthodes d'Authentification
Authentification
Méthodes d'Authentification
OAuth 2.0 :
Basic Authentication :
- Utilisez votre Merchant ID comme nom d'utilisateur et votre API Key comme mot de passe.
- Formatez la chaîne
MerchantID:APIKeyet encodez-la en Base64. - Incluez-la dans l'en-tête
Authorizationavec le préfixeBasic.
L'authentification doit se faire en utilisant le protocole OAuth-V2.
Le token d'accès retourné par la plateforme Axepta est valable 1 heure.
Passé ce délai, vous devez refaire une authentification pour avoir un token valide.
Générez un JSON Web Token (JWT) en vous authentifiant avec votre API Key via l'
endpoint endpoint authorization/oauth/token.
Les données token_type er access_token devront être présent dans toutes les requêtes au serveur, dans le header http 'Authorization'
| Code Block | ||
|---|---|---|
| ||
{
"access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IkZGQzlEM0JEQzY2Mjc3MUYwNzYxRUJDRTkwOTMyMDMyQjdGOTQ1NTQiLCJ4NXQiOiJfOG5UdmNaaWR4OEhZZXZPa0pNZ01yZjVSVlEiLCJ0eXAiOiJhdCtqd3QifQ.eyJpc3MiOiJodHRwczovL2xvY2FsaG9zdDo3MTIxLyIsImV4cCI6MTc0MDQ3NTUwNCwiaWF0IjoxNzQwNDcxOTA0LCJqdGkiOiJiZjU3YmUwMi05YThiLTQxYjctYjNjNi02NzlmMTcxNDU2ZjAiLCJzdWIiOiJDVF9Mb2dlZWNvbV90ZXN0IiwibmFtZSI6IkNUX0xvZ2VlY29tX3Rlc3QiLCJtYXJrZXRwbGFjZUlkIjoiQ1RfTG9nZWVjb21fdGVzdF9NYXJrZXRwbGFjZSIsIm1hcmtldHBsYWNlQWN0aXZlIjpmYWxzZSwib2lfcHJzdCI6IkNUX0xvZ2VlY29tX3Rlc3QiLCJjbGllbnRfaWQiOiJDVF9Mb2dlZWNvbV90ZXN0Iiwib2lfdGtuX2lkIjoiMjEwMWUxNTgtNzY0NC00OGU4LWIzNmYtYmZhNzczNWJmYjAyIn0.Xgtb81-GBPGnQ2tSJKXIlA38koRqlVa2oLhT902t-ICocWYD4_35bTAiPfU2A4HWwQpg1PZTrdf4riSoA_v_5bWSM-rdHAb-Y7fNwQTYAUYDxkcrw9qc5JcjwBGlOgXGTzJR2xyPDTq2sO4qAxo00lhCVjhEQR47yqOFta9rkcCmg1i6T6BxF7ZO6tBECfo7NSJ0wgN7G5_Unmd5MgWuG8V5VdvDxhXa1p_sBQdmy6nBCRi2d2bh1BOrz_uT5U2zngVBPzZBXv046j7971JXZbR20JFpkqwrULCGR6fy78NvkrHNC4U8ZDHmbejBbObMGCb_8pWMnaLhIg0A1k2x0Q",
"token_type": "Bearer",
"expires_in": 3600
} |
Idempotence
Le serveur d'Axepta BNP Paribas Online est idempotent: il ne traite la même requête qu'une seule fois.
Si de multiples requêtes identiques sont reçues, la même réponse sera renvoyée sans générer une nouvelle opération coté serveur.
Cette fonctionnalité permet d'éviter les doublons en cas de répétition du message de paiement.
Pour les messages POST et PATCH, l'idempotence est garantie par l'utilisation du header http 'Idempotency-Key'
Sa valeur doit être unique par requête http émise vers le serveur, et il est de la responsabilité du client de la générer.
Il est conseillé d'utiliser un uuid-v4 pour ce header http
3.2. Exemple de Requête d'Authentification
http
Collapse
1
2
3
GET /authorization/oauth/token HTTP/1.1
Host: api.axepta.bnpparibas
Authorization: Basic base64(MerchantID:APIKey)
4. Endpoints de l'API
4.1. Création d'une Transaction
- Endpoint :
POST /payments - Description : Crée une nouvelle transaction de paiement.
- Paramètres Requis :
amount: Montant de la transaction.currency: Devise de la transaction.payment_method: Méthode de paiement choisie.customer_email: Adresse e-mail du client.
4.2. Consultation d'une Transaction
- Endpoint :
GET /payments/{transaction_id} - Description : Récupère les détails d'une transaction spécifique.
- Paramètres Requis :
transaction_id: Identifiant unique de la transaction.
4.3. Annulation d'une Transaction
- Endpoint :
POST /payments/{transaction_id}/cancel - Description : Annule une transaction en attente.
- Paramètres Requis :
transaction_id: Identifiant unique de la transaction.
5. Gestion des Erreurs
5.1. Codes d'Erreur Courants
- 400 Bad Request : Requête mal formée.
- 401 Unauthorized : Authentification échouée.
- 404 Not Found : Ressource non trouvée.
- 500 Internal Server Error : Erreur interne du serveur.
5.2. Exemple de Réponse d'Erreur
json
Collapse
1
2
3
4
5
6
⌄
⌄
{
"error": {
"code": "400",
"message": "Invalid amount"
}
}
6. Sécurité
6.1. Conformité PCI-DSS
- Chiffrement des Données : Toutes les communications sont chiffrées via HTTPS (TLS 1.2 ou supérieur).
- Protection des Données Sensibles : Les données sensibles des clients sont gérées par Axepta BNP Paribas, réduisant ainsi vos responsabilités PCI-DSS.
6.2. Bonnes Pratiques de Sécurité
- Gestion des Clés API : Stockez vos clés API de manière sécurisée.
- Mises à Jour Régulières : Assurez-vous que votre système est à jour pour éviter les vulnérabilités.
7. Documentation Complémentaire
7.1. Exemples de Code
- Exemple en Python :
python
Collapse
Run
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
⌄
⌄
import requests
url = "https://api.axepta.bnpparibas/payments"
headers = {
"Authorization": "Basic base64(MerchantID:APIKey)",
"Content-Type": "application/json"
}
data = {
"amount": 100.00,
"currency": "EUR",
"payment_method": "credit_card",
"customer_email": "client@example.com"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
- Exemple en JavaScript :
javascript
Collapse
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
⌄
⌄
const axios = require('axios');
const url = 'https://api.axepta.bnpparibas/payments';
const headers = {
'Authorization': 'Basic base64(MerchantID:APIKey)',
'Content-Type': 'application/json'
};
const data = {
amount: 100.00,
currency: 'EUR',
payment_method: 'credit_card',
customer_email: 'client@example.com'
};
axios.post(url, data, { headers })
.then(response => console.log(response.data))
.catch(error => console.error(error));
7.2. FAQ
Q : Comment puis-je obtenir mes clés API ?
- R : Contactez notre support technique pour obtenir vos clés API.
Q : Quelles méthodes de paiement sont supportées ?
R : Plus de 350 méthodes de paiement sont supportées, y compris les cartes de crédit, PayPal, et bien d'autres.