Skip to main content

Vue d’ensemble

Avant de pouvoir découvrir quoi que ce soit, deux choses doivent être correctes : le facturier doit être disponible, et l’identifiant de compte doit être celui que ce facturier comprend. Cette étape couvre les deux, ainsi que la différence entre les deux erreurs que vous verrez lorsque le second est erroné.
Tout sur cette page utilise https://billapi.oneclickdz.com et l’en-tête X-Access-Token. Si vous n’avez pas confirmé à quel environnement appartient votre clé, commencez par Valider la clé API.

Vérifier la disponibilité

GET /v3/partners renvoie une entrée par facturier, chacune avec un unique champ status.
Un facturier marqué UNAVAILABLE répond 503 PARTNER_UNAVAILABLE à la découverte comme au paiement. SEAAL et AADL sont actuellement UNAVAILABLE en sandbox comme en production — c’est le réglage actuel de l’opérateur, pas une limitation permanente, alors gardez-les dans votre code et laissez la carte décider de ce qu’il faut afficher.
Une clé PRODUCTION voit la disponibilité réelle ; une clé SANDBOX voit une carte figée, parce qu’une requête sandbox n’atteint jamais un facturier. N’utilisez pas le sandbox pour tester la réaction de votre application à la panne d’un facturier — utilisez les scénarios sandbox dédiés pour cela.

L’identifiant de chaque facturier

Envoyez exactement un identifiant, et envoyez le champ qui correspond au facturier que vous interrogez. L’API renvoie ce même champ dans account sur chaque transaction pour ce facturier.
Envoyez Algérie Télécom avec ses accents. La valeur est comparée caractère par caractère, et c’est aussi la clé que vous relisez dans la carte des partenaires.

Numéros de téléphone fixe

phoneNumber est un fixe algérien, pas un numéro mobile. Valide :
  • "023456789" — zéro de tête, puis un chiffre compris entre 2 et 4
  • "+213023456789" n’est pas valide ; utilisez "+21323456789" ou la forme locale "023456789"
Invalide :
  • "0778037340" — un numéro mobile, pas un fixe
  • "23456789" — zéro de tête manquant
  • "023 45 67 89" — contient des espaces
  • 23456789 — un nombre au lieu d’une chaîne

Les formes d’identifiant plus riches

Deux facturiers acceptent un objet plus complet lorsqu’un seul numéro ne suffit pas à identifier une facture précise. Chaque champ à l’intérieur de ces objets est obligatoire.
invoice_number jusqu’à 20 caractères, amount_without_stamp jusqu’à 20, ebb_key jusqu’à 30.
sub_id exactement 12 caractères, period au format MM/YYYY, amount jusqu’à 20 caractères, pay_key exactement 7 caractères.
electronic_payment_key est accepté comme alternative à reference, et doit faire exactement 25 caractères.

Exactement un identifiant

L’objet account doit porter un seul identifiant, pas plus. Les champs se regroupent en quatre emplacements : Exactement un emplacement doit être rempli. Zéro ou deux est rejeté avant que quoi que ce soit d’autre ne se produise.
Valider cela de votre côté tient en une ligne, et transforme un aller-retour en une erreur de formulaire instantanée :

ERR_VALIDATION ou INVALID_ACCOUNT ?

Les deux sont des 400, et ils signifient des choses très différentes.
N’affichez pas les messages ERR_VALIDATION aux clients finaux. Ils citent des noms de champs internes comme electronic_payment_key, ce qui ne signifie rien pour quelqu’un qui tient une facture papier.

Mettre la carte des partenaires en cache

La disponibilité change rarement, alors rafraîchissez-la sur un minuteur plutôt qu’avant chaque découverte — et continuez à servir la dernière copie valide si un rafraîchissement échoue. Une liste de facturiers vide est pire pour vos clients qu’une liste légèrement périmée.
Le cache ne dispense pas de gérer 503 PARTNER_UNAVAILABLE à la découverte. Un facturier peut tomber en panne entre votre dernier rafraîchissement et le moment où le client appuie sur le bouton.

Bonnes pratiques

Validez avant d'envoyer

Vérifiez la règle d’emplacement et le format du fixe côté client. Cela économise un aller-retour et donne un meilleur message d’erreur.

Mettez la carte en cache pour des minutes, pas des heures

Cinq minutes suffisent largement. Rafraîchissez en arrière-plan, jamais sur le chemin critique du client.

Gardez les facturiers indisponibles dans votre code

SEAAL et AADL reviendront. Pilotez l’interface depuis la carte, pas depuis une liste codée en dur.

Séparez les deux 400

INVALID_ACCOUNT est un message pour votre client. ERR_VALIDATION est un message pour vos logs.

Étape suivante

Étape 2 : Découverte des factures

Envoyez une découverte, interrogez-la jusqu’à READY, et lisez ce qui est payable

Pages liées

Lister les partenaires

La référence de l’endpoint

Découvrir les factures

Où l’objet account est envoyé

Vue d'ensemble du Paiement de Factures

La carte en cinq étapes

Tests en sandbox

Les identifiants qui produisent un résultat choisi