QR MPM Query Payment

Overview

Service to query payment status of MPM (Merchant Presented Mode) QRIS transactions.

Direction: Merchant to Manjo
Version: 1.0
Service Code: 51
HTTP Method: POST
Path: ../v1.0/qr/qr-mpm-query


Request Structure

HTTP Headers

Field Attribute Type Description Example
Content-Type M String Media type of resource application/json
Authorization M String Access token with Bearer format Bearer YWFlNTQ4NTEyZTE5ZjZi...
X-TIMESTAMP M String Client's local timestamp (yyyy-MM-ddTHH:mm:ssTZD) 2025-11-27T07:14:27.609+07:00
X-CLIENT-KEY M String Client's client_id (merchantcode+paymentid) EP9613058999
X-SIGNATURE M String HMAC_SHA512 signature using clientSecret 26200f8e8fcd11a7e881044a86213f8d...
ORIGIN O String Merchant domain www.hostname.com
X-IP-ADDRESS O String Merchant IP address 172.24.281.24
X-PARTNER-ID M String(36) Unique merchant ID EP9613058999
X-EXTERNAL-ID M String(36) Unique reference number per day XTIDQ-0u87ji0pjk
CHANNEL-ID M String(5) Device identification 05

X-SIGNATURE Formula:

stringToSign = HTTPMethod + ":" + EndpointUrl + ":" + AccessToken + ":" + Lowercase(HexEncode(SHA256(minify(RequestBody)))) + ":" + TimeStamp
signature = HMAC_SHA512(clientSecret, stringToSign)

Request Body

{
	"originalReferenceNo": "A0000001703",
	"originalPartnerReferenceNo": "DIRECT-API-NMS-12ajd1mir8",
	"originalExternalId": "30443786930722726463280097920912",
	"serviceCode": "99",
	"merchantId": "EP96130589",
	"additionalInfo": {
		"currency": "IDR"
	}
}

Parameter Details

Parameter Attribute Type Description Example
originalReferenceNo M String(64) Original transaction ID from service provider (QRIS generation) A0000001703
originalPartnerReferenceNo M String(64) Original transaction ID from merchant (QRIS generation) DIRECT-API-NMS-12ajd1mir8
originalExternalId O String(32) Original X-EXTERNAL-ID from header 30443786930722726463280097920912
serviceCode M String(2) Transaction type indicator (payment id) "99"
merchantId M String(64) Unique merchant identifier "EP96130589"
subMerchantId O String(32) Sub merchant ID -
externalStoreId O String(64) External store ID -
additionalInfo.currency M String(20) Currency "IDR"

Note on serviceCode:

  • "99" for Manjo QRIS transactions

Response Structure

HTTP Headers Response

Content-Type: application/json
X-TIMESTAMP: 2020-12-23T08:43:16+07:00

Response Body

{
	"responseCode": "2005100",
	"responseMessage": "Successful",
	"originalReferenceNo": "A0000001703",
	"originalPartnerReferenceNo": "DIRECT-API-NMS-12ajd1mir8",
	"originalExternalId": "30443786930722726463280097920912",
	"serviceCode": "99",
	"latestTransactionStatus": "00",
	"transactionStatusDesc": "Success",
	"paidTime": "2025-11-27T14:13:54+07:00",
	"amount": {
		"value": "50000.00",
		"currency": "IDR"
	},
	"feeAmount": {
		"value": "450.00",
		"currency": "IDR"
	},
	"terminalId": "45",
	"additionalInfo": {
		"currency": "IDR"
	}
}

Response Parameter Details

