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.

Consultations

Obtenir le détail d'un paiement

Obtient les informations complètes d'une session de paiement en ligne, y compris toutes les tentatives de paiement et, si la session est finalisée, la référence du paiement autorisé (paymentReference).

Cet endpoint est le moyen principal d'obtenir le paymentReference nécessaire pour effectuer des modifications (remboursements, captures, etc.).

Live: GET https://aviratopayments.com/external/v1/payment/session/{sessionId}?webcode={webcode}
Test: GET https://aviratopayments.com/external/v1/test/payment/session/{sessionId}?webcode={webcode}

Paramètres

ParamètreEmplacementTypeRequisDescription
sessionIdPathstringOuiLe sessionId renvoyé lors de la création de la session
webcodeQuerystringOuiIdentifiant de votre entreprise

Exemple

curl -X GET "https://aviratopayments.com/external/v1/payment/session/SHOP01-EXT-17195000001234?webcode=SHOP01" \
  -H "X-API-KEY: votre_cle_api_live"

Réponse (200) - Session finalisée

{
  "success": true,
  "data": {
    "sessionId": "SHOP01-EXT-17195000001234",
    "status": "completed",
    "amount": {
      "value": 15000,
      "currency": "EUR"
    },
    "countryCode": "ES",
    "shopperLocale": "es-ES",
    "deliverAt": "2026-07-15T14:00:00Z",
    "description": "Pedido #12345 - Servicio premium",
    "customReference": "ORD-2026-12345",
    "isPreAuth": false,
    "urlOk": "https://tu-sistema.com/pago-ok",
    "urlKo": "https://tu-sistema.com/pago-error",
    "createdAt": "2026-06-28 10:30:00",
    "paymentReference": "SHOP01-PXT-17195000005678",
    "completedAt": "2026-06-28 10:35:22",
    "paymentStatus": "AUTHORISED",
    "attempts": [
      {
        "paymentReference": "SHOP01-PXT-17195000003456",
        "status": "refused",
        "createdAt": "2026-06-28 10:32:00"
      },
      {
        "paymentReference": "SHOP01-PXT-17195000005678",
        "status": "authorised",
        "createdAt": "2026-06-28 10:34:00"
      }
    ]
  }
}

Réponse (200) - Session en attente

Lorsque la session n'est pas encore finalisée, elle n'inclut pas paymentReference, completedAt ni paymentStatus :

{
  "success": true,
  "data": {
    "sessionId": "SHOP01-EXT-17195000001234",
    "status": "pending",
    "amount": {
      "value": 15000,
      "currency": "EUR"
    },
    "countryCode": "ES",
    "shopperLocale": "es-ES",
    "deliverAt": "2026-07-15T14:00:00Z",
    "description": "Pedido #12345 - Servicio premium",
    "customReference": "ORD-2026-12345",
    "isPreAuth": false,
    "urlOk": "https://tu-sistema.com/pago-ok",
    "urlKo": "https://tu-sistema.com/pago-error",
    "createdAt": "2026-06-28 10:30:00",
    "attempts": []
  }
}

Champs de réponse

ChampToujours présentDescription
sessionIdOuiIdentifiant unique de la session
statusOuiÉtat de la session : pending, completed, failed, expired, cancelled
amountOuiMontant et devise demandés à la création de la session
countryCodeOuiPays configuré
shopperLocaleOuiLangue configurée
deliverAtOuiDate de livraison (peut être null)
descriptionOuiDescription (peut être null)
customReferenceOuiVotre référence interne (peut être null)
isPreAuthOuiSi créée en préautorisation
urlOk / urlKoOuiURLs de retour configurées
createdAtOuiDate et heure de création de la session
paymentReferenceUniquement si completedRéférence du paiement autorisé. Utilisez-la pour les modifications
completedAtUniquement si completedDate d'autorisation du paiement
paymentStatusUniquement si completedÉtat du paiement chez le processeur (ex. : AUTHORISED). En Live, cette valeur peut changer avec le temps si le processeur notifie des événements ultérieurs (chargeback, fraude, réversion). Consultez les webhooks ou rappelez cet endpoint si vous avez besoin du dernier état.
attemptsOuiTableau informatif des tentatives de paiement enregistrées. Peut être vide

