Les abonnements permettent de créer des paiements selon un calendrier. Ce guide fournit des informations détaillées sur leurs fonctionnalités et explique comment les mettre en place via l'API.
Création d'un abonnement
Pour créer un abonnement pour un client final, les champs suivants sont obligatoires :
amount
: montant en pence (GBP), centimes (AUD/EUR), öre (SEK) ou øre (DKK).
currency
: code de devise ISO 4217. Actuellement, les codes GBP, EUR, SEK, AUD et DKK sont pris en charge.
interval_unit
: unité de temps entre les dates de prélèvement sur le compte bancaire du client final. Elle peut être weekly, monthly ou yearly.
links[mandate]
: Identifiant du mandat du client final selon lequel l'abonnement créera des paiements.
En plus de ces champs, les paramètres optionnels suivants peuvent être envoyés :
name
: nom facultatif de l'abonnement, qui définira également la description de chaque paiement.
interval
: nombre d'unités de temps entre chaque date de prélèvement. Il doit s'agir d'au moins un prélèvement par an, et ce paramètre sera défini par défaut sur 1 si le nombre n'est pas fourni.
count
: nombre total de paiements qui seront prélevés par l'abonnement.
day_of_month
: jour du mois (1 à 28) auquel vous souhaitez facturer votre client final. Vous pouvez aussi utiliser -1 pour indiquer le dernier jour du mois.
month
: nom du mois au cours duquel un client final sera facturé.
start_date
: date de facturation du premier paiement. Cette date doit être au cours de l'année de création de l'abonnement, et à compter du prochain jour de facturation possible ( next_possible_charge_date
) du mandat. Si ce paramètre n'est pas configuré, le premier paiement sera facturé le plus tôt possible.
payment_reference
: ce paramètre est réservé aux comptes GoCardless Pro. Il s'agit d'une référence de paiement facultative qui sera définie pour tous les paiements et qui figurera sur le relevé bancaire de votre client final.
Spécifier la récurrence
Les règles suivantes s’appliquent lors de la spécification de récurrence :
- Le premier paiement doit être prélevé dans l'année.
- Si aucun des paramètres month ou
day_of_month
n'est configuré, l'abonnement se reproduira à partir de la date de début (start_date
) selon le paramètreinterval_unit
. - Si le paramètre month ou
day_of_month
est configuré, les règles de récurrence seront appliquées à partir de la date de début (start_date), et les validations suivantes s'appliquent :
|
|
|
---|---|---|
yearly |
facultatif (requis si le paramètre day_of_month est configuré) |
facultatif (requis si le paramètre month est configuré) |
monthly |
non valide |
requis |
weekly |
non valide |
non valide |
Exemples :
|
|
|
|
|
---|---|---|---|---|
yearly |
1 |
january |
-1 |
valide |
yearly |
1 |
march |
non valide - manquant
|
|
monthly |
6 |
12 |
valide |
|
monthly |
6 |
august |
12 |
non valide -
|
weekly |
2 |
valide |
||
weekly |
2 |
october |
10 |
non valide -
|
Paiements uniques
Dans certains cas, vous pouvez souhaiter facturer des frais uniques en plus de l'abonnement (des frais de mise en place par exemple)
Pour ce faire, vous pouvez simplement envoyer une demande de création d'un paiement unique en même temps que vous créez l'abonnement.
Apporter des modifications à un abonnement existant
Pour ajuster le montant d'un abonnement (pour appliquer un tarif réduit pendant x mois par exemple), vous pouvez utiliser le point de terminaison Mettre à jour l'abonnement, par ex.
Pour être sûr de mettre à jour le montant au moment correct, vous pouvez suivre et stocker le nombre de paiements créés par un abonnement en utilisant des webhooks ou le point de terminaison des événements.
Malheureusement, il n'est pas possible de mettre à jour la date du prélèvement d'un abonnement. Pour cela, vous devez annuler l'abonnement existant et en créer un nouveau avec les dates de facturation mises à jour.
Gérer les événements liés aux abonnements
Si vous utilisez des webhooks / les points de terminaison des événements pour mettre à jour votre propre système, vous devez prendre en compte les événements liés aux abonnements suivants.
Lorsqu'un paiement est créé par un abonnement, vous recevez deux webhooks le signalant. Un où le paramètre ResourceType est payments (paiements) et un où subscriptions (abonnements) est indiqué :
Si vous ne stockez aucune information de votre côté, vous pouvez revenir à l'abonnement associé au paiement en effectuant les appels d'API suivants :
Envoyer une requête au point de terminaison des paiements en utilisant l'identifiant de paiement.
Dans la réponse, localiser le champ links[subscription]
, qui contient l'identifiant de l'abonnement correspondant.
Vous pouvez alors trouver les informations relatives à l'abonnement en envoyant une requête au point de terminaison des abonnements en utilisant l'identifiant de l'abonnement.
Alternatives aux abonnements
Les abonnements ne sont pas toujours en mesure de fournir la solution idéale pour chaque intégrateur. Ainsi, si vous avez besoin de fonctionnalités supplémentaires, nous vous suggérons d'envisager d'implémenter votre propre logique d'abonnement en utilisant le point de terminaison des paiements.