API externe

Documentation développeurs

Intégrez les paiements en ligne et TPE, consultez les opérations et recevez des webhooks via l'API externe Avirato Payments.

API externe - Guide d'intégration

Qu'est-ce que l'API externe

L'API externe d'Avirato Payments permet aux intégrateurs externes (ERP, plateformes e-commerce, systèmes de gestion, etc.) de traiter les paiements en ligne et les paiements POS de manière sécurisée, sans avoir à connaître l'infrastructure interne du système.

Avec une seule intégration, vous pouvez :

  • Créer des sessions de paiement en ligne et rediriger le client vers une page de paiement sécurisée
  • Traiter des paiements POS en envoyant un encaissement directement à un terminal physique
  • Modifier des paiements : remboursements totaux et partiels, captures de préautorisation, annulations et extensions de préautorisation
  • Consulter des paiements : obtenir le détail d'une session, lister les sessions avec filtres et pagination, lister les modifications

Environnements : Live et Test

L'API externe propose deux environnements totalement indépendants :

LiveTest
ObjectifTraiter des paiements réelsIntégrer et tester sans argent réel
URL de basehttps://aviratopayments.com/external/v1/https://aviratopayments.com/external/v1/test/
API KeysClés d'environnement LiveClés d'environnement Test
Paiements en ligneProcesseur réelSimulation avec cartes fictives
Paiements POSTerminal physique réelSimulation immédiate (magic amounts)
WebhooksEnvoyés par le processeur réelGénérés automatiquement par le backend
Argent réelOuiNon

Recommandation : Intégrez d'abord dans l'environnement Test pour vérifier que votre système fonctionne correctement. Une fois validé, passez en Live en utilisant simplement votre clé API de production et en supprimant /test/ des URLs.

URL de base

Live: https://aviratopayments.com/external/v1/
Test: https://aviratopayments.com/external/v1/test/

Tous les endpoints de cette documentation affichent l'URL complète de l'environnement Live. Pour utiliser l'environnement Test, insérez /test/ après /v1/. Par exemple :

  • Live : POST https://aviratopayments.com/external/v1/payment/session
  • Test : POST https://aviratopayments.com/external/v1/test/payment/session

Authentification rapide

Toutes les requêtes nécessitent une clé API dans l'en-tête X-API-KEY :

X-API-KEY: votre_cle_api_ici

