Qu’est-ce qu’un Price ?
Un Price (Prix) définit comment un produit est facturé. Il peut s’agir d’un paiement unique ou d’un abonnement récurrent avec différentes périodicités.Format de l’identifiant :
price_ suivi de 36 caractères alphanumériques.Exemple : price_abc123def456ghi789jkl012mno345Relation Produit → Price
Un prix est rattaché à un produit viaproductId, et un produit peut porter plusieurs
prix pour différentes stratégies tarifaires :
Cette flexibilité permet de proposer plusieurs options de paiement pour le même produit et de gérer plusieurs devises.
Attributs du Price
Attributs principaux
Attributs récurrents (abonnements)
Créer un prix
Un premier prix se pose à la création du produit avecdefaultPriceData (voir
Produits). POST /v1/prices est la porte du second prix — un
tarif annuel à côté du mensuel, ou une seconde devise — en indiquant dans le corps le produit
auquel il se rattache.
Corps de la requête
string
Identifiant du produit auquel le prix se rattache.
productId ou skuId est requis —
aucun des deux n’est individuellement obligatoire côté validateur, mais la requête est
refusée si les deux sont absents. skuId est une forme héritée, conservée pour
compatibilité ; productId reste la voie normale.number
requis
Montant dans l’unité principale de la devise. Strictement positif et au maximum
99999999.99.string
requis
Code devise, stocké et renvoyé en minuscules. Obligatoire — il n’y a pas de devise par
défaut. Limité à
xaf et eur, voir la section Devises supportées plus bas.enum
défaut:"one_time"
one_time ou recurring.enum
day, week, month ou year. Prix récurrents uniquement.number
Nombre d’intervalles par cycle de facturation. Strictement positif.
number
Jours d’essai gratuit,
0 ou plus.boolean
défaut:"true"
Passez
false pour créer le prix déjà désactivé.Types de tarification
- Paiement unique
- Abonnement récurrent
One-Time (one_time)
Le client paie une seule fois pour accéder au produit.Cas d’usage :- Achats ponctuels
- Produits physiques
- Téléchargements numériques
- Accès à vie
Intervalles de facturation
Pour les prix récurrents, définissez la fréquence de facturation :Périodes d’essai
Offrez une période d’essai gratuit pour attirer de nouveaux clients :1
Début de l'abonnement
Le client s’inscrit et démarre sa période d’essai gratuite
2
Période d'essai
Pendant 14 jours, le client a accès complet sans être facturé
3
Fin de l'essai
À la fin de la période d’essai, le premier paiement est prélevé automatiquement
4
Cycle récurrent
Les paiements suivants sont prélevés selon l’intervalle défini
Gestion multi-devises
Créez un prix par devise pour le même produit. Chaque prix correspond à un appelPOST /v1/prices distinct :
Devises supportées
Réponse API
GET /v1/prices/{id} expose product et sku à la racine de l’objet.
string
Identifiant du produit parent.
object
Le produit parent, toujours présent.
string | null
Hérité.
null pour un prix créé au niveau produit — la voie normale aujourd’hui.object | null
Hérité. La variante dont provient le prix, pour les prix créés avant que le SKU quitte
le contrat de création.
null sinon.Règle de remplacement. La création d’un prix désactive automatiquement le prix qui
était actif pour le même produit, la même devise, le même type et la même cadence
(
billingInterval + billingIntervalCount). C’est ce qui rend un prix immuable : au lieu
de modifier un prix existant, on en crée un nouveau, et le remplacement se fait tout seul.Conséquence à connaître : un prix mensuel et un prix annuel ont le même type
(recurring) mais une cadence différente, donc ils coexistent sans se remplacer — c’est
ainsi qu’on propose les deux options sur le même produit.Opérations courantes
Créer un prix
Récupérer un prix
Lister les prix d’un produit
GET /v1/prices accepte les filtres suivants, combinables entre eux :
Désactiver un prix
🛑 Cette page a longtemps affirmé que « les prix ne peuvent pas être supprimés s’ils sont
associés à des abonnements actifs » — c’est faux, et ce n’est pas nuancé : il n’y a
aucune condition du tout.
DELETE /v1/prices/{id} ne supprime rien et ne consulte
jamais la moindre souscription — il désactive inconditionnellement le prix
(active: false) et renvoie {"message": "Price deactivated"}. PUT produit le même
effet, et c’est le seul changement qu’il accepte.Stratégies de tarification
Offre mensuelle vs annuelle
Proposez une réduction pour l’abonnement annuel — deux appelsPOST /v1/prices sur le même
produit, avec deux cadences différentes :
Tarification par paliers
Créez un produit par niveau de service, chacun avec son prix :Getters utiles
Le modèle Price fournit des getters pour faciliter les vérifications :Bonnes pratiques
Format des montants
Format des montants
Les montants sont exprimés dans l’unité principale de la devise, jamais en centimes :
- XAF : 25000 = 25 000 XAF
- EUR : 39 = 39 €
99999999.99. L’API le renvoie sous forme de chaîne décimale ("25000.00").Reprixer un produit
Reprixer un produit
- Un prix est immuable : ne comptez jamais sur
PUTpour changer un montant, une devise ou une cadence — il ne touche queactive - Créez un nouveau prix ; l’ancien prix actif de mêmes dimensions se désactive tout seul
- Lisez le produit dans
price.product
Prix actifs/inactifs
Prix actifs/inactifs
- Désactivez les anciens prix plutôt que de les supprimer
- Gardez les prix actifs au minimum nécessaire
- Gardez en tête qu’un nouveau prix désactive le prix actif de même produit, devise, type et cadence
Périodes d'essai
Périodes d'essai
- 7 à 14 jours est généralement optimal
- Trop court : pas assez de temps pour évaluer
- Trop long : perte de revenus potentielle
Multi-devises
Multi-devises
- Ajustez les prix pour chaque marché (pas de simple conversion)
- Tenez compte du pouvoir d’achat local
- Utilisez des prix psychologiques (9 000 XAF plutôt que 8 750 XAF)
Prochaines étapes
Créer des promotions
Appliquez des réductions avec les coupons et codes promo
Gérer les abonnements
Comprenez le cycle de vie des abonnements