For the complete documentation index, see llms.txt. This page is also available as Markdown.

Payment (Host-to-Host)

This API initiates a QRIS MPM (Merchant Presented Mode) payment from the consumer’s account in PJP AIS Bank or Non-Bank. The payment request is triggered after decoding the QR and obtaining an OTT (One-Time Token) for authorization.

Technical Specification

Service Code: 50

Required Headers

Use the standard Linkage authentication headers, signature, and device context on every request.

No
Name
Type
Mandatory
Description

1

Content-Type

String

M

Fill with application/json

2

Authorization

String

M

Access token B2B

3

Authorization-Customer

String

M

Access token B2B2C

4

X-TIMESTAMP

String

M

Timestamp in RFC3339 format: yyyy-MM-ddTHH:mm:ssTZD

5

X-PARTNER-ID

String

M

Client ID provided by Finnet

6

X-SIGNATURE

String

M

BI SNAP symmetric signature. See Signature for details.

7

X-EXTERNAL-ID

String

M

Random string that must be unique within a day for each partner with max 36 characters

8

CHANNEL-ID

String

M

Device identification on which the API services is currently being accessed by the End User (Customer)

9

ORIGIN

String

M

The domain of the calling application

10

X-IP-ADDRESS

String

M

The IP address of the device

11

X-DEVICE-ID

String

M

The unique identifier of the device

12

X-LATITUDE

String

M

The latitude coordinate from the device’s GPS

13

X-LONGITUDE

String

M

The longitude coordinate from the device’s GPS

Body Request

No
Name
Type
Mandatory
Min Length
Max Length
Description

1

partnerReferenceNo

String

M

1

64

Transaction identifier on service consumer system

2

merchantId

String

M

1

64

Identifier provided at the time of linking

3

amount

Object

M

1

2

Transaction amount

4

amount.value

String

M

1

16,2

Filled with transaction amount value.

2 decimal digits format

5

amount.currency

String

M

3

3

Filled with IDR

6

feeAmount

Object

M

1

2

Transaction fee amount

7

feeAmount.value

String

M

1

16,2

Filled with transaction fee amount value.

2 decimal digits format

8

feeAmount.currency

String

M

3

3

Filled with IDR

9

verificationId

String

M

1

64

Verify widget uniqId

10

additionalInfo

Object

M

1

1

Additional information for custom use that are not provided by SNAP

11

additionalInfo.reffFlag

String

M

1

64

The final reference number (identical to the referenceNo obtained during the QR verification process).

Sample Request

Body Response

No
Name
Type
Mandatory
Min Length
Max Length
Description

1

responseCode

String

M

1

7

Response code

2

responseMessage

String

M

1

150

Response description

3

referenceNo

String

C

1

64

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

4

partnerReferenceNo

String

O

1

64

Transaction identifier on service consumer system

5

transactionDate

String

M

1

25

Transaction date and time in ISO 8601 format. YYYY-MM-DDThh:mm:ssZ

6

amount

Object

O

1

2

7

amount.value

String

M

1

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

8

amount.currency

String

M

3

3

Currency (ISO 4217)

9

feeAmount

Object

O

1

2

10

feeAmount.value

String

M

1

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

11

feeAmount.currency

String

M

3

3

Currency (ISO 4217)

13

verificationId

String

M

1

64

Verify widget uniqId

Sample Response

Response Code & Message

No
HTTP Code
Code
Message

1

200

2005000

Successful

2

400

4005000

Bad request

3

400

4005001

Invalid field format {field}

4

400

4005002

Invalid mandatory field {field}

5

401

4015001

Invalid token (B2B)

6

401

4015000

Unauthorised. [Reason]

7

401

4015002

Invalid Customer Token

8

401

4015003

Token Not Found (B2B)

9

401

4015004

Customer Token Not Found

10

403

4035001

Feature not allowed

11

403

4035004

Activity count limit exceeded

12

403

4035014

Insufficient Funds

13

404

4045008

Invalid merchant

14

500

5005000

General error

15

500

5005001

Internal Server Error

16

500

5005002

External Server Error

17

504

5045000

Timeout

Last updated