Anda di halaman 1dari 53

Integration Kick Off Meeting

October 6th, 2022

© copyright version Fazz Financial Group


Your All-in-one Financial Solution
Fazz Financial September 2022
Agenda Kick Off Meeting

1. Pengenalan Tim

2. Flow API Integrasi dengan Fazz Business

3. Transaksi dengan Dashboard Fazz Business

4. Sesi Tanya Jawab (Fleksibel)

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
2
Pengenalan Tim

Tim Fazz Business:


- Technical Team (Berkaitan mengenai integrasi dan isu teknis)
Fadli
WA : +62 852-6470-3077
Email :
fadli.rianda@fazzfinancial.com

- Account Team (Berkaitan dengan isu bisnis)


Amelia
WA : +62 812-1186-586
Email : amelia.quinta@fazzfinancial.com

Email Support: support-id@fazz.com


Untuk CS Support setelah integrasi, dapat dikontak melalui live chat di dashboard

Jam Operasional Integrasi:


Senin - Jumat : 09.00 - 18.00 WIB
(Diluar dari jam tersebut, kami slow respon)

Jam Operasional CS Support:


Senin - Jumat : 08.30 - 17.30 WIB
Sabtu, Minggu dan Hari Libur Nasional : 08.30 - 12.30 WIB

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
3
Flow API Integrasi Dengan Fazz Business
Dokumentasi API : https://docs.fazz.com/v4-ID/docs
API Reference : https://docs.fazz.com/v4-ID/reference

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
4
Pay

Merupakan fitur Fazz Business untuk mengirimkan dana. Digunakan untuk layanan transfer dana PPOB dan juga disbursement untuk perusahaan.

Fitur Pay
Payout Form
Kelola beberapa pembayaran
dengan mudah melalui dasbor
kami, dan kirim pembayaran
massal sekaligus.
Akun Fazz Business
Merchant Penerima
Merchant
Integrasi API
Sesuaikan alur dengan sistem Merchant melakukan Fazz akan mengecek Menerima dana yang
deposit untuk transfer ketersediaan deposit ditransfer melalui Fazz
Anda. merchant sebelum (PT IKN) di rekening
dana melalui Fazz ke
melaksanakan perintah penerima.
akun Fazz Business
transfer dari merchant.
Merchant dengan opsi
Transaksi Real-time deposit: Apabila tersedia, dana
Transaksi terjadi real time - Mandiri akan ditransfer ke
dengan maksimal - BNI rekening penerima.
Rp100jt/transaksi. - BRI

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
5
Pay

Pay dapat digunakan untuk melakukan pengiriman dana ke layanan online lainnya yang menggunakan Virtual Account sebagai metode pembayaran.

Daftar VA e-Money / e-Wallet / e-Commerce yang dapat ditransfer dengan Pay

E-Money (Gopay, OVO, DANA, LinkAja) Virtual Account: Permata (ATM Bersama) & CIMB Niaga

Tokopedia Virtual Account: BNI, BRI, Danamon, CIMB Niaga


Shopee Virtual Account: Mandiri, CIMB Niaga
Lazada Virtual Account: BNI
Bukalapak Virtual Account: BRI, BNI, BNI Syariah, CIMB Niaga, Permata, Danamon, Mandiri
Blibli Virtual Account: BRI, BNI, Danamon

Untuk case ini kami merekomendasikan untuk melakukan pengiriman dana ke VA Permata atau CIMB jika ada pilihannya.

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
6
Pay API Flow

Merchant Fazz Bank

Request: bank dan no. rekening

Request cek nama pemilik rek. Mengecek nama pemilik rekening


bank / bank validation Response: nama pemilik rekening melalui jaringan Bank kami

Request Parameter:
- Destination No.
- Bank
- Amount
- Reference ID (ID unik transaksi)

Mengecek validitas request dan


Create Disbursement Request ketersediaan dana, lalu membuat Memproses transaksi
Response: Disbursement Object
objek disbursement

Menerima callback notification


Mengirimkan callback notification Mengirimkan hasil proses
melalui endpoint POST yang di
Disbursement Object dengan untuk status transaksi transaksi ke Fazz
setting di dashboard
status yang sudah diupdate

Dokumentasi API : https://docs.fazz.com/v4-ID/docs


API Reference : https://docs.fazz.com/v4-ID/reference

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
7
API Header

Auth type = Basic Auth


Content-Type = application/vnd.api+json

Basic Auth dikirimkan dalam format string diawali “Basic “ lalu di-append dengan “key:secret” yang diubah jadi Base64
string.

Sample Header (Javascript)

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
8
Pay Parameters - Request

Endpoint: POST /api/v4/disbursements


Jumlah yg dikirim, datatype int32
Min. 10,000 & Max 100,000,000

Idempotency Key / Unique ID


Datatype: string

Wajib diisi, harap disimpan


Digunakan u/ identifikasi transaksi dan
memastikan request duplikat tidak terlaksana
berkali-kali.

bankShortCode
https://docs.fazz.com/v4-ID/docs/disbursement
-destination-banks
API: GET /api/v4/banks
By API bisa di-cache/disimpan di db, update
sesekali karena jarang bertambah

No. rekening tujuan, datatype string

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
9
Pay Response & Callback
Berikut adalah data model dari Response dan Callback Disbursement kami: “Disbursement Object”. Callback kami menggunakan method
POST request dengan data JSON