Erreurs

CodeHTTPCause
12001400Paramètre webcode manquant
10404404Session introuvable
11008403La session n'appartient pas à votre webcode ou environnement

---

Lister les paiements

Liste toutes les sessions de paiement en ligne avec filtres et pagination par curseur.

Live: GET https://aviratopayments.com/external/v1/payment/sessions?webcode={webcode}
Test: GET https://aviratopayments.com/external/v1/test/payment/sessions?webcode={webcode}

Paramètres de query

ParamètreTypeRequisDescription
webcodestringOuiIdentifiant de votre entreprise
statusstringNonFiltrer par état : pending, completed, failed, expired, cancelled
created_at_startstringNonDate de début (filtre)
created_at_endstringNonDate de fin (filtre)
cursorstringNonCurseur de pagination (de la réponse précédente)
takeintegerNonRésultats par page (1-100, par défaut : 20)
orderstringNonOrdre des résultats : asc ou desc (par défaut : asc)

Exemple

curl -X GET "https://aviratopayments.com/external/v1/payment/sessions?webcode=SHOP01&status=completed&take=10" \
  -H "X-API-KEY: votre_cle_api_live"

Réponse (200)

{
  "success": true,
  "data": {
    "payments": [
      {
        "sessionId": "SHOP01-EXT-17195000001234",
        "status": "completed",
        "amount": { "value": 15000, "currency": "EUR" },
        "description": "Pedido #12345",
        "customReference": "ORD-2026-12345",
        "isPreAuth": false,
        "createdAt": "2026-06-28 10:30:00",
        "completedAt": "2026-06-28 10:35:22",
        "paymentReference": "SHOP01-PXT-17195000005678",
        "paymentStatus": "AUTHORISED"
      }
    ],
    "meta": {
      "cursor": "eyJpZCI6NDJ9",
      "hasMore": true,
      "total": 89
    }
  }
}

Champs de chaque session dans la liste

ChampDescription
sessionIdIdentifiant de la session
statusÉtat actuel
amountMontant et devise
descriptionDescription (peut être null)
customReferenceVotre référence interne (peut être null)
isPreAuthSi c'est une préautorisation
createdAtDate et heure de création
completedAtDate de finalisation (peut être null)
paymentReferenceRéférence du paiement autorisé (peut être null si non finalisée)
paymentStatusÉtat du paiement : AUTHORISED, FAILED, REFUNDED, PARTIALLYREFUNDED, CANCELED, ACTIVEDEPOSIT (peut être null). En Live, la valeur peut évoluer après des webhooks ultérieurs (voir Webhooks).

Pagination par curseurs

La pagination fonctionne avec des curseurs opaques (pas de numéros de page) :

# Première page
GET .../payment/sessions?webcode=SHOP01&take=20

# Page suivante (en utilisant le curseur de meta.cursor)
GET .../payment/sessions?webcode=SHOP01&take=20&cursor=eyJpZCI6NDJ9

# Répéter jusqu'à meta.hasMore == false

Les curseurs sont des chaînes opaques. N'essayez pas de les décoder ni de les construire manuellement ; passez simplement la valeur de meta.cursor telle quelle.

---

Lister les modifications d'un paiement

Liste toutes les opérations de modification (refund, capture, cancel, extend) associées à une session de paiement en ligne.

Live: GET https://aviratopayments.com/external/v1/payment/session/{sessionId}/modifications?webcode={webcode}
Test: GET https://aviratopayments.com/external/v1/test/payment/session/{sessionId}/modifications?webcode={webcode}

Paramètres

ParamètreEmplacementTypeRequisDescription
sessionIdPathstringOuiLe sessionId de la session de paiement
webcodeQuerystringOuiIdentifiant de votre entreprise
typeQuerystringNonFiltrer par type : refund, capture, cancel, extend
cursorQuerystringNonCurseur de pagination
takeQueryintegerNonRésultats par page (1-100, par défaut : 20)
orderQuerystringNonOrdre : asc ou desc (par défaut : asc)

