Passer au contenu principal

Qu’est-ce qu’un Price ?

Un Price (Prix) définit comment un SKU 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_abc123def456ghi789jkl012mno345

Relation SKU → Price

Un SKU peut avoir plusieurs prix pour différentes stratégies tarifaires :
SKU "Formation Pro"
├── Price 99€ one-time (paiement unique)
├── Price 19€/mois (abonnement mensuel)
├── Price 199€/an (abonnement annuel avec économie)
└── Price 65 000 XOF one-time (marché africain)
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

AttributTypeDescription
idstringIdentifiant unique du prix
skuIdstringRéférence au SKU parent
amountnumberMontant en unité entière
currencystringCode devise (EUR, XOF, USD, etc.)
typeenumone_time ou recurring
activebooleanPrix actif et utilisable

Attributs récurrents (abonnements)

AttributTypeDescription
billingIntervalenumday, week, month, year
billingIntervalCountnumberNombre d’intervalles (ex: 3 = tous les 3 mois)
trialPeriodDaysnumber | nullJours d’essai gratuit

Types de tarification

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
curl -X POST https://api.yabetoo.com/v1/skus/sku_abc123/prices \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 99,
    "currency": "EUR",
    "type": "one_time"
  }'

Intervalles de facturation

Pour les prix récurrents, définissez la fréquence de facturation :
IntervalCountDescriptionExemple
day1QuotidienFacturé chaque jour
week1HebdomadaireFacturé chaque semaine
week2Bi-hebdomadaireFacturé toutes les 2 semaines
month1MensuelFacturé chaque mois
month3TrimestrielFacturé tous les 3 mois
month6SemestrielFacturé tous les 6 mois
year1AnnuelFacturé chaque année
// Facturation trimestrielle
{
  "type": "recurring",
  "billingInterval": "month",
  "billingIntervalCount": 3,
  "amount": 45
}

Périodes d’essai

Offrez une période d’essai gratuit pour attirer de nouveaux clients :
{
  "type": "recurring",
  "billingInterval": "month",
  "billingIntervalCount": 1,
  "amount": 29,
  "currency": "EUR",
  "trialPeriodDays": 14
}
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
Assurez-vous d’informer clairement vos clients sur la durée de l’essai et le montant qui sera facturé après.

Gestion multi-devises

Créez plusieurs prix pour le même SKU dans différentes devises :
{
  "sku": "sku_formation_pro",
  "prices": [
    {
      "amount": 99,
      "currency": "EUR",
      "type": "one_time"
    },
    {
      "amount": 109,
      "currency": "USD",
      "type": "one_time"
    },
    {
      "amount": 65000,
      "currency": "XOF",
      "type": "one_time"
    }
  ]
}

Devises supportées

CodeDevisePays/Région
EUREuroEurope
USDDollar américainÉtats-Unis
XOFFranc CFA BCEAOAfrique de l’Ouest
XAFFranc CFA BEACAfrique Centrale
GNFFranc guinéenGuinée
CDFFranc congolaisRD Congo
Tous les montants sont exprimés en unités entières. Par exemple : 99 EUR = 99 €, 65000 XOF = 65 000 XOF.

Réponse API

{
  "id": "price_abc123def456ghi789",
  "object": "price",
  "skuId": "sku_xyz789abc123def456",
  "amount": 99,
  "currency": "EUR",
  "type": "one_time",
  "billingInterval": null,
  "billingIntervalCount": null,
  "trialPeriodDays": null,
  "active": true,
  "createdAt": "2024-01-15T10:30:00.000Z",
  "updatedAt": "2024-01-15T10:30:00.000Z"
}

Opérations courantes

Créer un prix

curl -X POST https://api.yabetoo.com/v1/skus/sku_abc123/prices \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 29,
    "currency": "EUR",
    "type": "recurring",
    "billingInterval": "month",
    "billingIntervalCount": 1
  }'

Récupérer un prix

curl https://api.yabetoo.com/v1/prices/price_abc123 \
  -H "Authorization: Bearer sk_live_..."

Désactiver un prix

Les prix ne peuvent pas être supprimés s’ils sont associés à des abonnements actifs. Utilisez la désactivation à la place.
curl -X PATCH https://api.yabetoo.com/v1/prices/price_abc123 \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "active": false
  }'

Lister les prix d’un SKU

curl https://api.yabetoo.com/v1/skus/sku_abc123/prices \
  -H "Authorization: Bearer sk_live_..."

Stratégies de tarification

Offre mensuelle vs annuelle

Proposez une réduction pour l’abonnement annuel :
{
  "sku": "sku_saas_pro",
  "prices": [
    {
      "amount": 29,
      "currency": "EUR",
      "type": "recurring",
      "billingInterval": "month",
      "billingIntervalCount": 1
    },
    {
      "amount": 290,
      "currency": "EUR",
      "type": "recurring",
      "billingInterval": "year",
      "billingIntervalCount": 1
    }
  ]
}
29 €/mois vs 290 €/an représente environ 2 mois gratuits, ce qui incite les clients à s’engager sur l’année.

Tarification par paliers

Créez des SKUs différents pour chaque niveau de service :
{
  "product": "App Cloud",
  "skus": [
    {
      "skuCode": "CLOUD-STARTER",
      "prices": [{ "amount": 9, "currency": "EUR", "type": "recurring", "billingInterval": "month" }]
    },
    {
      "skuCode": "CLOUD-PRO",
      "prices": [{ "amount": 29, "currency": "EUR", "type": "recurring", "billingInterval": "month" }]
    },
    {
      "skuCode": "CLOUD-ENTERPRISE",
      "prices": [{ "amount": 99, "currency": "EUR", "type": "recurring", "billingInterval": "month" }]
    }
  ]
}

Getters utiles

Le modèle Price fournit des getters pour faciliter les vérifications :
// Vérifier le type de prix
price.isRecurring  // true si type === 'recurring'
price.isOneTime    // true si type === 'one_time'

Bonnes pratiques

Les montants sont exprimés en unités entières de la devise :
  • EUR : 99 = 99 €
  • USD : 109 = 109 $
  • XOF : 65000 = 65 000 XOF
  • Désactivez les anciens prix plutôt que de les supprimer
  • Gardez les prix actifs au minimum nécessaire
  • Utilisez des prix différents pour les promotions
  • 7 à 14 jours est généralement optimal
  • Trop court : pas assez de temps pour évaluer
  • Trop long : perte de revenus potentielle
  • Ajustez les prix pour chaque marché (pas de simple conversion)
  • Tenez compte du pouvoir d’achat local
  • Utilisez des prix psychologiques (29€ plutôt que 28,73€)

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