PayNow

PayNow is a real-time payment network in Singapore managed by the Association Bank of Singapore (ABS) and overseen by the Monetary Authority of Singapore (MAS). It enables both consumers and businesses to register for the service using various identifiers such as their mobile number, Singapore NRIC/FIN, UEN business registration number, or Virtual Payment Address (VPA for NFI accounts, which includes eWallets). Once registered, users can easily transfer SGD funds from one bank or e-wallet account to another within Singapore through the FAST network. FAST is a regulated and standardized payment rails system that ensures seamless interoperability between different payment providers.

Features #

Processing currenciesSGD
Settlement currenciesUSD
Minimum transaction amount1 THB
Maximum transaction amount5,000 THB
Refunds
Partial Refunds
Multiple partial refund
Chargeback

Payment flow #

pic_2@2x.png

Integration Method #

Payment method enumeration values: paynow

There are two integration methods for PayNow

  1. Direct API
  2. Checkout

Direct API #

How to integration #

For direct API integration, you can create a PaymentIntent and get url in only one step. The following is the demo of creating payment intent:

Create a PaymentIntent

Create a PaymentIntent on your server and specify the amount to collect and a supported currency.

Notably, For Paynow, you also need to collect the customer’s name, country and email in payment_method_data.billing_details.

If you have an existing Payment Intents integration, add bank_transfer_uk to the list of payment method types.

Request Create a PaymentIntent

{
    "amount":1000,
    "currency":"SGD",
    "payment_method_data" : {
        "type":"paynow",
        "billing_details":{
            "address": {
                "country": "SG"
            },
            "name": "Tom Elis",
            "email": "[email protected]"
        }
    },
    "description": "product description",
    "quantity": 2,
    "return_url":"https://your.website"
}

Response

{
    "id": "pi_1686226704999120896",
    "object": "payment_intent",
    "created": 1690862750000,
    "livemode": true,
    "currency": "SGD",
    "amount": 1000,
    "status": "requires_action",
    "description": "product description",
    "quantity": 2,
    "client_secret": "pi_1686226704999120896_secret_nz79AKtKGcxWr2gUxEsFXrM1",
    "next_action": {
        "type": "paynow_handle_redirect",
        "paynow_handle_redirect": {
            "url": "https://pay.tazapay.com/marketplace/paymentdetails/0Pq7kWaNrGrjxYiaqsfchBD3bR0K4obPc7W4EtdSmt6y9BHpRLFBYdPzUWx59sHR"
        }
    },
    "payment_method_types": [
        "paynow"
    ],
    "confirmation_method": "automatic",
    "return_url": "https://your.website",
    "payment_method": "pm_1686226704869097472",
    "capture_method": "automatic"
}

Checkout #

Create a seesion #

Request Create a Session

{
    "cancel_url": "www.wooshpay.com",
    "mode": "payment",
    "success_url": "https://wooshpay.com/",
    "payment_method_types":["paynow"],
    "line_items": [
        {
            "price_data": {
                "currency": "SGD",
                "unit_amount": 10000000,
                "nickname": "apple",
                "product_data": {
                    "name": "apple"
                },
                "billing_scheme": "testscheme",
                "lookup_key": "test_lookup_key"
            },
            "quantity": 1
        }
    ]
}

Response

{
    "id": "cs_1686257953583136768",
    "object": "checkout.session",
    "created": 1690870200000,
    "livemode": false,
    "currency": "SGD",
    "customer": "",
    "mode": "payment",
    "status": "open",
    "url": "https://checkouttest.wooshpay.com/pay/cs_test_1686257953583136768?key=cGtfdGVzdF9OVEUyTlRjNU5ESXpNalUxTXpNME56ZzVNVE14T2pNemIxTTJhVVZrTmtOdmFsWlBSRTFuVFc1SVREaFljREUyT0RReE1Ua3lNamd6TVRR",
    "cancel_url": "www.wooshpay.com",
    "line_items": {
        "object": "list",
        "data": [
            {
                "id": "li_1686257953620885504",
                "object": "item",
                "currency": "SGD",
                "description": "apple",
                "price": {
                    "id": "price_1686257953633468416",
                    "object": "price",
                    "created": 1690870200000,
                    "livemode": false,
                    "active": false,
                    "currency": "SGD",
                    "nickname": "apple",
                    "product": {
                        "id": "prod_1686257953646051328",
                        "object": "product",
                        "created": 1690870200000,
                        "livemode": false,
                        "active": false,
                        "name": "apple",
                        "updated": 1690870200000
                    },
                    "type": "one_time",
                    "unit_amount": 10000000,
                    "billing_scheme": "per_unit",
                    "lookup_key": "test_lookup_key"
                },
                "quantity": 1,
                "amount_subtotal": 10000000,
                "amount_total": 10000000
            }
        ]
    },
    "payment_intent": "pi_1686257953868349440",
    "payment_method_types": [
        "paynow"
    ],
    "payment_status": "unpaid",
    "success_url": "https://wooshpay.com/",
    "amount_subtotal": 10000000,
    "amount_total": 10000000,
    "billing_address_collection": "auto",
    "expires_at": 1690956599952,
    "payment_link": "",
    "client_secret": "pi_1686257953868349440_secret_BKuEOd8kJq0cxvZszocDlfjb"
}

Next step #

You can add more features to your integration as needed

Create a Webhook #

Listen to events on your WooshPay account so your integration can automatically trigger reactions. Create a webhook that mainly focuses on enabled_events and url.

Create a Refund #

Create a refund to repay funds to your customer. You can also perform partial refunds, but not every payment method supports them. A partial refund is when you refund only part of the original transaction amount.

What are your feelings
Updated on August 8, 2023