QRIS Payment H2H

Method and URL

POST [BASE_URL]/wallet-backend/snap/v1.0/qr/qr-mpm-payment

Purpose: Create QRIS payment link for users to scan QRIS and make payment using balance. Use this if you want to use your own UI.

Authorization:

  • B2B Token

  • B2B2C Token

Request

Request Header

Header
Requirement
Description

Content-Type

Mandatory

application/json

Authorization

Mandatory

Bearer {B2B_access_token}

Authorization-Customer

Mandatory

Bearer {B2B2C_access_token}

X-SIGNATURE

Mandatory

HMAC signature generated as per SNAP specification

HMAC_SHA512 (clientSecret, stringToSign)

stringToSign = HTTPMethod +”:“+ EndpointUrl +":"+ AccessToken +":“+ Lowercase(HexEncode(SHA-256(minify(RequestBody))))+ ":“ + TimeStamp

X-TIMESTAMP

Mandatory

Request timestamp in yyyy-MM-dd'T'HH:mm:ssXXX (ISO 8601 with offset)

X-PARTNER-ID

Mandatory

Partner ID assigned by Pivot

X-EXTERNAL-ID

Mandatory

Unique ID per request for idempotency / tracing

CHANNEL-ID

Mandatory

Channel identifier (e.g., 12345)

Request Body

{
  "partnerReferenceNo": "ref-20251125002",
  "amount": {
    "value": "36000",
    "currency": "IDR"
  },
  "feeAmount": {
    "value": "",
    "currency": ""
  },
  "additionalInfo": {
    "qrisId": "028e52ff-4427-42be-9b91-f0b9d0ad9a23",
    "mode": "JIT",
    "redirectUrl": "https://www.google.com",
    "failedRedirectUrl": "https://www.google.com"
  }
}

Request Parameter Detail

Parameter
Data Type
Character Limit
Requirement
Description

partnerReferenceNo

String

64

Mandatory

Unique reference number generated by the merchant to identify and track the transaction.

amount

Object

Mandatory

value

String

16,2

Mandatory

Net amount of the transaction.

If it's IDR then value includes 2 decimal digits.

e.g. IDR 10.000,- will be placed with 10000.00

currency

String

3

Mandatory

Currency (ISO4217)

feeAmount

Object

Optional

value

String

16,2

Mandatory

Net amount of the transaction.

If it's IDR then value includes 2 decimal digits.

e.g. IDR 10.000,- will be placed with 10000.00

currency

String

3

Mandatory

Currency (ISO4217)

additionalInfo

Object

Optional

Additional information for custom use that are not provided by SNAP

qrisId

String

32

Mandatory

QRIS Id from Decode endpoint additionalInfo.qrisId

redirectionUrl

String (URL)

255

Mandatory

URL to redirect the user after the transaction is successfully processed.

failedRedirectionUrl

String (URL)

255

Optional

URL to redirect the user if the transaction fails or is canceled.

mode

String

10

Optional

Transaction mode. "JIT" (Just-In-Time) means the wallet will be funded only at the moment of payment.

Response

Response Body

{
  "additionalInfo": {
    "paymentUrl": "http://localhost:3004/whitelabel/qris-payment?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3YWxsZXQtYmFja2VuZCIsInN1YiI6Ijk4NzI4MDgxLWZjZTgtNGNkYi04MmJmLTYxYWE2MjU5YzQxYyIsImV4cCI6MTc2NDA0NjExMSwiaWRlbnRpZmllclZhbHVlIjoiOTg3MjgwODEtZmNlOC00Y2RiLTgyYmYtNjFhYTYyNTljNDFjIiwibWVyY2hhbnRJZCI6IjVmZmQ0NjQzLWQxMjktNDMzZi04NWNiLWNkNWViYjNmMTdhNiIsInNlc3Npb25JZCI6IjAxOWFiOTQ5LWM2M2MtNzM1Zi1iMGU5LTc2OTIyNmZjNDkwOCJ9.cNzyZafajq_A2GY0ALEJ9mFXlCo10nIorg7hPxr9uCo",
    "urlExpiry": "2025-11-25T11:48:31.198284+07:00"
  },
  "amount": {
    "currency": "IDR",
    "value": "36000.00"
  },
  "feeAmount": {
    "currency": "IDR",
    "value": "0.00"
  },
  "partnerReferenceNo": "ref-20251125002",
  "referenceNo": "019ab949-c63c-735f-b0e9-769226fc4908",
  "responseCode": "2005000",
  "responseMessage": "Successful"
}

Response Parameter Detail

Parameter
Data Type
Character Limit
Requirement
Description

responseCode

String

7

Mandatory

Response code. 2005500 indicates success.

responseMessage

String

100

Mandatory

Description of the result, e.g., Successful.

amount

Object

Mandatory

value

String

16,2

Mandatory

Net amount of the transaction.

If it's IDR then value includes 2 decimal digits.

e.g. IDR 10.000,- will be placed with 10000.00

currency

String

3

Mandatory

Currency (ISO4217)

feeAmount

Object

Optional

value

String

16,2

Mandatory

Net amount of the transaction.

If it's IDR then value includes 2 decimal digits.

e.g. IDR 10.000,- will be placed with 10000.00

currency

String

3

Mandatory

Currency (ISO4217)

partnerReferenceNo

String

64

Mandatory

Transaction identifier on service provider system. Must be filled upon successful transaction

additionalInfo

Object

Optional

Additional information for custom use that are not provided by SNAP

paymentUrl

String

512

Mandatory

Link to access webview to do QRIS payment

urlExpiry

String (ISO 8601)

25

Mandatory

Expiration date and time of the payment link.

Last updated