Tapaya
Paiements en lignePremiers pasDémarrage rapide

Démarrage rapide

Acceptez votre premier paiement en ligne avec Tapaya Checkout en quelques appels serveur.

Le Hosted Checkout vous fournit une page de paiement prête à l’emploi pour les cartes, Apple Pay et Google Pay. Votre serveur crée une session pour une commande, le client paie, et votre serveur confirme le résultat avant de traiter la commande. L’Embedded Checkout intègre des champs de carte sécurisés directement dans votre propre page.

Essayez les deux flux ci-dessous. La carte de test est déjà renseignée : sélectionnez Pay et suivez le paiement jusqu’au bout, ou essayez Apple Pay ou Google Pay. Les deux sont des répliques, rien ne quitte donc votre navigateur.

checkout.sandbox.tapaya.com/c/cs_7Hq2x9LmR4
Return to store

Pay to

€121.00

or

Powered by Tapaya

Choisir comment vos clients paient

Hosted CheckoutRecommended

Send customers to a secure payment page that Tapaya runs for you.

Customer pays
On a Tapaya-hosted page
You build
One server call and a redirect
Payment methods
Cards, Apple Pay, Google Pay
Branding
Your logo and color
Read the guide

Drop secure card fields into the checkout page you already have.

Customer pays
Inside your own checkout page
You build
Payment endpoints and your checkout UI
Payment methods
Cards, Apple Pay, Google Pay
Branding
Your own page
Read the guide

Disponibilité

Le Checkout est en production pour les commerçants approuvés. Le Hosted Checkout et l’Embedded Checkout prennent tous deux en charge les cartes, Apple Pay et Google Pay. La disponibilité des portefeuilles dépend des paramètres du Checkout, de l’enregistrement du domaine ainsi que de l’appareil et du navigateur du client. L’Embedded Checkout utilise Tapaya.js 0.2.0 et le SDK Node.js 0.3.0. Commencez dans la sandbox, puis suivez Passer en production.

Accepter un paiement

Effectuez l’onboarding de votre commerçant

Effectuez l’onboarding du commerçant avec la fonctionnalité de paiements en ligne, ou avec les paiements en ligne et en magasin. Un commerçant qui utilise uniquement le Checkout n’a pas besoin de terminal. Indiquez le site web de la boutique et les informations sur l’activité en ligne, puis attendez l’approbation du processeur. La seule création d’une fiche commerçant ou d’une clé API n’active pas les paiements.

Ouvrez Checkout dans la Tapaya Platform. Les commerçants qui demandent les paiements en ligne y apparaissent automatiquement, y compris ceux en attente d’approbation. Poursuivez lorsque le commerçant est Ready.

Ouvrez les Settings du commerçant. Sous Merchant API key redirects, ajoutez votre boutique à Allowed websites et définissez les URL de succès et d’annulation par défaut. Une plateforme qui utilise la Secret key de l’organisation les définit plutôt sous Organization defaults. Les exemples utilisent https://shop.example. Consultez les paramètres du Checkout pour les portefeuilles et l’image de marque.

Stockez votre clé sur le serveur

Dans les Settings du commerçant, sélectionnez Create merchant key et copiez la clé tapaya_test_…. Elle ne s’affiche qu’une seule fois. Conservez-la uniquement dans la configuration côté serveur. Elle n’a jamais sa place dans le code du navigateur ni dans le gestionnaire de versions.

.env
TAPAYA_ENVIRONMENT=sandbox
TAPAYA_CHECKOUT_API_URL=https://api.sandbox.tapaya.com
TAPAYA_SECRET_KEY=tapaya_test_...

Le SDK lit automatiquement TAPAYA_SECRET_KEY et TAPAYA_ENVIRONMENT. Les exemples HTTP ci-dessous utilisent TAPAYA_CHECKOUT_API_URL. Chargez les variables dans le processus de votre serveur ; le SDK ne charge pas les fichiers .env.

Envoyez la clé sous la forme Authorization: Bearer <key>. Une clé de commerçant sélectionne son commerçant, aucun autre en-tête n’est donc nécessaire. Une plateforme qui sert de nombreux commerçants utilise plutôt la Secret key de l’organisation et envoie X-Tapaya-Merchant-Token dans chaque requête. Voir Authentification du Checkout.

Créez une session Checkout

Lorsque le client clique sur Checkout dans votre boutique, calculez le total final sur votre serveur, enregistrez la commande avec une clé de tentative unique et créez une session. merchantOrderId est obligatoire, et une commande ne peut être payée qu’une seule fois. Les montants sont exprimés en unités mineures : 12100 correspond donc à 121,00 EUR.

Pour Node.js 22.13.0 ou version ultérieure, installez le SDK ESM avant d’utiliser l’exemple Node.js SDK :

