Accéder directement au contenu
Créez un compte
ou
connecter-vous
Logo de la documentation Stripe
/
Demander à l'assistant IA
Créez un compte
Connectez-vous
Démarrer
Paiements
Automatisation des opérations financières
Plateformes et places de marché
Gestion de fonds
Outils de développement
Démarrer
Paiements
Automatisation des opérations financières
Démarrer
Paiements
Automatisation des opérations financières
Plateformes et places de marché
Gestion de fonds
Aperçu
À propos des paiements Stripe
Mettre votre intégration à niveau
Analyses des paiements
Paiements en ligne
PrésentationTrouver votre cas d'usageManaged Payments
Utiliser Payment Links
Créer une page de paiement
Développer une intégration avancée
Développer une intégration dans l'application
Moyens de paiement
Ajouter des moyens de paiement
Gérer les moyens de paiement
Paiement accéléré avec Link
Interfaces de paiement
Payment Links
Checkout
Web Elements
Elements intégrés à l'application
Scénarios de paiement
Tunnels de paiement personnalisés
Acquisition flexible
Orchestration
Paiements par TPE
Terminal
Autres produits Stripe
Financial Connections
Cryptomonnaies
    Présentation
    Paiements en stablecoins
    Rampe d'accès à la cryptomonnaie
      Présentation
      Démarrer
      Guide de démarrage rapide sur la rampe d'accès intégrable
      Guide étendu sur la rampe d'accès intégrable
      Rampe d'accès autonome sans code
      Guide sur la rampe d'accès autonome hébergée
      Intégration de nouveautés
      Utiliser l'API Onramp Quotes
      Intégrer la cryptomonnaie pour mobile
      Installer le module ES du SDK Stripe Crypto
      Références
      Documentation de l'API Onramp
      Bonnes pratiques d'intégration de back-end
    Virements en cryptomonnaie stable
    Comptes financiers en stablecoins
Climate
AccueilPaiementsCryptoFiat-to-crypto onramp

Documentation de l'API OnrampVersion bêta publique

Utilisez la documentation de l'API Onramp lors de la création de la rampe d'accès intégrable.

Copier la page

Référez-vous aux flux de développement suivants lors de la création de votre intégration de rampe d’accès.

Intégrer la rampe d’accès dans votre application

Avant de pouvoir utiliser le mode production, Stripe doit approuver votre demande d’inscription à la rampe d’accès.

Démarrer

Pour intégrer une application à la rampe d’accès :

  1. Après votre inscription à Stripe, utilisez le Dashboard pour obtenir vos clés API secrètes et publiques.

  2. Générez un objet CryptoOnrampSession côté serveur.

  3. Sur le serveur, exposez un nouvel endpoint d’API (par exemple, myserver.com/mint-onramp-session) qui appelle l’endpoint Stripe POST /v1/crypto/onramp_sessions. Cette opération crée une session de rampe d’accès que vous pouvez utiliser avec les nouveaux utilisateurs ou les utilisateurs récurrents. Vous devez créer une session par utilisateur.

  4. Exécutez la commande suivante :

    Command Line
    curl -X POST https://api.stripe.com/v1/crypto/onramp_sessions \ -u
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :

    Vous recevez une réponse semblable à ce qui suit :

    { "id": "cos_0MYvmj589O8KAxCGp14dTjiw", "object": "crypto.onramp_session", "client_secret": "cos_0MYvmj589O8KAxCGp14dTjiw_secret_BsxEqQLiYKANcTAoVnJ2ikH5q002b9xzouk", "created": 1675794053, "livemode": false, "status": "initialized", "transaction_details": { "destination_currency": null, "destination_amount": null, "destination_network": null, "fees": null, "lock_wallet_address": false, "source_currency": null, "source_amount": null, "destination_currencies": [ "btc", "eth", "sol", "usdc", "xlm" ], "destination_networks": [ "bitcoin", "ethereum", "solana", "stellar" ], "transaction_id": null, "wallet_address": null, "wallet_addresses": null } }

    Cet endpoint renvoie des codes d’erreur si Stripe ne peut pas créer de sessions de rampe d’accès. Consultez la section sur la prise en charge ci-dessous pour savoir pourquoi les erreurs peuvent se produire. Nous vous recommandons de rendre le composant de la rampe d’accès conditionnel lorsqu’un utilisateur obtient un état HTTP 200 lors de la création d’une session, en fournissant une interface utilisateur de secours capable de traiter les erreurs de création de session.

Utiliser le client_secret de la session sur le front-end

