Skip to content

Prélèvements : Dates et montants

Dans le cas de tunnel de vente avec des produits ayant un abonnement par prélèvement, vous allez vouloir présenter à votre usager final les dates auxquelles il sera prélevé, le montant qu'il va devoir régler initialement, et le montant des échéances qu'il aura à régler par la suite.

La date de début de prélèvement

Un client peut-être prélevé à différents dates du mois (une seule fois, mais plusieurs possibilités). Le client final peut choisir le jour du mois auquel il souhaite être prélevé parmis les dates que propose le club (les dates auxquelles le club lance ses prélèvements).

Pour récupérer ces dates, vous pouvez utiliser l'endpoint GET /{client_token}/allowed_debit_days

Cet endpoint prend en paramètre un filtre startDate qui permets de récupérer les prochaines dates de prélèvement selon une date donnée "à parir de".

bash
curl 'https://{{base_url}}/{{client_token}}/allowed_debit_days?startDate=2024-11-18' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'authorization: Bearer ...' \

Cet endpoint renvoie en retour la liste des jours de prélèvement :

json
[
    {
        "debitDay": 1,
        "date": "2024-11-18"
    },
    {
        "debitDay": 2,
        "date": "2024-11-19"
    },
    ...
]

Fournir la date de prélèvement à l'ajout au panier

Proposer l'une de ces dates à votre client, et conserver la en mémoire pour l'utiliser lors de l'ajout du produit au panier.

Lors du POST /{client_token}/articles renseignez la date de début souhaitée des prélèvements dans le repaymentSchedule

bash
curl 'https://{{base_url}}/{{client_token}}/sales/{{saleId}}/articles' \
  -H 'accept: application/json, text/plain, */*' \
  --data-raw '{"parent":null,"offerId":"/{{client_token}}/offers/{{offerId}}","implementation":{"startDate":"2024-11-22"},"repaymentSchedule":{"specificDay":true,"debitDay":null,"startDate":"2024-11-23","debitWeekDay":6}}'

Les informations importantes ici étant :

json
{
    ...
    "offerId":"/{{client_token}}/offers/{{offerId}}",
    "implementation":{
        "startDate":"2024-11-22"
    },
    "repaymentSchedule":{
        "specificDay":true,
        "debitDay":null,
        "startDate":"2024-11-23",
        "debitWeekDay":6
    }
    ...
}
paramètredescriptionexemple
offerIdL'identifiant de l'offre/demo/offers/12345
implementation.starDateDate de début de l'abonnement2024-11-22
repaymentSchedule.specificDaySpécifier un jour de prélèvement spécifiquetrue ou false
repaymentSchedule.startDateDate du premier prélèvement2024-11-23
repaymentSchedule.debitWeekDayJour de la semaine auquel l'usager souhaite être prelevé6 (samedi)

Présenter les montants

Plusieurs montants sont à présenter au client

  • Le montant à régler immédiatement
  • Les frais d'inscription (souvent inclus)
  • Le montant de la première échéance (pouvant différer, elle peut-être également inclue dans le montant à régler immédiatement)
  • Le montant de chaque échéance suivante

CAUTION: Il est important de noter qu'un abonnement par prélèvement peut ne pas avoir de fin (reconduction tacite). Rendant difficile la possibilité de fournir un montant "total" de l'abonnement.

Où récupérer ces informations

Vous pouvez récupérer l'ensemble des informations dont vous aurez besoin dans le détail des offres du produit que l'usager souhaite acheter.

GET /{client_token}/offers?product=/{client_token}/products/12345

paramètredescriptionexemple
registrationFeeTILe montant des frais d'inscription, taxes inclues4900
registrationFeeNameLe nom donné aux frais d'inscriptionFrais d'inscription
totalPriceTILe montant initial à régler, taxes incluses8896
isFirstMonthPayedSi la première échéance est inclue dans le montant à régler immédiatementtrue ou false
rhythmBillingLe rythme de facturationweek4 (Toutes les 4 semaines)
product.productBehaviors[].configuration.validityPeriodLa durée de validité de l'abonnementP52W (52 semaines)
articleBehaviors.implementation.isProratedSi le montant de la première échéance est proratisé selon la date dedébut de l'abonnement
repaymentSchedule.occurrencesLes échéances pour une durée limiéeVoir plus bas
repaymentSchedule.recurrencesLes échéances pour une durée illimitée : Ce tableau est vide dans le cas d'un CDDVoir plus bas

