Payer sans quitter la page.
Un snippet JavaScript prêt à l'emploi qui affiche le QR ou un bouton deep-link directement sur votre page de paiement — trois lignes de code, aucun formulaire de carte, aucune redirection, aucune PCI.
Trois lignes sur votre page, aucun formulaire de carte nulle part.
Le serveur du commerçant crée le paiement avec le montant fixé côté serveur. Le navigateur ne détient jamais qu'un paymentId opaque — un jeton de capacité, pas un prix.
<script src="https://js.miapos.eu/v1/"></script> <div id="mia-pay"></div> <script> miaPOS.mount('#mia-pay', { paymentId, // created server-side; amount is fixed there onSuccess: () => location = '/thank-you', onFail: (e) => console.warn(e.reason), locale: 'ro' | 'ru' | 'en', }); </script>
Le widget s'exécute dans son propre Shadow DOM, interroge l'état du paiement et déclenche onSuccess dès que la banque confirme. Le backend du commerçant reçoit en parallèle un webhook signé RSA — c'est la source de vérité pour la commande. La fermeture de l'onglet de l'acheteur ne perd jamais le paiement.
Comment ça fonctionne.
Du panier à la confirmation, sur la page du commerçant.
/pay avec la clé secrète et un Idempotency-Key. Le montant est fixé ici, sur le backend du commerçant. La réponse est un paymentId.miaPOS.mount('#el', { paymentId, ... }). Le widget lit le point de terminaison de paiement public, à portée de capacité, et affiche le QR (desktop) ou un bouton « Payer dans l'application bancaire » (mobile).onSuccess du widget se déclenche en parallèle, mais sert uniquement à rediriger l'onglet de l'acheteur.Un snippet, chaque canal avec une webview.
Le snippet est conçu pour être agnostique au canal — pas de redirections dures, pas de cookies, pas de couplage à window.location. Le même module s'exécute partout où une webview fonctionne.
| Canal | Webview | Le snippet s'exécute | Notes |
|---|---|---|---|
| Site du commerçant | Navigateur | Oui — tel quel | Cas d'usage principal. |
| Telegram | Mini App | Oui — même code | Le widget s'exécute dans la webview Mini App. |
| Instagram & TikTok | Link-out | Oui — sur la landing | Du bio / Live / Shop link vers une landing miaPOS qui exécute le même snippet. |
| Aucun | Pas en chat | Meta n'autorise pas de webview en chat. Le backend est réutilisé inchangé via un lien CTA vers une page de paiement hébergée. |
Ce que c'est — et ce que ce n'est pas.
Embed checkout est l'un des deux modes e-commerce. Ils sont complémentaires, pas concurrents.
Ce que c'est
- Un snippet JavaScript que le commerçant intègre sur sa page de paiement
- Une extension additive du protocole e-commerce existant — les plugins de redirection continuent de fonctionner sans changement
- Un cœur agnostique au canal — le même code peut s'exécuter dans une Telegram Mini App
- Rail IP uniquement — aucune donnée de carte, aucun PAN, aucun 3DS, aucune PCI
- Un point de terminaison à portée de capacité — le navigateur ne détient jamais que
paymentId
Ce que ce n'est pas
- Un remplacement des liens de paiement — ceux-ci restent dédiés aux scénarios sans code / facture / QR sur reçu
- Un processeur de cartes — aucune carte n'est impliquée à aucun moment
- Une page sur notre domaine dans un iframe — le widget affiche sa propre interface
- La source de vérité pour la commande — c'est le webhook sur le backend du commerçant
- Une expérience en chat sur WhatsApp — Meta n'y autorise pas de webview
« Le paiement le plus rapide est celui qui demande le moins de champs. »
Pour les commerçants qui possèdent leur page de paiement — et leurs chats.
Le snippet embed s'adapte là où la marque appartient au commerçant, pas à nous.
Boutiques D2C web
Gardez l'acheteur sur la page de la marque du panier à la confirmation. Le paiement ne va jamais vers un domaine tiers.
HoReCa & services
Pré-commandes, acomptes et flux de réservation in-bot dans les Telegram Mini Apps — le même snippet s'y exécute.
Biens numériques
Règlement instantané, déverrouillage instantané. Le widget déclenche onSuccess dès que la banque confirme.
Social commerce
Instagram et TikTok link-out vers une landing qui exécute le même snippet — un seul cœur d'acceptation.
Abonnement & SaaS
Les paiements récurrents dépendent du rail, là où l'IPS sous-jacent les prend en charge.
Places de marché & plateformes
Déposez le snippet dans le paiement d'un locataire sans forker l'intégration par locataire.