Pour initialiser le composant de la rampe d’accès, vous avez besoin des éléments suivants :

  • Votre clé API publique.
  • Le client_secret de votre requête à POST /v1/crypto/onramp_sessions.

Le code ci-dessous permet d’intégrer un iframe sur le nœud #onramp-element, qui héberge l’ensemble de la rampe d’accès. Vous pouvez utiliser un écouteur d’événements pour améliorer les fonctionnalités de votre application. Par exemple, vous pouvez reprendre une opération dans une application décentralisée (Dapp) après des achats de cryptomonnaies. Consultez la section sur les événements de front-end pour obtenir la liste des événements auxquels il est possible de s’abonner.

index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>Crypto Onramp</title> <meta name="description" content="A demo of hosted onramp" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <script src="https://js.stripe.com/v3/"></script> <script type="text/javascript" src="https://crypto-js.stripe.com/crypto-onramp-outer.js"></script> </head> <body> <div id="onramp-element" style="max-width: 500px"> <script> const stripeOnramp = StripeOnramp(
"pk_test_TYooMQauvdEDq54NiTphI7jx"
); initialize(); // initialize onramp element with client secret function initialize() { const clientSecret = "cos_1LLgeLF5fgi2FFcAWx8RlsMT_secret_WNA1VOkwZ0bHMc9MtOuyJ4vto00EMsLP7Io"; const onrampSession = stripeOnramp.createSession({clientSecret}); onrampSession .mount("#onramp-element"); } </script> </body> </html>

L’élément CryptoOnramp s’affiche et prend le relais

Une fois que l’élément HTML CryptoOnramp ci-dessus s’affiche, le client front-end pilote l’interface. Comme l’état de la session change et que nous collectons davantage d’informations autour de transaction_details, l’objet CryptoOnrampSession est mis à jour en conséquence. Les webhooks et les événements front-end sont générés pour chaque transition d’état qui se produit. Les écouteurs d’événement front-end vous permettent de rediriger les utilisateurs vers le flux d’utilisateurs de votre application une fois la session de rampe d’accès terminée.

(Facultatif) Modifier l’apparence de la rampe d’accès

Pour activer le mode sombre, incluez une structure d’apparence dans l’appel de création de session ci-dessus.

const onrampSession = stripeOnramp.createSession({ clientSecret: clientSecret, appearance: { theme: 'dark' }, });

Si vous ne spécifiez pas l’apparence, la rampe d’accès adopte par défaut un thème clair. Vous pouvez également modifier le thème après l’affichage de la rampe d’accès en appelant :

onrampSession.setAppearance({ theme: newTheme });

Vous pouvez utiliser vos paramètres de marque pour charger votre logo et les couleurs de votre marque, qui seront automatiquement appliqués aux sessions de rampe d’accès créées avec la clé API de votre plateforme.

Préremplir les paramètres de transaction

Pour fournir un flux utilisateur de la rampe d’accès transparent, vous pouvez préremplir certains des paramètres de la session de rampe d’accès. Par exemple, une Dapp ou un portefeuille possède déjà l’adresse wallet_addresses d’un utilisateur. Pour ce faire, procédez comme suit lors de la création d’une session :

Command Line
curl -X POST https://api.stripe.com/v1/crypto/onramp_sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "wallet_addresses[ethereum]"="0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2" \ -d "source_currency"="usd" \ -d "destination_currency"="eth" \ -d "destination_network"="ethereum" \ -d "destination_amount"="0.1234"

Vous recevez une réponse semblable à ce qui suit :

{ "id": "cos_0MYvnp589O8KAxCGwmWATYfA", "object": "crypto.onramp_session", "client_secret": "cos_0MYvnp589O8KAxCGwmWATYfA_secret_LhqXJi2lvbMCYhVHfrHGfUfX6009qtZPtV7", "created": 1675794121, "livemode": false, "status": "initialized", "transaction_details": { "destination_currency": "eth", "destination_amount": "0.123400000000000000", "destination_network": "ethereum", "fees": null, "lock_wallet_address": false, "source_currency": "usd", "source_amount": null, "destination_currencies": [ "btc", "eth", "sol", "usdc", "xlm" ], "destination_networks": [ "bitcoin", "ethereum", "solana", "stellar" ], "transaction_id": null, "wallet_address": null, "wallet_addresses": { "bitcoin": null, "ethereum": "0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2", "polygon": null, "solana": null, "stellar": null, "destination_tags": null } } }

