Financial Process Exchange (FPX) is a Malaysia-based payment method that allows customers to complete transactions online using their bank credentials. Bank Negara Malaysia (BNM), the Central Bank of Malaysia, and 11 other major Malaysian financial institutions are members of the PayNet Group, which owns and operates FPX. It’s one of the most popular online payment methods in Malaysia, with nearly 90 million transactions in 2018 according to BNM.
In order to pay with FPX, customers are redirected to their online banking environment where they have to perform two-step authorization. The exact customer experience varies depending on their bank. The FPX payment flow is well understood and intuitive to Malaysian customers.
We recommend you use Checkout or the Payment Element so you can automatically add FPX and other payment methods from the Stripe Dashboard, without changing your code. Stripe then determines the list of supported payment methods to show each customer by evaluating the currency, payment method restrictions, and other parameters.
The following Stripe products also support adding FPX from the Dashboard:
If your integration requires manually listing payment methods, learn how to manually configure FPX as a payment.
Check out the FPX sample on GitHub.
The risk of fraud or unrecognized payments is low because the customer must authenticate the payment with their bank. As a result, you won’t have disputes that turn into chargebacks, with funds withdrawn from your Stripe account.
FPX payments can be refunded up to 60 days after the original payment. Refunds for FPX payments are asynchronous and take approximately 1 week to complete. We’ll notify you of the final refund status using the
charge.refund.updated webhook event. When a refund succeeds, the Refund object’s status transitions to
succeeded. A refund can fail if the customer’s bank is unable to process it correctly (for example, the bank account is closed). In the rare instance that a refund fails, the Refund object’s status will transition to
failed and we’ll return the amount to your Stripe balance. You’ll then need to arrange an alternative way of providing your customer with a refund.