Les frais d'inscription

Les frais d'inscription registrationFeeTI sont inclus dans le montant initial de l'offre totalPriceTI. Leur séparation vous permet de les présenter/détailler.

Le montant à régler immédiatement

Ce montant est à récupéré dans la propriété totalPriceTI, il inclut d'office le montant de la première échéance (si elle doit être inclue), vous n'avez pas besoin de l'ajouter.

Le montant des échéances

Une présentation habituelle est de présenter un texte "Vous serez prélevé de X€ par (semaine|mois) tou(te)s les X (semaines|mois)".

Pour obtenir cette information vous devez récupérer les informations des occurences et recurrences comme décrit ci-dessous.

Fonctionnement des occurrences et recurrences

Les occurrences et recurrences fonctionnent sous le même schéma, elles vous servent à connaître les montants à facturer par période, pour un nombre de périodes données.

Grâce à elles, vous avez la possibilité d'établir un échéancier avec les dates des échéances et les montants qui seront prélevés.

CAUTION: Elles représentes des périodes de facturation, et non des périodes de prélèvement. Elles doivent être composées avec le rhythmBilling. cf. ci-dessous.

Si on prend la présentation d'un repaymentSchedule :

json
{
  "occurrences": [
    {
      "offset": "P4W", // La durée de répétition de cette occurrence
      "interval": "P1W", // L'intervalle de répétition de cette occurence
      "loop": 0, // Si 0 : On boucle offset / intervalle
      "taxRate": 2000,
      "priceTI": 749, // Le prix facturé taxes incluses par occurrences
      "priceTE": 624,
      "tax": 125,
      "priceCurrency": "EUR"
    },
    {
      "offset": "P0W", // Si 0 : Utilise loop
      "interval": "P1W", // L'intervalle de répétition de cette occurrence
      "loop": 48, // Le nombre de fois ou cette occurence est répétée
      "taxRate": 2000,
      "priceTI": 999,
      "priceTE": 833,
      "tax": 166,
      "priceCurrency": "EUR"
    }
  ],
  "recurrences": [
    {
      // Ni loop ni offset : Cette réccurrence se repète indefiniement
      "tax": 166,
      "interval": "P1W",
      "priceCurrency": "EUR",
      "taxRate": 2000,
      "priceTI": 1999,
      "priceTE": 833,
      "offset": "P0W"
    }
  ]
}

Cet échéancier se décrirait donc ainsi :

  • Pendant 4 semaines (offset P4W et loop 0) on facture tous les 1 semaine (interval P1W) 7,49€
  • Puis pendant 48 semaines (offset 0 et loop 48), l'abonnement coûte 9,99€ par semaine
  • De manière infinie, dès la fin des récurrences, l'abonnement coûte 9,99€ par semaine

Pour une offre dans le rhythmBilling est week4, l'usager serait ici prélevé ainsi :

  • 7,49€*4 = 29,96€ la première fois, au bout de 4 semaines
  • 9,99€*4 = 39,96€ toutes les 4 semaines, pendant 48 semaines.
  • 19,99€*4 = 79,96€ toutes les 4 semaines de manière indéfinie.

NOTE: Il est rare que le montant varie entre les occurences et les reccurences, il l'est ici pour l'exemple. Par contre, il arrive généralement que le montant de la première occurence diffère, typiquement si elle inclue des frais supplémentaires.

CAUTION: Attention, occurences et recurrences sont des tableaux qui peuvent contenir plusieurs objects comme décrits ci-dessous. Vous devez donc les additionner.

Les rythmes de facturation rhythmBilling

Les 3 rythmes de facturation les plus courants sont :

RythmedescriptionIntevalle equivalent
week1Toutes les semainesP1W
week4Toutes les 4 semainesP4W
monthlyTous les moisP1M