Paiement en ligne au Maroc en 2026 : comment accepter les paiements de vos clients (méthodes, frais, démarches)
Carte 3-D Secure, espèces en agence, liens de paiement : méthodes, coûts et démarches pour accepter les paiements en ligne au Maroc, sandbox comprise.
Le paiement en ligne au Maroc, pour une entreprise, consiste à accepter la carte bancaire avec authentification 3-D Secure — Visa, Mastercard, Maroc Pay — et, avec ChariPay, les espèces réglées en agence contre une référence, au moyen d'un lien de paiement, d'un checkout hébergé ou d'un abonnement, l'argent arrivant sur un compte de paiement au nom de l'entreprise. Ce guide s'adresse aux commerçants qui veulent être payés, pas aux particuliers qui cherchent à régler une facture : méthodes, coûts réels, démarches de la sandbox à la production, intégration avec ou sans développeur. Il est long à dessein : c'est la page à lire une fois, avant de choisir.
L'essentiel en 60 secondes
- Deux méthodes, trois outils. Vos clients paient par carte — Visa, Mastercard ou Maroc Pay, avec 3-D Secure — ou en espèces dans une agence Damane Cash, Chaabi Cash, Tasshilat, Barid Cash ou Chari, contre une référence. Vous encaissez par lien de paiement, par checkout hébergé sur votre site ou par abonnement.
- Un cadre régulé. Encaisser pour le compte d'un commerçant est une activité encadrée par la loi : le prestataire doit s'appuyer sur un établissement agréé par Bank Al-Maghrib. ChariPay est opérée par Chari Money, établissement de paiement agréé, sur une plateforme certifiée PCI DSS niveau 1.
- L'argent sans attendre. Chaque paiement réussi, par carte ou en espèces, arrive sur un compte de paiement crédité à l'instant, tenu par Chari Money, avec un RIB au nom de votre entreprise. Le versement vers votre banque est une opération distincte, automatique chaque nuit ou à la demande.
- Des coûts publiés. Sandbox gratuite ; 6 000 MAD TTC de mise en service, réglés une fois au passage en production ; une commission par transaction réussie, définie après étude de votre dossier ; remboursements gratuits.
- Essayer dès aujourd'hui. Le mode test est gratuit, sans limite de durée et sans validation à attendre. Commencer en mode test : trois champs — nom, e-mail professionnel, entreprise —, un lien d'activation reçu par e-mail, votre mot de passe, puis une clé de test créée depuis le portail et un premier paiement avec la carte de test. La vérification de votre entreprise ne conditionne que le passage en production.
L'état des lieux en 2026
Le paiement en ligne au Maroc ne ressemble pas à celui que décrivent les guides écrits pour l'Europe ou l'Amérique du Nord. La carte y fonctionne, et 3-D Secure en est le standard d'authentification : c'est la banque de l'acheteur qui décide, transaction par transaction, de lui demander une confirmation. Mais une partie des acheteurs n'a pas de carte, ou une carte qui n'est pas ouverte au paiement en ligne — beaucoup de cartes marocaines ne le sont qu'après une demande d'activation auprès de la banque. D'autres ont la carte et l'habitude, mais pas encore la confiance envers un site qu'ils ne connaissent pas. Pour tous ceux-là, le paiement à la livraison reste un réflexe de l'e-commerce marocain, avec ses colis refusés et ses espèces qui voyagent.
Deuxième trait local : la vente se conclut souvent hors du site, dans une conversation WhatsApp ou Instagram, et le paiement doit suivre la conversation plutôt qu'un panier. Troisième trait : les passerelles internationales que connaissent les développeurs ne sont pas toutes ouvertes aux entreprises établies au Maroc — nous y revenons plus bas. Nous ne citons aucune part de marché : les chiffres qui circulent sur l'usage de la carte ou des espèces sont rarement sourçables, et votre propre taux d'échec de paiement vous en dira plus qu'une moyenne nationale.
Le cadre, lui, est net. Selon Bank Al-Maghrib, la loi n° 103-12 relative aux établissements de crédit et organismes assimilés a introduit une catégorie d'institutions non bancaires, les établissements de paiement, habilités à tenir des comptes de paiement et à offrir les services de paiement associés. La banque centrale en recensait 18 à fin 2024, sur 93 établissements de crédit et organismes assimilés agréés. C'est ce statut qui permet de recevoir l'argent de vos clients et de vous le reverser. Une passerelle de paiement au Maroc n'est pas agréée en tant que logiciel : c'est l'établissement qui l'opère qui l'est — pour ChariPay, Chari Money.
Ce qui a changé en 2025
Le marché de l'acquisition carte — l'activité qui consiste à accepter les paiements par carte pour le compte des commerçants — était jusque-là marqué, selon les termes du Conseil de la concurrence, par une situation de quasi-monopole. Par sa décision n° 152/D/2024 du 31 octobre 2024, le Conseil a rendu obligatoires des engagements comportementaux et structurels. Son communiqué du 19 mai 2025 précise que les établissements de paiement et les filiales des banques dédiées à l'acquisition, dûment autorisés, peuvent, « dès le premier mai 2025, opérer sur le marché », que l'entrée de ces nouveaux acteurs « induira une nouvelle dynamique concurrentielle sur le marché de l'acquisition », et que la période transitoire, pendant laquelle il suit la mise en œuvre des autres engagements, prend fin le 1er novembre 2025.
Pour un commerçant, la conséquence pratique est simple : la question « qui est agréé, et pour quoi faire ? » compte davantage qu'avant, et elle se vérifie auprès de Bank Al-Maghrib, pas sur une page commerciale. La page PSP au Maroc explique ce que couvre un agrément et comment le lire.
Les cinq façons d'accepter un paiement en ligne au Maroc, comparées
Une passerelle se choisit d'abord par ce qu'elle vous permet d'accepter, et comment. Il existe deux méthodes de paiement — la carte, les espèces — et trois outils pour les mettre en œuvre — le lien, le checkout hébergé, l'abonnement. Le tableau les place côte à côte. Chez ChariPay, toutes créditent le même compte de paiement, et toutes le créditent à l'instant.
| Façon d'accepter | Pour qui | Mise en place | Ce que paie le client | Ce que vous recevez | Argent disponible |
|---|---|---|---|---|---|
| Carte bancaire avec 3-D Secure | Tout client dont la carte est ouverte au paiement en ligne | Page de paiement hébergée, par lien ou par session ; aucune donnée de carte chez vous | Le montant en MAD, par Visa, Mastercard ou Maroc Pay, après authentification par sa banque | Le paiement crédité et une notification signée (webhook) | À l'instant, dès que la banque de l'acheteur confirme |
| Espèces en agence, par référence | Clients sans carte, paniers élevés, commandes que vous ne voulez pas livrer contre remboursement | Un lien de paiement à usage unique : sur sa page, le client choisit les espèces et reçoit une référence | Le montant en MAD, en espèces, dans une agence partenaire | Le dépôt crédité, le lien passé « Payé » et une notification dans le portail | À l'instant, dès que le réseau confirme le dépôt |
| Lien de paiement | Ventes WhatsApp et Instagram, boutiques sans développeur, devis, événements | Depuis le portail, sans code, ou par POST /v1/payment-links | Carte ou espèces, au choix, sur la page du lien | Le lien passe « Payé » dans le portail | À l'instant |
| Checkout hébergé (sessions) | Sites et applications avec panier et back-office | Une intégration serveur : POST /v1/payment-sessions, redirection, webhook | La carte — Visa, Mastercard ou Maroc Pay — avec 3-D Secure, sur une page à vos couleurs | Le paiement rattaché à votre commande (orderId, metadata) | À l'instant |
| Abonnement | Salles de sport, écoles, logiciels, loyers : tout ce qui se paie à échéance | Un client (nom, e-mail) puis un abonnement, depuis le portail ou par l'API (POST /v1/clients, POST /v1/subscriptions) | Chaque échéance par carte, avec 3-D Secure, sur le lien de paiement reçu par e-mail | Un webhook par échéance payée ou par tentative échouée | À l'instant, à chaque échéance payée |
La carte bancaire, avec 3-D Secure
C'est la méthode que tout le monde attend, et la plus simple à mettre en place : votre client saisit sa carte sur une page hébergée par ChariPay, sa banque lui demande une authentification 3-D Secure, il revient sur votre site — et le résultat vous parvient par webhook. Vous ne touchez jamais un numéro de carte, ni sur votre serveur ni dans votre navigateur : la carte est saisie dans un périmètre certifié PCI DSS niveau 1, et le vôtre reste celui d'un marchand qui ne voit jamais de données de carte. Pour accepter la carte sans terminal — à distance, au comptoir ou sur votre site —, voyez accepter la carte sans terminal.
Le point qui surprend les intégrateurs : un paiement par carte n'aboutit pas au moment où vous l'appelez. Il y a la banque, l'authentification, le retour. La page de confirmation que voit l'acheteur n'est qu'une redirection ; la notification signée que reçoit votre serveur est la seule source de vérité. Sur ce qui fait échouer une authentification — abandon, refus de la banque émettrice, données erronées, soupçon de fraude —, 3-D Secure : ce qui fait échouer un paiement entre dans le détail. Le produit qui porte cette méthode sur votre site est le checkout hébergé 3-D Secure.
Les espèces en agence, par référence
ChariPay est la seule passerelle de paiement au Maroc à encaisser aussi les espèces en agence. Sur la page d'un lien de paiement, votre client choisit les espèces, reçoit une référence et dépose le montant dans une agence partenaire ; vous êtes notifié dès que le réseau confirme le dépôt, et le montant est disponible sur votre compte de paiement à cet instant.
Ce que cela change, c'est l'ordre des opérations. Une commande payée à la livraison part d'abord et se paie ensuite — ou ne se paie pas. Avec le dépôt en agence, la commande est payée avant de partir, l'argent ne transite jamais par un livreur, et l'encaissement apparaît dans le même relevé que vos paiements par carte. Le seul délai est celui que met le client à se rendre en agence : le lien espèces n'a pas d'expiration — dans le portail, « Paiement en agence » la désactive —, prévoyez donc un rappel. Le montage est détaillé dans Encaisser en espèces : le paiement par référence.
Le lien de paiement
Le lien de paiement est l'outil de la vente conversationnelle et de la boutique sans développeur. Vous le créez depuis le portail — montant, description, usage unique ou multiple, expiration à 24 heures, 7 jours, 30 jours, jamais ou à une date précise — et vous le partagez comme vous voulez : collé dans WhatsApp, envoyé par e-mail, imprimé en QR code ou en affiche PDF pour un comptoir. Le client ouvre une page à votre nom et paie par carte — ou, sur un lien à usage unique, en espèces en agence ; l'affiche et le QR de comptoir, eux, encaissent par carte.
Un lien à usage unique correspond à une commande précise ; un lien à usage multiple encaisse plusieurs clients sur le même montant — une cotisation, un billet, un produit phare. Le paiement en espèces, lui, s'appuie toujours sur un lien à usage unique : une référence par dépôt. Tout est décrit sur la page liens de paiement, et Lien de paiement ou checkout : lequel choisir vous aide à trancher entre les deux outils.
Le checkout hébergé, par sessions de paiement
Dès que vous avez un panier et un back-office, la session de paiement remplace le lien. Votre serveur crée une session par commande, avec le montant en MAD, votre référence de commande et les coordonnées de l'acheteur ; l'API renvoie une adresse de paiement vers laquelle vous redirigez le client. La page hébergée reprend vos couleurs et votre logo, et gère la saisie de la carte et l'authentification 3-D Secure ; votre serveur, lui, attend le webhook. Une session n'est consommée qu'une seule fois et expire d'elle-même, soixante-douze heures après sa création si vous ne fixez pas d'autre échéance. Pour un client qui préfère payer en espèces, l'outil reste le lien de paiement à usage unique : une référence par dépôt.
L'abonnement
L'abonnement sert les activités qui encaissent à échéance : salle de sport, école, logiciel, loyer, box mensuelle. Vous le créez pour un client — nom, e-mail, téléphone facultatif —, depuis le portail ou par l'API, avec un montant, une périodicité (quotidienne, hebdomadaire, mensuelle ou annuelle), une date de début et, si besoin, une date de fin. À chaque échéance, ChariPay envoie au client, par e-mail, un lien de paiement à usage unique ; il paie sur la page hébergée, par carte avec 3-D Secure. Tant qu'une échéance reste impayée, un rappel part chaque jour avec le même lien et aucune nouvelle période n'est ouverte ; le lien reste payable 14 jours après l'échéance, puis l'abonnement est annulé s'il n'a pas été réglé. Le détail est sur la page Abonnements. Les cas sont détaillés un à un : abonnements de salle de sport, frais de scolarité en ligne, facturer un SaaS au Maroc, encaisser les loyers en ligne et vente par abonnement.
Les moyens de paiement que vos clients utilisent
Avant de choisir un outil, regardez comment vos clients paient déjà. Il n'existe pas de statistique publique fiable sur la répartition entre carte et espèces dans l'e-commerce marocain ; en revanche, les profils se reconnaissent vite, parce qu'ils vous écrivent tous sur WhatsApp.
- Les cartes Visa et Mastercard. Émises par une banque marocaine, elles sont le réflexe du client habitué aux achats en ligne. Point de vigilance : beaucoup de cartes marocaines sont fermées au paiement en ligne par défaut, et le client doit en demander l'activation à sa banque. Un échec de ce type n'a rien à voir avec votre site ; une phrase claire sur votre page de commande en évite une partie.
- Maroc Pay. Accepté par défaut au même titre que Visa et Mastercard, sur la même page de paiement et avec la même authentification 3-D Secure.
- Les cartes émises à l'étranger. Tous les montants sont en dirhams, et c'est la banque émettrice qui autorise ou refuse chaque paiement : nous ne garantissons pas qu'une carte émise à l'étranger soit acceptée. Si votre activité vise une clientèle étrangère, posez-nous la question avec votre cas précis avant de lancer l'offre.
- Les espèces. Le client qui paie tout en liquide existe, et il n'est pas marginal. Plutôt que de le perdre ou de l'envoyer vers le paiement à la livraison, la référence à régler en agence lui permet de payer en espèces avant l'expédition.
- Le paiement à la livraison. Encore courant, il convertit — c'est sa force — et il coûte — c'est sa faiblesse. La section suivante le compare au paiement en ligne, critère par critère.
- Le virement avec capture d'écran. Le client vire depuis sa banque et vous envoie une preuve. Cela dépanne pour un devis ponctuel, mais rien n'y est automatique : vérification manuelle, rapprochement à la main, aucune notification.
D'autres moyens de paiement peuvent être activés sur demande auprès de l'équipe, selon votre activité. La règle pratique tient en une phrase : proposez la carte et les espèces en agence, puis mesurez ce qui reste à la livraison.
Paiement à la livraison ou paiement en ligne ?
Le paiement à la livraison n'est pas un ennemi : il rassure le client qui ne vous connaît pas encore. Mais il déplace son coût après la vente, là où il est le plus difficile à mesurer — emballage, transport aller, transport retour, remise en stock pour un colis refusé, valeur immobilisée pendant tout le trajet puis pendant le reversement de la collecte. Le tableau compare les trois options qui s'offrent à une boutique marocaine.
| Critère | Paiement à la livraison | Paiement en ligne par carte | Espèces en agence à la commande |
|---|---|---|---|
| Moment où vous êtes payé | Après la livraison, puis au reversement de la collecte | Au paiement, avant l'expédition | Au dépôt, avant l'expédition |
| Colis refusé | Aller, retour et remise en stock à vos frais, pour une vente nulle | La commande est payée avant l'envoi | La commande est payée avant l'envoi |
| Qui manipule l'argent | Le livreur ou le transporteur | Personne : la page hébergée et la banque | Le client, en agence |
| Client sans carte | Servi | Non servi | Servi |
| Rapprochement | Reversements groupés, souvent sans détail par commande | Chaque paiement porte sa référence | Chaque dépôt porte sa référence |
| Notification | Aucune, sinon l'appel du livreur | Webhook signé | Lien « Payé » et notification dans le portail |
La colonne de droite résume notre position : les espèces en agence gardent le client qui paie en liquide tout en retirant le livreur de l'encaissement. Une stratégie raisonnable consiste à proposer la carte et les espèces en agence par défaut, à garder la livraison contre remboursement comme option si votre clientèle l'exige, et à suivre votre taux de colis refusés mois après mois. Le guide paiement e-commerce au Maroc détaille le coût réel du paiement à la livraison et la manière de brancher une boutique en ligne.
Ce que coûte un encaissement en ligne au Maroc
Les tarifs se comparent en dernier — une commission se renégocie, une architecture ne se rattrape pas. Mais ils se comparent, et pour cela il faut savoir de quoi un devis est fait. Au Maroc comme ailleurs, le coût d'un encaissement en ligne se décompose en cinq postes, dont deux seulement sont écrits en gros sur les plaquettes. Nous ne publions aucune grille de marché : seulement la méthode, puis nos propres chiffres.
Les cinq postes d'un devis
- La mise en service. Une somme réglée une fois, qui couvre l'étude du dossier, l'activation et l'accompagnement du passage en production. Demandez si elle se paie avant ou après l'activation.
- La commission. Un pourcentage prélevé sur chaque transaction, parfois complété d'une part fixe. Elle dépend en général de votre activité, des méthodes de paiement et des volumes. Deux questions à poser : est-elle prélevée sur les seules transactions réussies, et le pourcentage est-il le même pour toutes les méthodes ?
- La caution. Un dépôt de garantie immobilisé pendant la relation, destiné à couvrir les contestations et les impayés. Son montant dépend du risque perçu de votre activité ; demandez comment et quand il vous est restitué.
- Les remboursements. Rembourser un client est un acte normal du commerce, pas un incident. Vérifiez ce qu'un remboursement total, puis partiel, vous coûte réellement, et si la commission de la transaction d'origine vous est conservée.
- Les versements. Le poste le plus sous-estimé. Quand l'argent encaissé arrive-t-il sur un compte que vous contrôlez ? Un règlement différé de plusieurs jours est un coût de trésorerie que vous ne verrez sur aucune facture, et des frais prélevés à chaque versement s'additionnent vite.
Restent les coûts qui ne figurent sur aucun devis : le temps de développement, le rapprochement à la main quand les exports ne parlent pas à votre comptabilité, et les espèces que vous continuez de gérer à côté quand le prestataire ne les encaisse pas. Pour la démarche complète de comparaison, lisez comment choisir sa plateforme de paiement au Maroc : huit questions à poser, à nous comme à n'importe qui.
Nos chiffres
Les tarifs de ChariPay tiennent en quelques lignes, et la page de tarification ne dit rien de plus.
- La sandbox est gratuite, sans limite de durée et sans engagement. Vous construisez et testez toute votre intégration avant de signer quoi que ce soit.
- La mise en service coûte 6 000 MAD TTC, réglée une seule fois, au passage en production. Rien avant.
- La commission est un pourcentage par transaction réussie. Elle est définie après étude de votre dossier — vos produits, vos méthodes de paiement, vos volumes —, et la caution avec elle. La proposition arrive chiffrée, avant tout engagement ; nous ne publions pas de pourcentage « à partir de », qui ne dirait rien de votre dossier.
- Rembourser un client est gratuit, en totalité ou en partie.
- Les fonds sont disponibles à l'instant sur votre compte de paiement, avec un RIB au nom de votre entreprise. Le versement vers votre banque se fait automatiquement chaque nuit dès qu'un compte de règlement est configuré, ou par virement instantané à la demande. Depuis ce compte, vous réglez aussi des factures et effectuez des virements : ce que vous venez d'encaisser est déjà utilisable. La page Wallet et versements détaille ces usages.
Les démarches : de la sandbox à la production
Il y a deux démarches, et elles ne se ressemblent pas. La première ne demande rien à personne : c'est le mode test, que vous ouvrez vous-même, gratuitement et sans limite de durée. La seconde est administrative : l'activation de la production, qui suppose une entreprise vérifiée. Les huit étapes ci-dessous vont de l'inscription au premier vrai paiement.
- 1Créez votre compte. Créez votre compte de test sur le portail marchand : trois champs — nom, e-mail professionnel, entreprise. Aucune pièce, aucun rendez-vous, aucune carte bancaire.
- 2Activez-le depuis l'e-mail. Le lien d'activation reçu par e-mail vous permet de choisir votre mot de passe ; le jeton d'activation n'existe que dans cet e-mail. Le mode test est ouvert dès cet instant : aucune validation à attendre.
- 3Connectez-vous et choisissez votre entreprise. Selon les permissions de votre compte, le portail peut vous demander d'enrôler une application d'authentification à deux facteurs ; conservez vos codes de récupération. Le portail est en français et en anglais.
- 4Créez votre clé de test. Créer une clé est une action sensible : le portail vous redemande une confirmation, puis vous choisissez ses permissions — n'accordez que ce que votre intégration appelle. La clé commence par
chari_sk_test_et ne s'affiche qu'une fois : rangez-la dans un coffre ou une variable d'environnement, jamais dans le code d'une page (Protéger ses clés d'API). - 5Faites un premier paiement de test. Créez un lien de paiement ou une session, puis payez avec la carte de test
4918914107195005, CVV123, une date d'expiration future et le code 3-D Secure555. Aucun argent réel ne circule, et les webhooks partent comme en production. - 6Montez votre intégration. Lien depuis le portail, session et webhook par l'API, ou abonnement : testez le parcours complet, échecs et remboursements compris. Un
GET /v1/walletqui répond confirme que votre clé est bien authentifiée. - 7Faites vérifier votre entreprise. La vérification KYB — documents d'identité et registre de commerce, avec double validation humaine — se fait depuis le portail, en parallèle de l'intégration. L'équipe étudie le dossier et vous adresse une proposition chiffrée : commission et caution.
- 8Réglez la mise en service et basculez. Une fois les 6 000 MAD TTC réglés, vous lancez la vérification depuis le portail et votre clé de production est créée automatiquement. Le jour de la bascule, vous changez la clé — et le secret de signature des webhooks, distinct entre sandbox et production.
La base d'URL est la même dans les deux environnements — https://api-psp.charipay.ma — parce que c'est la clé qui choisit l'environnement, pas l'adresse. Tant que la production n'est pas activée, une clé chari_sk_live_ reçoit un 403 explicite avec le code PRODUCTION_ACCESS_NOT_ENABLED : ce n'est pas un bug d'intégration, c'est une étape administrative qui n'est pas terminée. Votre développeur peut donc préparer la configuration de production sans risque, et la sandbox reste ensuite votre environnement de recette. La liste de ce qu'il faut vérifier avant de basculer est dans Sandbox → production : la liste avant de basculer, et le guide « Démarrer » de la documentation de l'API déroule chaque requête.
Qui peut accepter des paiements en ligne : les pièces du KYB
La question revient sous toutes ses formes : faut-il une SARL, peut-on accepter des paiements en ligne en tant qu'auto-entrepreneur, une association peut-elle recevoir des cotisations par carte ? La réponse honnête tient en deux temps.
Pour tester, il ne faut rien : le mode test s'ouvre dès l'inscription, quelle que soit votre forme juridique, sans document à fournir. C'est le bon moment pour construire et valider votre parcours de paiement, avant toute démarche administrative.
Pour encaisser de vrais paiements, votre entreprise passe une vérification KYB, pour « know your business » : un établissement de paiement doit savoir pour quelle entreprise il encaisse. Les pièces demandées dépendent de votre forme juridique et sont précisées lors de la vérification KYB (identité, registre de commerce). Elles sont examinées avec une double validation humaine, et cette vérification ne conditionne que le passage en production. Nous ne publions ni liste par forme juridique ni délai : le portail vous indique ce qui est attendu pour votre cas. Votre conseil juridique ou votre expert-comptable reste seul à pouvoir se prononcer sur vos obligations propres — statut, facturation, TVA.
Une précision pour les réseaux : si vous encaissez pour le compte d'autres commerçants — franchisés, points de vente, place de marché —, chaque sous-marchand est vérifié comme tout marchand, documents et registre de commerce, avant d'encaisser en production.
L'intégration selon votre situation
Il n'y a pas une bonne intégration, il y en a quatre, et la vôtre dépend de deux questions : avez-vous un développeur, et encaissez-vous une fois ou à échéance ? Si vous vendez sur une boutique en ligne, le guide du paiement e-commerce au Maroc applique ces choix à votre panier, Shopify et WooCommerce compris. Si vous lancez votre boutique, lancer sa boutique en ligne au Maroc reprend le volet paiement étape par étape.
Sans développeur : les liens de paiement
Votre boutique tourne sur Shopify, sur WooCommerce ou sur Instagram, et personne dans l'équipe n'écrit de code. Le circuit tient en trois gestes : la commande arrive, vous créez depuis le portail un lien de paiement au montant exact, vous l'envoyez au client — WhatsApp, e-mail, ou QR code sur le bon de livraison. Le client paie par carte ou en espèces en agence ; le portail vous le montre, et vous marquez la commande payée dans votre boutique. Aucune extension n'est nécessaire — pour WooCommerce, le module ChariPay est disponible sur GitHub ; il n'existe pas d'application Shopify. Sans module : le lien d'abord, puis le checkout par l'API quand le volume justifie d'automatiser. Les guides Shopify et WooCommerce au Maroc déroulent ce circuit pas à pas. Pour une vente conclue en messagerie, voyez vendre sur Instagram et WhatsApp.
Le portail est conçu pour une équipe, pas pour une seule personne : il distingue les rôles propriétaire, gestionnaire, caissier et comptable, accepte plusieurs utilisateurs, et exporte vos encaissements en CSV pour votre comptabilité.
Avec un développeur : sessions et webhooks
Avec un développeur, l'intégration se résume à deux pièces : créer une session de paiement à chaque commande, et traiter la notification qui en revient. Le module Sessions de paiement de la documentation décrit la création, que voici en curl :
curl -X POST https://api-psp.charipay.ma/v1/payment-sessions \
-H "X-CHARI-PAY-API-KEY: chari_sk_test_…" \
-H "Idempotency-Key: order-2026-0001" \
-H "Content-Type: application/json" \
-d '{
"amount": 250.00,
"orderId": "ORD-2026-0001",
"externalId": "order-2026-0001",
"config": {
"customer": {
"firstName": "Amine", "lastName": "Bennani",
"email": "amine@example.com", "phone": "+212600000000"
},
"urls": {
"accept": "https://votre-boutique.ma/merci",
"decline": "https://votre-boutique.ma/echec",
"notification": "https://votre-boutique.ma/webhooks/charipay"
}
}
}'Le montant est en dirhams, sans champ de devise : l'API ne travaille qu'en MAD. La réponse porte la checkoutUrl vers laquelle vous redirigez l'acheteur. L'en-tête Idempotency-Key, dérivé de votre référence de commande, rend l'appel rejouable sans risque ; l'externalId, unique par environnement, fait qu'un second appel pour la même commande vous rend la session existante avec un 200 au lieu d'en créer une nouvelle.
La seconde pièce est votre endpoint de webhook, décrit dans le module Webhooks. Chaque livraison porte X-CHARI-SIGNATURE, un HMAC-SHA256 en hexadécimal calculé sur la chaîne horodatage + "." + corps brut, et X-CHARI-TIMESTAMP, l'horodatage en millisecondes. La vérification tient en quelques lignes de Node :
import { createHmac, timingSafeEqual } from 'node:crypto';
export function verifyChariSignature(rawBody, headers, secret) {
const timestamp = headers['x-chari-timestamp'];
const signature = headers['x-chari-signature'];
if (!timestamp || !signature) return false;
// Tolérance de 5 minutes, comme côté ChariPay
if (Math.abs(Date.now() - Number(timestamp)) > 5 * 60 * 1000) return false;
const expected = createHmac('sha256', secret)
.update(`${timestamp}.${rawBody}`)
.digest('hex');
return expected.length === signature.length
&& timingSafeEqual(Buffer.from(expected), Buffer.from(signature));
}Quatre règles suffisent ensuite. Vérifiez sur le corps brut, avant tout parsing. Dédupliquez sur Chari-Event-Id : un même événement peut être livré plusieurs fois, c'est une garantie, pas un défaut. Répondez 200 dès que l'événement est écrit quelque part, et faites le reste en tâche de fond. Et si votre serveur ne répond pas, rien n'est perdu : la livraison est retentée à 1 min, 5 min, 30 min, 1 h, puis toutes les 6 h, jusqu'à 16 tentatives sur environ 72 heures, et le journal du portail vous laisse rejouer n'importe quelle livraison en un clic. Réussir son intégration des webhooks détaille les cinq erreurs que nous voyons le plus souvent, et le guide de l'API de paiement au Maroc reprend l'intégration complète, en Node et en Python.
Abonnements
Un abonnement ajoute une étape avant le paiement : le client, créé avec POST /v1/clients, puis l'abonnement, ouvert avec POST /v1/subscriptions — les deux se créent aussi depuis le portail, sans code. À chaque échéance, ChariPay envoie au client un lien de paiement à usage unique par e-mail ; l'abonnement reste INCOMPLETE jusqu'au premier paiement, puis passe ACTIVE. Votre serveur reçoit subscription.payment_succeeded quand une échéance est payée, subscription.payment_failed quand une tentative par carte échoue sur le lien, qui reste payable, et subscription.canceled à l'annulation. En sandbox, une date de début fixée à aujourd'hui envoie le premier lien tout de suite, et une périodicité quotidienne amène la deuxième échéance le lendemain ; le reste est décrit sur la page Abonnements.
Place de marché et distribution
Si vous encaissez au nom d'un réseau — une place de marché, des franchisés, des points de vente —, chaque entité peut être déclarée comme sous-marchand, avec son propre wallet et sa propre vérification, et la session de paiement désigne, dans config.settlement, le wallet à créditer. Le montage se prépare avec l'équipe d'intégration ; la page Distribution en donne les grandes lignes. Les deux cas sont détaillés dans paiements d'une place de marché et franchises et réseaux de points de vente.
Sécurité et conformité
Trois cadres se superposent quand vous acceptez un paiement en ligne, et chacun répond à une question différente.
- PCI DSS niveau 1 : qui voit les cartes ? ChariPay est une plateforme certifiée PCI DSS niveau 1, renouvelée chaque année. Les numéros de carte ne sont jamais écrits en base de données ; votre site ne les voit pas, et votre périmètre reste celui d'un marchand qui ne voit jamais de numéro de carte. Le questionnaire d'auto-évaluation qui vous concerne se confirme avec votre conseil ou votre acquéreur.
- 3-D Secure : qui est le payeur ? Les paiements par carte passent par l'authentification 3-D Secure demandée par la banque de l'acheteur. Ouvrez la page de paiement dans l'onglet principal, jamais dans une iframe cachée : l'authentification bancaire ne fonctionne pas correctement autrement.
- Loi 09-08 : que deviennent les données ? Les données personnelles sont traitées dans le cadre de la loi 09-08 ; les données sensibles sont masquées dans les journaux, et l'export de données personnelles est strictement contrôlé.
Côté compte, le portail ajoute ce qu'on attend d'un outil qui fait sortir de l'argent : double authentification, ré-authentification avant chaque action sensible, double validation sur les reversements, journal d'audit chaîné cryptographiquement. Les webhooks sont signés en HMAC-SHA256, avec une fenêtre anti-rejeu de cinq minutes, et les secrets de signature diffèrent entre sandbox et production. Le détail des contrôles est sur la page Sécurité.
PayPal et passerelles étrangères au Maroc
Le Maroc ne figure pas dans la liste officielle des pays où Stripe est disponible, relue le 2 octobre 2026 : une entreprise établie au Maroc ne peut pas y ouvrir de compte, et les montages par société étrangère déplacent le problème — fonds hors du Maroc, change, TVA — plus qu'ils ne le résolvent, à valider avec votre conseil. PayPal, de son côté, publie une page d'accueil pour le Maroc, avec un espace pour les particuliers et un autre pour les entreprises ; ce que son offre couvre pour votre activité se vérifie sur ses pages officielles. Les deux sujets sont traités en entier dans Stripe au Maroc et PayPal au Maroc.
Les erreurs classiques
Nous voyons passer beaucoup d'intégrations. Les mêmes erreurs reviennent, et aucune n'est technique au sens strict : ce sont des raccourcis pris le premier jour et payés le troisième mois.
- Livrer sur la page de retour. Un acheteur qui ferme son onglet après avoir payé ne verra jamais votre page de confirmation. Si votre commande n'est validée que là, elle ne le sera jamais — alors que l'argent, lui, est bien arrivé sur votre compte de paiement. La règle est simple : la page de retour remercie, le webhook livre.
- Oublier l'idempotence. Un réseau qui coupe entre votre appel et notre réponse, un utilisateur qui double-clique, une tâche rejouée : sans
Idempotency-Keysur vos créations et sansexternalIdunique, vous finirez par créer deux sessions pour une commande, ou par expédier deux fois. L'idempotence des paiements explique comment dériver ces clés de vos propres références. - Ignorer les espèces. Le marchand qui n'accepte que la carte en ligne continue de gérer des espèces à la livraison, hors de tout système, et ne le compte pas comme un coût. Offrir le dépôt en agence, par un lien de paiement, ramène cet argent dans le relevé, avant l'expédition.
- Rapprocher à la main. Comparer un relevé bancaire à une feuille de commandes, chaque fin de mois, est le symptôme d'une intégration qui n'a pas utilisé
orderIdetmetadata. Votremetadatarevient tel quel dans l'événement de paiement ; pour une session, l'événement porte aussi votreorderId; et chaque mouvement de l'export CSV porte la référence qui l'explique : le rapprochement devient une jointure, pas une lecture. Rapprocher ses encaissements montre la méthode, fuseau horaire compris. - Basculer la clé sans basculer le secret. Le jour du passage en production, la clé d'API change et le secret de signature des webhooks aussi. Oublier le second donne l'incident le plus déroutant qui soit : les paiements passent, les commandes ne partent pas.
Questions fréquentes
Comment accepter les paiements en ligne au Maroc ?
Il faut un prestataire adossé à un établissement agréé par Bank Al-Maghrib, un compte pour recevoir l'argent et un outil d'encaissement adapté à votre façon de vendre. Avec ChariPay, vous ouvrez gratuitement le mode test, vous choisissez entre lien de paiement, checkout hébergé et abonnement, vous testez avec la carte de test, puis vous passez la vérification KYB et réglez la mise en service pour encaisser de vrais paiements.
Quels moyens de paiement proposer ?
Au minimum la carte avec 3-D Secure — Visa, Mastercard et Maroc Pay sont acceptés par défaut — et, si une partie de vos clients paie en liquide, les espèces en agence contre une référence. Les deux créditent le même compte de paiement ; un paiement par carte vous parvient par webhook signé, et les espèces passent par un lien de paiement à usage unique, une référence par dépôt. D'autres moyens peuvent être activés sur demande auprès de l'équipe, selon votre activité.
Mes clients sans carte peuvent-ils payer ?
Oui. Sur la page d'un lien de paiement, le client choisit les espèces, reçoit une référence et dépose le montant dans une agence partenaire. Vous êtes notifié dès que le réseau confirme le dépôt, et l'argent est disponible à l'instant sur votre compte de paiement. Les espèces s'ajoutent ainsi à la carte, sans changer d'outil ni de relevé.
Faut-il un site web ?
Non. Un lien de paiement se crée depuis le portail et se partage par WhatsApp, e-mail, QR code ou affiche PDF : le client paie sur une page hébergée à votre nom. Pour vendre un petit catalogue sans site, la vitrine e-commerce hébergée publie vos produits et suit vos commandes. Un site devient utile quand vous voulez un panier et un paiement intégré à votre propre parcours d'achat.
Combien ça coûte ?
La sandbox est gratuite, sans limite de durée. Le passage en production coûte 6 000 MAD TTC de mise en service, réglés une seule fois. La commission par transaction réussie et la caution sont définies après étude de votre dossier, selon vos produits, vos méthodes de paiement et vos volumes, et vous les connaissez avant de vous engager. Rembourser un client est gratuit.
Quand l'argent est-il disponible ?
À l'instant où le paiement réussit : par carte, dès que la banque de l'acheteur confirme ; en espèces, dès que le réseau confirme le dépôt. Le montant est disponible sur votre compte de paiement, avec un RIB au nom de votre entreprise, et utilisable pour un virement ou un paiement de facture. Le versement vers votre banque est automatique chaque nuit, ou se fait à la demande.
Faut-il un développeur ?
Non, pas pour commencer. Les liens de paiement se créent et s'envoient depuis le portail, sans une ligne de code, et suffisent tant que vous traitez vos commandes à la main. Un développeur devient utile quand le volume impose d'automatiser — une session par commande, une mise à jour de la commande par webhook — ou quand vos abonnements doivent se créer depuis votre propre logiciel plutôt que depuis le portail.
Peut-on utiliser Stripe ou PayPal ?
Stripe, non : le Maroc ne figure pas dans sa liste officielle des pays pris en charge, relue le 2 octobre 2026. PayPal publie une page d'accueil pour le Maroc, avec un espace particuliers et un espace entreprises ; ce que son offre couvre pour votre activité se vérifie sur ses pages officielles, et notre article PayPal au Maroc fait le point. Les montages par société étrangère soulèvent des questions de change et de fiscalité, à valider avec votre conseil.
Quelle devise ?
Le dirham marocain, uniquement. Les montants de l'API sont en MAD, en unités majeures avec deux décimales ; les soldes, les remboursements et les versements aussi, et la page de paiement affiche toujours le montant en dirhams. Aucune conversion ne s'interpose entre ce que votre client paie et ce que votre comptabilité enregistre. Pour une clientèle à l'étranger, posez-nous la question avec votre cas précis avant de lancer l'offre.
Comment tester avant de passer en production ?
Ouvrez le mode test depuis le portail : inscription en trois champs, activation par e-mail, mot de passe, puis clé de test créée par vous-même. Payez avec la carte de test 4918 9141 0719 5005, CVV 123, code 3-D Secure 555, et vérifiez que votre serveur reçoit le webhook. C'est gratuit, sans limite de durée, et aucune validation n'est attendue avant de commencer.
Prochaine étape
Vous savez maintenant ce que vous voulez accepter, et comment. Commencer en mode test : trois champs, un e-mail d'activation, votre mot de passe, puis votre clé de test et un premier paiement avec la carte de test — gratuit, sans limite de durée, sans validation à attendre. Choisissez ensuite votre outil sur la page liens de paiement ou dans la documentation de l'API, selon que vous avez un développeur ou non.
Sources
- Conseil de la concurrence — communiqué du 19 mai 2025 (décision n° 152/D/2024 du 31 octobre 2024) — lu le 2026-10-02
- Bank Al-Maghrib — Systèmes et moyens de paiement (loi n° 103-12, établissements de paiement) — lu le 2026-10-02
- Bank Al-Maghrib — Structure du système bancaire (chiffres à fin 2024) — lu le 2026-10-02
- Stripe — Disponibilité mondiale — lu le 2026-10-02
- PayPal Maroc — page d'accueil — lu le 2026-10-02
Écrit par Équipe ChariPay.