Dokumentasi integrasi RESTful API CekMutasi.Co.Id
CekMutasi.Co.Id mendukung komunikasi data lintas platform melalui konektivitas RESTful API. API terbagi menjadi 2 metode, pertama adalah Callback dan kedua adalah HTTP Request dan keduanya memanfaatkan format data JSON.
Pada metode Callback, sistem CekMutasi.Co.Id akan melakukan pengiriman notifikasi yang berisi detail transaksi ke URL Callback yang telah ditentukan oleh pengguna sedangkan pada metode HTTP Request sistem pengguna melakukan request data ke sistem CekMutasi.Co.Id dan sistem CekMutasi.Co.Id memberikan respon data yang diminta.
Library/Package integrasi tersedia pada halaman Github https://github.com/trijayadigital/cekmutasi-php
Agar sistem Anda menerima notifikasi transaksi melalui callback API, Anda hanya perlu menambahkan URL callback Anda pada kolom "URL IPN/Callback" saat menambahkan rekening. Ada juga dapat mengedit akun rekening Anda untuk menambahkan URL Callback.
Setiap ada transaksi baru yang masuk, sistem akan mengirim data transaksi dengan method POST dan struktur JSON sebagai berikut :
{
"action": "payment_report",
"content": {
"service_name": "Bank BRI",
"service_code": "bri",
"account_number": "1234567890",
"account_name": "Nama Pemilik Rekening",
"data": [
{
"id": 1,
"unix_timestamp": 123456789,
"type": "credit",
"amount": "1400026.00",
"description": "Berita transfer",
"balance": "1500000.00"
},
{
"id": 2,
"unix_timestamp": 987654321,
"type": "debit",
"amount": "50000.00",
"description": "Berita transfer",
"balance": "1450000.00"
}
]
}
}
Dan berikut adalah contoh script PHP untuk menerima data notifikasi (PHP 5.6+)
<?php
// include file koneksi database
require('koneksi.php');
$cekmutasi = [
'api_signature' => 'Masukkan API Signature Anda disini',
];
$incomingApiSignature = isset($_SERVER['HTTP_API_SIGNATURE']) ? $_SERVER['HTTP_API_SIGNATURE'] : '';
// validasi API Signature
if (! hash_equals($cekmutasi['api_signature'], $incomingApiSignature)) {
exit('Invalid Signature');
}
$post = file_get_contents('php://input');
$json = json_decode($post);
if (json_last_error() !== JSON_ERROR_NONE) {
exit('Invalid JSON');
}
if ($json->action === 'payment_report') {
foreach ($json->content->data as $data) {
// Waktu transaksi dalam format unix timestamp
$time = $data->unix_timestamp;
// Tipe transaksi : credit / debit
$type = $data->type;
// Jumlah (2 desimal) : 50000.00
$amount = $data->amount;
// Berita transfer
$description = $data->description;
// Saldo rekening (2 desimal) : 1500000.00
$balance = $data->balance;
if ($type === 'credit') { // dana masuk
$amount = $conn->real_escape_string($amount);
$sql = "SELECT * FROM tabel_invoice WHERE jumlah_tagihan = '" . $amount . "' AND status = 'UNPAID' ORDER BY id ASC LIMIT 1";
if (($exec = $conn->query($sql))) {
while ($invoice = $exec->fetch_object()) {
// Invoice dengan nominal ini ditemukan, lanjutkan proses
// contoh proses update status pembayaran invoice UNPAID -> PAID
$update = "UPDATE tabel_invoice SET status = 'PAID' WHERE id = " . $invoice->id;
$conn->query($update) or die($conn->error);
}
}
}
}
}
?>
Versi : 1.0
Base URL : https://api.cekmutasi.co.id/v1
HTTP Request memanfaatkan fungsi cURL (atau sejenisnya) untuk mengirim request ke API Endpoint CekMutasi.Co.Id dengan beberapa parameter tambahan. Berikut daftar API Endpoint yang tersedia beserta parameternya.
Digunakan untuk menambahkan rekening baru ke akun
Parameter | Tipe | Nilai |
---|---|---|
service_code | string |
bni = Bank BNI bca = Bank BCA bri = Bank BRI mandiri_online = Bank Mandiri btpn_jenius = Bank BTPN (Jenius) |
package_code | string |
basic = Paket Basic professional = Paket Professional enterprise = Paket Enterprise |
username | string | User ID/Username internet banking |
password | string | Password internet banking |
account_number | string | Nomor rekening |
account_name | string | Nama pemilik rekening |
ipn_url | string | Callback URL |
status | string |
ACTIVE = Status Aktif INACTIVE = Status Tidak Aktif |
Contoh script PHP dan response yang diberikan sistem
<?php
$apiKey = 'Masukkan API Signature Anda disini';
$data = [
'service_code' => 'bca',
'package_code' => 'basic',
'username' => 'testing',
'password' => 'password',
'account_number' => '1234567890',
'account_name' => 'Nama Pemilik',
'ipn_url' => 'https://mywebsite.com/callback',
'status' => 'ACTIVE',
];
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'https://api.cekmutasi.co.id/v1/bank/add',
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($data),
CURLOPT_HTTPHEADER => ['Api-Key: ' . $apiKey, 'Accept: application/json'],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4,
]);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
Berikut adalah contoh respon SUKSES
{
"success": true,
"error_message": "",
"data": {
"id": 1234,
"service_code": "bca",
"service_name": "Bank BCA",
"account_number": "1234567890",
"account_name": "Nama Pemilik",
"balance": 0,
"package": "Basic",
"ipn_url": "https://mywebsite.com/callback",
"status": "ACTIVE"
}
}
Berikut adalah contoh respon GAGAL
{
"success": false,
"error_message": "Access to this credential is not enabled"
}
Digunakan untuk memperbarui info rekening yang terdaftar di akun
Parameter | Tipe | Nilai |
---|---|---|
id | int | ID rekening bank |
password | string | Memperbarui password yang tersimpan |
account_number | string | Memperbarui nomor rekening |
account_name | string | Memperbarui nama pemilik rekening |
ipn_url | string | Memperbarui callback/IPN URL |
status | string |
Memperbarui status rekening
ACTIVE = Status Aktif INACTIVE = Status Tidak Aktif |
Contoh script PHP dan response yang diberikan sistem
<?php
$apiKey = 'Masukkan API Signature Anda disini';
$data = [
'id' => 1234,
'status' => 'INACTIVE',
];
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'https://api.cekmutasi.co.id/v1/bank/update',
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($data),
CURLOPT_HTTPHEADER => ['Api-Key: ' . $apiKey, 'Accept: application/json'],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4,
]);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
Berikut adalah contoh respon SUKSES
{
"success": true,
"error_message": "",
"data": {
"id": 1234,
"service_code": "bca",
"service_name": "Bank BCA",
"account_number": "1234567890",
"account_name": "Nama Pemilik",
"balance": 0,
"package": "Basic",
"ipn_url": "https://mywebsite.com/callback",
"status": "INACTIVE"
}
}
Berikut adalah contoh respon GAGAL
{
"success": false,
"error_message": "Access to this credential is not enabled"
}
Digunakan untuk menghapus rekening yang terdaftar di akun. Mutasi rekening yang tersimpan juga akan ikut terhapus
Parameter | Tipe | Nilai |
---|---|---|
id | int | ID rekening bank yang ingin dihapus |
Contoh script PHP dan response yang diberikan sistem
<?php
$apiKey = 'Masukkan API Signature Anda disini';
$data = [
'id' => 1234,
];
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'https://api.cekmutasi.co.id/v1/bank/delete',
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($data),
CURLOPT_HTTPHEADER => ['Api-Key: ' . $apiKey, 'Accept: application/json'],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4,
]);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
Berikut adalah contoh respon SUKSES
{
"success": true,
"error_message": ""
}
Berikut adalah contoh respon GAGAL
{
"success": false,
"error_message": "Access to this credential is not enabled"
}
Digunakan untuk mendapatkan daftar rekening bank yang terdaftar di akun
Parameter | Tipe | Nilai |
---|---|---|
service_code | string | Filter berdasarkan kode layanan |
account_number | string | Filter berdasarkan nomor rekening |
Contoh script PHP dan response yang diberikan sistem
<?php
$apiKey = 'Masukkan API Signature Anda disini';
$filters = [
'service_code' => 'bca',
// 'account_number' => '1234567890',
];
$filters = http_build_query($filters);
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'https://api.cekmutasi.co.id/v1/bank/list?' . $filters,
CURLOPT_HTTPHEADER => ['Api-Key: ' . $apiKey, 'Accept: application/json'],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4,
]);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
Berikut adalah contoh respon SUKSES
{
"success": true,
"error_message": "",
"data": [
{
"id": 1234,
"service_code": "bca",
"service_name": "Bank BCA",
"account_number": "1234567890",
"account_name": "Nama Pemilik",
"balance": 0,
"package": "Basic",
"ipn_url": "https://mywebsite.com/callback",
"status": "ACTIVE"
}
]
}
Berikut adalah contoh respon GAGAL
{
"success": false,
"error_message": "Access to this credential is not enabled"
}
Digunakan untuk melakukan pencarian data mutasi rekening Bank dengan filter sesuai parameter yang ditentukan. Semakin banyak filter yang digunakan, proses pencarian akan menjadi lebih spesifik dan lebih tepat
Parameter | Tipe | Nilai |
---|---|---|
date | array |
from = Tanggal awal. Format Y-m-d H:i:s. Contoh : 2018-04-09 00:00:00 to = Tanggal akhir. Format Y-m-d H:i:s. Contoh : 2018-04-09 23:59:59 |
amount | Decimal (2) |
Desimal dengan 2 angka dibelakang koma. Contoh: 50000.00 |
type | string |
Jenis transaksi. credit = Transaksi masuk debit = Transaksi keluar |
description | string |
Keterangan transaksi. Contoh: Invoice 1234 |
service_code | string |
Kode layanan. contoh : bri = Bank BRI bca = Bank BCA bni = Bank BNI mandiri = Bank Mandiri btpn_jenius = BTPN Jenius mandiri_online = Mandiri Online |
account_number | string |
Nomor rekening. Contoh: 1234567890 |
Contoh script PHP dan response yang diberikan sistem
<?php
$apiKey = 'Masukkan API Signature Anda disini';
$data = [
'search' => [
'date' => [
'from' => date('Y-m-d') . ' 00:00:00',
'to' => date('Y-m-d') . ' 23:59:59',
],
'service_code' => 'bri',
'account_number' => '1234567890',
'amount' => '50123.00',
],
];
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'https://api.cekmutasi.co.id/v1/bank/search',
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($data),
CURLOPT_HTTPHEADER => ['Api-Key: ' . $apiKey, 'Accept: application/json'],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4,
]);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
Script diatas melakukan pencarian data mutasi dengan filter tanggal hari ini pukul 00:00:00 sampai hari ini pukul 23:00:00 dari rekening Bank BRI nomor rekening 1234567890 dengan nominal 50123.00
Berikut adalah contoh respon SUKSES
{
"success": true,
"error_message": "",
"response": [
{
"id": 1,
"service_code": "bri",
"account_number": "1234567890",
"unix_timestamp": 8454725434,
"type": "credit",
"amount": "50123.00",
"description": "Berita transfer",
"balance": "1400600.00"
},
{
"id": 2,
"service_code": "bri",
"account_number": "1234567890",
"unix_timestamp": 8452437546,
"type": "debit",
"amount": "50123.00",
"description": "Berita transfer",
"balance": "130600.00"
}
]
}
Berikut adalah contoh respon GAGAL
{
"success": false,
"error_message": "Access to this credential is not enabled",
"response": []
}
Digunakan untuk melakukan pencarian data mutasi rekening PayPal dengan filter sesuai parameter yang ditentukan. Semakin banyak filter yang digunakan, proses pencarian akan menjadi lebih spesifik dan lebih tepat
Parameter | Tipe | Nilai |
---|---|---|
date | array |
from = Tanggal awal. Format Y-m-d H:i:s. Contoh : 2018-04-09 00:00:00 to = Tanggal akhir. Format Y-m-d H:i:s. Contoh : 2018-04-09 23:59:59 |
username | string |
Username rekening paypal. Contoh: mail_api1.example.com |
amount | Decimal (2) |
Desimal dengan 2 angka dibelakang koma. Contoh: 10.50 |
string |
Email pengirim. Contoh: [email protected] |
|
transactionid | string |
ID transaksi. Contoh : XGDGHD3474GGD6645 |
currency | string |
3 karakter kode Mata Uang. Contoh: USD |
Contoh script PHP dan response yang diberikan sistem
<?php
$apiKey = 'Masukkan API Signature Anda disini';
$data = [
'search' => [
'date' => [
'from' => date('Y-m-d').' 00:00:00',
'to' => date('Y-m-d').' 23:59:59',
],
'username' => 'mail_api1.example.com',
'amount' => '10.50',
'currency' => 'USD',
],
];
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'https://api.cekmutasi.co.id/v1/paypal/search',
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($data),
CURLOPT_HTTPHEADER => ['Api-Key: ' . $apiKey, 'Accept: application/json'],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4,
]);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
Script diatas melakukan pencarian data mutasi dengan filter tanggal hari ini pukul 00:00:00 sampai hari ini pukul 23:00:00 dari rekening PayPal mail_api1.example.com dengan nominal 10.50 USD
Berikut adalah contoh respon SUKSES
{
"success": true,
"error_message": "",
"response": [
{
"id": 1,
"username": "mail_api1.example.com",
"unix_timestamp": 8454725434,
"type": "payment",
"email": "[email protected]",
"name": "Nama Pengirim",
"transactionid": "XBGDGDYRG34746DG",
"status": "completed",
"amount": "10.50",
"fee": "0.43",
"net": "10.07"
},
{
"id": 2,
"username": "mail_api1.example.com",
"unix_timestamp": 864825263484,
"type": "purchase",
"email": "[email protected]",
"name": "Nama Penerima",
"transactionid": "ZFHFH48756HSD",
"status": "completed",
"amount": "7.50",
"fee": "0.00",
"net": "7.50"
}
]
}
Berikut adalah contoh respon GAGAL
{
"success": false,
"error_message": "Access to this credential is not enabled",
"response": []
}
Digunakan untuk mengirim pesan whatsapp berisi data mutasi dengan pesan kustom yang telah anda atur pada halaman Dashboard > WhatsApp Notif > Device Settings
Parameter | Tipe | Nilai |
---|---|---|
mutation_id | int | ID mutasi yang ingin dikirimkan notifikasinya. Contoh: 1234 |
sender_phone | string | Nomor whatsapp pengirim pesan. Contoh: 081234567890 |
receiver_phone | string | Nomor whatsapp tujuan. Contoh: 085222333444 |
Contoh script PHP dan response yang diberikan sistem
<?php
$apiKey = 'Masukkan API Signature Anda disini';
$data = [
'mutation_id' => 11467, // ID mutasi (wajib)
'sender_phone' => '081234567890', // Pengirim (wajib)
'receiver_phone' => '085222333444', // Nomor tujuan (wajib)
// (opsional)
'tokens' => [
'customer_name' => 'Test User',
'customer_email' => '[email protected]',
],
];
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'https://api.cekmutasi.co.id/v1/whatsapp/send',
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($data),
CURLOPT_HTTPHEADER => [
'Api-Key: ' . $apiKey,
'Accept: application/json',
],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4,
]);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
Berikut adalah contoh respon SUKSES
{
"success": true,
"error_message": "",
"data": {
"sender": "6281234567890",
"receiver": "6285222333444",
"message": "Berisi pesan yang anda kirimkan ke user",
"status": "SENT",
"note": ""
}
}
Berikut adalah contoh respon GAGAL
{
"success": false,
"error_message": "Sender phone needs to be connected before sending this message"
}
Berikut ini beberapa plugin siap pakai yang kami sediakan untuk menunjang kebutuhan integrasi. Lupakan coding sistem manual
Software | Versi | Rilis | Requirements | Download | Dokumentasi |
---|---|---|---|---|---|
WHMCS | 2.0.2 [versi lain] |
13-02-2020 16:00 | - WHMCS v7+ | [ZIP] - 943/1057 total | Baca Dokumentasi |
WooCommerce | 2.2.4 [versi lain] |
16-02-2021 20:18 | - WooCommerce 3.1+ - PHP 5.6+ |
[ZIP] - 454/1445 total | Baca Dokumentasi |