Accéder directement au contenu
Créez un compte ou connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compteConnectez-vous
Démarrer
Paiements
Revenus
Plateformes et marketplaces
Gestion de fonds
Ressources pour les développeurs
API et SDKAide
AperçuAccepter un paiementMettre votre intégration à niveau
Paiements en ligne
PrésentationTrouver votre cas d'usage
Utiliser Payment Links
Utiliser une page de paiement préconfiguré
Créer une intégration personnalisée avec Elements
Développer une intégration dans l'application
Utiliser Managed Payments
Paiements récurrents
Paiements par TPE
Terminal
Moyens de paiement
Ajouter des moyens de paiement
Gérer les moyens de paiement
Paiement accéléré avec Link
Opérations de paiement
Analyses
Soldes et délai de règlement
Conformité et sécurité
Devises
Refus de paiement
Litiges
Prévention de la fraude
Radar pour la protection contre la fraude
Virements
ReçusRemboursements et annulations
Intégrations avancées
Tunnels de paiement personnalisés
Acquisition flexible
Paiements hors session
Orchestration multiprestataire
Au-delà des paiements
Constituez votre entreprise
Cryptomonnaies
Commerce agentique
Paiements automatiques
    Présentation
    Démarrage rapide
    x402
Financial Connections
Climate
Vérifier l'identité
États-Unis
Français (France)
AccueilPaiementsMachine payments

Remarque

Cette page n'est pas encore disponible dans cette langue. Nous faisons tout notre possible pour proposer notre documentation dans davantage de langues et nous vous fournirons la version traduite dès qu'elle sera disponible.

x402 paymentsVersion bêta privée

Utilisez x402 pour les paiements machine à machine.

x402 est un protocole pour les paiements par internet. Lorsqu’un client demande une ressource payante, votre serveur renvoie une réponse HTTP 402 avec les informations de paiement. Le client paie, puis relance la requête avec une autorisation. Stripe gère les adresses de versement et capture automatiquement le PaymentIntent lorsque les fonds sont réglés sur la chaîne.

GitHub

Vous trouverez le code source complet de l’application sur GitHub.

Avant de commencer

  • A Stripe account
  • Paiements par cryptomonnaies activés sur votre compte

Payment lifecycle

Dans ce guide, vous créez le serveur. Votre serveur indique qu’un paiement est requis et renvoie le contenu après un paiement réussi. Vous interagissez avec Stripe et un facilitateur pour finaliser le paiement.

Create your endpoint

Add payment middleware to your endpoint to require payment.

This example requires 0.01 USD, paid in USDC, per request to /paid.

Node.js
Python
No results
import { paymentMiddleware } from "@x402/hono"; import { x402ResourceServer, HTTPFacilitatorClient } from "@x402/core/server"; import { ExactEvmScheme } from "@x402/evm/exact/server"; app.use( paymentMiddleware( { "GET /paid": { accepts: [ { scheme: "exact", price: "$0.01", network: "eip155:84532", payTo: createPayToAddress, } ], description: "Data retrieval endpoint", mimeType: "application/json", } }, new x402ResourceServer(facilitatorClient).register( "eip155:84532", new ExactEvmScheme() ) ) )

Create a PaymentIntent

Pour traiter les paiements, créez un PaymentIntent qui accepte le moyen de paiement crypto. Utilisez la méthode payTo antérieure.

Node.js
Python
No results
async function createPayToAddress(context) { // If a payment header exists, extract the destination address from it if (context.paymentHeader) { const decoded = JSON.parse( Buffer.from(context.paymentHeader, "base64").toString() ); const toAddress = decoded.payload?.authorization?.to; if (toAddress && typeof toAddress === "string") { return toAddress; } } // Create a new PaymentIntent to get a fresh crypto deposit address const decimals = 6; // USDC has 6 decimals const amountInCents = Number(10000) / Math.pow(10, decimals - 2); const paymentIntent = await stripe.paymentIntents.create({ amount: amountInCents, currency: "usd", payment_method_types: ["crypto"], payment_method_data: { type: "crypto", }, payment_method_options: { crypto: { mode: "custom", }, }, confirm: true, }); const depositDetails = paymentIntent.next_action.crypto_collect_deposit_details; const payToAddress = depositDetails.deposit_addresses["base"].address; return payToAddress; }

This function returns a crypto deposit address that the client receives and uses for payment.

Test your endpoint

Envoyez une requête à votre serveur sans client admissible pour confirmer qu’elle renvoie un code d’état 402.

Command Line
curl http://localhost:3000/paid

Vous voyez un code d’état 402.

Ensuite, effectuez une requête avec un client admissible. Utilisez le purl de Stripe pour effectuer des tests dans la ligne de commande.

Command Line
purl http://localhost:3000/paid

Si vous avez connecté un wallet, le serveur renvoie le contenu et vous pouvez confirmer le paiement. Dans le Dashboard Stripe, rendez-vous dans Paiements pour voir la transaction.

Cette page vous a-t-elle été utile ?
OuiNon
  • Besoin d'aide ? Contactez le service Support.
  • Consultez notre log des modifications.
  • Des questions ? Contactez l'équipe commerciale.
  • LLM ? Lire llms.txt.
  • Propulsé par Markdoc