# Penjelasan Interface Umum

Dokumentasi ini untuk pengguna sistem payment gateway self-service. Melalui dokumen ini, merchant dapat memahami teknik integrasi, produk bisnis, proses integrasi, dan standar integrasi untuk menyelesaikan pekerjaan integrasi dengan lancar.

## Konvensi

### 1. Metode Request
- Semua request POST menggunakan `Content-Type: multipart/form-data`
- Semua parameter dikirim melalui form data, bukan JSON body

### 2. Format Tanggal dan Waktu
- Format standar: `YYYY-MM-DD HH:MM:SS`
- Zona waktu: Indonesia (WIB/WITA/WIT)
- Contoh: `2024-04-26 18:18:18`

### 3. Notifikasi Callback
Ketika payment gateway mengirim notifikasi callback ke merchant:
- Merchant **HARUS** mengembalikan response: `OK` atau `SUCCESS` (tanpa tanda kutip)
- Jika tidak ada response yang valid, sistem akan retry maksimal 5 kali dalam 12 jam
- Setelah 5 kali retry gagal, notifikasi tidak akan dikirim lagi

### 4. Mata Uang
- Semua nilai amount dalam satuan **Rupiah Indonesia (IDR)**
- Nilai harus integer (bilangan bulat), tanpa desimal
- Format: `1000000` untuk Rp 1.000.000

### 5. Struktur Response
Semua API akan mengembalikan response JSON dengan struktur dasar:
```json
{
  "status": "success|error",
  "msg": "Pesan keterangan",
  "errCode": null,
  "data": {}
}
```

- **status**: Indikator status request (bukan status bisnis)
- **msg**: Pesan deskripsi dari sistem
- **errCode**: Kode error jika ada (null jika sukses)
- **data**: Data response utama

### 6. Parameter Wajib
Setiap request API minimal memiliki parameter:
- `memberId`: Nomor merchant yang diberikan sistem
- `sign`: Signature MD5 untuk verifikasi keamanan
- Parameter spesifik sesuai endpoint

### 7. Validasi Input
- Parameter kosong tidak boleh dikirim (omit parameter jika tidak ada nilai)
- Email harus format valid: `user@domain.com`
- Nomor telepon format internasional atau lokal
- Nama customer hanya alfabet, titik, dan spasi (tidak boleh angka)
- Nomor rekening 9-18 digit tanpa spasi

---

**Penting**: Pastikan signature dihitung dengan benar sesuai algoritma yang telah ditentukan. Signature salah akan menyebabkan request ditolak dengan error code 1003.