Parameter Attribute Type Description Example
responseCode M String(7) Response code "2005100"
responseMessage M String(150) Response description "Successful"
originalReferenceNo C String(64) Echo of originalReferenceNo from request "A0000001703"
originalPartnerReferenceNo M String(64) Echo of originalPartnerReferenceNo from request "DIRECT-API-NMS-12ajd1mir8"
originalExternalId O String(32) Echo of originalExternalId from request "30443786930722726463280097920912"
serviceCode M String(2) Transaction type indicator "99"
latestTransactionStatus M String(2) Latest transaction status code "00"
transactionStatusDesc O String(50) Transaction status description "Success"
paidTime C String(25) Payment timestamp (ISO8601) "2025-11-27T14:13:54+07:00"
amount.value M String(16,2) Payment amount (2 decimals) "50000.00"
amount.currency M String(3) Currency (ISO4217) "IDR"
feeAmount.value M String(16,2) Fee amount (2 decimals) "450.00"
feeAmount.currency M String(3) Currency (ISO4217) "IDR"
terminalId O String(16) Terminal ID "45"
additionalInfo.currency M String(20) Currency "IDR"

Transaction Status Codes

Status Code Description
00 Success
01 Initiated
02 Paying
03 Pending
04 Refunded
05 Canceled
06 Failed
07 Not found

Error Codes

HTTP Code Service Code Case Code Message Category Description
200 51 00 Success Successful Transaction successful
400 51 02 Invalid Mandatory Field {field name} Message Missing/invalid mandatory field
401 51 00 Unauthorized. {reason} System Invalid signature or client key
401 51 01 Invalid token System Invalid/expired access token
404 51 01 Transaction Not Found Business Transaction not found
409 51 00 Conflict System X-EXTERNAL-ID already used today

Response Code Format: httpcode(3) + servicecode(2) + casecode(2)


Implementation Examples

Example Request

curl -X POST \
  'https://api.manjo.com/v1.0/qr/qr-mpm-query' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YWFlNTQ4NTEyZTE5ZjZi...' \
  -H 'X-TIMESTAMP: 2025-11-27T07:14:27.609+07:00' \
  -H 'X-CLIENT-KEY: EP9613058999' \
  -H 'X-SIGNATURE: 26200f8e8fcd11a7e881044a86213f8d...' \
  -H 'X-PARTNER-ID: EP9613058999' \
  -H 'X-EXTERNAL-ID: XTIDQ-0u87ji0pjk' \
  -H 'X-IP-ADDRESS: 172.24.281.24' \
  -H 'CHANNEL-ID: 05' \
  -d '{
    "originalReferenceNo": "A0000001703",
    "originalPartnerReferenceNo": "DIRECT-API-NMS-12ajd1mir8",
    "originalExternalId": "30443786930722726463280097920912",
    "serviceCode": "99",
    "merchantId": "EP96130589",
    "additionalInfo": {
      "currency": "IDR"
    }
  }'

Example Success Response

{
	"responseCode": "2005100",
	"responseMessage": "Successful",
	"originalReferenceNo": "A0000001703",
	"originalPartnerReferenceNo": "DIRECT-API-NMS-12ajd1mir8",
	"originalExternalId": "30443786930722726463280097920912",
	"serviceCode": "99",
	"latestTransactionStatus": "00",
	"transactionStatusDesc": "Success",
	"paidTime": "2025-11-27T14:13:54+07:00",
	"amount": {
		"value": "50000.00",
		"currency": "IDR"
	},
	"feeAmount": {
		"value": "450.00",
		"currency": "IDR"
	},
	"terminalId": "45",
	"additionalInfo": {
		"currency": "IDR"
	}
}

Example Transaction Not Found Response

{
	"responseCode": "4045101",
	"responseMessage": "Transaction Not Found",
	"originalReferenceNo": "A0000001703",
	"originalPartnerReferenceNo": "DIRECT-API-NMS-12ajd1mir8",
	"serviceCode": "99",
	"latestTransactionStatus": "07",
	"transactionStatusDesc": "Not found"
}

Important Notes

  1. X-EXTERNAL-ID must be unique per merchant per day
  2. X-CLIENT-KEY is mandatory and consists of merchantcode + paymentid
  3. originalReferenceNo is the reference number returned during QRIS generation (from qr-mpm-generate response)
  4. originalPartnerReferenceNo is the partner reference number used during QRIS generation
  5. paidTime field is only populated for successful transactions (status 00)
  6. feeAmount represents the transaction fee charged by the payment provider

Version: 1.0
Last Updated: November 2024
Service Owner: Manjo QRIS Team