Appearance
Notify Payment VA SNAP PG3
Notify payment returns the X-SIGNATURE
in the header. This is the digital signature for your request. Always check and compare our X-SIGNATURE
header with your order signature first, to ensure that the callback is true and match with your order detail, before you update your transaction order status based on the callback value. But for the current SNAP BI’s version will not need verification for the X-SIGNATURE
. Please make sure to always return HTTP Status Code 200 to IFP
Our Notification Callback will retry 3 times if the requirement above isn't satisfied.
Information
Field | Value |
---|---|
Path | /{version}/transfer-va/notif-payment |
HTTP Method | POST |
Service Code |
Request
Header
Name | Value | Detail |
---|---|---|
Content-Type (default mandatory) | application/json | Mandatory |
X-TIMESTAMP | Format: yyyy-MM- ddTHH:mm:ssTZD format | Mandatory (Client>(Client current local time) |
X-SIGNATURE | String | Mandatory |
X-PARTNER-ID | string(36) | Mandatory Unique ID for a partner |
X-EXTERNAL-ID | string(36) | Mandatory Numeric String. Reference number that should be unique in the same day per vendor |
CHANNEL-ID | string(20) | Mandatory channel id (payment_channel) |
Body
Details
Parameter | Data Type | Mandatory | Description |
---|---|---|---|
partnerServiceId | string(8) | O | Get value from BIN CODE(MIS). 8 digit left padding space |
customerNo | string(20) | O | Unique number (up to 20 digits). Format: sub bincode + random |
virtualAccountNo | string(28) | M | partnerServiceId (8 digit left padding space) + customerNo (up to 20 digits). |
virtualAccountName | string(255) | O | Customer name |
virtualAccountEmail | string(255) | O | Customer email |
virtualAccountPhone | string(30) | O | Customer's phone number. Format: 62xxxxxxxxxxxxx |
trxId | string(64) | C | Unique identifier generated by Partner. Mandatory if Payment comes from the Create VA Request |
paymentRequestId | string(128) | M | Unique identifier generated by PJP. If Payment comes from the Inquiry process, this value must be the same with inquiryRequestId. |
channelCode | number(4) | O | Channel code based on ISO 18245. Merchant Category Codes (MCC) |
hashedSourceAccountNo | string(32) | C | Source account number in hash |
sourceBankCode | string(3) | C | Source account bank code |
paidAmount | object | M | |
paidAmount.Value | string(ISO4217)(16,2) | M | Paid Amount with 2 decimal |
paidAmount.Currency | string(3) | M | Currency |
cumulativePaymentAmount | object | O | |
cumulativePaymentAmount.Value | string(ISO4217)(16,2) | M | Total paid Amount with 2 decimal |
cumulativePaymentAmount.Currency | string(3) | M | Currency |
paidBills | string(6) | O | Hexadecimal format of binary of flag of paid bills |
totalAmount | object | O | |
totalAmount.Value | string(ISO4217)(16,2) | M | Total amount from Inquiry with 2 decimal |
totalAmount.Currency | string(3) | M | Currency |
trxDateTime | date(25) | O | PJP internal system datetime with timezone, which follows the ISO-8601 standard |
referenceNo | string(64) | O | Payment auth code generated by PJP |
paymentType | string(1) | O | Type of payment |
flagAdvise | string(1) | O | Status indicating if this is a retry notification |
subCompany | string(5) | O | Sub Company code generated by Partner |
billDetails | array of objects | O | Array with maximum 24 Objects |
billDetails.billCode | string(2) | O | Bill code for Customer choose |
billDetails.billNo | string(18) | O | Bill number from Partner |
billDetails.billName | string(20) | O | Bill Name |
billDetails.billShortName | string(10) | O | Bill Name to be shown |
billDetails.billDescription | object | O | Bill Description |
billDetails.billDescription.english | string(18) | O | Bill Description English |
billDetails.billDescription.indonesia | string(18) | O | Bill Description Indonesia |
billDetails.billSubCompany | string(5) | O | Bill SubCompany |
billDetails.billAmount | object | O | Bill Amount |
billDetails.billAmount.Value | string(ISO4217)(16,2) | M | Transaction Amount. From Inquiry Response |
billDetails.billAmount.Currency | string(3) | M | Currency |
additionalInfo | object | O | From Inquiry Response |
additionalInfo.freeTexts | array of objects | O | Array with maximum 25 Objects |
additionalInfo.freeTexts.english | string(32) | O | Free texts in English |
additionalInfo.freeTexts.indonesia | string(32) | O | Free texts in Indonesian |
additionalInfo.transactionStatus | string(50) | M | Transaction status: PAID |
additionalInfo.acquirerIssuerRelation | string(30) | O | When creating VA |
additionalInfo.paymentHistory | object array | O | Data history payment. For VA types: Multi Close, Partial, Open, Close. Max 10 last paid transaction data |
additionalInfo.paymentHistory.paidAmount | string(16,2) | O | Amount paid in transaction |
additionalInfo.paymentHistory.paidTime | string(25) | O | Payment date for Virtual Account (ISO-8601) |
additionalInfo.paymentHistory.paymentRequestId | string(50) | O | Follow existing, the value using paymentRequestId from bank |
virtualAccountTrxType | string(1) | O | Type of Virtual Account. See VA Feature for code. |
Example Request
sh
curl -X POST '.../v1.0/transfer-va/notif-payment HTTP/1.2' \
--header 'Content-Type: application/json' \
--header 'X-TIMESTAMP: 2020-12-21T14:56:11+07:00' \
--header 'X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5' \
--header 'X-PARTNER-ID: 82150823919040624621823174737537' \
--data-raw '{
"partnerServiceId": " 088899",
"customerNo": "12345678901234567890",
"virtualAccountNo": " 08889912345678901234567890",
"virtualAccountName": "Jokul Doe",
"virtualAccountEmail": "jokul@email.com",
"virtualAccountPhone": "6281828384858",
"trxId": "abcdefgh1234",
"paymentRequestId": "abcdef-123456-abcdef",
"channelCode": 6011,
"hashedSourceAccountNo": "abcdefghijklmnopqrstuvwxyz123456",
"sourceBankCode": "008",
"paidAmount": {
"value": "12345678.00",
"currency": "IDR"
},
"cumulativePaymentAmount": {
"value": "12345678.00",
"currency": "IDR"
},
"paidBills": "95000",
"totalAmount": {
"value": "12345678.00",
"currency": "IDR"
},
"trxDateTime": "20201231T235959Z",
"referenceNo": "123456789012345",
"paymentType": 1,
"flagAdvise": "Y",
"subCompany": "12345",
"billDetails": [
{
"billCode": "01",
"billNo": "123456789012345678",
"billName": "Bill A for Jan",
"billShortName": "Bill A",
"billDescription": {
"english": "Maintenance",
"indonesia": "Pemeliharaan"
},
"billSubCompany": "00001",
"billAmount": {
"value": "12345678.00",
"currency": "IDR"
}
}
],
"additionalInfo": {
"transactionStatus": "PAID",
"acquirerIssuerRelation": "on_us",
"paymentHistory": [
{
"paidAmount": "10000.00",
"paidTime": "2020-12-31T23:59:59-07:00",
"paymentRequestId": "abcdef-123456-abcdef"
}
]
},
"virtualAccountTrxType": "C"
}'
Response
Header
Name | Value | Detail |
---|---|---|
Content-Type | application/json | |
X-TIMESTAMP | 2021-11-02T13:14:15+07:00 | Client's current local time in yyyy-MM-ddTHH:mm:ssTZD format (ISO 8601) |
Mandatory Condition
- Return HTTP code 200