Skip to main content

Vue d’ensemble

Le paiement est la moitié écriture du Paiement de Factures. Vous prenez un billId d’une découverte READY, vous le soumettez, et la même transaction porte le paiement jusqu’à un état final. C’est l’appel qui déplace de l’argent, donc l’ordre des opérations compte ici plus que partout ailleurs dans l’intégration : écrivez d’abord votre propre enregistrement, envoyez une seule fois, puis interrogez.
Le 200 de pay signifie que le paiement a été accepté et est en cours. Cela ne signifie pas que la facture a été payée. Le résultat n’apparaît jamais ailleurs que dans le status de la transaction.

Choisir une facture

bills[] sur une transaction READY peut contenir plusieurs entrées. Choisissez-en une — un paiement paie exactement une facture.
Pour payer plusieurs factures d’un même compte, payez la première, attendez qu’elle atteigne un état final, puis lancez une nouvelle découverte. Deux paiements en cours pour le même compte sont refusés avec 409 PAYMENT_IN_PROGRESS.

Ce que votre client paie

Les frais sont un pourcentage du montant, borné entre un minimum et un maximum, et ils sont définis par facturier : SEAAL et AADL sont actuellement indisponibles : aucun frais n’est publié pour eux. En détail, pour ADE et SONELGAZ :
Le pourcentage ne commence à compter que sur les grosses factures. Pour ADE et SONELGAZ, toute facture jusqu’à 6 000 DZD est facturée au minimum de 30 DZD, et rien n’est jamais facturé plus de 60 DZD. Pour Algérie Télécom, les seuils équivalents sont 2 000 DZD et 10 000 DZD.
Lisez fee depuis la réponse. Le pourcentage et les bornes relèvent de la configuration, ce ne sont pas des constantes — des frais que vous calculez vous-même finiront par diverger de ceux qui vous sont facturés.

Avant d’envoyer

1

Enregistrez votre propre trace

Écrivez la commande — client, transactionId, billId, amount, fee, total, et le ref que vous vous apprêtez à utiliser — avant que la requête ne quitte votre processus. Si la réponse est perdue, cette ligne est ce qui vous permet de retrouver le paiement.
2

Confirmez le total avec votre client

Montrez amount et fee séparément, ainsi que le total que vous allez débiter. N’affichez jamais une estimation.
3

Envoyez une seule fois

Un seul appel, avec un ref nouveau pour ce facturier.
4

Interrogez jusqu'à un état final

SUCCESS, FAILED ou REFUNDED.Étape 4 : Suivi du statut

Soumettre le paiement

Trois champs, tous obligatoires.
Utilisez un nouveau ref, différent de celui de la découverte. Réutiliser ici le ref de découverte renvoie 403 DUPLICATED_REF. La transaction conserve son ref de découverte d’origine — c’est celui que la réponse renvoie en écho et celui que by-ref recherche.

Les trois garde-fous

Trois règles empêchent le même argent de bouger deux fois. Toutes les trois répondent avant que quoi que ce soit ne soit débité.
Aucun d’eux n’est une raison de réessayer avec un ref différent. Chacun signifie que le travail est soit déjà fait, soit déjà en cours. Contourner un garde-fou en réessayant, c’est ainsi qu’un client est débité deux fois.
La bonne réaction aux trois est la même : lisez la transaction et repartez de son état.

Quand la réponse n’arrive jamais

Un timeout ne vous dit rien sur le fait que le paiement ait eu lieu ou non. Lisez la transaction avant de faire quoi que ce soit d’autre.
Ne renvoyez jamais un paiement parce qu’une requête a expiré. Une transaction encore sur READY est le seul état qui prouve que le paiement n’a pas démarré.

Les erreurs que vous rencontrerez

Bonnes pratiques

Écrivez avant d'envoyer

Enregistrez d’abord la commande et son ref. Une réponse perdue est alors toujours récupérable.

Un ref par appel

disc- pour la découverte, pay- pour le paiement, tous deux dérivés de votre identifiant de commande.

Facturez le total renvoyé

Débitez à votre client le total produit par l’API, jamais un montant que vous avez calculé.

Traitez un garde-fou comme une réponse

403 et 409 signifient que le travail est fait ou en cours. Consultez-le plutôt que de le contourner.

Étape suivante

Étape 4 : Suivi du statut

Suivez le paiement jusqu’à un état final, et gérez UNKNOWN correctement

Pages liées

Payer une facture

La référence de l’endpoint

Obtenir une transaction par ID

L’objet transaction en entier

Découverte des factures

D’où vient billId

Reçus et rapprochement

Ce qu’il faut conserver après un succès