Développeurs/Démarrer
API marchand CardV
CardV vend aux entreprises des produits numériques prépayés : cartes cadeaux, recharges de jeux, eSIM, etc. L'API marchand permet à votre serveur de les acheter automatiquement. Vous consultez votre solde, choisissez un produit, obtenez son prix, passez commande et récupérez les codes. Les commandes sont payées avec votre portefeuille CardV prépayé. Tout le reste, comme l'ajout de fonds ou l'historique des commandes, se fait dans le Portail marchand.
#Documentation
| Document | Contenu |
|---|---|
| Authentification | En-têtes, signature des commandes, gestion des clés |
| Catalogue et commandes | Solde, produits, prix, commandes, codes |
| Conventions | Montants, dates, identifiants, limite de requêtes, erreurs |
| Webhooks | Notifications de commande envoyées à votre serveur |
| Sandbox | Tests et liste de contrôle avant la mise en production |
| Sécurité | Protéger vos clés et vos codes |
#Environnements
| Live | Sandbox | |
|---|---|---|
| URL de base de l'API | https://b2b.cardv.net/api/v1 | https://sandbox.cardv.net/api/v1 |
| Portail marchand | https://b2b.cardv.net/portal/ | Même Portail, passez en Sandbox |
La Sandbox est une copie de test séparée de CardV, avec de l'argent fictif. Les clés, les soldes, les commandes et les identifiants de produits diffèrent d'un environnement à l'autre.
#Démarrage rapide
Faites une demande de compte marchand dans le Portail et confirmez votre adresse e-mail.
Attendez la validation. CardV vérifie votre entreprise. Vous recevez ensuite un Merchant ID (votre identifiant marchand), par exemple
M00000001.Ouvrez la Sandbox. Connectez-vous au Portail et choisissez Sandbox dans l'en-tête. Vous disposez de 1 000 USD d'argent de test.
Créez une clé API. Dans le Portail, allez dans Integrations → API keys. Créez une clé, puis affichez-la avec le code que CardV vous envoie par e-mail. Rangez-la dans votre coffre à secrets.
Consultez votre solde :
export CARDV_BASE=https://sandbox.cardv.net export CARDV_MERCHANT_ID=M00000001 # yours export CARDV_API_KEY=cvb2b_... # from your secret store AUTH=(-H "X-Merchant-Id: $CARDV_MERCHANT_ID" -H "X-Api-Key: $CARDV_API_KEY") curl -sS "$CARDV_BASE/api/v1/balance" "${AUTH[@]}"Trouvez un produit :
curl -sS "$CARDV_BASE/api/v1/skus?search=steam&limit=20" "${AUTH[@]}"Choisissez-en un avec
"availability": "available"et notez sonsku_id.Obtenez le prix :
curl -sS "$CARDV_BASE/api/v1/skus/S000001/quote?quantity=1" "${AUTH[@]}"Notez
merchant_price: c'est ce que vous payez par unité.Passez la commande. Cet appel doit être signé. Reprenez un exemple de Authentification avec ce corps de requête :
{ "external_order_id": "TEST-0001", "items": [ {"sku_id": "S000001", "quantity": 1, "expected_unit_price": "9.2500"} ] }Vous recevez un HTTP 201 avec un numéro de commande CardV, par exemple
O-00001234.Récupérez les codes. Appelez
GET/api/v1/orders/O-00001234jusqu'à ce que le statut soitsucceeded. Les codes se trouvent dansitems[].deliveries[].display_fields. Vous pouvez aussi recevoir un webhook quand la commande est terminée.Passez en production une fois la liste de contrôle Sandbox validée.
Les identifiants et les prix ci-dessus sont des exemples. Utilisez les valeurs renvoyées par votre propre catalogue.
#L'API en bref
L'API compte sept endpoints. Tous les chemins commencent par /api/v1.
| Endpoint | À quoi il sert | Signé |
|---|---|---|
GET/account | Informations sur votre entreprise et état de l'accès API | Non |
GET/balance | Montant que vous pouvez dépenser | Non |
GET/skus | Produits que vous pouvez acheter, avec votre prix | Non |
GET/skus/{sku_id} | Un produit | Non |
GET/skus/{sku_id}/quote | Prix actuel pour une quantité donnée | Non |
POST/orders | Passer une commande, payée avec votre portefeuille | Oui |
GET/orders/{order_id} | Statut de la commande et codes | Non |
Tout autre endpoint renvoie HTTP 403 s'il est appelé avec une clé API :
{"detail": "This operation is only available in the Merchant Portal."}La recharge de forfaits mobiles (crédit téléphonique) n'est pas disponible via l'API.
#Identifiants
| Élément | Exemple | Remarques |
|---|---|---|
| Merchant ID | M00000001 | Le vôtre. Il ne change jamais. |
| SKU (un produit que vous pouvez acheter) | S000456 | Sert à obtenir le prix et à commander. |
| Numéro de commande CardV | O-00001234 | Enregistrez-le avec votre commande. |
| Votre numéro de commande | SHOP-10001 | C'est vous qui le choisissez (external_order_id). |
Enregistrez les identifiants sous forme de texte, sans chercher à les décomposer. Voir Conventions.
#Ce qui se fait dans le Portail marchand
- L'ajout de fonds au portefeuille et l'alerte e-mail en cas de solde bas
- L'historique des commandes, la recherche et les exports CSV
- Les factures des commandes
- Les mouvements du portefeuille et le rapprochement comptable
- La configuration des webhooks, l'historique des envois et les renvois
- Les clés API
- La liste d'IP autorisées
- Les membres de l'équipe et leurs rôles
- Le journal d'audit
- La validation en deux étapes (2FA)
- Le passage de Live à Sandbox et inversement
#Compatibilité et support
Nous pouvons ajouter de nouveaux champs de réponse et de nouveaux statuts sans préavis. Ignorez les champs que vous ne connaissez pas. Considérez un statut de commande inconnu comme « pas encore terminée ». Ne vous fiez pas au texte des messages d'erreur.
Écrivez à [email protected] en indiquant votre Merchant ID, l'environnement, les numéros de commande, l'heure (UTC) et le code HTTP.
N'envoyez jamais de clés API, de signatures, de secrets de webhook ni de codes de cartes.
Une question sur votre intégration ? Écrivez à [email protected] en indiquant votre Merchant ID et l’identifiant de commande ou de requête.