Aller au contenu principal
Tous les articles
Guide12 min de lecture

Vente par abonnement en e-commerce : lancer une box mensuelle au Maroc

Vente par abonnement en e-commerce : concevoir une box mensuelle, un lien de paiement par échéance, n'expédier qu'après paiement, pauses, impayés, résiliations.

La vente par abonnement en e-commerce consiste à facturer un client à intervalle régulier — chaque mois, chaque semaine — pour une livraison qui revient : une box découverte, le réassort d'un produit qu'il consomme, un colis de saison. Avec ChariPay, chaque échéance de l'abonnement devient un lien de paiement envoyé par e-mail à votre client, qui le règle par carte, et chaque échéance payée vous est signalée par webhook. La règle d'or tient en une phrase : n'expédiez que ce qui est payé. Ce guide vous aide à concevoir l'offre, à brancher l'expédition sur le paiement, puis à gérer pauses, impayés, résiliations et colis abîmés.

La vente par abonnement en e-commerce : ce que vous vendez vraiment

ChariPay est une plateforme de paiement marocaine, un PSP opéré par Chari Money, établissement de paiement agréé par Bank Al-Maghrib. Pour un e-commerçant, vendre par abonnement, c'est vendre une promesse de livraison régulière à un prix fixe. Trois modèles reviennent :

  • La box découverte : chaque mois, une sélection différente — thés et épices, cosmétiques naturels, livres pour enfants, produits du terroir.
  • Le réassort : le même produit, livré avant qu'il ne manque — café torréfié, croquettes, couches, produits d'entretien.
  • Le panier périodique : une sélection hebdomadaire ou mensuelle composée à l'avance, comme un panier de fruits secs ou de produits frais.

Dans les trois cas, chaque abonnement porte un montant et une périodicité. À chaque échéance, ChariPay génère un lien de paiement à usage unique et l'envoie par e-mail à votre client, qui le règle par carte sur la page de paiement hébergée, avec 3-D Secure ; tant qu'il n'a pas payé, un rappel part chaque jour avec le même lien. La mise en place complète, de la fiche client aux webhooks, est détaillée dans intégrer les abonnements par l'API. Pour le cadre général de l'encaissement d'une boutique en ligne, voyez le guide du paiement e-commerce au Maroc ; l'offre elle-même est présentée sur la page abonnements et paiements récurrents.

Concevoir l'offre de votre box mensuelle : périodicité, départ, fin

Une formule d'abonnement se décrit en quatre réglages, fixés à la création de chaque abonnement :

ChoixRéglageExemple
PériodicitéHebdomadaire, mensuelle ou annuelle — la quotidienne existe aussi, rarement utile pour un colisUne box de thés chaque mois
Date de départLa date de la première échéance ; un démarrage différé tient lieu d'essai gratuitPremière box au début du mois suivant
Date de finOptionnelle, fixée par l'API, pour une offre limitéeUn coffret « trois mois de découverte », un abonnement offert pour six mois
MontantFixe, en dirhams, livraison comprise si vous l'incluez dans le prixUn seul prix affiché, sans frais ajoutés à la caisse

Trois limites guident la conception. D'abord, pas de changement de formule en cours de route : pour passer un abonné de la petite à la grande box, annulez son abonnement et créez-en un nouveau sur le même client — sa fiche, et l'adresse e-mail où partent ses liens, sont réutilisées. Ensuite, ni coupons ni prorata : le montant demandé à chaque échéance est celui de l'abonnement ; une promotion se traduit par une formule distincte. Enfin, un abonnement correspond à une formule : un client qui prend deux box différentes a deux abonnements, ou un seul au montant cumulé si vous les expédiez ensemble.

Votre formule en tête, créez-la avant de l'annoncer. Le mode test s'ouvre dès l'activation de votre compte, sans validation à attendre : Commencer en mode test — trois champs (nom, e-mail professionnel, entreprise), un lien d'activation reçu par e-mail pour choisir votre mot de passe, puis le portail, où vous créez vous-même votre clé de test après une ré-authentification ; la clé complète ne s'affiche qu'une seule fois. Payez avec la carte de test 4918 9141 0719 5005, CVV 123, n'importe quelle date d'expiration future, code 3-D Secure 555 : seule cette carte est acceptée, et aucun argent réel ne circule. La vérification de votre entreprise (KYB) se fait en parallèle et ne conditionne que le passage en production. Créez un abonnement dont la date de début est aujourd'hui : le premier lien est créé immédiatement et renvoyé dans currentCharge. Payez-le avec la carte de test, puis, avec une périodicité quotidienne (DAILY), payez l'échéance du lendemain, et regardez arriver le webhook qui déclenchera vos expéditions.

Produits et abonnements : deux modules distincts

ChariPay propose aussi une boutique hébergée. Pas encore de site ? Publiez vos produits sur votre vitrine hébergée et suivez vos commandes — en attente de paiement, payée, expédiée, livrée — depuis votre portail. Par l'API, le module Produits porte le prix, le stock optionnel et la page de vente de chaque produit.

