Payment Mutations
Mengambil daftar mutasi atau transaksi masuk dari rekening Anda yang berhasil terdeteksi oleh Android Worker.
Data mutasi ini sangat berguna untuk keperluan rekonsiliasi serta pencocokan transaksi secara manual apabila proses otomatisasi mengalami kendala.
Cara kerja: Android Worker mendeteksi notifikasi transfer masuk → mengirimkan data ke server → sistem secara otomatis mencocokkan transaksi tersebut dengan invoice berstatus PENDING berdasarkan nominal unik. Jika nominal cocok, status invoice akan berubah menjadi PAID. Jika tidak ada nominal yang sesuai, mutasi tersebut akan berstatus unmatched dan dapat dicocokkan secara manual melalui endpoint Payment Match.
Gunakan parameter only_unmatched=true untuk memfilter dan hanya menampilkan mutasi yang belum terpasangkan secara otomatis.
Request
- Endpoint
- Parameter
- Header
- Body
- Contoh
| Method | URL |
|---|---|
GET | https://api.bayar.digital/gateway/mutations |
| Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
page | integer | 1 | Halaman data yang ingin ditampilkan |
per_page | integer | 20 | Jumlah data yang ditarik per halaman (maksimal 100) |
only_unmatched | bool | false | Filter untuk hanya menampilkan mutasi yang belum cocok (unmatched) |
| Header | Wajib | Deskripsi |
|---|---|---|
X-Api-Key | Ya | API Key merchant Anda |
| Field | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| Tidak ada body pada request ini. | |||
curl "https://api.bayar.digital/gateway/mutations?only_unmatched=true" \
-H "X-Api-Key: pk_..."
Response
- Sukses
- Gagal
| Field | Tipe | Deskripsi |
|---|---|---|
id | uuid | ID unik mutasi |
device_id | uuid | ID perangkat Android Worker yang mendeteksi transaksi |
title | string/null | Judul notifikasi transfer dari aplikasi bank |
body | string/null | Isi detail notifikasi transfer |
posted_at | datetime | Waktu transaksi dicatat oleh bank |
amount_parsed | int64 | Nominal transfer yang berhasil diekstrak |
sender_parsed | string/null | Nama pengirim yang berhasil diekstrak |
type_parsed | string/null | Jenis mutasi: CREDIT (dana masuk) / DEBIT (dana keluar) |
currency_parsed | string/null | Mata uang (contoh: IDR) |
is_matched | bool | Indikator apakah mutasi ini sudah dipasangkan dengan invoice |
matched_payment_id | uuid/null | ID invoice yang berpasangan dengan mutasi ini |
matched_payment_code | string/null | Kode invoice yang berpasangan dengan mutasi ini |
created_at | datetime | Waktu mutasi terdeteksi dan dicatat oleh sistem server |
device_name | string/null | Nama perangkat Android Worker |
package_name | string/null | Package name dari aplikasi bank yang mengirim notifikasi |
app_name | string/null | Nama aplikasi bank pengirim notifikasi |
app_version | string/null | Versi aplikasi bank pengirim notifikasi |
account_number | string/null | Nomor rekening tujuan penerima dana |
account_name | string/null | Nama pemilik rekening tujuan |
bank_name | string/null | Nama bank penerima dana |
bank_type | string/null | Jenis metode: TRANSFER atau QRIS |
200 OK
{
"success": true,
"message": "ok",
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440020",
"device_id": "660e8400-e29b-41d4-a716-446655440030",
"title": "Transfer dari BUDI SANTOSO",
"body": "BCA ke 1234567890 a/n PT Merchant Contoh",
"posted_at": "2026-06-11T10:30:00Z",
"amount_parsed": 50123,
"sender_parsed": "BUDI SANTOSO",
"type_parsed": "CREDIT",
"currency_parsed": "IDR",
"is_matched": false,
"matched_payment_id": null,
"matched_payment_code": null,
"created_at": "2026-06-11T10:30:05Z",
"device_name": "HP Kantor",
"package_name": "com.bca",
"app_name": "BCA Mobile",
"app_version": "6.2.0",
"account_number": "1234567890",
"account_name": "PT Merchant Contoh",
"bank_name": "Bank Central Asia",
"bank_type": "TRANSFER"
}
],
"pagination": {
"total": 50,
"count": 1,
"per_page": 20,
"current_page": 1,
"total_pages": 3
}
}
| Code | Status | Keterangan |
|---|---|---|
tenant_api_key_required | 403 | API Key tidak valid atau tidak disertakan |
internal_error | 500 | Terjadi kendala pada server, silakan coba beberapa saat lagi |
500 Internal Server Error
{
"success": false,
"code": "internal_error",
"message": "internal server error"
}