referenceId sesuai dengan yang awal dikirim dan dapat digunakan


untuk identifikasi transaksi

Status transaksi: Parameter ini yang nanti akan diupdate di


callback

Nama pemilik rekening dari hasil pengecekan Fazz ke bank

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
10
Pay - Testing Callback

Callback dikirimkan ketika ada perubahan status transaksi. Di production, callback akan dikirimkan otomatis, namun di
Sandbox Environment, cara untuk trigger callback dilakukan secara manual.

Saat ini ada 2 cara untuk trigger callback Pay di Sandbox:


1. Special value, dengan memasukkan value tertentu di parameter yang ada, callback dapat dikirimkan otomatis
beberapa detik setelah transaksi sukses terbuat:
a. Failed status test: amount: 39999 → mengubah status jadi “failed” + callback
b. Completed status test: amount: 29999 → mengubah status jadi “completed” + callback

2. Manual Trigger API Endpoint: POST /api/v4/disbursements/:disbursementId/tasks


Headers: Sama dengan header requests yang lain.
Body parameter:
Valid “action”:
- “fail”
- “complete”

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
11
Pay - GET API for Disbursements
Fazz juga menyediakan 2 GET API endpoints untuk mengecek status transaksi on-demand. Kedua endpoint tersebut dapat digunakan
untuk sync-up data jika sewaktu-waktu callback gagal mengupdate database, atau mengecek transaksi lama tanpa membuka dashboard.

Endpoints
GET /api/v4/disbursements mengambil banyak disbursements sekaligus, difilter dengan Query Params.
Mengambil disbursement spesifik dari ID di url param. ID yang digunakan bukan referenceId tapi ID
GET /api/v4/disbursements/:id
dari response. Contoh: api/v4/disbursements/contract_2a31c212

Query Params
?filter[createdAfter]= Date ISO8601 untuk mengambil transaksi setelah tanggal tertentu.
?filter[createdBefore]= Date ISO8601 untuk mengambil transaksi sebelum tanggal tertentu.
?filter[status]= String “completed” atau “failed” untuk filter transaksi dengan status tertentu.
?filter[referenceId]= Mengambil data transaksi berdasarkan referenceId.
?sort=createdAt Sortir datanya berdasarkan tanggal dibuatnya transaksi, dari yang pertama dibuat.
?sort=-createdAt Sortir datanya berdasarkan tanggal dibuatnya transaksi, dari yang paling baru.
?page[size]=100 Size array / jumlah data yang ingin dikembalikan dari API GET ini.
?page[number]=3 Halaman dari data balikan, digunakan untuk pagination bersamaan dengan size.

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
12
Pay - Other Useful Endpoints

Checking Account Balance:


GET /api/v4/overviews/balance_overview Available Balance + Holding Balance

Saldo utama yang siap dipakai untuk pengiriman


dana

Holding Balance, hanya ada di Receive.


Ini adalah total saldo yang belum settled.

Checking nama pemilik rekening tujuan:


POST /api/v4/validation_services/bank_account_validation
Request Body: Response:

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
13
Pay - SLA

Layanan Rata-rata SLA

Rata-rata waktu transfer sukses 75% transaksi sukses dibawah < 10 detik

Persentase transaksi berhasil dibawah 1 menit 99,9% transaksi sukses dibawah 1 menit

Bisa hampir 36 jam hanya apabila transaksi dilakukan pukul 00:01 dan terkena
timeout di bank.

Untuk case timeout di bank, status baru dapat ketahuan di tanggal selanjutnya
Transaksi terlama (worst case) mengikuti tanggal transaksi karena harus menunggu laporan mutasi harian bank
untuk rekonsiliasi transaksi tersebut.

Estimasi rekonsiliasi selesai sekitar pukul 10 pagi, maks sebelum 12 siang.


(sangat jarang terjadi, persentase dibawah 0,01%)

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
14
Pay - SLA

Layanan Waktu Penyelesaian

- Idealnya dalam 1 jam solved


Penyelesaian isu status transaksi karena sistem Fazz
- Maksimal 6 jam (0,01% case)

Keesokan hari mengikuti tanggal transaksi (WIB):


Penyelesaian isu status transaksi karena faktor eksternal (bank) - Idealnya sebelum 10:00 WIB
- Maksimal siang hari 12:00 WIB (0,01% case)

- Idealnya 1 jam
Penyelesaian isu deposit karena sistem Fazz
- Maksimal 6 jam (0,01% case)

- Maksimal 1 Hari Kerja


Penyelesaian isu deposit karena kesalahan user
Untuk proses ini, kami memerlukan bukti transfer terkait dan
(contoh: salah kode unik dan/atau salah bank tujuan)
detail dikirimkan ke grup WhatsApp untuk diproses

Pengecekan klaim transaksi berhasil tapi dana tidak masuk Minimum 5 Hari Kerja*
Requirements / data yang dibutuhkan: *Untuk case seperti ini sangat bergantung pada kecepatan respon
- Bukti mutasi masing-masing bank (bank pengirim dan penerima) dalam
- reference Id transaksi memproses pengecekan

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
15
Support - SLA

Keterangan Waktu

