Notifikasi Callback
Untuk alasan keamanan, kami sangat menyarankan Merchant untuk memastikan bahwa notifikasi yang diterima oleh backend Merchant, benar-benar dikirim oleh sistem Finpay. Ada dua cara untuk melakukan hal tersebut:
- Validasi respons dengan meminta pengecekan status transaksi ke Finpay menggunakan Layanan Cek Status. Alur ini merupakan metode yang paling aman untuk memverifikasi keaslian Callback. Jika status transaksi sesuai dengan Callback maka Merchant dapat melanjutkan proses order.
- Validasi respon dengan membandingkan signature key yang diterima dari sistem Finpay saat mengirimkan Callback dengan signature yang dibuat oleh Merchant. Jika signature key tidak sesuai, maka silahkan abaikan Callback yang dikirimkan oleh Finpay dan Anda tidak perlu memproses transaksi tersebut.
Berikut adalah logika Signature Key untuk menghasilkan Signature Key:
hash_hmac("sha512", json_encode($fields), $key);
Method | Merchant URL |
---|---|
POST | https://url.callback.merchant/ |
Data Request
No | Name | Type | Mandatory | Min Length | Max Length | Description |
---|---|---|---|---|---|---|
1 | transactionDate | String | O | 1 | 50 | ISO 8601 format |
2 | transferDateTime | String | M | 1 | 50 | Actual transfer date time ISO 8601 format |
3 | originalReferenceNo | String | M | 1 | 64 | Original transaction identifier on service provider system |
4 | originalPartnerReferanceNo | String | O | 1 | 64 | Original Transaction identifier on service consumer system |
5 | beneficiaryBackCode | String | M | 1 | 6 | Original beneficiary bank code on service provider system |
6 | beneficiaryAccountName | String | M | 1 | 64 | Original beneficiary account name on service provider system |
7 | beneficiaryAccountNo | String | M | 1 | 64 | Original beneficiary account number on service provider system |
8 | amount | Object | O | 1 | 2 | Detail of amount |
9 | latestTransactionStatus | String | M | 1 | 2 | 00 - Success 01 - Initiated 02 - Paying 03 - Pending 04 - Refunded 05 - Cancelled 06 - Failed 07 - Not found |
10 | triggerType | String | M | 1 | 9 | Type of Notification: - automatic (updated by system) - manual (triggered by merchant/operation) |
11 | additionalInfo | Object | O | 1 | 18 | Additional Info |
Sample Request
{
"transactionDate": "2025-06-25T16:43:41+07:00",
"transferDateTime": "2025-06-25T16:43:44+07:00",
"originalReferenceNo": "20250625164341499267",
"originalPartnerReferenceNo": "f6c1bf23-8c86-4241-a445-591275d7efb0",
"beneficiaryBankCode": "91122",
"beneficiaryAccountName": "AHMAD ARIFAI",
"beneficiaryAccountNo": "3205309801",
"amount": {
"currency": "IDR",
"value": "3036663.00"
},
"latestTransactionStatus": "00",
"triggerType": "automatic",
"additionalInfo": {
"notes": null
}
}
Data Response
No | Name | Type | Mandatory | Min Length | Max Length | Description |
---|---|---|---|---|---|---|
1 | responseCode | Enum | M | 1 | 7 | Response Code |
2 | responseMessage | String | M | 1 | 500 | Response Message |
3 | processingTime | Number | M | 1 | 20 | Processing Time |
Sample Response
{
"responseCode": "2000000",
"responseMessage": "Success",
"processingTime": 0.6609270572662354
}