Mode test

Une clé qb_test_sk_… travaille sur l’application sandbox. Vous pouvez dérouler tout le parcours sans argent réel.

Ce qui change avec une clé de test

  • Aucun appel n’est fait à Wave.
  • Aucun e-mail de facture n’est envoyé.
  • Les numéros de facture commencent par TEST-INV-.
  • Les événements de webhook portent livemode: false.

La page de paiement simulée

Appelez payments.initiate (POST /v1/payments/initiate) avec une clé de test : la réponse contient un redirectUrl, qui mène à une page de paiement de test QBill. Cette page propose deux boutons, Pay et Decline.

curl -X POST https://api.qbill.dev/v1/payments/initiate \
  -H "x-api-key: qb_test_sk_…" \
  -H "content-type: application/json" \
  -d '{"invoice_id":"<id de la facture>","phone_number":"+2250700000000","provider":"wave"}'
  • Pay : la facture passe à paid et l’événement invoice.paid est envoyé.
  • Decline : le paiement passe à failed et les relances démarrent (voir Relances).

Avec le SDK Node (bientôt sur npm) : qbill.payments.initiate({ invoice_id, phone_number }).

Pour recevoir les événements, voir Webhooks.

Passer en production

Créez une clé qb_live_sk_… sur l’application de production et remplacez la clé de test par celle-ci. Le code ne change pas : mêmes routes, mêmes corps de requête. Seule la clé change, et avec elle l’application (voir Authentification et clés).