npm install @tapayadot/checkout
server/checkout.js
const response = await fetch(
  new URL('/merchant/checkout-sessions', process.env.TAPAYA_CHECKOUT_API_URL),
  {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${process.env.TAPAYA_SECRET_KEY}`,
      'Content-Type': 'application/json',
      'Idempotency-Key': order.checkoutAttemptKey,
    },
    body: JSON.stringify({
      merchantOrderId: order.id,
      amount: order.totalInMinorUnits,
      currency: order.currency,
      successUrl: 'https://shop.example/checkout/return',
      cancelUrl: 'https://shop.example/checkout/cancel',
    }),
  },
);
if (!response.ok) throw new Error(`Checkout failed (${response.status})`);
const session = await response.json();

Si la requête expire, relancez-la avec la même clé et le même corps. L’API rejoue la session d’origine au lieu d’en créer une deuxième.

Redirigez le client

Enregistrez session.id avec votre commande, puis envoyez le navigateur vers session.url avec HTTP 303. Utilisez l’URL exactement telle qu’elle est renvoyée.

// First persist session.id as the order's checkoutSessionId.
return Response.redirect(session.url, 303);

Tapaya affiche le récapitulatif de la commande et le formulaire de paiement sécurisé, et gère la tokenisation, 3-D Secure et le débit. Après un refus, le client peut essayer une autre carte sur la même page. Les sessions acceptent de nouveaux paiements pendant 30 minutes.

Vérifiez le paiement sur votre serveur

Lorsque le client arrive sur votre URL de succès ou d’annulation, récupérez la session avec votre Secret key et comparez-la avec la commande enregistrée. Une redirection seule ne prouve jamais le paiement.

server/return.js
const response = await fetch(
  new URL(
    `/merchant/checkout-sessions/${encodeURIComponent(order.checkoutSessionId)}`,
    process.env.TAPAYA_CHECKOUT_API_URL,
  ),
  { headers: { Authorization: `Bearer ${process.env.TAPAYA_SECRET_KEY}` } },
);
if (!response.ok) throw new Error(`Status check failed (${response.status})`);
const current = await response.json();

Quelle que soit l’intégration, comparez le résultat avec la commande enregistrée avant de la traiter :

const matches =
  current.id === order.checkoutSessionId &&
  current.merchantOrderId === order.id &&
  current.amount === order.totalInMinorUnits &&
  current.currency === order.currency;

if (matches && current.paymentStatus === 'successful') {
  await fulfillOnce(order); // idempotent, safe on repeated visits
}

Si le statut est toujours unpaid ou si la récupération échoue, conservez l’ID de session et vérifiez à nouveau. Il n’existe pas encore de webhooks : exécutez donc une tâche de rapprochement pour les clients qui ferment l’onglet avant de revenir.

Passer en production

  1. Effectuez l’onboarding du commerçant en production avec les paiements en ligne, ou avec les paiements en ligne et en magasin. Indiquez le site web de la boutique et les informations sur l’activité en ligne. Un commerçant existant en magasin a tout de même besoin de l’approbation du processeur pour les paiements en ligne.

  2. Vérifiez que le commerçant est Ready dans les paramètres du Checkout. Cela nécessite un commerçant actif, l’approbation du processeur pour les paiements en ligne et une passerelle de production configurée.

  3. Créez une clé checkout de commerçant de production, ou utilisez la Secret key de production de votre organisation avec le jeton du commerçant. Conservez les identifiants de production sur votre serveur.

  4. Définissez l’origine de l’API et l’environnement de production. Remplacez la configuration de la sandbox dans votre déploiement :

    Production server configuration
    TAPAYA_ENVIRONMENT=production
    TAPAYA_CHECKOUT_API_URL=https://api.tapaya.com
    TAPAYA_SECRET_KEY=tapaya_live_...

    Les exemples HTTP utilisent TAPAYA_CHECKOUT_API_KEY ; définissez-la également avec votre clé de production. Utilisez l’URL de session exactement telle qu’elle est renvoyée. Les pages hébergées de production s’ouvrent sur https://checkout.tapaya.com.

  5. Configurez vos URL de retour de production pour le Hosted Checkout. Pour Apple Pay en mode intégré, enregistrez chaque domaine de boutique et hébergez son fichier de vérification. Google Pay en production nécessite un Google Pay merchant ID configuré.

  6. Parcourez la liste de contrôle QA, y compris la vérification côté serveur et la tâche de production qui contrôle les paiements non résolus. Utilisez de vrais moyens de paiement en production. Les cartes de test de la sandbox sont réservées à la sandbox.

Étapes suivantes

Il manque quelque chose sur cette page ?Demandez une fonctionnalité. Nous joignons cette page pour que l’équipe ait le contexte.