Nous autorisons le préremplissage des paramètres suivants :

  • wallet_addresses : adresse de portefeuille suggérée pour l’envoi de cryptomonnaie (la sélection par défaut sur l’écran du portefeuille)
  • lock_wallet_address : indique si l’adresse de portefeuille suggérée doit être verrouillée ou non
  • source_currency : devise fiduciaire de la transaction (usd et eur uniquement pour le moment)
  • source_amount : montant en devise fiduciaire à utiliser pour l’achat de cryptomonnaies (cet attribut et le montant de destination s’excluent mutuellement)
  • destination_network : réseau de cryptomonnaies par défaut pour cette rampe d’accès (par exemple, ethereum)
  • destination_currency : cryptomonnaie par défaut pour cette session de rampe d’accès (par exemple, eth)
  • destination_amount : montant en cryptomonnaie à acheter (cet attribut et le montant source s’excluent mutuellement)
  • destination_currencies : un tableau de cryptomonnaies auxquelles vous souhaitez vous limiter (par exemple, [eth, usdc])
  • destination_networks : un tableau des réseaux de cryptomonnaies auxquels vous souhaitez vous limiter (par exemple, [ethereum, polygon]).

Veuillez vous reporter à la documentation de l’API pour en savoir plus sur les exigences spécifiques et leur impact sur les utilisateurs dans l’interface utilisateur de la rampe d’accès.

Préremplir les informations client

Afin de réduire la complexité pour l’utilisateur du flux de la rampe d’accès et d’augmenter le taux de conversion, vous pouvez préremplir certaines des informations KYC requises pour l’utilisateur si vous les avez déjà recueillies dans votre application.

Tout au long du flux, les utilisateurs doivent fournir au moins les informations suivantes :

  • Adresse e-mail
  • Prénom
  • Nom de famille
  • Date de naissance
  • Numéro de sécurité sociale
  • Adresse du domicile (pays, ligne 1 de l’adresse, ligne 2 de l’adresse, ville, État, code postal)

L’API Onramp permet de préremplir tous ces champs, à l’exception du numéro de sécurité sociale. Pour préremplir ces informations, vous pouvez les fournir à l’aide du paramètre customer_information dans l’API de création OnrampSession.

Exemple de requête :

Command Line
curl -X POST https://api.stripe.com/v1/crypto/onramp_sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "customer_information[email]"="john@doe.com" \ -d "customer_information[first_name]"="John" \ -d "customer_information[last_name]"="Doe" \ -d "customer_information[dob][year]"=1990 \ -d "customer_information[dob][month]"=7 \ -d "customer_information[dob][day]"=4 \ -d "customer_information[address][country]"="US" \ -d "customer_information[address][line1]"="354 Oyster Point Blvd" \ -d "customer_information[address][line2]"="Apt 1A" \ -d "customer_information[address][city]"="South San Francisco" \ -d "customer_information[address][state]"="CA" \ -d "customer_information[address][postal_code]"="94080"

Réponse :

{ "id": "cos_1MbuUeAEFtmWU4EVBFZS0gce", "object": "crypto.onramp_session", "client_secret": "cos_1MbuUeAEFtmWU4EVBFZS0gce_secret_zPsPPytwNU6mMKh1Bmz7ymXGi00ILwwyGeG", "created": 1676504072, "livemode": false, "status": "initialized", "transaction_details": { "destination_currency": null, "destination_amount": null, "destination_network": null, "fees": null, "lock_wallet_address": false, "source_currency": null, "source_amount": null, "destination_currencies": [ "btc", "eth", "sol", "usdc", "xlm" ], "destination_networks": [ "bitcoin", "ethereum", "solana", "polygon", "stellar" ], "transaction_id": null, "wallet_address": null, "wallet_addresses": null } }

Nous autorisons le préremplissage des paramètres suivants :

  • customer_information.email : chaîne au format libre pour l’adresse e-mail de l’utilisateur
  • customer_information.first_name : chaîne au format libre pour le prénom de l’utilisateur
  • customer_information.last_name : chaîne au format libre pour le nom de famille de l’utilisateur
  • customer_information.dob.year : nombre entier pour l’année de naissance de l’utilisateur
  • customer_information.dob.month : nombre entier pour le mois de naissance de l’utilisateur
  • customer_information.dob.day : nombre entier pour le jour de naissance de l’utilisateur
  • customer_information.address.country : chaîne du code pays à deux lettres du pays de résidence de l’utilisateur
  • customer_information.address.line1 : chaîne au format libre pour la première ligne de l’adresse de l’utilisateur
  • customer_information.address.line2 : chaîne au format libre pour la deuxième ligne de l’adresse de l’utilisateur
  • customer_information.address.city : chaîne au format libre pour la ville de l’utilisateur
  • customer_information.address.state : chaîne du code d’État à deux lettres pour les États des États-Unis (le nom complet de l’État fonctionne également), par exemple « CA » ou « California »
  • customer_information.address.postal_code : chaîne au format libre pour le code postal de l’utilisateur

