Les horloges n’existent qu’en mode test : avec une clé
sk_live_, ces routes rendent
403 TEST_CLOCK_NOT_AVAILABLE. Un abonnement live ne peut pas être rattaché.Le principe
Une horloge (clock_) porte un instant figé, frozenTime. Les abonnements qui lui sont
rattachés lisent cet instant à la place de l’heure réelle pour dater leurs factures et leurs
paiements. Avancer l’horloge à une date rejoue tout ce que le temps réel aurait déclenché
entre les deux instants : fin d’essai, rappel J-3, échéance de facturation, annulation
programmée.
Le parcours
1
Créez l'horloge
201
2
Créez l'abonnement, puis rattachez-le
L’abonnement se crée normalement (API ou page hébergée), puis se rattache — il n’y a pas de
champ d’horloge à la création.Avec
customerId à la place, le client et tous ses abonnements de test sont rattachés.3
Avancez
200
frozenTime doit être postérieur à l’instant courant de l’horloge (400 sinon). Les
traitements déclenchés sont asynchrones : lisez l’abonnement et ses factures quelques
secondes après, ou attendez vos webhooks.triggeredEvents nomme ce que l’avance a réveillé — subscription/trial.ended,
subscription/billing.due, une annulation programmée — sans en garantir l’issue : un
billing.due peut aboutir à un past_due si le numéro de test refuse.
En un appel : simulate
startFrom (par défaut le currentPeriodStart de l’abonnement), rattache
l’abonnement et avance jusqu’à advanceTo. advanceTo doit être postérieur à startFrom.
Autres routes
Les erreurs de ces routes ont la forme
{ "error": "…", "code": "…" } : TEST_CLOCK_NOT_AVAILABLE
(403, mode live), TEST_CLOCK_COMPLETED (400), SUBSCRIPTION_NOT_FOUND / CUSTOMER_NOT_FOUND
(404 — inconnu, ou pas à vous).
Paiements Mobile Money en mode test
Les demandes de paiement en mode test suivent les règles générales de test de Yabetoo : voir Tester votre intégration. Deux points propres aux abonnements :- Le premier paiement d’un abonnement créé par l’API attend la réponse du numéro de test
dans l’appel lui-même. Un numéro qui ne répond pas rend
paymentStatus.status: "processing"et un abonnementunpaid. - Un renouvellement déclenché par une horloge fait la même demande, hors de votre appel : son
issue se lit sur l’abonnement (
activeoupast_due) et dans vos webhooks.