Skip to content

Webhooks

Webhooks memungkinkan Anda untuk membuat aplikasi atau program yang dapat berlangganan (subscribe) event tertentu terkait penambahan atau perubahan status transaksi di digiflazz. Ketika salah satu event terjadi, kami akan mengirimkan HTTP POST payload ke URL yang sudah di konfigurasi pada webhook. Webhook dapat di gunakan untuk melakukan update ke sistem Anda secara realtime, memberikan notifikasi, realtime grafik, analisa data dan lain sebagainya.

Webhook dapat Anda konfigurasi pada menu Atur Koneksi > API > Webhook.

Events

Ketika Anda melakukan konfigurasi webhook, kami akan mengirimkan Event terkait transaksi (Tambah & Update). Event ini akan berisi sejumlah data (Payload) detail transaksi yang terjadi.

Events yang tersedia adalah sebagai berikut:

Nama Deskripsi
create Terima event saat transaksi baru terjadi
update Terima event saat transaksi yang sudah ada mengalami perubahan status

Payloads

Event yang di kirimkan akan berisi payload atau data yang relevan dengan informasi transaksi.

Delivery headers

HTTP POST payloads yang akan di kirimkan ke URL webhook yang sudah di tetapkan akan berisi beberapa spesial header:

Header Deskripsi
X-Digiflazz-Event Nama tipe event yang menyebabkan event di kirim
X-Digiflazz-Delivery Sebuah ID untuk meng-identifikasi pengiriman
X-Hub-Signature Sebuah HMAC hex yang berasal dari response body. Header ini akan di kirimkan jika webhook yang di set menggunakan secret. HMAC hex merupakan hasil dari fungsi hash sha1 dan HMAC key.

Selain itu, request user-agent akan memiliki prefix DigiFlazz-Hookshot/ untuk transaksi prepaid dan prefix DigiFlazz-Pasca-Hookshot/ untuk transaksi pascabayar.

Contoh pengiriman

POST /payload HTTP/1.1
Host: localhost:4567
X-Digiflazz-Delivery: dd320fc3-8dc8-49cb-a0d9-33aadacddc8a
X-Hub-Signature: sha1=7d6f016c23d03b696e76dada91c07f178cc0af4d
User-Agent: Digiflazz-Hookshot
Content-Type: application/json
Content-Length: 445
X-Digiflazz-Event: create
{
    "data": {
        "trx_id": "5ca22497cc6d0f965d9f84ac",
        "ref_id": "30467470",
        "customer_no": "081280556115",
        "buyer_sku_code": "ovo100",
        "message": "Sukses",
        "status": "Sukses",
        "rc": "00",
        "buyer_last_saldo": 326719460,
        "sn": "SEPTIAPAR/20190401214753214742",
        "price": 199800,
        "tele": "@telegram",
        "wa": "081234512345"
    }
}

Contoh Handle Event

Berikut ini Contoh menerima Event di program PHP (Laravel)

<?php
    use Illuminate\Http\Request;

    Route::post('/webhook', function(Request $request) {
        $secret = 'somesecretvalue';

        $post_data = file_get_contents('php://input');
        $signature = hash_hmac('sha1', $post_data, $secret);
        \Log::info($signature);

        if ($request->header('X-Hub-Signature') == 'sha1='.$signature) {
            \Log::info(json_decode($request->getContent(), true));
        }
    });

Ping Event

Ketika Anda menetapkan sebuah webhook, kami akan mengirimkan ke Anda sebuah event ping sederhana untuk memberitahukan ke Anda bahwa webhook yang sudah Anda konfigurasi telah benar dan dapat digunakan. Event ini tidak akan di simpan, sehingga tidak dapat di ambil melalui API. Anda dapat memicu sebuah ping dengan memanggil Ping Endpoint

Ping Event Payload

Key Value
sed Random string dari Digiflazz sed
hook_id ID dari webhook yang memicu ping
hook Detail dari konfigurasi webhook Anda

Ping Endpoint

https://api.digiflazz.com/v1/report/hooks/[YOUR-WEBHOOK-ID]/pings

Contoh ping

> POST /v1/report/hooks/11aaabbb/pings HTTP/1.1
> Host: localhost:4567
> Accept: */*
> Content-Length: 0

< HTTP/1.1 200 OK
< Content-Length: 155
< Content-Type: application/json

{
  "sed": "AgXXtVAHp",
  "hook_id": "11aaabbb",
  "hook": {
    "url": "https://awesomesite.com/webhooks",
    "secret": "somesecretkeywords",
    "type": "application/json",
    "status": 1
  }
}