Waktu respon pada jam operasional: - Idealnya dibawah 30 menit


Senin - Jum’at (09:00 - 18:00 WIB) - Maksimal 1 jam

Waktu respon diluar jam operasional: - Idealnya dibawah 1 jam


Weekend, hari libur, dan malam hari (09:00 - 22:00 WIB) - Maksimal 2 jam

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
16
Receive

Merupakan fitur Fazz Business untuk menerima pembayaran dengan menggunakan berbagai channel pembayaran. Notifikasi akan terjadi secara real
time dan pencairan dana ke akun merchant di Fazz Business, disesuaikan dengan waktu settlement per channel pembayaran.

Bank Transfer Retail QR Code

Menerima pembayaran melalui Virtual Menerima pembayaran melalui toko Membantu merchant untuk generate
Account (VA) retail QRIS yang dapat dipakai oleh
e-money dan bank (Scan QR)

Akun Fazz Business


User/Client
Merchant

e-Money

Menerima pembayaran dengan


Pembeli / Pengguna akhir melakukan pembayaran
e-Money lewat Receive di aplikasi/platform merchant. Notifikasi
pembayaran akan terjadi real time dan
settlement/pencairan dana disesuaikan per channel
pembayaran ke akun Fazz Business Merchant

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
17
Receive VA

Merupakan salah satu channel pembayaran Fazz Business dengan menggunakan Virtual Account.

Virtual Account Bank Persistent (Open VA) One-Off (Closed VA) Virtual Account:
- Min. IDR 10.000/trx
Mandiri V V - Min. IDR 1.000/trx (BRI & Mandiri Persistent)
- Tidak ada maksimal limit
BCA X X
Persistent : Tidak ada expiry date
BRI V V One-off : Expired H+1

BNI X X
Virtual Account Settlement Time
Permata V X
BRI, BNI, Bank Sampoerna Real-time
CIMB Niaga V X
H+1 untuk pembayaran di hari kerja.
Hana Bank V X Untuk pembayaran di hari libur,
BCA
settlement di hari setelah HK+1.
Danamon V X Cut-off di jam 21:00 WIB.

BSI X V
Mandiri, Permata, CIMB, Hana
H+1 hari kerja
Bank, Danamon, BSI
Bank Sampoerna V V

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
18
Receive Retail & QRIS

Retail QR Code

Menerima pembayaran melalui toko retail Membantu merchant untuk generate QRIS yang
dapat dipakai oleh e-Money dan bank (Scan QR)

Channel Retail QRIS Dinamis


- Terdapat expiry date 1 hari - QRIS berubah
- Limit pembayaran: - Digunakan apabila merchant ingin menerima pembayaran
Minimal : Rp15.000/transaksi dengan metode closed loop (jumlah uang fix per transaksi)
Maksimal : Rp2.500.000/transaksi - Limit pembayaran:
Minimal : Rp1.500/transaksi
Maksimal : Rp5.000.000/transaksi

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
19
Receive API Flow

Customer Merchant Fazz Bank

Membuat metode pembayaran


Mengirim request
berdasarkan endpoint dan
“Create Payment”
parameter yg disediakan

Menerima objek pembayaran,


menampilkan info pembayaran

Melakukan pembayaran Menerima pembayaran

Mendeteksi pembayaran,
Menerima Payment Object di
mengirim callback “paid”
callback dengan status “paid”
Fund didalam Holding Balance

Menerima Payment Object di Mendeteksi pembayaran,


callback dengan updated mengirim callback. Settlement
status “completed” Fund masuk Available Balance

Settlement:
- Virtual Account & QRIS: HK+1
- BRI, BNI, dan BSS VA: Real-time
- Retail: Alfamart HK+3, Indomaret HK+2
- ShopeePay: HK+1

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
20
API Header

Auth type = Basic Auth


Content-Type = application/vnd.api+json

Basic Auth dikirimkan dalam format string diawali “Basic “ lalu di-append dengan “key:secret” yang diubah jadi Base64
string.

Sample Header (Javascript)

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
21
Receive Permanent Method - Request

Endpoint: POST /api/v4/payment_methods/:type Metode bayar yang ingin dipakai, pilihan:


- “virtual_bank_accounts”

contoh:
/api/v4/payment_methods/virtual_bank_accounts

ID Unik dari metode bayarnya

Untuk memilih bank dari VA yang dibuat


Wajib diisi namun hanya jika requestnya VA

Optional (untuk memilih 8 digit terakhir dari VA)


Hanya available di VA, jika tidak diberikan maka
nomor VA randomized dari Fazz.
Parameter displayName untuk memilih nama yang ditampilkan di metode Bank yang support parameter ini hanya:
bayar. - BCA
Format nama VA (kecuali VA BCA): IKN-displayName - BRI
- Bank Sahabat Sampoerna
Untuk VA BCA akan ada nama “IKN for Business” di salah satu kolom nama
yang ditampilkan
displayName maksimum 24 karakter

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
22
Receive Permanent Method - Response

Contoh instruksi pembayaran untuk untuk Virtual


Account.

Data didalam “instructions” ini adalah info yang


diperlukan untuk user melakukan pembayaran.

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
23
Receive One-off Payment - Request
Endpoint: POST /api/v4/payments
Metode bayar yang ingin dipakai, pilihan:
- “qris”
- “virtual_bank_account”
- “retail_outlet”
- “e-wallet”

