API Documentation

Integrasikan layanan verifikasi rekening bank dan e-wallet ke dalam aplikasi atau website Anda dengan REST API Cek Rekening Bank & E-Wallet. Dibangun untuk kecepatan, keandalan, dan kemudahan integrasi.

Base URL https://cekbank.web.id/api/v1

Authentication

Sebagian besar endpoint memerlukan autentikasi. Anda harus menyertakan API Key yang valid dalam header setiap request.

Bearer Token Auth

Kirimkan API Key Anda menggunakan skema Bearer pada header Authorization.

Authorization: Bearer ek_live_YOUR_API_KEY_HERE
Rate Limiting

Setiap akun memiliki batas request per jam (default: 100/jam). Informasi limit tersedia di response header: X-RateLimit-Limit, X-RateLimit-Remaining. Jika melebihi limit, server akan mengembalikan HTTP 429.

HTTP Status Codes
CodeStatusKeterangan
200OKRequest berhasil
400Bad RequestRekening tidak ditemukan
401UnauthorizedAPI Key tidak valid atau tidak aktif
402Payment RequiredSaldo tidak mencukupi
403ForbiddenIP tidak ada dalam whitelist
422UnprocessableParameter request tidak valid
429Too Many RequestsRate limit terlampaui
503Service UnavailableAPI upstream sedang down

1. Cek Rekening

Mengecek nama pemilik dari sebuah nomor rekening bank atau e-wallet secara real-time. Memotong saldo per *request*.

POST /verify
Request Payload
ParameterTypeRequiredDescription
bank_codeStringYesKode bank (cth: BCA, BRI, DANA)
account_numberStringYesNomor rekening tujuan
Example Request
{
  "bank_code": "BCA",
  "account_number": "1234567890"
}
Example Response
{
  "success": true,
  "status": "found",
  "is_cached": true,
  "response_time_ms": 12,
  "data": {
    "bank_code": "BCA",
    "bank_name": "Bank Central Asia",
    "account_number": "1234567890",
    "account_name": "JOHN DOE",
    "checked_at": "2023-10-25T14:30:00+07:00"
  }
}
cURL Example
curl -X POST https://cekbank.web.id/api/v1/verify \
  -H "Authorization: Bearer ek_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"bank_code": "BCA", "account_number": "1234567890"}'

2. Daftar Bank

Mendapatkan daftar lengkap kode bank dan e-wallet yang didukung oleh sistem.

GET /banks
Example Response
{
  "success": true,
  "data": [
    {
      "bank_code": "BCA",
      "bank_name": "Bank Central Asia",
      "type": "bank"
    },
    {
      "bank_code": "DANA",
      "bank_name": "DANA E-Wallet",
      "type": "ewallet"
    }
  ],
  "total": 2
}

3. Cek Saldo

Melihat jumlah sisa saldo aktif dan status akun API Anda saat ini.

GET /balance
Example Response
{
  "success": true,
  "data": {
    "client_name": "John Doe",
    "email": "john@example.com",
    "balance": 150000,
    "is_active": true,
    "is_free_forever": false,
    "rate_limit_per_hour": 100
  }
}

4. Topup Saldo ⚡

Snap Payment

Topup saldo akun API Anda menggunakan ekosistem EchoPay Snap Payment. Endpoint ini akan mengembalikan checkout_url yang bisa Anda buka (redirect atau popup) untuk memproses pembayaran (QRIS, VA, E-Wallet, Retail).
Otomatis & Real-time: Kami menggunakan Webhook terintegrasi. Segera setelah pembayaran berhasil, sistem akan otomatis melakukan verifikasi dan menambah saldo Anda detik itu juga.

POST /deposit
Request Payload
ParameterTypeRequiredDescription
amountIntegerYesNominal topup (Min. 10000)
payment_methodStringNoDefault: QRIS
Example Request
{
  "amount": 50000,
  "payment_method": "QRIS"
}
Example Response
{
  "success": true,
  "message": "Deposit created",
  "data": {
    "invoice_no": "INV-16982233",
    "amount": 50000,
    "checkout_url": "https://...",
    "status": "pending"
  }
}

5. Riwayat Mutasi

Melihat seluruh riwayat mutasi saldo API client Anda (pemotongan, topup, refund).

GET /mutations
Query Parameters
ParameterTypeDefaultDescription
pageInteger1Halaman yang diinginkan
limitInteger20Jumlah data per halaman (max 100)
Example Response
{
  "success": true,
  "data": [
    {
      "type": "usage",
      "amount": -500,
      "balance_before": 50000,
      "balance_after": 49500,
      "description": "Check BCA 1234567890",
      "created_at": "2026-07-16 22:00:00"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 150,
    "total_pages": 8
  }
}

Quick Start (Multi-Language)

Contoh integrasi cepat menggunakan berbagai bahasa pemrograman. Base URL akan otomatis menyesuaikan domain deploy Anda.

PHP (cURL)
$ch = curl_init('https://cekbank.web.id/api/v1/verify');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ek_live_YOUR_API_KEY',
        'Content-Type: application/json'
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'bank_code' => 'BCA',
        'account_number' => '1234567890'
    ])
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
Python (requests)
import requests

response = requests.post(
    'https://cekbank.web.id/api/v1/verify',
    headers={'Authorization': 'Bearer ek_live_YOUR_API_KEY'},
    json={'bank_code': 'BCA', 'account_number': '1234567890'}
)
data = response.json()
JavaScript (fetch)
const response = await fetch('https://cekbank.web.id/api/v1/verify', {
    method: 'POST',
    headers: {
        'Authorization': 'Bearer ek_live_YOUR_API_KEY',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        bank_code: 'BCA',
        account_number: '1234567890'
    })
});
const data = await response.json();