Les clés API se gèrent depuis le tableau de bord Avirato Payments (section Intégrations > API Keys). Chaque clé est liée à un webcode (identifiant d'entreprise) et à un environnement (Live ou Test).

De plus, toutes les requêtes POST acceptent optionnellement l'en-tête Idempotency-Key pour éviter les opérations en double. Nous recommandons de l'utiliser systématiquement en production. Réutiliser la même clé avec un body différent ou un autre endpoint renvoie 409 Conflict (voir Authentification et Gestion des erreurs).

Pour plus de détails : Authentification

Structure des réponses

Réponse réussie

Toutes les réponses réussies suivent cette structure :

{
  "success": true,
  "data": { ... }
}

Le contenu de data varie selon l'endpoint. Le champ success est toujours true pour les réponses 2xx.

Réponse en erreur

{
  "success": false,
  "error": {
    "message": "Description de l'erreur en anglais",
    "code": 12001,
    "statusCode": 400,
    "traceId": "abc123..."
  }
}

Le traceId est unique par requête. Incluez-le toujours lorsque vous contactez le support technique. Voir Gestion des erreurs pour le catalogue complet.

Concepts clés avant de commencer

Session vs paiement (pour les paiements en ligne)

Il est essentiel de comprendre cette distinction :

  • Session (sessionId) : l'intention d'encaissement que votre système crée. Elle contient le montant, les URLs de retour, etc.
  • Paiement (paymentReference) : la transaction réelle autorisée par le processeur. Elle n'existe que lorsque le client finalise le paiement avec succès.

Règle pratique : utilisez sessionId pour consulter l'état. Utilisez paymentReference pour modifier (rembourser, capturer, annuler, prolonger).

Voir Paiements en ligne - Session vs paiement pour l'explication complète.

Opérations asynchrones

Les modifications (refund, capture, cancel, extend) sont asynchrones. L'API accepte la requête immédiatement (HTTP 202) mais l'opération est traitée en arrière-plan. L'état initial est pending (remboursements) ou received (capture, cancel, extend) et évolue vers success ou failed lorsque le processeur confirme.

Les paiements POS sont synchrones : la requête attend la réponse du terminal.

En environnement Test : les modifications se résolvent presque immédiatement (le backend simule la réponse du processeur). Vous recevrez le webhook de confirmation en quelques secondes.

Flux d'intégration typique

1. Paiement en ligne

Votre système                   Avirato Payments                  Client
    |                                    |                              |
    |-- POST /payment/session ---------->|                              |
    |<-- 201 { sessionId, paymentUrl } --|                              |
    |                                    |                              |
    |-- Redirige le client -------------->+---------------------------->|
    |                                    |     (page de paiement sécurisée)|
    |                                    |<-- Finalise le paiement -------|
    |                                    |                              |
    |                                    |-- Redirige vers urlOk -------->|
    |                                    |   (données chiffrées)         |
    |                                    |                              |
    |-- GET /payment/session/{id} ------>|                              |
    |<-- { status: completed,            |                              |
    |      paymentReference: "..." } ----|                              |
    |                                    |                              |
    |   (Vous pouvez maintenant faire    |                              |
    |    refund, capture, etc. avec      |                              |
    |    paymentRef)                     |                              |

2. Paiement POS

Votre système                   Avirato Payments         Terminal TPE
    |                                    |                      |
    |-- POST /pos/payment ------------->|                      |
    |                                    |-- Envoie l'encaissement ->|
    |                                    |    (le client paie     |
    |                                    |     sur le terminal)  |
    |                                    |<-- Résultat ----------|
    |<-- 200 { status: success,          |                      |
    |          paymentReference } --------|                      |

Note : Ces flux fonctionnent de manière identique en environnement Test, en remplaçant /external/v1/ par /external/v1/test/. La seule différence est qu'en Test le paiement en ligne se finalise avec des cartes fictives et le paiement POS est simulé avec des magic amounts (sans terminal réel).

Différences clés entre Test et Live

AspectLiveTest
Paiement en ligneLe client paie avec une carte réelle sur le formulaire de paiementLe client utilise des cartes fictives sur un formulaire simulé
Paiement POSLe terminal physique traite l'encaissementLe résultat est simulé immédiatement selon le montant
WebhooksEnvoyés par le processeur réel lors de la confirmationGénérés automatiquement par le backend à la fin de la simulation
ModificationsTraitées par le processeur réel (peut prendre secondes/minutes)Simulées instantanément par le backend
RéférencesPréfixe -EXT-, -PXT-, -POSX-, -RFX-, -CTX-, etc.Préfixe -EXTT-, -PXTT-, -POSXT-, -RFXT-, -CTXT-, etc.
ArgentTransactions réellesAucun mouvement d'argent
DonnéesTotalement isoléesTotalement isolées (pas de mélange avec le live)

Index des endpoints

Paiements en ligne

MéthodeEndpointDescriptionHTTP Status
POST/payment/sessionCréer une session de paiement201
GET/payment/session/{sessionId}Obtenir le détail d'une session200
GET/payment/sessionsLister les sessions200

Modifications (paiements en ligne et POS)

MéthodeEndpointDescriptionHTTP Status
POST/payment/refundRembourser un paiement202
POST/payment/captureCapturer une préautorisation202
POST/payment/cancelAnnuler une préautorisation202
POST/payment/extendProlonger une préautorisation202
GET/payment/session/{sessionId}/modificationsLister les modifications d'une session200
GET/pos/payment/{posPaymentId}/modificationsLister les modifications d'un paiement POS200
GET/modificationsLister toutes les modifications200

Paiements POS

MéthodeEndpointDescriptionHTTP Status
GET/pos/terminalsLister les terminaux actifs200
POST/pos/paymentCréer un paiement POS200
GET/pos/paymentsLister les paiements POS200

Rappel : Pour utiliser un endpoint en environnement Test, ajoutez /test/ après /v1/. Exemple : POST /external/v1/test/payment/session.

Étape suivante

  1. Configurez votre authentification
  2. Créez votre premier paiement en ligne
  3. Ou commencez par les paiements POS
  4. Apprenez à modifier les paiements
  5. Consultez les paiements et modifications
  6. Recevez des notifications via les webhooks
  7. Gestion des erreurs
  8. Exemples complets de bout en bout