Jumlah yg diterima metode bayar, type int32

Idempotency Key / Unique ID


Datatype: string

Wajib diisi, harap disimpan


Digunakan u/ identifikasi transaksi.

Parameter displayName untuk memilih nama yang ditampilkan di metode bayar. Tanggal expiration, format date ISO8601
Format nama VA (kecuali VA BCA): IKN-displayName Optional, default value jika kosong.
VA: 24 Jam (default), E-Money: 5 menit (default)
Format nama QRIS: SAFECASH - displayName

Untuk VA BCA akan ada nama “IKN for Business” di salah satu kolom
nama yang ditampilkan Opsi metode bayar, parameter berbeda tergantung
metode bayarnya

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
24
Receive paymentMethodOptions

displayName: Nama yang ditampilkan.


Virtual Account:
Format nama: IKN-displayName kec. BCA
"paymentMethodOptions": {
BCA business name IKN FOR BUSINESS dengan info nama yang
"bankShortCode": "BNI",
memuat displayName
"displayName": "test name",
"suffixNo": "12345678" // optional
suffixNo: 8 digit terakhir dari nomor VA.
}
Bank yang support: BCA, BRI, BSS

QRIS:
displayName: Nama yang ditampilkan.
"paymentMethodOptions": {
Format nama: SAFECASH - DISPLAYNAME
"displayName": "nama-tampilan-qris"
(maksimal 30 karakter)
}

Retail Outlet (One-off only):


"paymentMethodOptions": { diplayName: Nama yang ditampilkan
"displayName": "nama-tampilan" retailOutletName: INDOMARET / ALFAMART
"retailOutletName": "ALFAMART" (maksimal 20 karakter)
}

E-Wallet (One-off only):


"paymentMethodOptions": { providerCode: Saat ini hanya SHOPEEPAY
"providerCode": "SHOPEEPAY", afterSettlementReturnUrl: URL untuk redirect kembali ke app
"afterSettlementReturnUrl": "https://url-to-your-app.co.id/payment?1234" merchant setelah pembayaran di app E-Wallet berhasil.
}

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
25
Receive Payment Object
Payment Object adalah data model object pembayaran. Payment object inilah yang akan dikirimkan di callback, dan juga di response one-off
payment.

Status pembayaran:
- pending / processing = menunggu pembayaran
- paid = pembayaran diterima, belum settle
- completed = pembayaran sudah settle/cair
- expired = metode bayar sudah expire

Waktu expiration metode bayar

Idempotency Key / Unique ID untuk pembayarannya.

Jika permanent method, maka referenceId ini dari Fazz.

Idempotency Key / Unique ID untuk metode bayarnya.

Sama dengan referenceId yang diatas jika One-off payment.

Instruksi metode bayar, berbeda berdasarkan metode bayar


yang dipilih.

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
26
Receive Response - Instructions

bankShortCode: bank virtual account tersebut


Virtual Account:
accountNo: Nomor rekening virtual untuk user melakukan
"instructions": {
pembayaran.
"bankShortCode": "BNI",
"accountNo": "8848095778242337",
Untuk Open VA Mandiri, saat ingin transfer, user harus
"displayName": "Nama Tampilan"
memilih “Nicepay”
}
Untuk Closed VA Mandiri “Transferpay”

QRIS:
"instructions": { displayName: Nama yang ditampilkan.
"imageUrl": "https://url-to-qr-image.co.id/qr/image?id=1234", Format nama: SAFECASH - DISPLAYNAME
"displayName": "test-display-name" imageUrl: URL ke image QRIS untuk transaksi bersangkutan.
}

retailOutletName: ALFAMART, INDOMARET


Retail Outlet (One-off only): paymentCode: Kode bayar untuk user melakukan
"instructions": { pembayaran.
"retailOutletName": "ALFAMART", - Untuk case user melakukan pembayaran melalui
"paymentCode": "0222683" ALFAMART, infokan ke kasir ingin membayar
} Plasamall, lalu berikan paymentCode nya
- INDOMARET lewat Neu

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
27
Receive - Payment Object ShopeePay

{ Spesifikasi payment SHOPEEPAY


"data": {
"id": "contract_83c446d6abeb4a70ae7c956d0d241de5", Settlement: HK+1
"type": "payment", expiredAt Min: 1 Detik
"attributes": { expiredAt Max: 1 Jam
"status": "pending", expiredAt Default: 5 Menit
"amount": "1000.0", amount Min: Rp1
"createdAt": "2021-05-27T13:19:14+07:00", amount Max: Rp2.000.000 (Unverified User)
"description": "test production", amount Max: Rp10.000.000 (Verified User)
"expiredAt": "2021-05-27T14:00:00+07:00",
"referenceId": "shopeepay_20210527#1", Cancel Method tidak tersedia
"fees": "16.5",
"paymentMethod": {
"id": "shopeepay_0ce943573d3d4a1270f5a7ad9b79ea505ff80c77",
"type": "e-wallet",
"referenceId": "shopeepay_20210527#1",
"settlement": { httpUrl: digunakan untuk link ke aplikasi Shopeepay di HP
"httpUrl": "https://url-to-shopeepay-app.co.id/payments/21314", user, ketika user checkout.
"afterSettlementUrl": "https://url-to-your-app.co.id/payment?1234"
} afterSettlementUrl: URL untuk link kembali ke aplikasi
} merchant, ketika user sudah selesai melakukan
} pembayaran di aplikasi Shopeepay.
}
}

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
28
Receive - Testing Callback