Produits et abonnements restent pourtant deux modules distincts : rien ne relie automatiquement une fiche produit à un abonnement. La page de vente d'un produit encaisse des commandes ; l'abonnement, lui, se crée pour un client, depuis le portail ou par l'API. Les deux cohabitent très bien — une boutique hébergée pour les ventes à l'unité, des abonnements pour les box —, à condition de faire le lien vous-même.

Par l'API, ce lien passe par le metadata, posé à la création de l'abonnement : notez-y la référence de la box, par exemple { "box": "tea-spices", "size": "M" }. Ce metadata est un objet plat, de 4 Ko au plus, et il vous est renvoyé tel quel dans chaque événement subscription.payment_*. Votre outil d'expédition sait ainsi quelle box préparer, et pour qui, sans ressaisie. Depuis le portail, nommez la box dans la description de l'abonnement. La livraison elle-même reste de votre ressort : ChariPay encaisse, vous expédiez avec le transporteur de votre choix.

N'expédier qu'après une échéance payée

La règle qui protège votre stock : un colis ne part qu'après une échéance encaissée, signalée par l'événement subscription.payment_succeeded. Jamais sur une redirection : la redirection dit que l'acheteur est revenu, pas que le paiement est acquis.

Côté serveur, l'enchaînement tient en cinq étapes :

  1. 1L'événement subscription.payment_succeeded arrive sur votre endpoint de webhooks.
  2. 2Vous vérifiez sa signature, puis vous dédupliquez sur Chari-Event-Id.
  3. 3Vous retrouvez l'abonné par le metadata de l'abonnement ou par votre externalId d'abonnement, tous deux renvoyés dans l'événement.
  4. 4Vous créez l'ordre de préparation dans votre outil — ou la ligne de votre fichier d'expédition du jour.
  5. 5Vous répondez 2xx, une fois l'ordre enregistré.

L'étape 3 évite l'erreur classique qui consiste à rapprocher un paiement d'un abonné par son montant : deux abonnés à la même box paient le même montant. La logique générale de rattachement est expliquée dans relier un paiement à sa commande, et la création des abonnements avec leur metadata dans intégrer les abonnements par l'API.

Sans développeur, le principe reste le même : avant chaque tournée de préparation, consultez dans le portail la fiche de chaque abonnement, qui montre l'état de chacune de ses échéances, et ne préparez que les échéances encaissées.

Pause pendant les vacances, reprise au retour

Un abonné part en voyage, déménage, ou a simplement trop de stock d'avance : plutôt que de le perdre, proposez une pause. Pause et reprise se font depuis le portail ou par l'API ; pendant la pause, aucun lien de paiement n'est envoyé, et vous n'expédiez rien. À la reprise, les périodes écoulées pendant la pause ne sont pas facturées rétroactivement.

Pour que la pause reste un service et pas un oubli :

  • convenez avec l'abonné de sa date de retour et notez-la dans votre fiche client ;
  • reprenez l'abonnement à cette date, depuis le portail ou par l'API ;
  • prévenez-le de la reprise des envois, dans votre message habituel.

Une pause bien gérée coûte moins qu'une résiliation suivie d'une nouvelle inscription : l'abonné garde son abonnement, et vous gardez l'abonné.

Impayé : pas d'envoi, et ce que voit l'abonné

Quand une échéance n'est pas réglée, la suite est automatique : l'abonné reçoit chaque jour un rappel par e-mail avec le même lien ; tant qu'une échéance reste impayée, aucune nouvelle période ne s'ouvre ; le lien reste payable 14 jours après la date d'échéance, puis, sans paiement, l'abonnement est annulé automatiquement et votre serveur reçoit subscription.canceled.

Pour votre logistique, la règle est simple : rien ne part tant que l'échéance reste impayée. L'abonné, lui, a reçu le lien de l'échéance, puis ses rappels, pour régler sa box par carte ; un mot de votre part — « votre box est prête, elle partira dès le paiement reçu » — l'incite à le faire. S'il règle, ne préparez sa box qu'une fois l'échéance confirmée comme encaissée, dans le portail ou par l'API ; si l'abonnement est finalement annulé, retirez l'abonné de vos prévisions.

Le pas-à-pas complet, vos décisions et des messages types sont dans échéance d'abonnement impayée.

Prévoir le stock avec la liste des abonnés

Une box se prépare avant d'être payée : il faut acheter, composer, emballer. La liste de vos abonnements, avec leurs statuts, est votre premier outil de prévision. Elle se lit par l'API (GET /v1/subscriptions) ; dans le portail, vous suivez les mêmes abonnés échéance par échéance, depuis leur fiche.

StatutPour la prochaine expédition
À démarrerPremier lien envoyé, pas encore payé : rien ne part avant le premier paiement
ActifÀ prévoir ; le colis part une fois l'échéance payée — une échéance en attente de paiement se repère sur la fiche de l'abonnement
En pauseRien à prévoir jusqu'à la reprise
TerminéSorti de vos prévisions
AnnuléSorti de vos prévisions

