**From the APM AI Agent output Jan. 4, 2026 **
**Add line separators**
- METHOD TYPE
- PAYMENTS
- PAYOUTS
- REFUNDS
- RECURRING
QRIS
Introduction
QRIS is an Indonesian QR code payment system that enables customers to make payments by scanning a QR code using their mobile banking or e-wallet application. It provides a fast, secure, and convenient way to pay for goods and services without requiring a physical card.
Supported Countries
Indonesia;
Supported Currencies
IDR;
REST API
Payment (Deposit) Flow
Follow these steps to perform a payment using Nuvei REST API integration:
1. Generate a sessionToken
Press here for details.
Send a /payments request using REST 2.0. The session token is no longer required. Ensure the following mandatory fields are included:
processingEntityIdamountcurrencypaymentOption.alternativePaymentMethod.name= “qris”deviceDetails.ipAddressbuyerDetailsblock with:buyerIdfirstName,lastName,country,emailbillingAddress.countryCode
urlDetails.webhookUrl
Example Request
{
"processingEntityId": "<>",
"amount": 10.5,
"currency": "IDR",
"paymentOption": {
"alternativePaymentMethod": {
"name": "qris"
}
},
"custom": {
"description": "Some description"
},
"deviceDetails": {
"ipAddress": "203.0.113.45",
"browser": {
"acceptHeader": "Y",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
"javaEnabled": false,
"language": "en-US",
"colorDepth": 24,
"screenHeight": 1080,
"screenWidth": 1920,
"timeZone": -120,
"javaScriptEnabled": true
}
},
"buyerDetails": {
"buyerId": "JohnSmith12443",
"firstName": "John",
"lastName": "JSmith",
"country": "ID",
"email": "[email protected]",
"billingAddress": {
"countryCode": "ID"
}
},
"urlDetails": {
"webhookUrl": "https://merchant.example.com/webhooks/nuvei"
}
}
Example Response
{
"paymentId": "087331e441724a55841b28b98e102438",
"amount": 10.5,
"currency": "IDR",
"transactionType": "Sale",
"result": {
"status": "redirect"
},
"redirectUrl": "https://test.safecharge.com/APMNotificationGateway/TWOC2PRedirect/PaymentPageProxy.aspx?...",
"paymentOption": {
"alternativePaymentMethod": {
"name": "qris",
"paymentTokenId": "2cb4e096863d415f8acd2335dbc49dea"
}
}
}
Payout (Withdrawal) Flow
Send a /payout request and include the userPaymentOptionId, which contains the user’s previously stored QRIS account details. After the transaction is processed, Nuvei sends a webhook with the result to urlDetails.webhookUrl, which Nuvei recommends including in the request.
Web SDK
Payment (Deposit) Flow
TBD
Withdrawal Flow
TBD
Payment Page
Payment (Deposit) Flow
TBD
Simply Connect
Payment (Deposit) Flow
TBD
DMN
TBD
User Experience
TBD (Include placeholder for images)
Testing
Test credentials and testing scenarios can be provided by Nuvei, if necessary. Contact Nuvei support for assistance.
INTERNAL NOTES
APM Type: QR Code Payment
APM Method: qris
Attributes:
Payment: true
Payout: true
Refund: false
Recurring: false
Source Documents
– https://docs.nuvei.com/documentation/asia-pacific-guides/qris/
– Azure DevOps Ticket: 1165559
Other Issues and Notes
Notes: REST 2.0 alignment requires removing session token references and replacing DMN with webhook terminology.