Untuk testing callback Receive dan mensimulasikan user melakukan pembayaran, gunakan endpoint berikut ini:

Simulasi user membayar ke Permanent Method:


POST /api/v4/payment_methods/:payment_method_type/:PaymentMethodId/tasks

Simulasi user membayar ke One-off Method, dan juga simulasi settlement (One-off dan Permanent):
POST /api/v4/payments/:paymentId/tasks

Valid parameter:
- “cancel” - untuk menonaktifkan metode bayar secara manual (hanya VA OneOff).
- “receive_payment” - Sandbox Only untuk mensimulasikan pembayaran terjadi.
- “settle” - Sandbox Only untuk mensimulasikan terjadinya settlement / pencairan dana.

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
29
Receive - GET API for Payments / One Off
Kami juga menyediakan 4 GET endpoint untuk pengecekan payment on-demand, untuk pembayarannya dan metode bayarnya. Kedua
endpoint tersebut dapat digunakan untuk sync-up data jika sewaktu-waktu callback gagal mengupdate database, atau ingin mengecek
transaksi lama tanpa membuka dashboard.

Endpoints
GET /api/v4/payments Mengambil banyak data pembayaran sekaligus, difilter dengan Query Params.
Mengambil pembayaran spesifik dari ID di url param. ID yang digunakan bukan referenceId tapi ID dari
GET /api/v4/payments/:id
response. contoh: api/v4/payments/contract_2a31c212

Query Params
?filter[createdAfter]= Date ISO8601 untuk mengambil transaksi setelah tanggal tertentu.
?filter[createdBefore]= Date ISO8601 untuk mengambil transaksi sebelum tanggal tertentu.
?filter[status]= String “completed” atau “failed” untuk filter transaksi dengan status tertentu.
?filter[referenceId]= Mengambil data transaksi berdasarkan referenceId.
?sort=createdAt Sortir datanya berdasarkan tanggal dibuatnya transaksi, dari yang pertama dibuat.
?sort=-createdAt Sortir datanya berdasarkan tanggal dibuatnya transaksi, dari yang paling baru.
?page[size]=100 Size array / jumlah data yang ingin dikembalikan dari API GET ini.
?page[number]=3 Halaman dari data balikan, digunakan untuk pagination bersamaan dengan size.

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
30
Receive - GET API for Payment Methods /
Persistent

Endpoints
GET /api/v4/payment_methods/
Mengambil banyak data payment method yang sudah dibuat.
:type/:method_id
GET /api/v4/payment_methods/ Mengambil semua pembayaran yang masuk ke payment method tersebut.
:type/:method_id/payments Bisa difilter lebih lanjut menggunakan Query Params.

Query Params
?filter[createdAfter]= Date ISO8601 untuk mengambil transaksi setelah tanggal tertentu.
?filter[createdBefore]= Date ISO8601 untuk mengambil transaksi sebelum tanggal tertentu.
?filter[status]= String “completed” atau “failed” untuk filter transaksi dengan status tertentu.
?filter[referenceId]= Mengambil data transaksi berdasarkan referenceId.
?sort=createdAt Sortir datanya berdasarkan tanggal dibuatnya transaksi, dari yang pertama dibuat.
?sort=-createdAt Sortir datanya berdasarkan tanggal dibuatnya transaksi, dari yang paling baru.
?page[size]=100 Size array / jumlah data yang ingin dikembalikan dari API GET ini.
?page[number]=3 Halaman dari data balikan, digunakan untuk pagination bersamaan dengan size.

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
31
Receive - SLA

Layanan Rata-rata SLA

Waktu pembuatan VA Instan, dibawah 1 detik

Waktu pembuatan kode pembayaran retail Instan, dibawah 1 detik

Waktu konfirmasi pembayaran untuk VA Dibawah 1 menit

Waktu konfirmasi pembayaran untuk QRIS Sekitar 1 menit

Idealnya instan. Namun tergantung dari koneksi internet masing-masing retail dengan
Waktu konfirmasi pembayaran retail
ekspektasi delay 5 menit

Waktu Settlement BRI, BNI, dan Bank Sampoerna VA Idealnya sekitar 5 menit setelah pembayaran diterima

Waktu Settlement BCA VA


Transaksi di hari biasa: 1 Hari Kerja (HK+1)
*Cut-off BCA VA pukul 21:00. Transaksi lewat pukul 21:00 akan
Transaksi di hari libur & weekend: Hari setelah HK+1
mengikuti hari settlement berikutnya.

QRIS, ShopeePay, dan VA lainnya 1 Hari Kerja (HK+1). Settlement akan terjadi sekitar jam 12:00-14:00 WIB

Retail Settlement Alfamart: 3 Hari Kerja (HK+3), Indomaret: 2 Hari Kerja (HK+2)

Request dibawah jam 12:00 akan dikirim dihari yang sama. Diatas jam 12:00, SLA HK+1
Withdrawal (Maksimal Rp10 Miliar/transaksi)
(dana akan settled sekitar pukul 13:00-14:00 WIB)

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
32
Receive - SLA