La prochaine échéance de chaque abonnement vous donne aussi un repère : elle s'affiche dans la liste du portail et, par l'API, dans le champ nextRunDate. Vous savez quels abonnés recevront leur lien de paiement dans les jours qui viennent, et vous pouvez composer les box en conséquence. Pour les ventes à l'unité qui partagent le même stock, le module Produits gère un stock optionnel par produit : décomptez-y ce que vous réservez aux abonnés.

Résiliation et remboursement d'un envoi défectueux

Un abonné peut vouloir arrêter. Vous annulez son abonnement depuis le portail ou par l'API, à sa demande ; s'il avait souscrit une offre limitée, la date de fin l'arrête d'elle-même. L'annulation est définitive et prend effet sans échéance supplémentaire : aucun nouveau lien n'est envoyé, et rien de ce qui a déjà été encaissé n'est remboursé.

Autre cas : une box arrive abîmée, ou incomplète. Remboursez un client, en totalité ou partiellement, depuis le portail ou par l'API. Le remboursement est gratuit ; son montant est déduit de votre solde disponible, et si le solde ne suffit pas, l'opération est bloquée plutôt que de créer un découvert. Un remboursement n'est pas instantané côté banque : prévenez l'abonné qu'il ne le verra pas apparaître immédiatement sur son relevé.

Partiel ou total ? Un produit cassé dans une box de six se rembourse en partie ; une box perdue se rembourse en totalité — ou se renvoie, selon vos conditions. La procédure complète est dans rembourser un client.

Questions fréquentes

Comment lancer une box mensuelle au Maroc avec un paiement par carte ?

Définissez votre formule — montant, périodicité mensuelle, date de départ —, puis créez un abonnement par client, depuis le portail ou par l'API ; une éventuelle date de fin se fixe par l'API. À chaque échéance, le client reçoit par e-mail un lien de paiement qu'il règle par carte sur la page hébergée, avec 3-D Secure ; tant qu'il n'a pas payé, un rappel part chaque jour avec le même lien.

Peut-on vendre un abonnement depuis la boutique hébergée ?

Pas directement : produits et abonnements sont deux modules distincts, et rien ne relie automatiquement une fiche produit à un abonnement. La boutique hébergée encaisse vos ventes à l'unité ; l'abonnement se crée pour un client, depuis le portail ou par l'API. Faites le lien vous-même : nommez la box dans la description de l'abonnement et, par l'API, notez sa référence dans son metadata.

À quel moment expédier la box d'un abonné ?

Après l'encaissement de l'échéance, signalé par l'événement subscription.payment_succeeded, jamais sur une simple redirection. Retrouvez l'abonné grâce au metadata ou à l'externalId de l'abonnement, renvoyés dans l'événement, puis lancez la préparation. Sans développeur, consultez dans le portail la fiche de chaque abonnement avant chaque tournée et ne préparez que les échéances encaissées.

Faut-il expédier quand l'échéance d'un abonné n'est pas payée ?

Non : rien ne part tant que l'échéance reste impayée. L'abonné reçoit chaque jour un rappel par e-mail, avec le même lien, qui reste payable 14 jours après la date d'échéance. Une fois l'échéance payée, vous expédiez ; si l'abonnement est annulé à l'expiration du lien, retirez-le de vos prévisions de stock.

Un abonné peut-il suspendre ses envois pendant les vacances ?

Oui. Il vous le demande, et vous mettez son abonnement en pause depuis le portail ou par l'API : aucun lien n'est envoyé et vous n'expédiez rien. Convenez avec lui de sa date de retour, notez-la, puis reprenez l'abonnement à cette date. Il garde son abonnement, sans devoir se réinscrire, et les périodes écoulées pendant la pause ne lui sont pas facturées.

Peut-on vendre un abonnement à durée limitée ?

Oui, grâce à la date de fin, optionnelle, fixée par l'API à la création de l'abonnement : un coffret de trois mois ou un abonnement offert pour six mois s'arrête de lui-même à cette date, avec le statut « terminé ». Annoncez clairement la durée et le nombre d'envois dans votre offre, pour que l'abonné sache ce qu'il achète.

Comment rembourser une box arrivée abîmée ?

Depuis le portail ou par l'API, en totalité pour une box perdue ou inutilisable, partiellement pour un article cassé. Le remboursement est gratuit, déduit de votre solde disponible, et bloqué si le solde ne suffit pas. Il n'est pas instantané côté banque : prévenez l'abonné. Un remboursement ne touche pas l'abonnement lui-même : pour l'arrêter, il faut l'annuler.

Prochaine étape

Créez votre formule en mode test avec une date de début au jour même et une périodicité quotidienne (DAILY), payez le premier lien avec la carte de test, puis celui du lendemain, et branchez votre préparation de commandes sur subscription.payment_succeeded : Commencer en mode test. Pour savoir ce qui se passe quand un abonné ne paie pas son échéance, lisez ensuite échéance d'abonnement impayée.

Écrit par Équipe ChariPay.

À lire ensuite

Prêt à essayer par vous-même ?

Créez votre compte et encaissez en mode test dès aujourd'hui : c'est gratuit, sans validation à attendre. Une question ? Notre équipe répond aux commerçants comme aux développeurs.

  • Gratuit, sans engagement
  • Mode test dès l'inscription
  • Aucune validation à attendre