# Alimenter les soldes Issuing avec Connect Découvrez comment alimenter des comptes connectés pour Issuing. Pour effectuer des transactions avec une carte émise, vous devez d’abord affecter des fonds au [solde Issuing](https://docs.stripe.com/issuing/funding/balance.md) du compte connecté associé à cette carte. Le solde Issuing contient les fonds réservés à une carte, et permet de séparer en toute sécurité ces fonds de vos gains, de vos [virements](https://docs.stripe.com/payouts.md) et de vos fonds relevant d’autres produits Stripe. ## Utiliser les fonds d’un compte bancaire Pour alimenter un solde Issuing à partir d’un compte externe, deux options s’offrent à vous, chacune correspondant à une configuration différente : l’ajout de fonds par prélèvement et l’ajout de fonds par virement. - L’ajout de fonds par **prélèvement** est l’option par défaut aux États-Unis et n’est pas disponible dans l’UE ni au Royaume-Uni. Pour utiliser cette option, vous devez vérifier les comptes bancaires externes, ce qui retarde généralement le transfert des fonds (jusqu’à 5 jours ouvrables). Cette option vous permet de contrôler et d’identifier la banque d’où provient votre recharge. - L’ajout de fonds par **virement** est disponible au Royaume-Uni et dans l’UE, et en version bêta aux États-Unis. Cette option vous permet de transférer des fonds vers Stripe depuis votre compte bancaire. Elle peut également vous permettre de recevoir les fonds le jour même, selon le processus utilisé (ACH ou virement bancaire, par exemple). #### Financement Pull (États-Unis) Pour recharger un compte connecté à partir du compte bancaire de votre utilisateur, vous devez d’abord recueillir et vérifier ses coordonnées bancaire. Stripe vous permet de collecter les informations via [Stripe.js](https://docs.stripe.com/payments/elements.md) et d’effectuer la vérification à l’aide de micro-versements. #### Microversement ### Collecter les informations de vos utilisateurs Pour débiter le compte bancaire de l’utilisateur afin d’alimenter le compte, vous devez collecter ses informations bancaires et fournir la preuve de son autorisation de débit. Cette autorisation est appelée [mandat](https://docs.stripe.com/api/sources/create.md#create_source-mandate) et garantit que vous et Stripe respectez les règles du réseau ACH, tout en vous donnant accès à des éléments de preuve facilitant la résolution d’éventuels litiges. Créez un formulaire pour recueillir les informations suivantes : - Nom - Numéro de routage - Numéro de compte Lorsque vos clients soumettent leur mandat, vous devez enregistrer les informations suivantes : - Adresse IP - Agent utilisateur - Date Si vous préférez recueillir les mandats de vos utilisateurs *hors ligne* (par téléphone, e-mail ou courrier), vous n’avez pas besoin de charger de consentement sur Stripe. Il vous appartient de conserver votre propre trace de l’acceptation et de nous fournir votre adresse e-mail de contact au cas où cet élément de preuve nous serait demandé. ### Créer le token et la source Créez un token à l’aide de l’[API Bank Account Token](https://docs.stripe.com/api/tokens/create_bank_account.md), puis utilisez-le pour créer une source. Créez à la fois le token de compte bancaire et la `source` sur le compte connecté que vous souhaitez financer. > Enregistrez ces tokens `Source` sur votre système de façon à ce que votre intégration y ait accès. À l’heure actuelle, Stripe n’offre pas de manière programmatique de récupérer ou répertorier les tokens après leur création. ```curl curl https://api.stripe.com/v1/tokens \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d "bank_account[country]=US" \ -d "bank_account[currency]=usd" \ -d "bank_account[account_holder_name]=Jenny Rosen" \ -d "bank_account[account_holder_type]=individual" \ -d "bank_account[routing_number]=110000000" \ -d "bank_account[account_number]=000000000009" ``` Créez une `source` à l’aide du token obtenu : ```curl curl https://api.stripe.com/v1/sources \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d type=ach_debit \ -d currency=usd \ -d token={{TOKEN_ID}} \ -d "owner[address][line1]=510 Townsend Street" \ -d "owner[address][city]=San Francisco" \ -d "owner[address][state]=California" \ -d "owner[address][country]=US" \ --data-urlencode "owner[email]=jenny.rosen@example.com" \ -d "owner[name]=Jenny Rosen" \ -d "owner[phone]=5554443333" ``` ### Vérification des sources au moyen de microversements Deux petits versements sont envoyés sur le compte sous un à deux jours, avec la description **ACCTVERIFY**. Vous devez collecter ces deux montants auprès de votre utilisateur pour vérifier le compte bancaire. ```curl curl https://api.stripe.com/v1/sources/{{SOURCE_ID}}/verify \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d "values[]=32" \ -d "values[]=45" ``` ### Recharger le solde Issuing d’un compte connecté Pour alimenter le solde Issuing de votre compte connecté, vous pouvez le recharger en transmettant la `source` créée et en définissant `destination_balance` sur `issuing`. #### curl ```bash curl https://api.stripe.com/v1/topups \ -u <>: \ -H "Stripe-Account: {{CONNECTED_STRIPE_ACCOUNT_ID}}" \ -d "amount"=2000 \ -d "currency"="usd" \ -d "description"="Top-up for week of May 31" \ -d "destination_balance"="issuing" \ -d "statement_descriptor"="Top-up" \ -d "source"="{{SOURCE_ID}}" ``` #### Ajout de fonds par virement (États-Unis) Une instruction de financement contient les coordonnées bancaires et le numéro de routage applicables à votre région. Quand ce compte reçoit des fonds, ceux-ci sont rendus immédiatement disponibles sur le solde de votre compte Stripe par le biais d’une recharge. Vous pouvez créer des instructions de financement à l’aide de l’API. Chaque devise doit être associée à un compte bancaire spécifique, et chaque compte peut recevoir un nombre illimité de transferts. Bien que les fonds puissent faire l’objet d’une conversion de devise par votre banque, ils arrivent toujours sur votre solde Stripe dans la devise spécifiée. | Région | Système de paiement | Devise prise en charge | Délai | Montant maximal accepté | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------ | | US(Beta) | *Virement bancaire* (Also called a bank transfer or credit transfer, wire transfers are a method of electronic funds transfers that move money from a payer to a payee) depuis des banques étatsuniennes uniquement | USD | De quelques minutes à 1 jour ouvrable | Varie selon les banques, en général plusieurs millions | | Virement *ACH* (Automated Clearing House (ACH) is a US financial network used for electronic payments and money transfers that doesn’t rely on paper checks, credit card networks, wire transfers, or cash) | USD | De plusieurs heures à plusieurs jours ouvrables | Varie selon la banque, généralement moins de 25 000 USD | | EU | Virement SEPA | EUR | Environ un jour | 999 999 999,99 GBP | | GB | FPS | GBP | Environ 2 heures aux heures d’ouverture de la banque, ou au début du jour ouvrable suivant. | 1 million de GBP | | BACS | GBP | 2 à 3 jours ouvrables | 20 millions de GBP | ### Créer des instructions de financement avec l’API (Beta) Pour accéder aux informations bancaires nécessaires au virement, utilisez l’[API de création d’instruction de financement](https://docs.stripe.com/api/issuing/funding_instructions/create.md). Des instructions uniques seront renvoyées pour votre compte de marchand ou pour chaque compte Connect sur lequel transférer les fonds via un virement bancaire. ```bash curl https://api.stripe.com/v1/issuing/funding_instructions \ -u <>: \ -H "Stripe-Account: {{CONNECTED_ACCOUNT_ID}}" \ -d "funding_type"="bank_transfer" \ -d "bank_transfer[type]"="us_bank_transfer" \ -d "currency"="usd" ``` Si la requête aboutit, elle renvoie une réponse semblable à ce qui suit : ```json { "object": "funding_instructions", "bank_transfer": { "country": "US", "financial_addresses": [ { "aba": { "account_number": "test_c44b907982bf", "bank_name": "TEST BANK", "routing_number": "110000000" }, "supported_networks": [ "ach", "domestic_wire_us" ], "type": "aba" } ], "type": "us_bank_transfer" }, "currency": "usd", "funding_type": "bank_transfer", "livemode": false } ``` ### Tester l’envoi de fonds avec l’API Funding Instructions (Beta) Vous pouvez simuler un virement bancaire vers le solde Issuing dans des environnements de type *environnement de test* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes). Appelez le endpoint d’[ajout de fonds](https://docs.stripe.com/api/issuing/funding_instructions/fund.md) en indiquant le montant du virement. Le paramètre `amount` doit être un nombre entier positif exprimé dans la plus petite unité de la devise. Vous devez également spécifier la devise de votre virement de test. Par exemple, pour créer un virement de 1 USD, indiquez `100` dans le champ du montant et `usd` dans le champ de la devise. Quand vous effectuez un virement bancaire de test, le montant indiqué est ajouté au solde Issuing en mode test. Vous pouvez consulter votre nouveau solde après virement dans le [Dashboard](https://dashboard.stripe.com/balance/overview#issuing-summary) ou avec le endpoint de [récupération de solde](https://docs.stripe.com/api/balance/balance_retrieve.md). Chaque appel au endpoint de test simule un nouveau virement bancaire. > Les bibliothèques client ne sont pas prises en charge à l’heure actuelle. ```bash curl https://api.stripe.com/v1/test_helpers/issuing/fund_balance \ -u <>: \ -H "Stripe-Account: {{CONNECTED_ACCOUNT_ID}}" \ -d "amount"=100 \ -d "currency"="usd" ``` Si la requête aboutit, elle renvoie une réponse semblable à ce qui suit : ```json { "object": "funding_instructions", "bank_transfer": { "country": "US", "financial_addresses": [ { "aba": { "account_number": "test_c44b907982bf", "bank_name": "TEST BANK", "routing_number": "110000000" }, "supported_networks": [ "ach", "domestic_wire_us" ], "type": "aba" } ], "type": "us_bank_transfer" }, "currency": "usd", "funding_type": "bank_transfer", "livemode": false } ``` ### Demander un accès anticipé L’accès aux transferts « push » aux États-Unis est actuellement limité aux utilisateurs américains de la version bêta. Seuls les clients Issuing peuvent accéder à la version bêta. Pour demander l’accès, connectez-vous à votre compte Stripe et actualisez la page. Pour en savoir plus, [contactez Stripe](https://stripe.com/contact/sales). #### Ajout de fonds par virement (zone Euro) Une instruction de financement contient les coordonnées bancaires et le numéro de routage applicables à votre région. Quand ce compte reçoit des fonds, ceux-ci sont rendus immédiatement disponibles sur le solde de votre compte Stripe par le biais d’une recharge. Vous pouvez créer des instructions de financement à l’aide de l’API. Chaque devise doit être associée à un compte bancaire spécifique, et chaque compte peut recevoir un nombre illimité de transferts. Bien que les fonds puissent faire l’objet d’une conversion de devise par votre banque, ils arrivent toujours sur votre solde Stripe dans la devise spécifiée. | Région | Système de paiement | Devise prise en charge | Délai | Montant maximal accepté | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------ | | US(Beta) | *Virement bancaire* (Also called a bank transfer or credit transfer, wire transfers are a method of electronic funds transfers that move money from a payer to a payee) depuis des banques étatsuniennes uniquement | USD | De quelques minutes à 1 jour ouvrable | Varie selon les banques, en général plusieurs millions | | Virement *ACH* (Automated Clearing House (ACH) is a US financial network used for electronic payments and money transfers that doesn’t rely on paper checks, credit card networks, wire transfers, or cash) | USD | De plusieurs heures à plusieurs jours ouvrables | Varie selon la banque, généralement moins de 25 000 USD | | EU | Virement SEPA | EUR | Environ un jour | 999 999 999,99 GBP | | GB | FPS | GBP | Environ 2 heures aux heures d’ouverture de la banque, ou au début du jour ouvrable suivant. | 1 million de GBP | | BACS | GBP | 2 à 3 jours ouvrables | 20 millions de GBP | ### Créer des instructions de financement avec l’API > Cette API n’est actuellement disponible que pour les utilisateurs disposant d’un compte activé dans la zone euro ou au Royaume-Uni. Pour accéder aux informations du compte aux fins de votre transfert de fonds, utilisez l’endpoint de création d’instructions de financement. Des instructions uniques seront renvoyées pour votre compte de marchand ou pour chaque compte Connect sur lequel transférer les fonds via un virement bancaire. ```bash curl https://api.stripe.com/v1/issuing/funding_instructions \ -u <>: \ -H "Stripe-Account: {{CONNECTED_ACCOUNT_ID}}" \ -d "funding_type"="bank_transfer" \ -d "bank_transfer[type]"="eu_bank_transfer" \ -d "currency"="eur" ``` Si la requête aboutit, elle renvoie une réponse semblable à ce qui suit : ```json { "object": "funding_instructions", "bank_transfer": { "country": "DE", "financial_addresses": [ { "iban": { "account_holder_name": "Stripe Technology Europe Limited", "bic": "SXPYDEHH", "country": "DE", "iban": "DE00000000000000000001" }, "supported_networks": [ "sepa" ], "type": "iban" } ], "type": "eu_bank_transfer" }, "currency": "eur", "funding_type": "bank_transfer", "livemode": false } ``` ### Tester l’envoi de fonds avec l’API Funding Instructions Vous pouvez simuler un virement bancaire vers le solde Issuing dans des environnements de type *environnement de test* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes). Appelez le endpoint d’[ajout de fonds](https://docs.stripe.com/api/issuing/funding_instructions/fund.md) en indiquant le montant du virement. Le paramètre `amount` doit être un nombre entier positif exprimé dans la plus petite unité de la devise. Vous devez également spécifier la devise de votre virement de test. Par exemple, pour créer un virement de 1 EUR, indiquez `100` dans le champ du montant et `eur` dans le champ de la devise. Quand vous effectuez un virement bancaire de test, le montant indiqué est ajouté au solde Issuing en mode test. Vous pouvez consulter votre nouveau solde après virement dans le [Dashboard](https://dashboard.stripe.com/balance/overview#issuing-summary) ou via le endpoint de [récupération de solde](https://docs.stripe.com/api/balance/balance_retrieve.md). Chaque appel au endpoint de test simule un nouveau virement bancaire. ```bash curl https://api.stripe.com/v1/test_helpers/issuing/fund_balance \ -u <>: \ -H "Stripe-Account: {{CONNECTED_ACCOUNT_ID}}" \ -d "amount"=100 \ -d "currency"="eur" ``` Si la requête aboutit, elle renvoie une réponse semblable à ce qui suit : ```json { "object": "funding_instructions", "bank_transfer": { "country": "DE", "financial_addresses": [ { "iban": { "account_holder_name": "Stripe Technology Europe Limited", "bic": "SXPYDEHH", "country": "DE", "iban": "DE00000000000000000001" }, "supported_networks": [ "sepa" ], "type": "iban" } ], "type": "eu_bank_transfer" }, "currency": "eur", "funding_type": "bank_transfer", "livemode": false } ``` #### Ajout de fonds par virement (Royaume-Uni) Une instruction de financement contient les coordonnées bancaires et le numéro de routage applicables à votre région. Quand ce compte reçoit des fonds, ceux-ci sont rendus immédiatement disponibles sur le solde de votre compte Stripe par le biais d’une recharge. Vous pouvez créer des instructions de financement à l’aide de l’API. Chaque devise doit être associée à un compte bancaire spécifique, et chaque compte peut recevoir un nombre illimité de transferts. Bien que les fonds puissent faire l’objet d’une conversion de devise par votre banque, ils arrivent toujours sur votre solde Stripe dans la devise spécifiée. | Région | Système de paiement | Devise prise en charge | Délai | Montant maximal accepté | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------ | | US(Beta) | *Virement bancaire* (Also called a bank transfer or credit transfer, wire transfers are a method of electronic funds transfers that move money from a payer to a payee) depuis des banques étatsuniennes uniquement | USD | De quelques minutes à 1 jour ouvrable | Varie selon les banques, en général plusieurs millions | | Virement *ACH* (Automated Clearing House (ACH) is a US financial network used for electronic payments and money transfers that doesn’t rely on paper checks, credit card networks, wire transfers, or cash) | USD | De plusieurs heures à plusieurs jours ouvrables | Varie selon la banque, généralement moins de 25 000 USD | | EU | Virement SEPA | EUR | Environ un jour | 999 999 999,99 GBP | | GB | FPS | GBP | Environ 2 heures aux heures d’ouverture de la banque, ou au début du jour ouvrable suivant. | 1 million de GBP | | BACS | GBP | 2 à 3 jours ouvrables | 20 millions de GBP | ### Créer des instructions de financement avec l’API > Cette API n’est actuellement disponible que pour les utilisateurs disposant d’un compte activé dans la zone euro ou au Royaume-Uni. Pour accéder aux informations du compte aux fins de votre transfert de fonds, utilisez l’endpoint de création d’instructions de financement. Des instructions uniques seront renvoyées pour votre compte de marchand ou pour chaque compte Connect sur lequel transférer les fonds via un virement bancaire. ```bash curl https://api.stripe.com/v1/issuing/funding_instructions \ -u <>: \ -H "Stripe-Account: {{CONNECTED_ACCOUNT_ID}}" \ -d "funding_type"="bank_transfer" \ -d "bank_transfer[type]"="gb_bank_transfer" \ -d "currency"="gbp" ``` ```json { "object": "funding_instructions", "bank_transfer": { "country": "GB", "financial_addresses": [ { "sort_code": { "account_holder_name": "Stripe Payments UK Limited", "sort_code": "000000", "account_number": "00000000" }, "supported_networks": [ "bacs", "fps" ], "type": "sort_code" } ], "type": "gb_bank_transfer" }, "currency": "gbp", "funding_type": "bank_transfer", "livemode": false } ``` ### Tester le transfert de fonds avec l’API Funding Instructions Vous pouvez simuler un virement bancaire vers le solde Issuing dans des environnements de type *environnement de test* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes). Appelez le endpoint d’[ajout de fonds](https://docs.stripe.com/api/issuing/funding_instructions/fund.md) en indiquant le montant du virement. Le paramètre `amount` doit être un nombre entier positif exprimé dans la plus petite unité de la devise. Vous devez également spécifier la devise de votre virement de test. Par exemple, pour créer un virement de 1 GBP, indiquez `100` dans le champ du montant et `gbp` dans le champ de la devise. Quand vous effectuez un virement bancaire de test, le montant indiqué est ajouté au solde Issuing en mode test. Vous pouvez consulter votre nouveau solde après virement dans le [Dashboard](https://dashboard.stripe.com/balance/overview#issuing-summary) ou via le endpoint de [récupération de solde](https://docs.stripe.com/api/balance/balance_retrieve.md). Chaque appel au endpoint de test simule un nouveau virement bancaire. ```bash curl https://api.stripe.com/v1/test_helpers/issuing/fund_balance \ -u <>: \ -H "Stripe-Account: {{CONNECTED_ACCOUNT_ID}}" \ -d "amount"=100 \ -d "currency"="gbp" ``` Si la requête aboutit, elle renvoie une réponse semblable à ce qui suit : ```json { "object": "funding_instructions", "bank_transfer": { "country": "GB", "financial_addresses": [ { "sort_code": { "account_holder_name": "Stripe Payments UK Limited", "sort_code": "000000", "account_number": "00000000" }, "supported_networks": [ "bacs", "fps" ], "type": "sort_code" } ], "type": "gb_bank_transfer" }, "currency": "gbp", "funding_type": "bank_transfer", "livemode": false } ``` ## Utiliser les fonds du solde Stripe d’un compte connecté Pour transférer des fonds de votre solde Stripe vers votre solde Issuing, vous devez [demander un accès à la version bêta privée de l’API Balance Transfer](https://docs.stripe.com/issuing/connect/funding.md#request-early-access). #### curl ```bash curl https://api.stripe.com/v1/balance_transfers \ -u <>: \ -H "Stripe-Account: {{CONNECTED_STRIPE_ACCOUNT_ID}}" \ -d amount=1000 \ -d currency=usd \ -d "source_balance[type]"=payments \ -d "destination_balance[type]"=issuing ``` Pour les États-Unis, les transferts depuis le solde Stripe de votre compte connecté sont instantanés et disponibles 24 heures sur 24, 7 jours sur 7. Pour le Royaume-Uni et les pays de la zone euro, ils sont effectués en un jour ouvrable. Ainsi, vous pouvez affecter rapidement et facilement les fonds provenant des paiements Stripe à vos dépenses effectuées avec Stripe Issuing. Vous pouvez modifier le montant dans la limite du solde Stripe disponible uniquement. Tant que le transfert est en attente, les fonds ne seront pas disponibles dans le solde Issuing. Utilisez l’endpoint de [récupération de solde](https://docs.stripe.com/api/balance/balance_retrieve.md) pour obtenir les montants disponibles de votre solde Stripe par [source_type](https://docs.stripe.com/api/balance/balance_object.md#balance_object-available-source_types). ### Demander un accès anticipé L’accès à l’API Balance Transfer est actuellement limité aux utilisateurs de la version bêta. Seuls les clients Issuing peuvent accéder à la version bêta. Pour demander l’accès, connectez-vous à votre compte Stripe et actualisez la page. Pour en savoir plus, [contactez Stripe](https://stripe.com/contact/sales). ## Récupérer un solde Issuing Pour consulter le solde Issuing actuel d’un compte connecté, appelez l’endpoint GET de l’[API Balance](https://docs.stripe.com/api/balance/balance_retrieve.md) en transmettant l’ID du compte connecté dans l’en-tête. ```curl curl https://api.stripe.com/v1/balance \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" ``` Cette opération renvoie l’objet `balance` avec un objet `issuing` correspondant, qui inclut le solde disponible actuel : ```json { "object": "balance", ... "issuing": { "available": [ { "amount": 100, "currency": "usd" } ] }, "livemode": false } ``` ## Verser un solde Issuing sur un compte externe Les fonds d’un solde Issuing peuvent également être virés vers le [compte bancaire externe](https://docs.stripe.com/api/external_accounts.md) d’un compte connecté à l’aide de l’endpoint POST de l’[API Payouts](https://docs.stripe.com/api/payouts/create.md) en assignant la valeur `issuing` au paramètre `source_balance` du virement. ```curl curl https://api.stripe.com/v1/payouts \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d source_balance=issuing \ -d amount=100 \ -d currency=usd ```