Layanan Waktu Penyelesaian

- Idealnya 1 jam
Penyelesaian isu status transaksi karena sistem kami
- Maksimum 6 jam

Maksimum pada hari settlement


Penyelesaian isu status transaksi karena faktor eksternal (bank)
Khusus real-time: settlement di HK+1

- Idealnya 1 jam
Penyelesaian isu settlement
- Maksimal 6 jam

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
33
Receive - SLA

Keterangan Waktu

Waktu respon pada jam operasional: - Idealnya dibawah 30 menit


Senin - Jum’at (09:00 - 18:00 WIB) - Maksimal 1 jam

Waktu respon diluar jam operasional: - Idealnya dibawah 1 jam


Weekend, hari libur, dan malam hari (09:00 - 22:00 WIB) - Maksimal 2 jam

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
34
Menjaga Keamanan Callback

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
35
Securing Callbacks

Setiap callback yang kami kirim memiliki header “xfers-signature” yang dapat digunakan untuk memastikan callbacknya benar
dikirim dari Fazz.

“xfers-signature” ini berisi hash dari request.body callback tersebut, menggunakan algoritma hash HMAC SHA-256 dengan
“Signing Secret” yang bisa didapat saat mengupdate callback endpoint.

Signing Secret hanya akan muncul saat set callback URL Contoh header dari callback yang dikirimkan Fazz

Referensi: https://docs.fazz.com/docs/securing-your-callback

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
36
Securing Callbacks - Example

Berikut contoh middleware ExpressJs untuk validasi callback. Jika hash berbeda dengan Xfers-Signature, berarti
SIGNING_SECRET yang digunakan berbeda, mengindikasikan pengirimnya bukan Fazz.

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
37
Transaksi dengan Dashboard Fazz Business

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
38
Overview Dashboard Fazz Business

Ada dua jenis saldo di Fazz Business: Available Balance dan Holding Balance

- Available Balance adalah saldo/uang yang siap dikirim (menggunakan Pay atau Send Fund) dan ditarik (menggunakan Withdraw).
- Holding Balance adalah saldo/uang yang menunggu pelunasan (pencairan dana) dari penerima pembayaran, seperti VA bank atau retail.

Deposit uang ke Tarik uang ke rekening


Available Balance perusahaan yang terdaftar

Mengakses
Fitur kirim dana
halaman riwayat
transaksi melalui dashboard

Dana yang sudah cair


Dana yang sedang
dan siap untuk
menunggu pencairan
dikirimkan atau ditarik

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
39
Bertransaksi di Dashboard Fazz Business

Deposit

Untuk melakukan deposit, login ke dashboard Anda dan klik tombol deposit. Ikuti instruksi selanjutnya dengan memilih bank deposit dan
jumlah deposit. Apabila jumlah deposit yang ditransfer tidak sesuai dengan kode unik yang diberikan, maka kami harus melakukan
pengecekan manual, dimana merchant laporkan ke kami dahulu apabila mengalami issue tersebut.

Klik Deposit untuk melakukan Deposit


uang ke akun Fazz Business Anda

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
40
Pengecekan Deposit
Deposit adalah cara menambah saldo balance secara langsung. Deposit dapat dibagi menjadi 2 jenis:
- Deposit melalui kode unik
- Deposit melalui VA

Deposit dengan kode unik:


Deposit dengan Virtual Account:
- Harus ambil tiket kode unik terlebih dahulu dari dashboard
- Tidak perlu ambil kode unik, cukup transfer ke no. VA
- Jumlah dan bank tujuan yang ditransfer harus persis sama
- Nominal yang dikirimkan bebas
- Setiap kode unik hanya bisa dipakai sekali saja
Kecepatan transaksi masuk ke saldo:
Kecepatan transaksi masuk ke saldo:
- Normalnya dibawah 1 Jam
● Normalnya dibawah 1 jam:
- Jika lebih dari 1 jam belum masuk, bisa hubungi Customer
○ Sebagian besar dibawah 10 menit sudah masuk.
Support kami dengan melampirkan bukti transfernya.
○ Tergantung dari banknya terkadang bisa delay sampai 1
jam baru masuk.
Penyelesaian isu deposit melalui VA dikarenakan sistem bank
○ Jika lebih dari 1 jam belum masuk, bisa hubungi Customer
adalah maksimal H+1 Hari Kerja.
Support kami.

Mengenai penyelesaian isu deposit:


- Penyelesaian isu deposit kode unik karena sistem Fazz adalah maksimal 6 jam.
- Penyelesaian isu deposit kode unik karena kesalahan user (salah kode unik/salah bank) adalah maks H+1 Hari Kerja.
Untuk pengecekan deposit, tim kami akan membutuhkan detail transfer seperti bukti transfer yang memuat info seperti jumlah yang
dikirim, nomor rekening tujuan, serta tanggal dan jam transaksi sukses. Harap pastikan transaksi sudah sukses terkirim.

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
41
Bertransaksi di Dashboard Fazz Business

Mengakses Mode Sandbox

