Accept a PayNow payment
Accept payments with PayNow, a funds transfer service popular in Singapore.
PayNow is a single-use payment method. Customers use their preferred app from participating banks and participating non-bank financial institutions to scan the QR code presented to them in the checkout flow and complete the payment.
Set up Stripe
First, you need a Stripe account. Register now.
Use our official libraries for access to the Stripe API from your application:
Create a PaymentIntentServer-side
A PaymentIntent is an object that represents your intent to collect payment from a customer and tracks the lifecycle of the payment process through each stage. First, create a PaymentIntent on your server and specify the amount to collect and the currency. If you already have an integration using the Payment Intents API, add paynow
to the list of payment method types for your PaymentIntent
.
Retrieve the client secret
The PaymentIntent includes a client secret that the client side uses to securely complete the payment process. You can use different approaches to pass the client secret to the client side.
Display the PayNow QR CodeClient-side
In this step, you’ll complete PayNow payments on the client with Stripe.js. Include the Stripe.js script on your checkout page by adding it to the head
of your HTML file.
Create an instance of Stripe.js with the following JavaScript on your checkout page.
Use stripe.
to confirm the payment on the client side.
After you call confirmPayNowPayment
, the webpage displays a QR code. Your customers can scan the QR code and authenticate the payment using their preferred banking app or payment app. You should remain on the page with the QR code until Stripe fulfills the order and you know the outcome of the payment.
Fulfill the orderServer-side
Use a method such as webhooks to handle order fulfillment, instead of relying on your customer to return to the payment status page. When a customer completes payment, the PaymentIntent
transitions to succeeded
and emits the payment_intent.succeeded webhook event.
Test your integration 
While testing, you can scan the QR code with a QR code scanning application on your mobile device. The QR code payload contains a URL that redirects you to a Stripe-hosted PayNow test payment page where you can either authorize or fail the test payment.
In live mode, you can scan the QR code using an app from participating banks and participating non-bank financial institutions.