WooshPay OpenAPI
Product DocumentAPI ReferenceJS SDK ReferenceSaaS Platform Integration
Product DocumentAPI ReferenceJS SDK ReferenceSaaS Platform Integration
Back to WooshPay Website
  1. QR Payments
  • Online payments
    • Quick Start
    • Integration overview
    • Wooshpay JS SDK
    • Wooshpay Checkout
    • Wooshpay Direct API
    • Payment Link
    • Authorize and capture
    • Build subscriptions integration
    • Testing cards
  • After the payment
    • Payouts
    • Webhook
    • Check the webhook signatures
    • 校验webhook签名
  • Add more payment methods
    • Supported payment method
    • Cards
    • Wallets
      • Alipay
      • Alipay HK
      • Apple Pay
      • Google Pay
      • Wechat Pay
      • 微信支付
      • Kakao Pay
      • DANA
      • Boost
      • Grabpay
      • Mcash
      • Touch'n Go
      • ShopeePay
      • UnionPay
      • 9Pay
      • OVO
      • GCash
      • TrueMoney
    • Bank redirects
      • Bancontact
      • BPI
      • Trustly
      • EPS
      • Giropay
      • iDEAL
      • Przelewy24
      • FPX
    • Buy Now Pay Later
      • Klarna
    • Bank Debits
      • Sepa Direct Debit
    • Bank Transfer
      • Bank Transfer in Europe
      • Bank Transfer in United Kingdom
      • Bank Transfer in Indonesia
    • QR Payments
      • QRIS
      • PromptPay
    • Real-time payments
      • PIX
      • PayNow
      • UPI
      • SPEI
  • More payment scenarios
    • Set up future payments
    • Save payment method during payment
  • SaaS platform integration
    • Shopify Plugin
    • Shopastro 星盘
    • WooCommerce
    • Shoplazza 店匠
    • Shopline Plugin
    • Sage Connection
  • Resources
    • Supported currencies
  1. QR Payments

QRIS

QRIS is Quick Response Code Indonesian Standard is a National QR code standard to facilitate QR code payments in Indonesia which was launched by Bank Indonesia and the Indonesian Payment System Association (ASPI) on August 17, 2019.

Features#

Available country codesID
Processing currenciesIDR
Settlement currenciesUSD
Minimum transaction amountFollowing e-wallets regulation
Maximum transaction amountFollowing e-wallets regulation
Refunds❌
Partial Refunds❌
Multiple partial refund❌
Chargeback❌

Integration Method#

Payment method enumeration values:qris
There are two integration methods for QRIS
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
A PaymentIntent is an object that represents your intent to collect payment from your customer and tracks the lifecycle of the payment process. Create a PaymentIntent on your server and specify the amount to collect and a supported currency. If you have an existing Payment Intents integration, add qris to the list of payment method types.
Request
{
    "amount":100,
    "currency":"IDR",
    "confirm":true,
    "payment_method_data" : {
        "type":"qris"
    },
    "return_url":"https://your.website"
}
Response
{
    "id": "pi_1765928142586773504",
    "object": "payment_intent",
    "created": 1709865053000,
    "livemode": false,
    "currency": "IDR",
    "amount": 100,
    "status": "requires_action",
    "client_secret": "pi_1765928142586773504_secret_O9SgiBtsm7kw7KaYmGtXvdBr",
    "next_action": {
        "type": "qris_handle_redirect",
        "qris_handle_redirect": {
            "url": "https://XXXXXXXXXX"
        }
    },
    "payment_method_types": [
        "qris"
    ],
    "confirmation_method": "automatic",
    "return_url": "https://your.website",
    "payment_method": "pm_1765928142498693120",
    "capture_method": "automatic"
}

Checkout#

Payment flow#

1.
Customer selects QRIS from the list of payment methods available and clicks on the Pay botton
下载 (2).png
2.
Customers scan the QR code using an application that accepts QRIS.
下载 (3).png

Create a Session#

Request
{
    "cancel_url": "www.wooshpay.com",
    "mode": "payment",
    "success_url": "https://wooshpay.com/",
    "payment_method_types": [
        "qris"
    ],
    "line_items": [
        {
            "price_data": {
                "currency": "IDR",
                "product": null,
                "unit_amount": 2000,
                "product_data": {
                    "name": "apple"
                },
                "billing_scheme": "testscheme",
                "lookup_key": "test_lookup_key"
            },
            "quantity": 1
        }
    ]
}
Response
{
    "id": "cs_1765929090289762304",
    "object": "checkout.session",
    "created": 1709865279000,
    "livemode": false,
    "currency": "IDR",
    "customer": "",
    "mode": "payment",
    "status": "open",
    "url": "https://checkouttest.wooshpay.com/pay/cs_test_1765929090289762304?key=cGtfdGVzdF9OVEUyTnpRek16SXpPREV5TlRJNE1UWTRPVFl4T2pFeVZXZGFSamhoU0dwcU9GWmhSRFp2YUZSeWMxUlpiekUyT0Rnd01qWTVNalU1TlRr",
    "cancel_url": "www.wooshpay.com",
    "line_items": {
        "object": "list",
        "data": [
            {
                "id": "li_1765929090390425600",
                "object": "item",
                "currency": "IDR",
                "description": "apple",
                "price": {
                    "id": "price_1765929090411397120",
                    "object": "price",
                    "created": 1709865279000,
                    "livemode": false,
                    "active": false,
                    "currency": "IDR",
                    "product": {
                        "id": "prod_1765929090457534464",
                        "object": "product",
                        "created": 1709865279000,
                        "livemode": false,
                        "active": false,
                        "name": "apple",
                        "updated": 1709865279000
                    },
                    "type": "one_time",
                    "unit_amount": 2000,
                    "billing_scheme": "per_unit",
                    "lookup_key": "test_lookup_key"
                },
                "quantity": 1,
                "amount_subtotal": 2000,
                "amount_total": 2000
            }
        ]
    },
    "payment_intent": "pi_1765929095620722688",
    "payment_method_types": [
        "qris"
    ],
    "payment_status": "unpaid",
    "success_url": "https://wooshpay.com/",
    "amount_subtotal": 2000,
    "amount_total": 2000,
    "billing_address_collection": "auto",
    "expires_at": 1709951679160,
    "payment_link": "",
    "client_secret": "pi_1765929095620722688_secret_n58CnonKQM6SgpQU3YGrzCzf",
    "customer_creation": "if_required"
}

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.
Modified at 2024-03-11 02:07:04
Previous
Bank Transfer in Indonesia
Next
PromptPay
Built with