Mode Sandbox digunakan untuk developer untuk melakukan simulasi integrasi secara aman tanpa mengganggu akun produksi. Ketika Anda
sudah sukses untuk mengakses dashboard Fazz Business (sebelum diverifikasi dan atau akun sudah terbentuk), maka Anda dapat
mengakses mode sandbox. Untuk mengakses mode sandbox, merchant login di dashboard Fazz Business, klik profile di pojok kanan atas,
lalu pilih “Switch to Sandbox Mode”.

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
42
Bertransaksi di Dashboard Fazz Business

Mode Production

Mode production hanya dapat diaktifkan dan dilakukan testing ketika bisnis telah diverifikasi dan PKS telah ditAndatangani. Untuk
mengakses API dan Pengaturan Callback di mode production, dapat dilakukan dengan mengakses Developer Tools.

Mengakses API & Callback settings

Mengakses Mengakses
dokumentasi dokumentasi
API Produk

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
43
Pengenalan & Panduan Sistem Role

Sistem role adalah fitur dimana merchants dapat menambahkan email lain ke daftar user yang dapat mengakses dashboard yang sama. Tujuan dari
role ini adalah agar merchants dapat membagi akses ke dashboard untuk timnya tanpa membagikan email/passwordnya sendiri, dan juga untuk
memberikan akses seperlunya saja tergantung dari posisi atau keperluan user yang ditambahkan.
Contoh penggunaan adalah agar tim Customer Support dapat mengecek status transaksi, bisa didaftarkan emailnya dengan role Viewer.

Add New User: Fitur untuk


menambahkan role user baru.
Setelah ditambahkan, invitation
akan dikirim melalui email.

Delete Role: Menghapus role


user tersebut. Setelah dihapus,
user tersebut tidak akan dapat
login ke dashboard dengan email
dan passwordnya lagi.

Email yang Role user


terdaftar untuk saat ini
akses dashboard
Mengakses halaman Edit Role: Merubah role user,
pembagian role. Hanya digunakan untuk merubah hak
dapat diakses oleh akses user yang sudah ada.
Owner dan Admin

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
44
Daftar Role dan Hak Akses yang Tersedia

Berikut Role Matrix / Daftar Role yang tersedia. Email yang pertama kali didaftarkan memiliki Role “Owner” dan memiliki akses penuh.
Pastikan akses role Owner, Admin, dan Finance hanya dimiliki oleh orang yang dipercaya saja karena role tsb. dapat mengirim dana.

Add/Remove Roles Send Fund Deposit Withdraw Dev Tools Email Notif Export CSV See Trx History

Withdrawal
Owner o o o o o o o
Balance Alert
Admin o o o o o o o
Withdrawal
Finance o o o Settlement o o
Balance Alert
Callback Failure
Operations o Pending Trx o o
Balance Alert
Developer o Callback Failure o o
Viewer o o

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
45
Detail Hak Akses Role yang Tersedia

Dapat menambahkan/menghapus email ke Role System. Owner adalah email yang pertama didaftarkan, dan sebagai super user,
Add/Remove Role hanya dapat diubah manual dengan mengajukan permintaan perubahan ke kita.
Owner dapat menambahkan dan menghapus Admin yang juga punya kemampuan ini. Admin tidak dapat merubah Owner.

Send Fund Kemampuan untuk mengirimkan dana ke rekening tujuan apapun. Dikenakan fee sesuai API Pay.

Kemampuan untuk menarik dana dari Available Balance di Fazz Business ke rekening bank perusahaan sesuai yang terdaftar di
Withdraw
surat perjanjian. Tidak dikenakan biaya.

Deposit Kemampuan untuk mengakses halaman Deposit, biasa untuk mengecek Virtual Account deposit atau mengambil kode unik.

Kemampuan untuk generate API key, dan juga setup Callback Endpoint. API Key adalah credential penting yang harus disimpan
Developer Tools
dengan aman.

Role dengan Email Notif akan mendapat notifikasi email sesuai dengan event yang tertulis di kolomnya:
- Pending Trx: Transaksi pengiriman dana yang masih processing lebih dari 30 menit.
- Callback Failure: Callback suatu transaksi masih gagal setelah lebih dari 20 attempts.
Email Notification
- Withdrawal: Notifikasi transaksi withdrawal berhasil.
- Settlement: Notifikasi settlement terjadi.
- Balance Alert: Notifikasi balance dibawah angka yang ditentukan. Jika ingin diaktifkan, bisa diinfokan ke kami.
Export CSV Mendownload mutasi Available Balance selama 30 hari terakhir dalam format CSV melalui email.

See Trx History Mengecek transaction history, status transaksi, detailnya, dan juga sisa saldo.

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
46
Pengecekan Status Transaksi

Pengecekan status transaksi selain menggunakan GET API juga dapat dilakukan melalui Dashboard Fazz, dari halaman “Transactions” yang dapat diakses
oleh semua role.

Filter untuk mencari Mencari dari referenceId Download mutasi balance


transaksi tertentu (best practice) Dikirim melalui email
Status-status transaksi:
Untuk
pengecekan Completed: sukses
status transaksi (Send) atau dana
dan melihat sudah cair/settle jika
riwayat transaksi Receive
Processing: transaksi
sedang diproses di
bank
Failed: transaksi gagal,
referenceId dari jika disbursement
transaksi. Jika berarti dana sudah
di-click, maka dikembalikan ke saldo.
akan membuka Jika Receive metode
halaman detail bayarnya expired
transaksi Paid: Pembayaran
masuk, tapi belum cair /
menunggu settlement.
Pending: Menunggu
pembayaran
Cancelled: Metode
pembayaran dibatalkan
Refunded: Warungpay
Cash out dibatalkan

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
47
Best Practices and Security Suggestions

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
48
Menyimpan Kredensial