Tous les champs sont facultatifs, et vous pouvez fournir n’importe quel sous-ensemble d’entre eux pour le préremplissage. Cependant, si vous indiquez la date de naissance, vous devez également fournir tous les champs year, month et day (et pas seulement un ou deux de ces champs).

Gérer la prise en charge des utilisateurs et de la fraude

Stripe impose des limitations à la rampe d’accès pour la prise en charge des utilisateurs et en cas d’attaques frauduleuses.

Vérifier la prise en charge des utilisateurs

Spécificités régionales
États-Unis
EU

Onramp n’est disponible qu’aux États-Unis (à l’exception d’Hawaï) et dans les pays de l’UE.

Transmettez customer_ip_address lors de la création de la session afin que nous puissions vérifier à l’avance les limitations susmentionnées. L’endpoint renvoie HTTP 400 avec code=crypto_onramp_unsupportable_customer si le client se trouve à un endroit que nous ne prenons pas en charge (selon sa customer_ip_address).

Dans ce cas, il se peut que vous souhaitiez masquer l’option de la rampe d’accès aux utilisateurs. Sinon, notre interface utilisateur de la rampe d’accès affiche l’état disabled.

Voici un exemple de requête et de réponse (400) illustrant ce comportement :

Command Line
curl -X POST https://api.stripe.com/v1/crypto/onramp_sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "customer_ip_address"="8.8.8.8" \
{ "error": { "type": "invalid_request_error", "code": "crypto_onramp_unsupportable_customer", "message": "Based on the information provided about the customer, we’re currently unable to support them." } }

Gérer les attaques frauduleuses

Stripe fait office d’entité officielle et accepte la responsabilité en cas de litige et de fraude. Nous possédons une grande expertise en matière de gestion des risques, mais nous pouvons décider de restreindre temporairement la création de sessions de rampe d’accès si nous détectons une situation à haut risque (par exemple, si nous détectons des attaques et des failles actives).

Si nous devons fermer l’API en raison d’une fraude illimitée, nous renverrons le message suivant lorsqu’une personne tentera de créer une nouvelle session :

Command Line
curl -X POST https://api.stripe.com/v1/crypto/onramp_sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\

Vous recevez une réponse semblable à ce qui suit :

{ "error": { "type": "api_error", "code": "crypto_onramp_disabled", "message": "The v1/crypto/onramp_sessions endpoint has been disabled temporarily. Stripe will get in contact with you about details of the outage.", "updated": 1652025690 } }

Documentation de l’API

Ressource CryptoOnrampSession

La ressource CryptoOnrampSession se présente comme suit :

