Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Overview
About Stripe payments
Upgrade your integration
Payments analytics
Online payments
OverviewFind your use caseManaged Payments
Use Payment Links
Build a checkout page
Build an advanced integration
Build an in-app integration
Payment methods
Add payment methods
    Overview
    Payment method integration options
    Manage default payment methods in the Dashboard
    Payment method types
    Cards
    Bank debits
    Bank redirects
      Bancontact
      BLIK
      EPS
      FPX
        Accept a payment
      iDEAL
      Przelewy24
      SOFORT
      TWINT
    Bank transfers
    Credit transfers (Sources)
    Buy now, pay later
    Real-time payments
    Vouchers
    Wallets
    Enable local payment methods by country
    Custom payment methods
Manage payment methods
Faster checkout with Link
Payment interfaces
Payment Links
Checkout
Web Elements
In-app Elements
Payment scenarios
Custom payment flows
Flexible acquiring
Orchestration
In-person payments
Terminal
Other Stripe products
Financial Connections
Crypto
Climate
HomePaymentsAdd payment methodsBank redirectsFPX

Accept an FPX payment

Learn how to accept FPX, a common payment method in Malaysia.

Copy page

Caution

Stripe automatically presents your customers payment method options by evaluating their currency, payment method restrictions, and other parameters. We recommend that you configure your payment methods from the Stripe Dashboard using the instructions in Accept a payment.

If you want to continue manually configuring the payment methods you present to your customers with Checkout, use this guide. Otherwise, update your integration to configure payment methods in the Dashboard.

FPX is a single-use payment method. Customers pay with FPX by redirecting from your website, sending you payment, then returning to your website where you get immediate notification on whether the payment succeeded or failed.

Determine compatibility

Customer Geography: Malaysia

Supported currencies: myr

Presentment currencies: myr

Payment mode: Yes

Setup mode: No

Subscription mode: No

A Checkout Session must satisfy all of the following conditions to support FPX payments:

  • Prices for all line items must be in the same currency. If you have line items in different currencies, create separate Checkout Sessions for each currency.
  • You can only use one-time line items (recurring subscription plans are not supported).

Accept a payment

Note

Build an integration to accept a payment with Checkout before using this guide.

Use this guide to learn how to enable FPX—it shows the differences between accepting a card payment and using FPX.

Enable FPX as a payment method

When creating a new Checkout Session, you need to:

  1. Add fpx to the list of payment_method_types
  2. Make sure all your line_items use the myr currency
Ruby
Stripe::Checkout::Session.create({ mode: 'payment', payment_method_types: ['card'], payment_method_types: ['card', 'fpx'], line_items: [{ price_data: { currency: 'usd', # To accept `fpx`, all line items must have currency: myr currency: 'myr', product_data: { name: 'T-shirt', }, unit_amount: 2000, }, quantity: 1, }], success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', })

Fulfill your orders

After accepting a payment, learn how to fulfill orders.

Confirmation page

FPX requires showing your customer their transaction information after they’ve completed their payment. Follow the custom success page guide to learn how to customize your success page.

When customizing, you’ll need to retrieve the Charge object directly from the PaymentIntent object using the PaymentIntent ID from your Checkout Session and display the following information on your success_url page.

InformationSource of information
Transaction Date & Timecreated from the Charge object.
Amountamount from the Charge object.
Seller Order No.statement_descriptor from the Charge object.
FPX Transaction IDpayment_method_details[fpx][transaction_id] from the Charge object.
Buyer Bank Namepayment_method_details[fpx][bank] from the Charge object
Transaction Statusstatus from the Charge object

Test your integration

When testing your Checkout integration, select FPX as the payment method and click the Pay button.

Handle refunds and disputes

The refund period for FPX is up to 60 days after the original payment.

There is no dispute process—customers authenticate with their bank.

See also

  • More about FPX
  • Checkout fulfillment
  • Customizing Checkout
Was this page helpful?
YesNo
Need help? Contact Support.
Join our early access program.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc