# Accepter un paiement FPX Découvrez comment accepter les paiements effectués à l'aide de FPX, un moyen de paiement très répandu en Malaisie. # Checkout > This is a Checkout for when payment-ui is checkout. View the full page at https://docs.stripe.com/payments/fpx/accept-a-payment?payment-ui=checkout. > Stripe peut automatiquement proposer les moyens de paiement pertinents à vos clients en évaluant la devise, les restrictions liées aux moyens de paiement et d’autres paramètres. > > - Suivez le guide [Accepter un paiement](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=checkout&ui=stripe-hosted) pour créer une intégration de paiement qui utilise des [moyens de paiement dynamiques](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md). - Si vous ne souhaitez pas utiliser de moyens de paiement dynamiques, suivez les étapes ci-dessous pour configurer manuellement les moyens de paiement dans votre intégration Checkout. FPX est un moyen de paiement [à usage unique](https://docs.stripe.com/payments/payment-methods.md#usage). Pour effectuer un paiement avec FPX, les clients quittent votre site Web, autorisent le paiement, puis reviennent vers votre site Web. Vous recevez alors une [notification immédiate](https://docs.stripe.com/payments/payment-methods.md#payment-notification) indiquant si le paiement a abouti ou échoué. ## Déterminer la compatibilité **Région du client** : Malaysia **Devises prises en charge** : `myr` **Devises de règlement** : `myr` **Mode de paiement** : Yes **Mode de configuration** : No **Mode d’abonnement** : No Une session Checkout doit remplir toutes les conditions suivantes pour prendre en charge les paiements FPX : - Les *tarifs* (Prices define how much and how often to charge for products. This includes how much the product costs, what currency to use, and the interval if the price is for subscriptions) de tous les postes de facture doivent être exprimés dans la même devise. Pour définir des postes dans différentes devises, créez des sessions Checkout distinctes pour chacune d’entre elles. - Vous ne pouvez utiliser que des postes ponctuels (les postes récurrents dans le cadre de plans d’*abonnement* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis) ne sont pas pris en charge). ## Accepter un paiement > Avant d’utiliser ce guide, commencez par créer une intégration permettant d’[accepter un paiement](https://docs.stripe.com/payments/accept-a-payment.md?integration=checkout) avec Checkout. Cela vous guide tout au long de l’activation de { % $checkoutPaymentMethods.all.fpx.name %} et vous montre les différences entre l’acceptation de paiements à l’aide de moyens de paiement dynamique et la configuration manuelle de moyens de paiement. ### Activer le moyen de paiement FPX Lors de la création d’une nouvelle [session Checkout](https://docs.stripe.com/api/checkout/sessions.md), vous devez : 1. Ajouter `fpx` à la liste de `payment_method_types`. 1. Veillez à ce que tous vos `line_items` utilisent la devise `myr` #### Une page hébergée par Stripe ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][currency]=myr" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ -d "payment_method_types[0]=card" \ -d "payment_method_types[1]=fpx" \ --data-urlencode "success_url=https://example.com/success" ``` #### Formulaire intégré ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][currency]=myr" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ -d "payment_method_types[0]=card" \ -d "payment_method_types[1]=fpx" \ --data-urlencode "return_url=https://example.com/return" \ -d ui_mode=embedded_page ``` ### Traiter vos commandes Maintenant que vous savez accepter des paiements, découvrez comment [traiter les commandes](https://docs.stripe.com/checkout/fulfillment.md). ### Page de confirmation FPX nécessite de montrer à votre client ses informations de transaction après son paiement. Pour personnaliser votre page de confirmation de paiement, consultez le guide [dédié à ce sujet](https://docs.stripe.com/payments/checkout/custom-success-page.md). Lors de la personnalisation, vous devrez récupérer l’objet Paiement directement depuis l’objet [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-latest_charge) en utilisant l’ID PaymentIntent de votre session Checkout et afficher les informations suivantes sur votre page `success_url`. | Informations | Source d’informations | | ------------------------------- | --------------------------------------------------------------------------- | | Date et heure de la transaction | `created` à partir de l’objet `Charge`. | | Montant | `amount` à partir de l’objet `Charge`. | | Numéro de commande du vendeur | `statement_descriptor` à partir de l’objet `Charge`. | | ID de transaction FPX | `payment_method_details[fpx][transaction_id]` à partir de l’objet `Charge`. | | Nom de la banque de l’acheteur | `payment_method_details[fpx][bank]` à partir de l’objet `Charge` | | État de la transaction | `status` à partir de l’objet `Charge` | ## Tester votre intégration Lors du test de votre intégration Checkout, sélectionnez le moyen de paiement FPX, puis cliquez sur le bouton **Payer**. ## Gérez les litiges et les remboursements La période de remboursement pour FPX est limitée à 60 jours après le paiement d’origine. Il n’existe pas de processus de litige, car les clients s’authentifient auprès de leur banque. ## See also - [En savoir plus sur FPX](https://docs.stripe.com/payments/fpx.md) - [Exécution Checkout](https://docs.stripe.com/checkout/fulfillment.md) - [Personnaliser Checkout](https://docs.stripe.com/payments/checkout/customization.md) # Elements > This is a Elements for when payment-ui is elements. View the full page at https://docs.stripe.com/payments/fpx/accept-a-payment?payment-ui=elements. > Le contenu de cette section fait référence à un produit *antérieur* (Technology that's no longer recommended). Vous devez plutôt consulter le guide relatif à l’[acceptation d’un paiement](https://docs.stripe.com/payments/accept-a-payment.md) pour en savoir plus sur le chemin d’intégration le plus récent. Stripe prend toujours en charge ce produit, néanmoins cette prise en charge peut prendre fin si le produit devient obsolète. FPX est un moyen de paiement [à usage unique](https://docs.stripe.com/payments/payment-methods.md#usage). Pour effectuer un paiement avec FPX, les clients quittent votre site Web, autorisent le paiement, puis reviennent vers votre site Web. Vous recevez alors une [notification immédiate](https://docs.stripe.com/payments/payment-methods.md#payment-notification) indiquant si le paiement a abouti ou échoué. Pour activer les paiements FPX : 1. Accédez aux [paramètres des moyens de paiement](https://dashboard.stripe.com/settings/payment_methods) dans le Dashboard. Si ce n’est pas déjà fait, [activez votre compte Stripe](https://docs.stripe.com/get-started/account/activate.md). 1. Recherchez FPX sous **Redirections bancaires** et sélectionnez **Activer**. 1. Acceptez les conditions d’utilisation du service FPX. FPX n’est disponible que pour les entreprises établies en Malaisie. Pour en savoir plus sur les pays, devises et moyens de paiement compatibles avec les produits Stripe, consultez la [prise en charge des moyens de paiement](https://docs.stripe.com/payments/payment-methods/payment-method-support.md). > FPX est un moyen de paiement à usage unique qui ne peut pas être utilisé pour des paiements récurrents ou supplémentaires. À l’heure actuelle, il n’est pas pris en charge par [Stripe Billing](https://stripe.com/billing). Le service de support des paiements FPX pour les [compte Custom](https://docs.stripe.com/connect/custom-accounts.md) est actuellement en version bêta. Contactez le [service de support de Stripe](https://support.stripe.com/contact) pour toute demande de support. ## Configurer Stripe [Côté serveur] Pour commencer, vous avez besoin d’un compte Stripe. [Inscrivez-vous](https://dashboard.stripe.com/register). Utilisez nos bibliothèques officielles pour accéder à l’API Stripe depuis votre application : #### Ruby ```bash # Available as a gem sudo gem install stripe ``` ```ruby # If you use bundler, you can add this line to your Gemfile gem 'stripe' ``` ## Créer un PaymentIntent [Côté serveur] Un [PaymentIntent](https://docs.stripe.com/api/payment_intents.md) représente votre intention d’encaisser un paiement auprès d’un client et suit le cycle de vie du processus de paiement [étape par étape](https://docs.stripe.com/payments/paymentintents/lifecycle.md). Créez un PaymentIntent dès que vous connaissez le montant (par exemple, au début du processus de paiement). Pour ce faire, utilisez les valeurs suivantes : | Paramètre | Valeur | | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `payment_method_types` | **fpx** | | `amount` | Nombre entier positif dans la [plus petite unité monétaire](https://docs.stripe.com/currencies.md#zero-decimal) représentant le montant à facturer au client (par exemple, **1099** pour un paiement de 10,99 RM). Stripe prend en charge les montants allant de 2 RM à 30 000 RM par transaction. | | `currency` | **myr** (FPX doit toujours utiliser le Ringgit). | ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d "payment_method_types[]=fpx" \ -d amount=1099 \ -d currency=myr ``` Vous pouvez également [mettre à jour](https://docs.stripe.com/api.md#update_payment_intent) le [montant](https://docs.stripe.com/api.md#payment_intent_object-amount) s’il change ultérieurement (à l’occasion par exemple du calcul des frais de livraison et des taxes) : ```curl curl https://api.stripe.com/v1/payment_intents/pi_1DRuHnHgsMRlo4MtwuIAUe6u \ -u "<>:" \ -d amount=1499 ``` ## Recueillir les informations du moyen de paiement [Côté client] [Stripe Elements](https://docs.stripe.com/payments/elements.md) est un ensemble de composants d’interface utilisateur préconfigurés pour la collecte des informations de paiement. Elements est automatiquement fourni en tant que fonctionnalité de Stripe.js. Incluez le script Stripe.js sur votre page de paiement en l’ajoutant à la section `head` de votre fichier HTML. Chargez toujours Stripe.js directement depuis js.stripe.com pour maintenir votre conformité PCI. Vous ne devez pas inclure le script dans un lot ni en héberger de copie. ```html Checkout ``` Créez une instance d’Elements à l’aide du code JavaScript suivant sur votre page de paiement. ```javascript const stripe = Stripe('<>'); const elements = stripe.elements(); ``` Elements doit avoir un emplacement dédié dans votre formulaire de paiement. Créez des nœuds DOM (conteneurs) ayant des ID uniques dans votre formulaire de paiement, puis transmettez ces ID à Elements. ```html
``` > Cette documentation fait référence à une *Legacy* (Technology that's no longer recommended) fonctionnalité qui n’est plus disponible dans la dernière version de Stripe.js. Nous vous recommandons d’utiliser [Payment Element](https://docs.stripe.com/payments/payment-element.md), un composant d’interface utilisateur pour le web qui accepte plus de 40 moyens de paiement, valide les entrées et gère les erreurs. Lorsque le formulaire ci-dessus est chargé, [créez une instance](https://docs.stripe.com/js/elements_object/create_element?type=fpxBank) d’un élément `fpxBank` et intégrez-la au conteneur Element précédemment créé. ```javascript const style = { base: { // Add your base input styles here. For example: padding: '10px 12px', color: '#32325d', fontSize: '16px', }, }; // Create an instance of the fpxBank Element. const fpxBank = elements.create( 'fpxBank', { style: style, accountHolderType: 'individual', } ); // Add an instance of the fpxBank Element into the container with id `fpx-bank-element`. fpxBank.mount('#fpx-bank-element'); ``` ## Envoyer le paiement à Stripe [Côté client] Pour créer un paiement côté client, transmettez la [clé secrète du client](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-client_secret) de l’objet `PaymentIntent` créé à l’étape 1. Utilisez [stripe.confirmFpxPayment](https://docs.stripe.com/js.md#stripe-confirm-fpx-payment) pour exécuter la redirection vers la banque et effectuer le paiement. Ajoutez une URL `return_url` à cette fonction pour indiquer à Stripe vers quelle page rediriger l’utilisateur une fois le paiement effectué sur le site Web de sa banque ou l’application mobile. ```javascript const form = document.getElementById('payment-form'); form.addEventListener('submit', async function(event) { event.preventDefault(); const fpxButton = document.getElementById('fpx-button'); const clientSecret = fpxButton.dataset.secret; const result = await stripe.confirmFpxPayment(clientSecret, { payment_method: { fpx: fpxBank, }, // Return URL where the customer should be redirected after the authorization return_url: `${window.location.href}`, }); if (result.error) { // Inform the customer that there was an error. const errorElement = document.getElementById('error-message'); errorElement.textContent = result.error.message; } }); ``` Lorsque votre client effectue un paiement, Stripe le redirige vers l’URL `return_url` et inclut les paramètres de requête d’URL suivants. La page de redirection peut utiliser ces paramètres pour récupérer l’état du PaymentIntent et ainsi afficher l’état du paiement pour le client. Lorsque vous spécifiez une URL `return_url`, vous pouvez également ajouter vos propres paramètres de requête à utiliser sur la page de redirection. | Paramètre | Description | | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `payment_intent` | Identifiant unique du `PaymentIntent`. | | `payment_intent_client_secret` | La [clé secrète du client](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-client_secret) de l’objet `PaymentIntent`. Pour les intégrations d’abonnements, le client_secret est également exposé sur l’objet `Invoice` via [`confirmation_secret`](https://docs.stripe.com/api/invoices/object.md#invoice_object-confirmation_secret) | Lorsque le client est redirigé vers votre site, vous pouvez utiliser le `payment_intent_client_secret` pour interroger le PaymentIntent et communiquer l’état de la transaction à votre client. ## Tester votre intégration #### Cas de réussite et d’échec d’authentification Testez votre intégration FPX en sélectionnant une banque à l’aide de vos clés API de test et en affichant la page de redirection. Vous pouvez tester la réussite de paiement en l’authentifiant sur la page de redirection. Le PaymentIntent passera alors de l’état `requires_action` à `succeeded`. Pour tester un échec d’authentification de l’utilisateur, sélectionnez une banque à l’aide de vos clés API de test. Puis, sur la page de redirection, cliquez sur **Échec du paiement test**. Votre PaymentIntent passera alors de l’état `requires_action` à `requires_payment_method`. #### Cas d’erreur de confirmation Les autres cas d’erreur que vous pouvez rencontrer sont connectés aux banques hors ligne qui traitent les erreurs pendant la confirmation. Pour déclencher ces erreurs, définissez la valeur `fpx[bank]` à la confirmation de l’une des valeurs de banque d’erreur de test ci-dessous. L’état PaymentIntent sera `requires_confirmation`. Apprenez-en davantage sur ces [codes d’erreur](https://docs.stripe.com/payments/fpx/accept-a-payment.md#error-codes). | Paramètre | Valeur | Code d’erreur | | ----------- | ----------------------- | ------------------------------------------- | | `fpx[bank]` | `test_offline_bank` | `offline_bank` | | `fpx[bank]` | `test_processing_error` | `payment_method_processing_error_transient` | ## Gérer les événements de post-paiement [Côté serveur] Stripe envoie un événement [payment_intent.succeeded](https://docs.stripe.com/api/events/types.md#event_types-payment_intent.succeeded) à l’issue du paiement. Utilisez le Dashboard, un *webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) personnalisé ou une solution partenaire pour recevoir ces événements et exécuter des actions, comme envoyer une confirmation de commande par e-mail à votre client, enregistrer la vente dans une base de données ou lancer un workflow de livraison. Plutôt que d’attendre un rappel de votre client, écoutez ces événements. En effet, côté client, l’acheteur pourrait fermer la fenêtre de son navigateur ou quitter l’application avant l’exécution du rappel. Des personnes malveillantes peuvent en profiter pour manipuler la réponse. Si vous configurez votre intégration de manière à écouter les événements asynchrones, cela vous permettra également d’accepter de nouveaux moyens de paiement plus facilement à l’avenir. Apprenez-en davantage sur les [différences entre les différents moyens de paiement pris en charge](https://stripe.com/payments/payment-methods-guide). - **Gérer les événements manuellement dans le Dashboard** Utilisez le Dashboard pour [afficher vos paiements de test dans le Dashboard](https://dashboard.stripe.com/test/payments), envoyer des reçus par e-mail, gérer les virements ou réessayer les paiements échoués. - **Créer un webhook personnalisé** [Build a custom webhook](https://docs.stripe.com/webhooks/handling-payment-events.md#build-your-own-webhook) handler to listen for events and build custom asynchronous payment flows. Test and debug your webhook integration locally with the Stripe CLI. - **Intégrer une application prédéfinie** Gérez les événements commerciaux courants, tels que l’[automatisation](https://stripe.partners/?f_category=automation) ou le [marketing et les ventes](https://stripe.partners/?f_category=marketing-and-sales), en intégrant une application partenaire. ## Optional: Gérer les événements de l'élément FPX Bank Vous pouvez mettre à jour les options de configuration (par exemple le `style`) du composant Element `fpxBank` en utilisant [.update(options)](https://docs.stripe.com/js.md#other-methods). Le composant Element FPX Bank indique la banque sélectionnée par le client, même si celle-ci a changé. Si vous souhaitez effectuer une logique supplémentaire à partir de la valeur Bank (par exemple, en rendant ce champ obligatoire pour la validation du formulaire), vous pouvez surveiller l’événement Change : ```javascript fpxBank.on('change', function(event) { var bank = event.value; // Perform any additional logic here... }); ``` L’événement Change contient d’autres paramètres utiles : | Paramètre | Description | | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `elementType` | Le nom de l’élément. La valeur par défaut est `fpxBank`. | | `empty` | Si `true`, la valeur est vide. | | `complete` | Si `true`, le client a sélectionné la valeur. Vous pouvez utiliser ce paramètre pour révéler progressivement le reste de votre formulaire ou pour activer l’envoi du formulaire. | | `value` | La banque FPX que le client a sélectionné à partir de l’élément. Le [guide FPX](https://docs.stripe.com/payments/fpx/accept-a-payment.md#bank-reference) contient la liste complète des banques. | ## Optional: Gérer la redirection FPX manuellement Nous recommandons l’utilisation de Stripe.js pour gérer les redirections et paiements FPX avec `confirmFpxPayment`. Toutefois, vous pouvez également rediriger vos clients manuellement : 1. En indiquant l’URL vers laquelle vos clients seront redirigés une fois leur paiement terminé. ```curl curl https://api.stripe.com/v1/payment_intents/pi_1DRuHnHgsMRlo4MtwuIAUe6u/confirm \ -u "<>:" \ -d payment_method=pm_1EnPf7AfTbPYpBIFLxIc8SD9 \ --data-urlencode "return_url=https://shop.example.com/crtA6B28E1" ``` À ce stade, Stripe vérifie si la banque sélectionnée est en ligne et disponible pour l’authentification. Si la banque n’est pas disponible, Stripe renvoie le code d’erreur et le message d’erreur suivants : | | | | | `error_code` | offline_bank | | `error_message` | La %{bank} est actuellement hors ligne. Essayez d’utiliser une autre banque. | Vous devez alors conseiller à votre client de sélectionner une autre banque ou un autre moyen de paiement pour terminer la transaction. **Test d’une banque hors ligne** Vous pouvez tester l’erreur `offline_bank` ci-dessus en créant un *PaymentMethod* (PaymentMethods represent your customer's payment instruments, used with the Payment Intents or Setup Intents APIs) à l’étape 2 en utilisant la valeur suivante, puis en l’attachant à PaymentIntent comme indiqué ci-dessus. | Paramètre | Valeur | | ----------- | ------------------- | | `fpx[bank]` | `test_offline_bank` | 1. Vérification que l’état du `PaymentIntent` est bien `requires_action`. Le type de `next_action` est `redirect_to_url`. ```json "next_action": { "type": "redirect_to_url", "redirect_to_url": { "url": "https://hooks.stripe.com/...", "return_url": "https://example.com/checkout/complete" } } ``` 1. Redirection du client vers l’URL indiquée dans la propriété `next_action`. ```javascript const action = intent.next_action; if (action && action.type === 'redirect_to_url') { window.location = action.redirect_to_url.url; } ``` À l’issue du processus de paiement, le client est redirigé vers la destination `return_url`. Les paramètres de requête d’URL `payment_intent` et `payment_intent_client_secret` sont inclus et vous pouvez par ailleurs transmettre vos propres paramètres de requête, comme indiqué plus haut. ## Exigences relatives au paiement et à la confirmation du paiement Vous devez accepter les conditions requises suivantes sur votre page de paiement : | Exigence | Détail | | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Afficher le logo FPX. | Téléchargez le [logo FPX](https://exchange.fpx.prod.inet.paynet.my/files/FPX%20Logo.zip) | | Créez la sélection de la banque FPX dans une liste déroulante. | Les noms des banques doivent correspondre aux noms se trouvant dans le [référentiel des noms de banques](https://docs.stripe.com/payments/fpx/accept-a-payment.md#bank-reference). | | Afficher la formulation standard des Conditions d’utilisation du service FPX et l’URL. | **Formulation standard :** En cliquant sur le bouton **Continuer**, vous acceptez les [Conditions générales](https://www.mepsfpx.com.my/FPXMain/termsAndConditions.jsp) de FPX. | Les informations suivantes doivent être affichées sur la page de confirmation du paiement que votre client renvoie après avoir finalisé son authentification bancaire. | Informations | Source d’informations | | ------------------------------- | --------------------------------------------------------------------------- | | Date et heure de la transaction | `created` à partir de l’objet `Charge`. | | Montant | `amount` à partir de l’objet `Charge`. | | Numéro de commande du vendeur | `statement_descriptor` à partir de l’objet `Charge`. | | ID de transaction FPX | `payment_method_details[fpx][transaction_id]` à partir de l’objet `Charge`. | | Nom de la banque de l’acheteur | `payment_method_details[fpx][bank]` à partir de l’objet `Charge` | | État de la transaction | `status` à partir de l’objet `Charge` | Vous pouvez accéder à ces informations sur le [paiement](https://docs.stripe.com/api/charges/object.md) en les récupérant à partir de l’événement `payment_intent.succeeded`. Pour les utilisateurs de la version d’API [2022-08-01](https://docs.stripe.com/upgrades.md#2022-08-01) ou une version ultérieure : ces informations relatives au [paiement](https://docs.stripe.com/api/charges/object.md) peuvent être extraites de l’événement `payment_intent.succeeded` ou sont accessibles directement depuis le [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-charges-data). #### Ruby ```ruby # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. client = Stripe::StripeClient.new('<>') intent = client.v1.payment_intents.retrieve('{{PAYMENT_INTENT_ID}}') charges = intent.charges.data ``` ## Référence bancaire | Nom de la banque | Valeur | | ------------------ | ------------------ | | Affin Bank | affin_bank | | Alliance Bank | alliance_bank | | AmBank | ambank | | Bank Islam | bank_islam | | Bank Muamalat | bank_muamalat | | Bank Rakyat | bank_rakyat | | BSN | bsn | | CIMB Clicks | cimb | | Hong Leong Bank | hong_leong_bank | | HSBC Bank | hsbc | | KFH | kfh | | Maybank2E | maybank2e | | Maybank2U | maybank2u | | OCBC Bank | ocbc | | Public Bank | public_bank | | RHB Bank | rhb | | Standard Chartered | standard_chartered | | UOB Bank | uob | ## Codes d’erreur Voici les codes d’erreur courants et les actions recommandées correspondantes : | Code d’erreur | Action recommandée | | ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `invalid_amount` | Les transactions FPX doivent être supérieures à 2 RM et inférieures à 30 000 RM. | | `invalid_bank` | La banque fournie n’est pas prise en charge par FPX. Veuillez utiliser l’une des options du [Référentiel des noms de banques](https://docs.stripe.com/payments/fpx/accept-a-payment.md#bank-reference) ci-dessus. | | `invalid_currency` | FPX prend uniquement en charge les transactions MYR. | | `missing_parameter` | Un paramètre requis est manquant. Veuillez vérifier le `error_message` pour plus d’informations sur le paramètre qui est requis. | | `offline_bank` | La banque fournie est actuellement hors ligne. Veuillez essayer une autre banque ou un type de moyen de paiement différent. | | `payment_method_not_available` | Le moyen de paiement n’est pas disponible actuellement. Vous devez inviter votre client à utiliser un autre moyen de paiement pour continuer. | | `payment_method_processing_error_transient` | Une erreur inattendue s’est produite, nous empêchant de confirmer le payment intent. Un nouvel essai doit être tenté. | ## Virements et transferts Pour des raisons de conformité, vos fonds FPX sont réglés sur un solde `fpx` distinct dans votre compte. Cela signifie que vous pouvez recevoir deux *virements* (A payout is the transfer of funds to an external account, usually a bank account, in the form of a deposit) automatiques distincts le même jour : l’un pour vos fonds FPX et l’autre pour l’ensemble de vos autres fonds. Pour les [plateformes Connect](https://docs.stripe.com/connect.md), vous pouvez [créer un virement](https://docs.stripe.com/api/payouts/create.md) ou effectuer un [transfert](https://docs.stripe.com/api/transfers/create.md) depuis votre solde `fpx` en indiquant `fpx` comme `source_type` : ```curl curl https://api.stripe.com/v1/payouts \ -u "<>:" \ -d amount=5000 \ -d currency=myr \ -d source_type=fpx ``` Vous pouvez également [récupérer](https://docs.stripe.com/api/balance/balance_retrieve.md) votre solde pour afficher une répartition de vos soldes Stripe `available` et `pending` par `source_type`. FPX est un moyen de paiement [à usage unique](https://docs.stripe.com/payments/payment-methods.md#usage) disponible uniquement en Malaisie. Les clients sont redirigés depuis votre application pour effectuer le paiement à l’aide de FPX, vous envoient le paiement, puis sont redirigés vers votre application. Vous recevez alors une [notification immédiate](https://docs.stripe.com/payments/payment-methods.md#payment-notification) indiquant si le paiement a abouti ou échoué. Pour activer les paiements FPX : 1. Accédez aux [paramètres des moyens de paiement](https://dashboard.stripe.com/settings/payment_methods) dans le Dashboard. Si ce n’est pas déjà fait, [activez votre compte Stripe](https://docs.stripe.com/get-started/account/activate.md). 1. Recherchez FPX sous **Redirections bancaires** et sélectionnez **Activer**. 1. Acceptez les conditions d’utilisation du service FPX. FPX n’est disponible que pour les entreprises établies en Malaisie. Pour en savoir plus sur les pays, devises et moyens de paiement compatibles avec les produits Stripe, consultez la [prise en charge des moyens de paiement](https://docs.stripe.com/payments/payment-methods/payment-method-support.md). Après avoir activé les paiements FPX, intégrez le composant [Mobile Payment Element](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=mobile&platform=android) pour commencer à accepter les paiements en ligne. Vous avez le choix entre Android, iOS et React Native.