SNAP QRIS
API Services
Header
Header Request
Header parameters for transaction request.
Content-Type
Mandatory
String
String represents indicate the media type of the resource (e.g. application/json, application/pdf)
X-TIMESTAMP
Mandatory
String
Client's current local time in yyyy-MMddTHH:mm:ssTZD format
X-SIGNATURE
Mandatory
String
Represents signature of a request.
ORIGIN
Optional
String
Origin Domain www.yourdomain.com
X-PARTNER-ID
Mandatory
String
(5)
Unique ID for a partner. merchant_id mapped here
X-EXTERNAL-ID
Mandatory
String (36)
Numeric String. Reference number that should be unique in the same day
CHANNEL-ID
Mandatory
String
(5)
Faspay’s channel id
Device identification on which the API services is currently being accessed by the end user (customer)
Header Response
Header parameters for transaction response.
Content-Type
Mandatory
String
application/json
X-TIMESTAMP
Mandatory
String
Client's current local time in yyyy-MMddTHH:mm:ssTZD format
Body
Generate QRIS
POST
/{version}/qr/qr-mpm-generate
The QRIS API is used for generating QRIS code payments.
Service code -> 47 Current version -> v1.0 *is required
URL Path
Sandbox: https://debit-sandbox.faspay.co.id/v1.0/qr/qr-mpm-generate
Request Body
partnerReferenceNo*
String (32)
Transaction identifier on service consumer system
amount
Object
An object that contains information about an amount or value within a specific context.
value*
String (16,2)
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 with 2 decimal (ISO4217)
currency*
String (3)
Currency
merchantId*
String (5)
Merchant identifier that is unique per each merchant
validityPeriod*
String (25)
The time when the QRIS valid.
(ISO-860)
additionalInfo
Object
Merchant identifier that is unique per each merchant
billDate*
String (25)
Transaction/ Order Date.
(ISO-8601)
billDescription*
String (128)
Bill description
channelCode*
String (32)
Payment Channel Code
List Channel Code:
715 Linkaja QRIS 711 ShopeePay QRIS 842 CIMB QRIS
phoneNo*
String (30)
Customer phone number
Response
responseCode*
String (7)
Response code
responseMessage*
String (150)
Response description
referenceNo*
String (16)
Transaction identifier on service provider system. Must be filled upon successful transaction
partnerReferenceNo*
String (32)
Transaction identifier on service consumer system
qrUrl
String (256)
QR URL for downloading QR
Image.
Will be returned only for direct merchant. Notes: type -> conditional
additionalInfo
Object
Additional information
qrImageUrl*
String (256)
Redirect URL to display QR Image in Faspay page.
merchantId*
String (5)
Merchant identifier that is unique per each merchant
amount*
Object
An object that contains information about an amount or value within a specific context.
value*
String (16,2)
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 with 2 decimal (ISO4217)
currency*
String (3)
Currency
Query Payment
POST
/{version}/qr/qr-mpm-query
The query payment API is used to check the transaction status.
Service code: 51
Current version: v1.0
*is required
URL Path
Sandbox: https://debit-sandbox.faspay.co.id/v1.0/qr/qr-mpm-query
Request Body
originalReferenceNo*
String(16)
Original transaction identifier on service provider system
channelCode*
String(32)
Payment Channel Code
List Channel Code:
715 Linkaja QRIS
711 ShopeePay QRIS 842 CIMB QRIS
additionalInfo
Object
Additional information
merchantId*
String(5)
Merchant identifier that is unique per each merchant
serviceCode*
String(2)
Transaction type indicator (service code of the original transaction request)
originalPartnerReferenceNo*
String(32)
Original transaction identifier on
service consumer system
Response
responseCode*
M
String (7)
Response code
responseMessage*
M
String (150)
Response description
originalReferenceNo*
M
String (16)
Original transaction identifier on service provider system. Must be filled upon successful transaction
paidTime
C
DateTime (25)
Transaction date (yyyyMMddHHmmss) ISO-8601.
Notes: Type -> Conditional,Mandatory when payment Happened
amount
O
Object
An object that contains information about an amount or value within a specific context.
value
C
String (16,2)
Amount of customer
payment. If it's IDR then
value includes 2 decimal
digits.
e.g. IDR 10.000,- will be placed with 10000.00.
Notes: Type -> Conditional, Mandatory when payment Happened, (ISO4217)
currency
C
String (3)
Currency Notes: Type -> Conditional,
originalPartnerReferenceNo*
M
String (32)
Original transaction identifier on service consumer system
serviceCode*
M
String (2)
Transaction type indicator (service code of the original transaction request)
latestTransactionStatus*
M
String (2)
Status code list:
00 - Success
01 - Initiated
03 - Pending
04 - Refunded
05 - Canceled
06 - Failed
07 - Not found 07 - Expired
transactionStatusDesc*
M
String (32)
Description status transaction
additionalInfo
O
Object
Additional information
paymentReff
C
String (16)
Payment Reff (from
Payment Channel).
Mandatory when payment
Happened
merchantId*
M
String (5)
Merchant identifier that is unique per each merchant
Payment Notification
Payment notification from Faspay to the merchant backend will also trigger an event of transaction status getting updated, to ensure merchant is securely informed. Please provide the URL and make sure it's already registered on Faspay system.
The detailed API reference can be found here
Integration Requirement
Integration needs API & Credential Key.
Response Code
Response status consists of 2 components, the code (response code) and the description (response message).
responseCode
String
7
response code = HTTP status code + service code + case code
responseMessage
String
150
Response Code List
Success
200
any
0
Successful
Successful
Success
202
any
0
Request In Progress
Transaction still on process
System
400
any
0
Bad Request
General request failed error, including message parsing failed.
Message
400
any
1
Invalid Field Format {field name}
Invalid format
Message
400
any
2
Invalid Mandatory Field {field name}
Missing or invalid format on mandatory field
System
401
any
0
Unauthorized. [reason]
General unauthorized error (No Interface Def,
API is Invalid, Oauth
Failed, Verify Client
Secret Fail, Client
Forbidden Access API,
Unknown Client, Key not
Found)
System
401
any
1
Invalid Token (B2B)
Token found in request is invalid (Access Token Not Exist, Access Token
Expiry)
System
401
any
2
Invalid Customer Token
Token found in request is invalid (Access Token Not Exist, Access Token
Expiry)
System
401
any
3
Token Not Found (B2B)
Token not found in the system. This occurs on any API that requires token as input parameter
System
401
any
4
Customer Token Not Found
Token not found in the system. This occurs on any API that requires token as input parameter
Business
403
any
0
Transaction Expired
Transaction expired
System
403
any
1
Feature Not Allowed [Reason]
This merchant is not allowed to call Direct Debit APIs
Business
403
any
2
Exceeds Transaction Amount Limit
Exceeds Transaction Amount Limit
Business
403
any
3
Suspected Fraud
Suspected Fraud
Business
403
any
4
Activity Count Limit Exceeded
Too many request,
Exceeds Transaction Frequency Limit
Business
403
any
5
Do Not Honor
Account or User status is abnormal
System
403
any
6
Feature Not Allowed At This Time. [reason]
Cut off In Progress
Business
403
any
7
Card Blocked
The payment card is blocked
Business
403
any
8
Card Expired
The payment card is expired
Business
403
any
9
Dormant Account
The account is dormant
Business
403
any
10
Need To Set Token
Limit
Need to set token limit
System
403
any
11
OTP Blocked
OTP has been blocked
System
403
any
12
OTP Lifetime Expired
OTP has been expired
System
403
any
13
OTP Sent To Cardholer
initiates request OTP to the issuer
Business
403
any
14
Insufficient Funds
Insufficient Funds
Business
403
any
15
Transaction Not
Permitted.[reason]
Transaction Not Permitted
Business
403
any
16
Suspend Transaction
Suspend Transaction
Business
403
any
17
Token Limit Exceeded
Purchase amount exceeds the token limit set prior
Business
403
any
18
Inactive
Card/Account/Customer
Indicates inactive account
Business
403
any
19
Merchant Blacklisted
Merchant is suspended from calling any APIs
Business
403
any
20
Merchant Limit Exceed
Merchant aggregated purchase amount on that
day exceeds the agreed limit
Business
403
any
21
Set Limit Not Allowed
Set limit not allowed on particular token
Business
403
any
22
Token Limit Invalid
The token limit desired by the merchant is not within the agreed range between the merchant and the Issuer
Business
403
any
23
Account Limit Exceed
Account aggregated purchase amount on that
day exceeds the agreed limit
Business
404
any
0
Invalid Transaction Status
Invalid transaction status
Business
404
any
1
Transaction Not Found
Transaction not found
System
404
any
2
Invalid Routing
Invalid Routing
System
404
any
3
Bank Not Supported By Switch
Bank not supported by switch
Business
404
any
4
Transaction Cancelled
Transaction is cancelled by customer
Business
404
any
5
Merchant Is Not
Registered For Card
Registration Services
Merchant is not registered for Card Registration services
System
404
any
6
Need To Request OTP
Need to request OTP
System
404
any
7
Journey Not Found
The journeyID cannot be found in the system
Business
404
any
8
Invalid Merchant
Merchant does not exist or status abnormal
Business
404
any
9
No Issuer
No issuer
System
404
any
10
Invalid API Transition
Invalid API transition within a journey
Business
404
any
11
Invalid
Card/Account/Customer
[info]/Virtual Account
Card information may be invalid, or the card account may be
blacklisted, or Virtual
Account number maybe invalid.
Business
404
any
12
Invalid Bill/Virtual Account [Reason]
The bill is blocked/ suspended/not found. Virtual account is suspend/not found.
Business
404
any
13
Invalid Amount
The amount doesn't match with what supposed to
Business
404
any
14
Paid Bill
The bill has been paid
System
404
any
15
Invalid OTP
OTP is incorrect
Business
404
any
16
Partner Not Found
Partner number can't be found
Business
404
any
17
Invalid Terminal
Terminal does not exist in the system
Business
404
any
18
Inconsistent Request
Inconsistent request parameter found for the same partner reference number/transaction id It can be considered as failed in transfer debit, but it should be considered as success in transfer credit.
Considered as success:
'- Transfer credit = (i)
Intrabank transfer; (ii)
Interbank transfer; (iii)
RTGS transfer; (iv)
SKNBI transfer;
'- Virtual account = (i)
Payment VA; (ii)
Payment to VA;
'- Transfer debit = (i) Refund payment; (ii)
Void;
Considered as failed:
'- Transfer credit = (i)
Transfer to OTC;
'- Transfer debit = (i)
Direct debit payment; (ii)
QR CPM payment; (iii)
Auth payment; (iv)
Capture;
Business
404
any
19
Invalid Bill/Virtual
Account
The bill is expired. Virtual account is expired.
System
405
any
0
Requested Function Is Not Supported
Requested function is not supported
Business
405
any
1
Requested Opearation Is Not Allowed
Requested operation to cancel/refund transaction Is not allowed at this time.
System
409
any
0
Conflict
Cannot use same XEXTERNAL-ID in same day
System
409
any
1
Duplicate partnerReferenceNo
Transaction has previously been processed indicates the same
partnerReferenceNo already success
System
429
any
0
Too Many Requests
Maximum transaction limit exceeded
System
500
any
0
General Error
General Error
System
500
Any
1
Internal Server Error
Unknown Internal Server Failure, Please retry the process again
System
500
Any
2
External Server Error
Backend system failure, etc
System
504
any
0
Timeout
timeout from the issuer
Last updated