Exemple

curl -X GET "https://aviratopayments.com/external/v1/payment/session/SHOP01-EXT-17195000001234/modifications?webcode=SHOP01" \
  -H "X-API-KEY: votre_cle_api_live"

Réponse (200)

{
  "success": true,
  "data": {
    "modifications": [
      {
        "operationReference": "SHOP01-RFX-17195100001234",
        "operationType": "refund",
        "paymentReference": "SHOP01-PXT-17195000005678",
        "sessionId": "SHOP01-EXT-17195000001234",
        "status": "success",
        "requestedAt": "2026-06-29 14:00:00",
        "createdAt": "2026-06-29 14:00:00",
        "resolvedAt": "2026-06-29 14:00:05",
        "amount": {
          "value": 5000,
          "currency": "EUR"
        },
        "reason": "CUSTOMER REQUEST"
      }
    ],
    "meta": {
      "cursor": null,
      "hasMore": false,
      "total": 1
    }
  }
}

Champs de chaque modification

ChampToujours présentDescription
operationReferenceOuiRéférence unique de l'opération
operationTypeOuiType : refund, capture, cancel, extend
paymentReferenceOuiRéférence du paiement d'origine sur lequel l'opération a été effectuée
sessionIdOuiSession de paiement associée
statusOuiÉtat : pending, success, failed
requestedAtOuiMoment de la demande d'opération
createdAtOuiDate et heure de création de l'enregistrement
resolvedAtOuiMoment de finalisation (ou d'échec). null si en attente
amountUniquement refund et captureMontant de l'opération
reasonUniquement refundMotif du remboursement

---

Lister les modifications d'un paiement POS

Liste toutes les opérations de modification associées à un paiement POS spécifique.

Live: GET https://aviratopayments.com/external/v1/pos/payment/{posPaymentId}/modifications?webcode={webcode}
Test: GET https://aviratopayments.com/external/v1/test/pos/payment/{posPaymentId}/modifications?webcode={webcode}

Paramètres

ParamètreEmplacementTypeRequisDescription
posPaymentIdPathstringOuiLe posPaymentId du paiement POS
webcodeQuerystringOuiIdentifiant de votre entreprise
typeQuerystringNonFiltrer par type : refund, capture, cancel, extend
cursorQuerystringNonCurseur de pagination
takeQueryintegerNonRésultats par page (1-100, par défaut : 20)
orderQuerystringNonOrdre : asc ou desc (par défaut : asc)

Exemple

curl -X GET "https://aviratopayments.com/external/v1/pos/payment/SHOP01-POSX-17195300001234/modifications?webcode=SHOP01" \
  -H "X-API-KEY: votre_cle_api_live"

Réponse (200)

{
  "success": true,
  "data": {
    "modifications": [
      {
        "operationReference": "SHOP01-RFX-17195400001234",
        "operationType": "refund",
        "paymentReference": "SHOP01-POSX-17195300001234",
        "sessionId": "SHOP01-POSX-17195300001234",
        "status": "success",
        "requestedAt": "2026-06-30 10:00:00",
        "createdAt": "2026-06-30 10:00:00",
        "resolvedAt": "2026-06-30 10:00:03",
        "amount": {
          "value": 2000,
          "currency": "EUR"
        },
        "reason": "CUSTOMER REQUEST"
      }
    ],
    "meta": {
      "cursor": null,
      "hasMore": false,
      "total": 1
    }
  }
}

Les champs de réponse sont identiques à ceux de Lister les modifications d'un paiement.

Erreurs

CodeHTTPCause
12001400Paramètre webcode manquant
10404404Paiement POS introuvable
11008403Le paiement POS n'appartient pas à votre webcode ou environnement

---

Lister toutes les modifications

Liste toutes les opérations de modification de votre entreprise, quel que soit le paiement concerné. Permet de filtrer par type, état, date et texte libre.

Live: GET https://aviratopayments.com/external/v1/modifications?webcode={webcode}
Test: GET https://aviratopayments.com/external/v1/test/modifications?webcode={webcode}

Paramètres de query

ParamètreTypeRequisDescription
webcodestringOuiIdentifiant de votre entreprise
typestringNonFiltrer par type : refund, capture, cancel, extend
statusstringNonFiltrer par état : pending, success, failed
dateFromstringNonDate de début (format YYYY-MM-DD)
dateTostringNonDate de fin (format YYYY-MM-DD)
searchstringNonRecherche texte libre (références, motifs, etc.)
cursorstringNonCurseur de pagination
takeintegerNonRésultats par page (1-100, par défaut : 20)
orderstringNonOrdre : asc ou desc (par défaut : asc)

Exemple

curl -X GET "https://aviratopayments.com/external/v1/modifications?webcode=SHOP01&type=refund&status=success&take=10" \
  -H "X-API-KEY: votre_cle_api_live"

Réponse (200)

{
  "success": true,
  "data": {
    "modifications": [
      {
        "operationReference": "SHOP01-RFX-17195100001234",
        "operationType": "refund",
        "paymentReference": "SHOP01-PXT-17195000005678",
        "sessionId": "SHOP01-EXT-17195000001234",
        "status": "success",
        "requestedAt": "2026-06-29 14:00:00",
        "createdAt": "2026-06-29 14:00:00",
        "resolvedAt": "2026-06-29 14:00:05",
        "amount": {
          "value": 5000,
          "currency": "EUR"
        },
        "reason": "CUSTOMER REQUEST"
      },
      {
        "operationReference": "SHOP01-RFX-17195400001234",
        "operationType": "refund",
        "paymentReference": "SHOP01-POSX-17195300001234",
        "sessionId": "SHOP01-POSX-17195300001234",
        "status": "success",
        "requestedAt": "2026-06-30 10:00:00",
        "createdAt": "2026-06-30 10:00:00",
        "resolvedAt": "2026-06-30 10:00:03",
        "amount": {
          "value": 2000,
          "currency": "EUR"
        },
        "reason": "CUSTOMER REQUEST"
      }
    ],
    "meta": {
      "cursor": "eyJpZCI6NDJ9",
      "hasMore": false,
      "total": 2
    }
  }
}

Cet endpoint renvoie les modifications de tous les paiements (en ligne et POS). Vous pouvez identifier le type de paiement par la référence : -PXT- (paiement en ligne Live), -PXTT- (paiement en ligne Test), -POSX- (POS Live), -POSXT- (POS Test).

---

Pagination

Tous les endpoints de liste utilisent une pagination par curseurs. Les curseurs sont des chaînes opaques qui représentent la position actuelle dans l'ensemble de résultats.

Fonctionnement

  1. Première requête : appelez l'endpoint sans paramètre cursor. Vous recevrez les premiers résultats et un meta.cursor
  2. Page suivante : si meta.hasMore est true, utilisez la valeur de meta.cursor comme paramètre cursor dans la requête suivante
  3. Fin : lorsque meta.hasMore est false, il n'y a plus de résultats

Champs de meta

ChampDescription
cursorCurseur pour obtenir la page suivante. null s'il n'y en a plus
hasMoretrue s'il reste des résultats disponibles
totalNombre total d'enregistrements correspondant aux filtres

Exemple de navigation

# Page 1
curl ".../payment/sessions?webcode=SHOP01&take=10"
# meta: { "cursor": "eyJpZCI6MTB9", "hasMore": true, "total": 45 }

# Page 2
curl ".../payment/sessions?webcode=SHOP01&take=10&cursor=eyJpZCI6MTB9"
# meta: { "cursor": "eyJpZCI6MjB9", "hasMore": true, "total": 45 }

# Page 3
curl ".../payment/sessions?webcode=SHOP01&take=10&cursor=eyJpZCI6MjB9"
# meta: { "cursor": null, "hasMore": false, "total": 45 }

Important : les curseurs sont opaques. N'essayez pas de les décoder, les modifier ni de les construire manuellement. Passez simplement la valeur telle que vous la recevez.