SNAP BI
A book contains API from SNAP BI
- Get signature access (asymmetric signature)
- Access token B2B
- Get signature service (symmetric signature)
- Transfer kredit - API Virtual Account - Payment
Get signature access (asymmetric signature)
Endpoint
| Endpoint | Method |
Server |
| /api/v1.0/utilities/signature-auth | POST | https://apidevportal.aspi-indonesia.or.id:44310 |
Header
| Parameter |
Value |
Notes |
| X-TIMESTAMP |
Today's date UTC+7
Example 2024-11-29T14:15:00+07:00 |
|
| X-CLIENT-KEY | Client id in Request Aplikasi Pengujian page | |
|
Private_Key |
Private key in Request Aplikasi Pengujian page |
Result example
200 OK
{
"signature": "ECMld++UIuHBE1JU8oTcpBydvL3noq19LkTur3hWuA8ptyoqGGjXQW7TrG6JgeDMLO2533rXIo3b1hjfT/CCMk4vxGHDFV+YjY0r1e1mSgvYOSWhTss5DOKF0Fk3Lh0XfW5pP+6HglVGX5cluQkTB4fgTyDrJMjHZa5fttMda9S98QznbvtMnz"
}
Error example
400 Bad Request
X-TIMESTAMP header is not provided or value is empty
{
"responseCode": "4000000",
"responseMessage": "The timestamp field is required."
}
400 Bad Request
X-CLIENT-KEY header is not provided or value is empty
{
"responseCode": "4000000",
"responseMessage": "The clientId field is required."
}
400 Bad Request
Private_Key header is not provided or value is empty
{
"responseCode": "4000000",
"responseMessage": "The privateKey field is required."
}
Access token B2B
Endpoint
| Endpoint | Method |
Server |
| /api/v1.0/access-token/b2b | POST | https://apidevportal.aspi-indonesia.or.id:44310 |
Header
| Parameter |
Value |
Notes |
| X-TIMESTAMP |
Today's date UTC+7
Example 2024-11-29T14:15:00+07:00 |
|
| X-CLIENT-KEY | Client id in Request Aplikasi Pengujian page | |
|
X-SIGNATURE |
Asymmetric signature value | See this page |
Result example
200 OK
{
"signature": "ECMld++UIuHBE1JU8oTcpBydvL3noq19LkTur3hWuA8ptyoqGGjXQW7TrG6JgeDMLO2533rXIo3b1hjfT/CCMk4vxGHDFV+YjY0r1e1mSgvYOSWhTss5DOKF0Fk3Lh0XfW5pP+6HglVGX5cluQkTB4fgTyDrJMjHZa5fttMda9S98QznbvtMnz"
}
Error example
400 Bad Request
X-TIMESTAMP header is not provided or value is empty
{
"responseCode": "4000000",
"responseMessage": "The timestamp field is required."
}
400 Bad Request
X-CLIENT-KEY header is not provided or value is empty
{
"responseCode": "4000000",
"responseMessage": "The clientId field is required."
}
400 Bad Request
Private_Key header is not provided or value is empty
{
"responseCode": "4000000",
"responseMessage": "The privateKey field is required."
}
Get signature service (symmetric signature)
Server
| Environment |
Link |
| Development | https://apidevportal.aspi-indonesia.or.id:44310 |
Endpoint
| Endpoint | Method |
| /api/v1.0/utilities/signature-service | POST |
Authentication
| Parameter | Token source |
| AccessToken | Access token B2B |
Header
| Parameter |
Value |
| X-TIMESTAMP | timestampz example: 2024-12-01T07:15:00+07:00 |
| X-CLIENT-SECRET | Client Secret in "Request Aplikasi Pengujian" page |
| EndpoinUrl | /api/v1.0/transfer-va/payment |
| AccessToken | Access token B2B |
| HttpMethod | Depends on the service will be using Example: Transver VA Payment is using POST, so the value will be POST. |
Body request (example)
Body value is same as the next service
{
"partnerServiceId": " 088899",
"customerNo": "12345678901234567890",
"virtualAccountNo": " 08889912345678901234567890",
"virtualAccountName": "Tom",
"virtualAccountEmail": "tom@tts.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",
"journalNum": "123456",
"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": {},
"billReferenceNo": "123456789012345"
}
],
"freeTexts": [
{
"english": "Free text",
"indonesia": "Tulisan bebas"
}
],
"additionalInfo": {}
}
Result example
200 OK
{
"signature": "YXD+d+yHRKRMz0+aVjLu6K2nQ3Fd9KryoMxvkQPs1CXkSqOvv0"
}
Error example
400 Bad Request
Request is missing one or more header parameter
{
"responseCode": "4000000",
"responseMessage": "The <header> field is required."
}
Transfer kredit - API Virtual Account - Payment
Server
| Environment | Link |
| Development | https://apidevportal.aspi-indonesia.or.id:44310 |
Endpoint
| Endpoint | Method |
| /api/v1.0/transfer-va/payment | POST |
Authentication
| Type |
Token source |
| Bearer | Access token B2B |
Header
| Parameter |
Value |
| X-TIMESTAMP |
timestampz Example: 2024-12-01T07:15:00+07:00 |
| X-SIGNATURE | |
| X-PARTNER-ID |
Client ID from Request Aplikasi Pengujian page https://apidevportal.aspi-indonesia.or.id/request-aplikasi-pengujian |
| X-EXTERNAL-ID |
Generated From ONMART |
| CHANNEL-ID |
Bank channel ID value. Example: 95051 for KlikBCA Bisnis (https://developer.bca.co.id/id/Dokumentasi) |
Body request
These values must be included into symmetric signature
Get signature service (symmetric signature)
{
"partnerServiceId": " 088899",
"customerNo": "12345678901234567890",
"virtualAccountNo": " 08889912345678901234567890",
"virtualAccountName": "Tom",
"virtualAccountEmail": "tom@tts.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",
"journalNum": "123456",
"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": {},
"billReferenceNo": "123456789012345"
}
],
"freeTexts": [
{
"english": "Free text",
"indonesia": "Tulisan bebas"
}
],
"additionalInfo": {}
}
| Properties |
Properties of | Data type | Required | Description |
Result example
200 OK
{
"responseCode": "2002500",
"responseMessage": "Successful",
"virtualAccountData": {
"paymentFlagReason": {
"english": "Success",
"indonesia": "Sukses"
},
"partnerServiceId": " 088899",
"customerNo": "12345678901234567890",
"virtualAccountNo": " 08889912345678901234567890",
"virtualAccountName": "Tom",
"virtualAccountEmail": "tom@tts.com",
"virtualAccountPhone": "6281828384858",
"trxId": "abcdefgh1234",
"paymentRequestId": "abcdef-123456-abcdef",
"paidAmount": {
"value": "12345678.00",
"currency": "IDR"
},
"paidBills": "95000",
"totalAmount": {
"value": "12345678.00",
"currency": "IDR"
},
"trxDateTime": "20201231T235959Z",
"referenceNo": "123456789012345",
"journalNum": "123456",
"paymentType": "1",
"flagAdvise": "Y",
"paymentFlagStatus": "00",
"billDetails": [
{
"billerReferenceId": "4146037406",
"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": {},
"status": "00",
"reason": {
"english": "Success",
"indonesia": "Sukses"
}
}
],
"freeTexts": [
{
"english": "Free text",
"indonesia": "Tulisan bebas"
}
]
},
"additionalInfo": {}
}
Error example
400 Bad Request
{
"responseCode": "4000000",
"responseMessage": "The signature field is required."
}
401 Unauthorized
{
"responseCode": "4012500",
"responseMessage": "Unauthorized. Invalid Signature"
}