Jaga kerahasiaan email dan password dari account Fazz Business!


- Jangan sharing email dan password dengan siapapun, gunakan Role System untuk share akses.
- Jaga keamanan email yang didaftarkan, aktifkan 2FA, dan berbagai security best practice.
- Ganti password secara berkala.

Simpan API Key, API Secret, dan Signing Secrets di tempat yang aman dan sebisa mungkin tidak bisa diakses siapapun!
API Key dan API Secret adalah ID dan Password untuk melakukan API request. Siapapun yang memegang API Key dan Secret ini dapat
melakukan API Request atas account dimana Key dan Secret ini berada.

Best practice untuk developer adalah jangan sampai API Key tersebut ter-ekspos di source code, simpanlah di tempat yang aman
dan hanya dapat diakses oleh orang tertentu saja.

Best practice untuk management pastikan hanya sebagian kecil orang yang dipercaya yang dapat mengambil dan set API Key. Jika
menggunakan freelancer, pastikan setelah project selesai, hak akses freelancer tersebut untuk API Key dilepas dan pastikan API Key
tidak dicopy.

Menggunakan fitur role untuk menjaga keamanan akun dan tidak menyebarkan akun bisnis utama ke semua karyawan untuk
pencegahan internal fraud. Apabila dibutuhkan, kami dapat menonaktifkan fitur transfer dana melalui dashboard apabila merchant
memintanya kepada kami.

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
49
Manajemen Risiko - Bank Namecheck

Contoh kasus penyalahgunaan fitur


Untuk meningkatkan awareness akan possible exploit yang dapat dilakukan user
tidak bertanggung jawab, berikut adalah hal-hal yang dapat terjadi dan mungkin
Penipu melakukan brute checking
perlu disiapkan pencegahannya:
nomor rekening/VA melalui fitur name
check di aplikasi merchant
Penyalahgunaan fitur Name Checking
Fitur name checking kami sediakan agar user dapat mengecek apakah nama
pemilik rekening tujuan sesuai atau tidak, namun fitur ini dapat disalahgunakan
Penipu mendapatkan nama lengkap
oleh pihak tidak bertanggung jawab untuk mencuri data nasabah bank. Exploit ini dari respond bank checking dan juga
biasanya berupa percobaan namecheck ke bank yang sama yang gagal nomor hp yang biasa tertera di VA.
berkali-kali dalam jumlah banyak. Polanya bisa incremental, bisa juga random Contoh: VA E-money: 770108xxxxx
number.

Pencegahan:
Penipu akan menelpon korban lalu
1. Melakukan verifikasi pengguna/user berpura-pura menjadi petugas untuk
2. Melakukan auto-disable feature untuk user yang melakukan brute force menipu korban dengan meyakinkan
name checking yang gagal berkali-kali secara beruntun atau memberikan korban bahwa penipu memiliki data
limitasi fitur selama beberapa waktu. nama lengkap dan nomor rekening.

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
50
Manajemen Risiko - Penamaan Metode Bayar

Untuk meningkatkan awareness akan possible exploit yang dapat dilakukan user
tidak bertanggung jawab, berikut adalah hal-hal yang dapat terjadi dan mungkin
perlu disiapkan pencegahannya:
Contoh kasus penyalahgunaan fitur
Penyalahgunaan fitur displayName di Receive
Kami menyediakan parameter displayName di Receive API untuk memberikan Penipu menamai VA dengan nama
keleluasaan merchant agar dapat menamai metode bayar sesuai dengan yang perusahaan lain, seperti nama
dibutuhkan, namun fitur ini juga dapat disalahgunakan oleh user seperti memberi maskapai, e-commerce atau bank
nama VA sebagai nama dari bisnis lain untuk berpura-pura menjadi pihak
perusahaan tersebut. Untuk pencegahan, semua metode bayar kami memuat
Penipu melakukan penipuan social
IKN.
engineering dengan meyakinkan
korban untuk melakukan pembayaran
Pencegahan: ke VA tsb yang memiliki nama
1. Melakukan verifikasi user menyerupai perusahaan tsb.
2. Batasi kemampuan user merubah display nama toko, seperti nama VA
user harus melalui proses verifikasi dan di-approve terlebih dahulu.
3. Segera blokir user apabila terjadi hal-hal yang mencurigakan

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
51
Support dan Layanan Tambahan

Untuk kelancaran operasional, Fazz juga dapat membantu memberikan briefing dan training singkat
untuk tim ops dan/atau customer support agar dapat lebih mengenal dan mampu menggunakan
dashboard kami untuk keperluan operasional.

Hubungi kami kapanpun untuk set up jadwalnya jika tertarik.

Confidential and Proprietary. Copyright (c) by Fazz Financial Group. All Rights Reserved.
52
Thank you!
Amelia Jasmine
Senior Business Development Associate

+628121186586 amelia.quinta@fazzfinancial.com

Anda mungkin juga menyukai