# API Query Saldo Merchant (payment_dfpay_balance.html)

Endpoint untuk query saldo merchant terkini.

## Deskripsi

Endpoint ini digunakan untuk mengecek saldo available dan frozen balance merchant. Berguna untuk verifikasi sebelum membuat payout atau monitoring cash flow.

## Endpoint

```
POST https://pay-test.targeted.work/payment_dfpay_balance.html
```

## Parameter Request

| Nama | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| memberId | string | ✓ | Nomor merchant |
| sign | string | ✓ | Signature MD5 untuk verifikasi keamanan |

## Struktur Response

```json
{
  "status": "success|error",
  "msg": "Pesan deskripsi",
  "errCode": null,
  "data": {
    "balance": "100000000",
    "frozen": "50000000",
    "available": "50000000"
  }
}
```

## Penjelasan Response Data

| Field | Deskripsi |
|---|---|
| balance | Total saldo merchant (Rp) |
| frozen | Saldo yang sedang dalam proses/pending (Rp) |
| available | Saldo yang dapat digunakan (balance - frozen) |

## Contoh Implementasi PHP

```php
<?php
$baseUrl = "https://pay-test.targeted.work/";
$endpoint = "payment_dfpay_balance.html";

$data = [
    "memberId" => "10036"
];

// Generate signature
$data['sign'] = generateSignature($data, "150kz9esh1s2f793abb8l0e4mjot3r2c");

// Send request
$response = curlPost($baseUrl . $endpoint, $data);

// Response handling
$result = json_decode($response, true);
if ($result['status'] == 'success') {
    $balance = $result['data'];
    
    echo "Saldo Total: Rp " . number_format($balance['balance']);
    echo "Saldo Frozen: Rp " . number_format($balance['frozen']);
    echo "Saldo Available: Rp " . number_format($balance['available']);
    
    // Cek apakah saldo cukup sebelum payout
    if ($balance['available'] >= 50000) {
        echo "Saldo cukup untuk payout";
    } else {
        echo "Saldo tidak cukup untuk payout";
    }
} else {
    // Handle error
    echo "Error: " . $result['msg'];
}
?>
```

## Interpretasi Saldo

### Total Balance
Total saldo merchant di sistem kami. Nilai ini adalah:
```
Total Balance = Frozen + Available
```

### Frozen Balance
Saldo yang sedang dalam proses/pending dan tidak dapat digunakan untuk payout baru. Termasuk:
- Payout yang sedang diproses
- Transaksi yang pending approval

### Available Balance
Saldo yang dapat langsung digunakan untuk payout. Ini adalah saldo yang ready untuk di-withdraw ke merchant atau digunakan untuk payout ke customer.

## Kapan Menggunakan Endpoint Ini

1. **Sebelum Payout**: Verifikasi saldo available >= jumlah payout
2. **Dashboard**: Tampilkan saldo di dashboard merchant
3. **Monitoring**: Track perubahan saldo secara real-time
4. **Notifikasi**: Alert jika saldo terlalu rendah

---

**Penting**: Gunakan `available` untuk mengecek apakah merchant bisa melakukan payout. Jika ingin payout Rp 100.000, pastikan `available` >= Rp 100.000.