{ "id": "cos_1Ke0052eZvKYlo2Clh7lJ50Q", "object": "crypto.onramp_session", // One of the most important parts of the resource is going to be this // client_secret. This will be passed from the server to the client to // drive a single session using our embedded widget. "client_secret": "cos_1Ke0052eZvKYlo2Clh7lJ50Q_secret_f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8", "created": 1647449225, "livemode": true, // A hash representing monetary details of the transaction this session represents "transaction_details": { // The consumer's wallet address (where crypto will be sent to) "wallet_addresses": null | { "ethereum": "0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2", "solana": "bufoH37MTiMTNAfBS4VEZ94dCEwMsmeSijD2vZRShuV", "bitcoin": "1BuFoRu4W1usdnj1nPSfnNUgUm9BM6JtnV", "stellar": "GBUCRQX2GXV2CCPNBVB6FMXORFRNXXQMZ5RN2GMH2KZNMH7O4WON5DDN", // Mapping of assets to the destination tag where the crypto will be sent to (for supported assets) "destination_tags": null | { "xlm": "123456789" } }, // A fiat currency code "source_currency": null | "usd", "eur", // The amount of fiat we intend to onramp - excluding fees "source_amount": null | "1.01", // The selected destination_currency to convert the `source` to. // This should be a a crypto currency, currency code // If destination_currencies is set, it must be a value in that array. "destination_currency": null | "usdc", // The specific crypto network the `destination_currency` is settled on. // If destination_networks is set, it must be a value in that array. "destination_network": null | "ethereum", // If a platform wants to lock the currencies an session will support, // they can add supported currencies to this array. If left null, the experience // will allow selection of all supported destination currencies. "destination_currencies": null | ["eth", "usdc", "btc" , "xlm"], // If a platform wants to lock the supported networks, they can do so through // this array. If left null, the experience will allow selection of all // supported networks. "destination_networks": null | ["solana", "ethereum", "polygon" , "stellar"], // The amount of crypto the customer will get deposited into their wallet "destination_amount": null | "1.012345678901234567", // Details about the fees associated with this transaction // Note: The currency associated with fee is always the same as // source_currency // Note: We won't know what fees to charge until after the customer has // passed status=onboarding "fees": null | { // The cost associated with moving crypto from Stripe to the end // consumers's wallet. e.g: for ETH, this is called "gas fee", // for BTC this is a "miner's fee". "network_fee_amount": "1.23", // Stripe's cut of the transaction "transaction_fee_amount": "1.23", }, // The total amount of source currency the consumer needs to give us to // complete the transaction. Equivalent to source_amount + fees. "source_total_amount": null | "3.47", // Pointer to the on network transaction id/hash // This will only be set if the sessions hits the stauts=fulfillment_complete // and we've transferred the crypto successfully to the external wallet. // E.g: https://etherscan.io/tx/0xc2573af6b3a18e6f7c0e1cccc187a483f61d72cbb421f7166970d3ab45731a95 "transaction_id": null | "0xc2573af6b3a18e6f7c0e1cccc187a483f61d72cbb421f7166970d3ab45731a95" }, // The status of the OnrampSession. // One of = {initialized, rejected, // requires_payment, fulfillment_processing, fulfillment_complete} "status": "initialized" }

Machine à états CryptoOnrampSession

Le champ status représente une machine à états pour la session avec les états suivants :

Machine à états pour l'objet CryptoOnrampSession
  • initialized : l’application vient de créer la session de rampe d’accès côté serveur, mais le client ne l’a pas encore utilisée. Les sessions sont dans cet état jusqu’à ce que l’utilisateur s’inscrive et soit prêt à payer.
  • rejected : nous avons rejeté le client pour une raison quelconque (échec des KYC, problèmes de contrôle des sanctions, contrôle de la fraude).
  • requires_payment : l’utilisateur a terminé son inscription ou sa connexion et il accède à la page de paiement. En cas d’échec de la tentative de paiement, ils conserve cet état.
  • fulfillment_processing : le client a finalisé son paiement. Nous n’avons pas encore envoyé la cryptomonnaie qu’il a achetée.
  • fulfillment_complete : le client a été en mesure de finaliser le paiement de la cryptomonnaie et nous avons confirmé l’envoi.

Opérations CryptoOnrampSession

Tous les endpoints nécessitent une authentification avec votre clé API. L’en-tête d’authentification est omis dans les exemples de requêtes.

Les applications peuvent effectuer les opérations suivantes sur une CryptoOnrampSession :

  • Créer une session
  • Obtenir une session existante

Créer une session

Endpoint : POST /v1/crypto/onramp_sessions

Nom du paramètreType (facultatif ?) par défaut : ?Détails
wallet_addressesChaîne (facultatif) par défaut : nullL’adresse du portefeuille de cryptomonnaie du client final (pour chaque réseau) à utiliser pour cette transaction.
  • Si la valeur est nulle, l’utilisateur saisit son portefeuille dans l’interface utilisateur de la rampe d’accès.
  • Lorsque ce paramètre est défini, la plateforme doit définir destination_networks ou destination_network et nous procédons à la validation de l’adresse. Les utilisateurs peuvent toujours sélectionner un autre portefeuille dans l’interface utilisateur de la rampe d’accès.

Pour les ressources qui utilisent des balises de destination ou des mémos, vous pouvez imbriquer une carte destination_tags dans wallet_addresses qui mappe les ressources à la balise de destination spécifiée pour un utilisateur.

source_currencyChaîne (facultatif) par défaut : nullLa devise fiduciaire source par défaut pour la session de rampe d’accès.
  • Si la valeur est nulle, une devise par défaut est sélectionnée en fonction des paramètres régionaux de l’utilisateur.
  • Lorsque ce paramètre est défini, il doit s’agir de l’une des devises fiduciaires prises en charge par la rampe d’accès. Les utilisateurs peuvent toujours sélectionner une autre devise dans l’interface utilisateur de la rampe d’accès.
source_amountChaîne (facultatif) par défaut : nullLe montant par défaut des monnaies fiduciaires (en décimales) à échanger en cryptomonnaies.
  • Lorsque la valeur est nulle, une valeur par défaut est calculée si destination_amount est défini.
  • Lorsque ce paramètre est défini, source_amount et destination_amount s’excluent mutuellement (un seul de ces paramètres est pris en charge). Nous ne prenons pas en charge les fractions de centime. Si vous transmettez des fractions de sous-unité d’une devise, une erreur sera générée. Les utilisateurs peuvent modifier la valeur dans l’interface utilisateur de la rampe d’accès.
destination_networksTableau<String> (facultatif) par défaut : nullLa liste des réseaux de cryptomonnaies de destination parmi lesquels l’utilisateur a le choix.
  • Lorsque la valeur est nulle, tous les réseaux de cryptomonnaies pris en charge sont affichés dans l’interface utilisateur de la rampe d’accès.
  • Lorsqu’il est défini, il doit s’agir d’un tableau non vide dans lequel les valeurs du tableau représentent chacune un réseau de chiffrement valide. Les valeurs autorisées sont {solana, ethereum, bitcoin, polygon}. Vous pouvez l’utiliser pour verrouiller les utilisateurs sur un réseau spécifique en transmettant un tableau à valeur unique. Les utilisateurs ne peuvent pas remplacer ce paramètre.
destination_currenciesTableau<String> (facultatif) par défaut : nullListe des cryptomonnaies de destination parmi lesquelles l’utilisateur peut choisir.
  • Lorsque la valeur est nulle, toutes les cryptomonnaies prises en charge sont affichées dans l’interface utilisateur de la rampe d’accès si l’attribut destination_networks est défini.
  • Lorsque ce paramètre est défini, il doit s’agir d’un tableau non vide dans lequel toutes les valeurs sont des cryptomonnaies valides. Il s’agit de {eth, matic, sol, usdc, btc}. Vous pouvez l’utiliser pour verrouiller les utilisateurs sur une cryptomonnaie spécifique en transmettant un tableau à valeur unique. Les utilisateurs ne peuvent pas remplacer ce paramètre.
destination_networkChaîne (facultatif) par défaut : nullRéseau de cryptomonnaies de destination par défaut.
  • Lorsque la valeur est nulle, la première valeur de destination_networks est sélectionnée.
  • Lorsque ce paramètre est défini, si destination_networks est également défini, la valeur de destination_network doit être présente dans ce tableau. Pour verrouiller une valeur destination_network, spécifiez-la en tant que valeur unique dans destination_networks. Les réseaux de destination pris en charge sont {solana, bitcoin, ethereum, polygon}. Les utilisateurs peuvent sélectionner un autre réseau dans l’interface utilisateur de la rampe d’accès si l’attribut destination_networks est défini.
destination_currencyChaîne (facultatif) par défaut : nullLa cryptomonnaie de destination par défaut.
  • Si la valeur est nulle, la première valeur de destination_currencies est sélectionnée.
  • Lorsque ce paramètre est défini, si destination_currencies est également défini, la valeur de destination_currency doit être présente dans ce tableau. Pour verrouiller une valeur de destination_currency, spécifiez-la en tant que valeur unique dans destination_currencies. Les devises de destination prises en charge sont {eth, matic, sol, usdc, btc}. Les utilisateurs peuvent sélectionner une autre cryptomonnaie dans l’interface utilisateur de la rampe d’accès si destination_currencies est défini.
destination_amountChaîne (facultatif) par défaut : nullLe montant par défaut des cryptomonnaies à échanger.
  • Lorsque la valeur est nulle, une valeur par défaut est calculée si source_amount, destination_currency et destination_network sont définis.
  • Lorsque ce paramètre est défini, destination_currency et destination_network doivent également l’être. Toutes les cryptomonnaies sont prises en charge à leur niveau de précision maximal (par exemple, 18 chiffres après la virgule pour eth). Nous validons et générons une erreur si le montant dépasse la précision prise en charge en fonction de la devise de conversion. Les paramètres source_amount et destination_amount s’excluent mutuellement (seul l’un ou l’autre est pris en charge). Les utilisateurs peuvent modifier le montant dans l’interface utilisateur de la rampe d’accès.
customer_ip_addressChaîne (facultatif) par défaut : nullL’adresse IP du client que la plateforme souhaite intégrer. Si l’adresse IP de l’utilisateur se trouve dans une région que nous ne prenons pas en charge, nous renvoyons un HTTP 400 avec un code d’erreur approprié. Nous prenons en charge les IPv4 et IPv6. La prise en charge géographique est à nouveau vérifiée ultérieurement au cours du flux de la rampe d’accès, ce qui permet de masquer l’option de rampe d’accès aux utilisateurs non admissibles pour une meilleure expérience utilisateur.

Exemple de requête et de réponse :

Command Line
curl -X POST https://api.stripe.com/v1/crypto/onramp_sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "wallet_addresses[ethereum]"="0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2" \ -d "source_currency"="usd" \ -d "destination_currency"="eth" \ -d "destination_network"="ethereum" \ -d "destination_currencies[]"="eth" \ -d "destination_networks[]"="ethereum"
{ "id": "cos_0MYvv9589O8KAxCGPm84FhVR", "object": "crypto.onramp_session", "client_secret": "cos_0MYvv9589O8KAxCGPm84FhVR_secret_IGBYKVlTlnJL8UGxji48pKxBO00deNcBuVc", "created": 1675794575, "livemode": false, "status": "initialized", "transaction_details": { "destination_currency": "eth", "destination_amount": null, "destination_network": "ethereum", "fees": null, "lock_wallet_address": false, "source_currency": "usd", "source_amount": null, "destination_currencies": [ "eth" ], "destination_networks": [ "ethereum" ], "transaction_id": null, "wallet_address": null, "wallet_addresses": { "bitcoin": null, "ethereum": "0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2", "polygon": null, "solana": null, "stellar": null, "destination_tags": null } } }

Obtenir une session

Endpoint : GET /v1/crypto/onramp_sessions/:id

Nom du paramètreType (facultatif ?) par défaut : ?Détails
Aucun paramètre n’est pris en charge pour cette opération !

Voici un exemple de requête :

Command Line
curl -X GET https://api.stripe.com/v1/crypto/onramp_sessions/cos_0MYvv9589O8KAxCGPm84FhVR \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:

Vous recevez une réponse semblable à ce qui suit :

{ "id": "cos_0MYvv9589O8KAxCGPm84FhVR", "object": "crypto.onramp_session", "client_secret": "cos_0MYvv9589O8KAxCGPm84FhVR_secret_IGBYKVlTlnJL8UGxji48pKxBO00deNcBuVc", "created": 1675794575, "livemode": false, "status": "initialized", "transaction_details": { "destination_currency": "eth", "destination_amount": null, "destination_network": "ethereum", "fees": null, "lock_wallet_address": false, "source_currency": "usd", "source_amount": null, "destination_currencies": [ "eth" ], "destination_networks": [ "ethereum" ], "transaction_id": null, "wallet_address": null, "wallet_addresses": { "bitcoin": null, "ethereum": "0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2", "polygon": null, "solana": null, "stellar": null, "destination_tags": null } } }

Validation et erreurs

ConditionÉtat HTTPCode d’erreur
Nous ne sommes pas en mesure de créer de nouvelles sessions en raison d’un incident.400crypto_onramp_disabled
D’après le paramètre customer_ip_address, nous ne pouvons pas prendre en charge le client indiqué.400crypto_onramp_unsupported_country ou crypto_onramp_unsupportable_customer
Une customer_ip_address mal formée est transmise au endpoint /v1/crypto/onramp_session.400customer_ip_address
Les paramètres source_amount et destination_amount s’excluent mutuellement, mais ils sont tous les deux définis par la plateforme.400crypto_onramp_invalid_source_destination_pair
L’un des paramètres destination_currency et destination_network est défini, mais pas l’autre400crypto_onramp_incomplete_destination_currency_and_network_pair
La combinaison de destination_currency et destination_network n’est pas valide400crypto_onramp_invalid_destination_currency_and_network_pair
Le paramètre source_amount est défini, mais pas source_currency400crypto_onramp_missing_source_currency
La valeur de source_amount n’est pas un nombre positif400crypto_onramp_invalid_source_amount
Le paramètre destination_amount est défini, mais pas destination_currency400crypto_onramp_missing_destination_currency
La valeur de destination_amount n’est pas un nombre positif400crypto_onramp_invalid_destination_amount
La combinaison de destination_currencies et destination_networks ne comporte aucune devise prise en charge400crypto_onramp_invalid_destination_currencies_and_networks
destination_currency ne figure pas dans destination_currencies400crypto_onramp_conflicting_destination_currency
destination_network ne figure pas destination_networks400crypto_onramp_conflicting_destination_network
Au moins une des adresses de portefeuille figurant dans wallet_addresses est associée à un réseau qui n’apparaît pas dans destination_networks400crypto_onramp_wallet_addresses_not_all_networks_supported
Aucune adresse de portefeuille n’a été fournie dans wallet_addresses, alors que la valeur de lock_wallet_address est définie sur « true »400crypto_onramp_no_wallet_address_to_lock
L’entreprise n’a pas défini les champs business_name ou business_url. Ceux-ci sont renseignés dans le Dashboard sous Public business name et Business website400crypto_onramp_merchant_not_properly_setup

Récupérer plusieurs sessions

Endpoint : GET /v1/crypto/onramp_sessions

Récupérez plusieurs sessions de rampe d’accès en même temps à l’aide de l’endpoint list.

Webhooks

Nous envoyons un webhook crypto.onramp_session_updated chaque fois que l’état d’une session de rampe d’accès change après sa création. Nous n’en envoyons pas lors de la création d’une nouvelle session. Vous pouvez configurer les webhooks dans le Dashboard.

La ressource utilisée par le webhook sera la ressource CryptoOnrampSession ci-dessus :

{ "id": "evt_123", "object": "event", "data": { "object": { "id": "cos_0MYvv9589O8KAxCGPm84FhVR", "object": "crypto.onramp_session", "client_secret": "cos_0MYvv9589O8KAxCGPm84FhVR_secret_IGBYKVlTlnJL8UGxji48pKxBO00deNcBuVc", "created": 1675794575, "livemode": false, "status": "initialized", "transaction_details": { "destination_currency": "eth", "destination_amount": null, "destination_network": "ethereum", "fees": null, "lock_wallet_address": false, "source_currency": "usd", "source_amount": null, "destination_currencies": [ "eth" ], "destination_networks": [ "ethereum" ], "transaction_id": null, "wallet_address": null, "wallet_addresses": { "bitcoin": null, "ethereum": "0xB00F0759DbeeF5E543Cc3E3B07A6442F5f3928a2", "polygon": null, "solana": null, "stellar": null, "destination_tags": null } } } } }

Événements front-end

Voici la liste des événements front-end auxquels vous pouvez vous abonner :

// when the onramp UI is rendered { type: 'onramp_ui_loaded', payload: {session: OnrampSession}, } // when the onramp session object is updated { type: 'onramp_session_updated', payload: {session: OnrampSession}, } // for modal overlay render mode only { type: 'onramp_ui_modal_opened', payload: {session: OnrampSession}, } { type: 'onramp_ui_modal_closed', payload: {session: OnrampSession}, }

Comme indiqué ci-dessus, il est possible de s’abonner à des événements et de s’en désabonner via les fonctions standard addEventListener/removeEventListener sur OnrampSession. Vous pouvez utiliser '*' pour faire correspondre tous les événements.

Persistance de session

Vous pouvez utiliser la persistance de session pour envoyer des notifications et maintenir l’intérêt des utilisateurs pour la rampe d’accès une fois leur achat effectué.

Avantages de la persistance de session

Dans certains cas, vous pouvez conserver une session de rampe d’accès pour toutes les visites des utilisateurs. Par exemple, lorsque la session de rampe d’accès d’un utilisateur est interrompue ou abandonnée, vous pouvez le lui signaler et lui proposer des moyens de reprendre la session de rampe d’accès ultérieurement. Si un utilisateur actualise la page après avoir effectué le paiement, vous pouvez conserver la possibilité de l’avertir lorsqu’un précédent achat de rampe d’accès a été traité. Pour cette raison, l’objet OnrampSession a un état et est stocké en tant que ressource côté serveur. En initialisant l’interface utilisateur de rampe d’accès à l’aide d’une clé secrète de client OnrampSession précédemment utilisée, les utilisateurs reviennent à la position où ils se sont arrêtés.

Configuration de la persistance de session

Une clé secrète du client est un identifiant unique pour la session de rampe d’accès qui stocke le cycle de vie d’une session sans divulguer d’informations de paiement sensibles. Cependant, elle expose des informations privées telles que les adresses de portefeuille. Ne l’enregistrez pas, ne l’intégrez pas dans des URL et ne l’exposez à personne d’autre que votre client. Assurez-vous de disposer du protocole TLS sur toutes les pages qui incluent la clé secrète du client. Si vous avez une structure de compte de type Web2, vous pouvez lier la OnrampSession à votre objet utilisateur et la récupérer lors de l’authentification. Pour une application Web3 sans compte, l’utilisation de la signature de message pour l’authentification compliquerait la tâche de l’utilisateur. Le stockage local préservant la confidentialité offre une expérience utilisateur acceptable.

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