Please make sure to use BI SNAP Credentials to utilize any of the Reporting APIs. Refer to here to understand how to retrieve your credentials.
This API is used to get merchant's transaction history detail
Path | /{version}/transaction-history-detail |
---|---|
HTTP Method | POST |
Version | v1.0 |
SNAP Service Code | 13 |
Request Header
Field Name | Field Type | Mandatory | Field Description |
---|---|---|---|
Content-type | String | M | Media type of the resource, i.e. application/json |
X-TIMESTAMP | String | M | Client’s current local time in ISO-8601 format |
X-SIGNATURE | String | M | Unique identifier for partner |
Authorization | String | M | Represents access_token of a request; string starts with keyword “Bearer ” followed by access_token. Can get this token from Access Token B2B response |
X-PARTNER-ID | String | M | Unique identifier for partner |
X-EXTERNAL-ID | String | M | Alphanumeric string. Preferably UUID. Reference number that should be unique in the same day or 1 day idempotency key |
CHANNEL-ID | String | M | Device identification on which the API services are currently being accessed by the end user. Given by BI |
Content-type: application/json
X-TIMESTAMP: 2020-12-18T15:34:40+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
Authorization: Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
CHANNEL-ID: 95221
Request Body
Field Name | Field Type | Mandatory | Field Description |
---|---|---|---|
originalPartnerReferenceNo | String(64) | M | Transaction identifier on service consumer system |
additionalInfo | Object | M | Additional information |
additionalInfo.referenceNo | String(64) | M | Transaction identifier on service provider system |
{
"originalPartnerReferenceNo": "2020102900000000000001",
"additionalInfo": {
"referenceNo": "2020102977770000000009"
}
}
Response Header
Field Name | Field Type | Mandatory | Field Description |
---|---|---|---|
Content-type | String | M | Media type of the resource, i.e. application/json |
X-TIMESTAMP | String | M | Client’s current local time in ISO-8601 format |
Content-type: application/json
X-TIMESTAMP: 2020-12-18T15:34:40+07:00
Response Body
Field Name | Field Type | Mandatory | Field Description |
---|---|---|---|
responseCode | String(7) | M | Response code (HTTP status code + service code + case code) |
responseMessage | String(150) | M | Response description |
referenceNo | String(64) | M | Transaction identifier on service provider system |
partnerReferenceNo | String(64) | M | Transaction identifier on service consumer system |
dateTime | String(25) | M | Transaction created time in ISO-8601 format |
amount | Object | M | Amount information |
amount.value | String(16,2) | M | Net amount of the transaction |
amount.currency | String(3) | M | Currency |
remark | String(256) | O | Transaction remark (only applicable for Midtrans transaction type DISBURSEMENT) |
status | String(32) | M | Transaction status (BI-SNAP) |
type | String(32) | M | Transaction type (BI-SNAP) |
additionalInfo | Object | O | Additional information |
additionalInfo.status | String(32) | M | Transaction status (Midtrans). List of statuses can be referred here |
additionalInfo.type | String(32) | M | Transaction type (Midtrans). List of types can be referred here |
additionalInfo.updatedTime | String(25) | M | Transaction updated time in ISO-8601 format |
additionalInfo.channel | String(100) | M | Transaction channel. List of channels can be referred here |
additionalInfo.customerEmail | String(100) | O | Customer email |
additionalInfo.accountNo | String(32) | O | Account number |
additionalInfo.payment | Object | O | Payment related information |
payment.expiryTime | String(25) | M | Payment expiry time in ISO-8601 format |
payment.source | String(20) | M | Payment source. List of payment sources can be referred here |
payment.cardNumber | String | O | Credit card number |
payment.cardType | String | O | Credit card type |
payment.cardChannelResponseCode | String | O | Credit card response code |
payment. cardChannelResponseMessage | String | O | Credit card response message |
payment.issuingBrand | String | O | Credit card issuing brand |
payment.issuingBank | String | O | Credit card issuing bank |
payment.issuingCountryCode | String | O | Credit card issuing country code |
payment.issuingCountryName | String | O | Credit card issuing country name |
payment.acquiringBank | String | O | Credit card acquiring bank |
payment.retrievalReferenceNumber | String | O | Credit card retrieval reference number |
payment.fdsRecommendation | String | O | Credit card FDS recommendation |
payment.creditCardSecure | String | O | Credit card secure |
payment.bankMid | String | O | Credit card bank mid |
payment.bankResponseCode | String | O | Credit card bank response code |
payment.isOneClick | boolean | O | Credit card is one click |
payment.isTwoClick | boolean | O | Credit card is two click |
payment.installmentTerm | String | O | Credit card installment term |
payment.installmentType | String | O | Credit card installment type |
payment.redeemedPointsAmount | String | O | Credit card redeemed points amount |
payment.redeemedPointsQuantity | String | O | Credit card redeemed points quantity |
payment.networkTransactionId | String | O | Credit card network transaction id |
payment.store | String | O | Convenient store name, i.e: indomaret, alfamart |
payment.paymentCode | String | O | Convenient store payment code |
payment.trackingRef | String | O | Convenient store tracking reference (only for Indomaret) |
payment.agentTransactionId | String | O | Convenient store agent transaction id (only for Alfarmart) |
payment.virtualAccountNumber | String | O | Virtual account number |
payment.bcaVaChannel | String | O | Virtual account channel (only for BCA) |
payment.bniVaType | String | O | Virtual account type, e.g: open_payment, fixed_payment (only for BNI) |
payment.bniLeftAmount | String | O | Virtual account left amount (only for BNI) |
payment.qrisOnUs | boolean | O | QRIS is on us |
payment.qrisReferenceNumber | String | O | QRIS reference number |
payment.qrisIssuer | String | O | QRIS issuer |
payment.qrisIssuerTransactionId | String | O | QRIS issuer transaction id |
payment.qrisAcquirer | String | O | QRIS acquirer |
payment.qrisAcquirerTransactionId | String | O | QRIS acquirer transaction id |
payment.gopaySource | String | O | GoPay source |
payment.gopayPaymentOption | String | O | GoPay payment options |
payment.merchantCrossReferenceId | String | O | GoPay unique ID per merchant as an identifier in tokenization activation |
payment.mandiriBillKey | String | O | Mandiri Bill key |
payment.mandiriBillChannelId | String | O | Mandiri Bill channel id |
payment.mandiriBillInfos | Array of String | O | Mandiri Bill informations |
payment.mandiriBillPaidBills | String | O | Mandiri Bill paid bills |
payment.mandiriBillPaymentAmount | String | O | Mandiri Bill payment amount |
payment.akulakuOrderId | String | O | Akulaku order id |
payment.akulakuPeriods | String | O | Akulaku periods |
payment. akulakuMonthlyInstallmentPayment | String | O | Akulaku monthly installment payment |
payment.kredivoTransactionId | String | O | Kredivo transaction id |
payment.kredivoInstallmentTerm | String | O | Kredivo installment term |
payment.shopeepayTransactionId | String | O | ShopeePay transaction id |
payment.uobEzpayTransactionTime | String | O | UOB EZ Pay transaction time |
payment.uobEzpayNotificationId | String | O | UOB EZ Pay notification id |
payment.uobEzpayBankReference | String | O | UOB EZ Pay bank reference |
payment. cimbClicksReferenceNumber | String | O | CIMB Clicks reference number |
payment.cimbClicksAuthCode | String | O | CIMB Clicks auth code |
payment. bcaKlikpayTransactionNumber | String | O | BCA KlikPay transaction number |
payment.bcaKlikpayType | String | O | BCA KlikPay type |
payment. bcaKlikbcaTransactionNumber | String | O | KlikBCA transaction number |
payment.bcaKlikbcaUserId | String | O | KlikBCA user id |
payment. briEpayPaymentReferenceNumber | String | O | e-Pay BRI payment reference number |
payment. briEpayBillReferenceNumber | String | O | e-Pay BRI bill reference number |
payment.briEpayUserFullName | String | O | e-Pay BRI user full name |
payment.mandiriEcashId | String | O | Mandiri e-Cash id |
payment.mandiriEcashTraceNumber | String | O | Mandiri e-Cash trace number |
payment.mandiriEcashPhoneNumber | String | O | Mandiri e-Cash phone number |
payment.mandiriEcashDescription | String | O | Mandiri e-Cash description |
payment. danamonOnline PaymentReferenceNumber | String | O | Danamon Online payment reference number |
payment. danamonOnlineBillReferenceNumber | String | O | Danamon Online bill reference number |
payment.linkajaResultCode | String | O | LinkAja result code |
payment.linkajaReferenceId | String | O | LinkAja reference id |
payment.linkajaReceiptNumber | String | O | LinkAja receipt number |
payment. linkajaOriginatorConversationId | String | O | LinkAja originator conversation id |
payment.linkajaConversationId | String | O | LinkAja conversation id |
payment.dbsPaylahMessageId | String | O | LinkAja message id |
payment.dbsPaylahReferenceId | String | O | DBS Paylah! reference id |
payment.paypalTransactionId | String | O | PayPal transaction id |
payment.refunds | Array of Object | O | Refunds information |
refunds.id | String | O | Refund id |
refunds.amount.value | String | O | Refund amount of the transaction |
refunds.amount.currency | String | O | Refund currency |
refunds.reason | String | O | Refund reason |
refunds.createdTime | String(25) | O | Refund created time in in ISO-8601 format |
refunds.bankConfirmedTime | String(25) | O | Refund bank confirmed time in in ISO-8601 format |
refunds.cancelledTime | String(25) | O | Refund cancelled time in in ISO-8601 format |
payment.customer | Object | O | Customer information |
customer.firstName | String | O | Customer first name |
customer.lastName | String | O | Customer last name |
customer.email | String | O | Customer email |
customer.phone | String | O | Customer phone |
payment.shippingAddress | String | O | Shipping address information |
shippingAddress.firstName | String | O | Shipping first name |
shippingAddress.lastName | String | O | Shipping last name |
shippingAddress.phone | String | O | Shipping phone |
shippingAddress.postalCode | String | O | Shipping postalCode |
shippingAddress.countryCode | String | O | Shipping postal code |
shippingAddress.city | String | O | Shipping city |
shippingAddress.address | String | O | Shipping address |
payment.items | Array of Object | O | Items information |
items.id | String | O | Item identifier on service provider system |
items.partnerId | String | O | Item identifier on service consumer system |
items.name | String | O | Item name |
items.quantity | String | O | Item quantity |
items.price.value | String | O | Item price |
payment.promo | Object | O | Promo information |
promo.id | String | O | Promo identifier |
promo.code | String | O | Promo code |
promo.name | String | O | Promo name |
promo.sponsor | String | O | Promo sponsor |
promo.originalAmount.value | String | O | Promo original amount |
promo.discountAmount.value | String | O | Promo discountAmount |
promo.userIp | String | O | User IP address when using the promo |
additionalInfo.withdrawal | Object | O | Withdrawal related information |
withdrawal.bankName | String | O | Withdrawal bank name |
withdrawal.bankCode | String | O | Withdrawal bank code |
withdrawal.accountNo | String | O | Withdrawal account number |
withdrawal.accountName | String | O | Withdrawal account name |
withdrawal.requestedTime | String | O | Withdrawal requested time in ISO-8601 format |
withdrawal.successTime | String | O | Withdrawal success time in ISO-8601 format |
withdrawal.failedTime | String | O | Withdrawal failed time in ISO-8601 format |
withdrawal.cancelledTime | String | O | Withdrawal cancelled time in ISO-8601 format |
additionalInfo.disbursement | Object | O | Disbursement related information |
disbursement.sourceBankCode | String | O | Disbursement source bank code |
disbursement.sourceAccountNo | String | O | Disbursement source account number |
disbursement.beneficiaryEmail | String | O | Disbursement beneficiary email |
disbursement.beneficiaryName | String | O | Disbursement beneficiary name |
disbursement.beneficiaryBankCode | String | O | Disbursement beneficiary bank code |
disbursement.beneficiaryBankName | String | O | Disbursement beneficiary bank name |
disbursement.beneficiaryAccountNo | String | O | Disbursement beneficiary account number |
disbursement.creatorEmail | String | O | Disbursement creator email |
disbursement.creatorName | String | O | Disbursement creator name |
disbursement.approverEmail | String | O | Disbursement approver email |
disbursement.approverName | String | O | Disbursement approver name |
disbursement.requestedTime | String(25) | O | Disbursement requested time in ISO-8601 format |
disbursement.approvedTime | String(25) | O | Disbursement approved time in ISO-8601 format |
disbursement.rejectedTime | String(25) | O | Disbursement rejected time in ISO-8601 format |
disbursement.processedTime | String(25) | O | Disbursement processed time in ISO-8601 format |
disbursement.completedTime | String(25) | O | Disbursement completed time in ISO-8601 format |
disbursement.failedTime | String(25) | O | Disbursement failed time in ISO-8601 format |
disbursement.failureMessage | String | O | Disbursement failure message |
disbursement.failureCode | String | O | Disbursement failure code |
additionalInfo.fee | Object | M | Fee information |
fee.value | String(16,2) | M | Net amount of fee |
fee.currency | String(3) | M | Currency |
{
"responseCode": "2001300",
"responseMessage": "Success",
"referenceNo": "2020102977770000000009",
"partnerReferenceNo": "2020102900000000000001",
"dateTime": "2019-07-03T12:08:56+07:00",
"amount": {
"value": "12345678.00",
"currency": "IDR"
},
"remark": "Payment to Warung Ikan Bakar",
"status": "SUCCESS",
"type": "PAYMENT",
"additionalInfo": {
"status": "SETTLEMENT",
"type": "PAYMENT",
"updatedTime": "2019-07-03T12:08:56+07:00",
"channel": "qris",
"customerEmail": "[email protected]",
"accountNo": "123456",
"payment": {
"expiryTime": "2019-07-03T12:08:56+07:00",
"source": "SNAP",
"providerReferenceId": "A120240108151754NxoeRNYP4YID",
"approvalCode": "100127",
// Credit Card
"cardNumber": "4556 5579 **** 6624",
"cardType": "credit",
"cardChannel": "mti",
"cardChannelResponseCode": "00",
"cardChannelResponseMessage": "Approved",
"issuingBrand": "VISA",
"issuingBank": "bca",
"issuingCountryCode": "US",
"issuingCountryName": "UNITEDSTATES",
"acquiringBank": "mandiri",
"retrievalReferenceNumber": "736620222955",
"fdsRecommendation": "accept",
"creditCardSecure": true,
"bankMid": "1100889977",
"bankResponseCode": "00",
"isOneClick": false,
"isTwoClick": false,
"installmentTerm": "",
"installmentType": "",
"redeemedPointsAmount": {
"value": "5000.00",
"currency": "IDR"
},
"redeemedPointsQuantity": "10",
"networkTransactionId": "606345944234331",
// Convenient Store
"store": "indomaret",
"paymentCode": "901083200026",
"trackingRef": "82851212597196801", // indomaret
"agentTransactionId": "cZkpKVCOibLOeEp", // alfamart
// Bank Transfer / Virtual Account
"virtualAccountNumber": "96883778474",
"bcaVaChannel": "Internet Banking",
"bniVaType": "open_payment",
"bniLeftAmount": {
"value": "-3.00",
"currency": "IDR"
},
// QRIS
"qrisOnUs": false,
"qrisReferenceNumber": "A120240108151754NxoeRNYP4YID",
"qrisIssuer": "gopay",
"qrisIssuerTransactionId": "A120240108151754NxoeRNYP4YID",
"qrisAcquirer": "gopay",
"qrisAcquirerTransactionId": "A120240108151754NxoeRNYP4YID",
// GoPay
"gopaySource": "gopay_online",
"gopayPaymentOption": "GOPAY_WALLET",
"merchantCrossReferenceId": "760fbd7c-6720-4bb6-88f9-2a75ad8c1173",
// Mandiri Bill
"mandiriBillKey": "213916480962",
"mandiriBillInfos": ["rizvi gopay"],
"mandiriBillChannelId": "1234",
"mandiriBillPaidBills": "01",
"mandiriBillPaymentAmount": {
"value": "10000.00",
"currency": "IDR"
},
// Akulaku
"akulakuOrderId": "A120240223061624q0ouIEgan1ID-1",
"akulakuPeriods": "",
"akulakuMonthlyInstallmentPayment": "5000",
// Kredivo
"kredivoTransactionId": "12a1c87c-74c9-4819-aa37-4f74acff9c07",
"kredivoInstallmentTerm": "30_days",
// ShopeePay
"shopeepayTransactionId": "960774027066627564",
// UOB EZ Pay
"uobEzpayTransactionTime": "2019-07-03T12:08:56+07:00",
"uobEzpayNotificationId": "asdfgh",
"uobEzpayBankReference": "zxcvbn",
// CIMB Clicks
"cimbClicksReferenceNumber": "000000000000071969",
"cimbClicksAuthCode": "1708428664718",
// BCA KlikPay
"bcaKlikpayTransactionNumber": "1693622",
"bcaKlikpayType": "1",
// KlikBCA
"bcaKlikbcaTransactionNumber": "12078115af80447e97",
"bcaKlikbcaUserId": "testuser01",
// e-Pay BRI
"briEpayPaymentReferenceNumber": "1696937935399",
"briEpayBillReferenceNumber": "294634661",
"briEpayUserFullName": "Midtrans",
// Mandiri e-Cash
"mandiriEcashId": "cf7989fe-1873-4ecd-a933-3c833a8b9f8b",
"mandiriEcashTraceNumber": "xyzxyz",
"mandiriEcashPhoneNumber": "0987654321",
"mandiriEcashDescription": "Transaction Description",
// Danamon Online
"danamonOnlinePaymentReferenceNumber": "i1ji2X9Rzc19GR",
"danamonOnlineBillReferenceNumber": "166526",
// LinkAja
"linkajaResultCode": "0",
"linkajaReceiptNumber": "D5AF930801",
"linkajaReferenceId": "test-order-1706005255",
"linkajaOriginatorConversationId": "6310bd69-ddea-4550-a746-a6afce00a7ef",
"linkajaConversationId": "01HMTXCNTGZNPHRZ6X4804VFAY",
// DBS PayLah!
"dbsPaylahReferenceId": "17086717018447aab035",
"dbsPaylahMessageId": "a4-9c7c-05a98c507aab",
// PayPal
"paypalTransactionId": "qee0evgt",
"refunds": [
{
"id": "12345",
"amount": {
"value": "5000.00",
"currency": "IDR"
},
"reason": "need to refund",
"createdTime": "2019-07-03T12:08:56+07:00",
"bankConfirmedTime": "2019-07-03T12:08:56+07:00",
"cancelledTime": "2019-07-03T12:08:56+07:00"
}
],
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]",
"phone": "+62812131415"
},
"shippingAddress": {
"firstName": "John",
"lastName": "Doe",
"phone": "+62812131415",
"postalCode": "123456",
"countryCode": "21",
"city": "Jakarta",
"address": "Pasaraya Blok M"
},
"items": [
{
"id": "2a17f5a2-4150-31db-9880-b10dd503c93d",
"partnerId": "item001",
"name": "Test item",
"quantity": "1",
"price": {
"value": "10000.00",
"currency": "IDR"
}
}
],
"promo": {
"id": "promo1",
"code": "TESTPROMO",
"name": "Promo buy 1 get 2",
"sponsor": "Midtrans",
"originalAmount": {
"value": "25000.00",
"currency": "IDR"
},
"discountAmount": {
"value": "5000.00",
"currency": "IDR"
},
"userIp": "10.128.20.227"
}
},
"withdrawal": {
"bankName": "PT. BANK MANDIRI (PERSERO) TBK.",
"bankCode": "mandiri",
"accountNo": "1111222233333",
"accountName": "Mandiri Simulator A",
"requestedTime": "2019-07-03T12:08:56+07:00",
"successTime": "2019-07-03T12:08:56+07:00",
"failedTime": "2019-07-03T12:08:56+07:00",
"cancelledTime": "2019-07-03T12:08:56+07:00"
},
"disbursement": {
"sourceBankCode": "bca",
"sourceAccountNo": "4433221100",
"beneficiaryEmail": "[email protected]",
"beneficiaryName": "BCA Simulator A",
"beneficiaryBankCode": "bca",
"beneficiaryBankName": "PT. BANK CENTRAL ASIA TBK.",
"beneficiaryAccountNo": "0011223344",
"creatorEmail": "[email protected]",
"creatorName": "MLA creator",
"approverEmail": "[email protected]",
"approverName": "MLA approver",
"requestedTime": "2019-07-03T12:08:56+07:00",
"approvedTime": "2019-07-03T12:08:56+07:00",
"rejectedTime": "2019-07-03T12:08:56+07:00",
"processedTime": "2019-07-03T12:08:56+07:00",
"completedTime": "2019-07-03T12:08:56+07:00",
"failedTime": "2019-07-03T12:08:56+07:00",
"failureMessage": "invalid destination account number",
"failureCode": "002"
},
"fee": {
"value": "1000.00",
"currency": "IDR"
}
}
}
{
"responseCode": "4011200",
"responseMessage": "Unauthorized. Client"
}
List of Response Codes
Response Code | HTTP Status | Description |
---|---|---|
2001300 | 200 | Successful |
4001301 | 400 | Invalid field format {........} |
4001302 | 400 | Missing mandatory field {........} |
4011300 | 401 | Unauthorized signature |
4011301 | 401 | Access token invalid |
4041301 | 404 | Transaction not found |
4091300 | 409 | Cannot use same X-EXTERNAL-ID in same day |
5001301 | 500 | Unknown internal server failure, please retry the process again |