Skip to content

feat: Added QRIS payment method support#1396

Open
charis803 wants to merge 1 commit intomainfrom
qris-payment-method
Open

feat: Added QRIS payment method support#1396
charis803 wants to merge 1 commit intomainfrom
qris-payment-method

Conversation

@charis803
Copy link
Copy Markdown
Collaborator

@charis803 charis803 commented Feb 24, 2026

Type of Change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring
  • Dependency updates
  • Documentation
  • CI/CD

Description

Added support for QRIS (Quick Response Code Indonesian Standard) payment method which is a QR based PM widely used in Indonesia.

Doesn't work with local url, requires webhook to complete the flow

The preconditions for using this PM:

QRIS-details

How did you test it?

  1. /create call
    amount: 1000,
    currency: "IDR",
    capture_method: "automatic",
    customer_id: "StripeCustomer",
    email: "guest@example.com",
    name: "John Doe",
    phone: "999999999",
    phone_country_code: "+1",
    description: "Its my first payment request",
    authentication_type: "no_three_ds",
    return_url: "https://www.google.com/",
    billing: {
        address: {
            line1: "1467",
            line2: "Harrison Street",
            line3: "Harrison Street",
            city: "San Fransico",
            state: "California",
            zip: "94122",
            country: "DE",
            first_name: "joseph",
            last_name: "Doe"
        },
        phone: {
            number: "8056594427",
            country_code: "+91"
        },
        email: "swangi@gmail.com"
    },
    shipping: {
        address: {
            line1: "1467",
            line2: "Harrison Street",
            line3: "Harrison Street",
            city: "San Fransico",
            state: "California",
            zip: "94122",
            country: "DE",
            first_name: "joseph",
            last_name: "Doe"
        },
        phone: {
            number: "8056594427",
            country_code: "+91"
        }
    }
}
  1. PML Response
    "redirect_url": "https://google.com/",
    "currency": "IDR",
    "payment_methods": [
        {
            "payment_method": "real_time_payment",
            "payment_method_types": [
                {
                    "payment_method_type": "qris",
                    "payment_experience": [
                        {
                            "payment_experience_type": "redirect_to_url",
                            "eligible_connectors": [
                                "xendit"
                            ]
                        }
                    ],
                    "card_networks": null,
                    "bank_names": null,
                    "bank_debits": null,
                    "bank_transfers": null,
                    "required_fields": {},
                    "surcharge_details": null,
                    "pm_auth_connector": null
                }
            ]
        }
    ],
    "mandate_payment": null,
    "merchant_name": "testing",
    "show_surcharge_breakup_screen": false,
    "payment_type": "normal",
    "request_external_three_ds_authentication": false,
    "collect_shipping_details_from_wallets": false,
    "collect_billing_details_from_wallets": false,
    "is_tax_calculation_enabled": false,
    "sdk_next_action": {
        "next_action": "confirm"
    },
    "is_guest_customer": false
}
  1. /confirm request
  "client_secret": "****",
  "return_url": "http://localhost:9060",
  "payment_method": "real_time_payment",
  "payment_method_type": "qris",
  "payment_method_data": {
    "real_time_payment": {
      "qris": {}
    }
  },
  "browser_info": {
    "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36",
    "accept_header": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    "language": "en-US",
    "color_depth": 24,
    "screen_height": 956,
    "screen_width": 1470,
    "time_zone": -330,
    "java_enabled": true,
    "java_script_enabled": true,
    "device_model": "Macintosh",
    "os_type": "macOS",
    "os_version": "10.15.7"
  },
  "payment_type": "normal"
}
Screen.Recording.2026-02-27.at.11.34.03.mov

Checklist

  • I ran npm run re:build
  • I reviewed submitted code
  • I added unit tests for my changes where possible

@semanticdiff-com
Copy link
Copy Markdown

semanticdiff-com bot commented Feb 24, 2026

Review changes with  SemanticDiff

Changed Files
File Status
  public/icons/orca.svg  0% smaller
  src/LocaleStrings/ArabicLocale.res Unsupported file format
  src/LocaleStrings/CatalanLocale.res Unsupported file format
  src/LocaleStrings/ChineseLocale.res Unsupported file format
  src/LocaleStrings/DeutschLocale.res Unsupported file format
  src/LocaleStrings/DutchLocale.res Unsupported file format
  src/LocaleStrings/EnglishGBLocale.res Unsupported file format
  src/LocaleStrings/EnglishLocale.res Unsupported file format
  src/LocaleStrings/FrenchBelgiumLocale.res Unsupported file format
  src/LocaleStrings/FrenchLocale.res Unsupported file format
  src/LocaleStrings/HebrewLocale.res Unsupported file format
  src/LocaleStrings/ItalianLocale.res Unsupported file format
  src/LocaleStrings/JapaneseLocale.res Unsupported file format
  src/LocaleStrings/LocaleStringTypes.res Unsupported file format
  src/LocaleStrings/PolishLocale.res Unsupported file format
  src/LocaleStrings/PortugueseLocale.res Unsupported file format
  src/LocaleStrings/RussianLocale.res Unsupported file format
  src/LocaleStrings/SpanishLocale.res Unsupported file format
  src/LocaleStrings/SwedishLocale.res Unsupported file format
  src/LocaleStrings/TraditionalChineseLocale.res Unsupported file format
  src/Payments/PaymentMethodsRecord.res Unsupported file format
  src/Types/PaymentModeType.res Unsupported file format
  src/Utilities/DynamicFieldsUtils.res Unsupported file format

@github-actions
Copy link
Copy Markdown
Contributor

🚫 Missing Linked Issue

Hi 👋 This pull request does not appear to be linked to any open issue yet.

Linking your PR to an issue helps keep the project tidy and ensures the issue is closed automatically.

✔️ How to fix this

  • Add a keyword like Fixes #123 or Closes #456 to your PR description or a commit message.
  • Or link it manually using the "Linked issues" panel in the PR sidebar.

Tip: You can link multiple issues.
🚫 Note: If only one issue is linked, it must be open for this check to pass.

Once linked, this check will pass automatically on your next push or when you re-run the workflow.

Thanks for helping maintainers! 🙌

@charis803 charis803 linked an issue Feb 24, 2026 that may be closed by this pull request
@charis803 charis803 changed the title chore: Added QRIS payment method support feat: Added QRIS payment method support Feb 25, 2026
@charis803 charis803 marked this pull request as ready for review February 27, 2026 06:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

QRIS Payment method

1 participant