Create Payment (Tester)

Uji coba simulasi pembuatan transaksi payment dari berbagai provider & channel.

Parameter Transaksi
Semua Domain (*)
Kredensial Aktif: tester_key Atur Rute Merchant
Rp

Data Pelanggan (Customer Info)
Tautan Pembayaran (Payment Link)

Membuat sesi pembayaran (Payment Link)...

Status:
PENDING
Payment Link Siap Digunakan!

Bagikan tautan ini ke pelanggan. Pelanggan dapat memilih metode pembayaran (QRIS, VA Bank, Tokopedia, Blibli, CC) langsung di halaman checkout.

Buka Halaman Pembayaran
Instruksi Transfer VA

Bank Tujuan:
Scan QRIS Berikut
QRIS
Raw API Response:

                

Riwayat & Tracking Transaksi

Lacak setiap transaksi lengkap dengan IP address, perangkat, OS, browser, dan domain asal.

Waktu Merchant & Trx ID Pelanggan Asal Website & IP Perangkat & OS Metode Nominal Status Aksi
Memuat data...

Manajemen Merchant & API Key

Daftarkan website klien, kelola token API, konfigurasi white-label checkout, dan matrix rute pembayaran.

Daftar Merchant Terintegrasi
Kredensial API, status tampilan white-label, dan ringkasan rute tiap toko
Merchant & Profil Matrix Rute Aktif Kredensial API Webhook Callback Transaksi Status Aksi
Memuat data merchant...
ID: # White-Label Mode
Kelola identitas merchant, tampilan white-label, dan rute payment gateway secara leluasa.
Identitas & Kontak Toko
Preview
Logo toko akan tampil di halaman checkout invoice pembeli.
Webhook & Keamanan API
Server kami akan mengirimkan HTTP POST JSON notifikasi pembayaran ke URL ini setiap kali status berubah (PAID / EXPIRED / CANCELLED).
Kosongkan untuk mengizinkan permintaan API dari semua domain (*).
Pengaturan Tampilan & White-Label
100% Clean DOM

Sembunyikan seluruh branding Zhujirou agar halaman pembayaran tampil bersih atas nama merchant dan tidak terdeteksi sedikitpun saat di-inspect element.

Jika dinonaktifkan (OFF), elemen bar navigasi atas Zhujirou dihapus total dari kode HTML (DOM).
Jika dinonaktifkan (OFF), tulisan hak cipta / copyright Zhujirou dihapus total dari kode HTML (DOM).
Saat kedua opsi di-OFF-kan, judul tab browser otomatis berubah menjadi Nama Toko Merchant dan favicon browser memakai Logo Toko tanpa ada kata Zhujirou di Inspect Element.
Kredensial API & Kode Integrasi Toko
Ready-to-use

Salin kode iframe ini untuk dipasang di website / CMS merchant:

Endpoint REST API Create Invoice Tagihan:

Izin Akses Provider Utama
Aktifkan master gateway mana saja yang diizinkan untuk akun merchant ini
Static to Dynamic Nol Fee
CC Mandiri (T+1), VA Mandiri (T+1), VA BCA (T+2), QRIS (T+1)
Tokopedia, Blibli, VA BNI/BRI/Permata/BCA/Mandiri
Pengaturan Multi-QRIS (Bisa Pilih > 1 QRIS)
Centang QRIS mana saja yang akan ditampilkan dan sesuaikan label nama serta nama merchant saat scan.
Multi-QRIS Support
Virtual Account (Rute Khusus Tiap Bank)
Atur gateway penangan Virtual Account resmi yang aktif didukung (Bank Mandiri, BCA, BNI, BRI, Permata).
Bank Provider Gateway Penangan Status
Mandiri Virtual Account
BCA Virtual Account
BNI Virtual Account
BRI Virtual Account (BRIVA)
Permata Bank Virtual Account
Kartu Kredit Online (3D Secure)
Kerjasama Bank Mandiri Acquirer via DOKU Gateway (MDR 2.00% + Rp 2.000, T+1, Direct Merchant). Mendukung Visa, Mastercard, JCB, Amex.
3D Secure Mandiri
Metode Kartu Kredit Provider Gateway Penangan Status
Kartu Kredit (Visa, Mastercard, JCB, Amex)
Marketplace Checkout
Atur rute checkout via Tokopedia dan Blibli.
Marketplace Provider Gateway Penangan Status
Tokopedia Non-CC Debit Online, Saldo, Instan (MDR 0.375%)
Tokopedia Kartu Kredit Pembayaran Kartu Kredit via Tokopedia (MDR 1.55%)
Blibli Kartu Kredit Pembayaran Kartu Kredit via Blibli (MDR 1.65%)

Master Provider & Biaya MDR

Kelola master gateway, channel pembayaran, dan referensi tarif MDR internal

Biaya MDR Khusus Internal
Master Provider Status
Memuat provider...
Kalkulator Simulasi MDR
Cek potongan biaya & nominal bersih transaksi
Rp
Potongan MDR: Rp 0
Diterima Bersih: Rp 0
-
Aset QRIS (Static & Dynamic Engine)
QRIS Dinamis Langsung tanpa potongan fee pihak ketiga
Nama Merchant QRIS Bank Settlement Nomor Rekening Biaya MDR (Intern) Keterangan Status Aksi
Channel DOKU Resmi (QRIS, VA, CC Mandiri)
Urutan metode resmi DOKU: QRIS (T+1), VA Mandiri (T+1), VA BCA (T+2), Mandiri Acquirer CC (T+1), VAT Exclude
Kode Channel Label / Nama Metode Acquirer Biaya MDR VAT Pencairan Tipe Pembayaran Status Aksi
Channel Rintisan (QRIS, VA, CC, Marketplace)
Urutan metode via Rintisan: QRIS (0.7%), Virtual Account (Rp 5.000), Kartu Kredit (1.8%), Marketplace (Tokopedia & Blibli)
Kode Channel Label / Nama Metode Biaya MDR (Intern) Keterangan & Catatan MDR Status Aksi

Dokumentasi Integrasi & SDK API

Panduan lengkap bagi developer untuk menghubungkan website luar ke Payment Gateway Zhujirou.

1. Autentikasi API

Setiap request dari website merchant harus menyertakan header x-api-key atau Authorization: Bearer <API_KEY> sesuai API Key yang telah didaftarkan di menu Kelola Merchant.

Host: https://payment.zhujirou.com
x-api-key: zj_live_your_api_key_here
Authorization: Bearer zj_live_your_api_key_here
Content-Type: application/json
2. Endpoint API Utama

Membuat sesi tagihan baru. Merchant dapat memilih mode All-in-One Checkout (Rekomendasi) di mana pelanggan memilih metode pembayaran di halaman checkout cantik / white-label, atau mode Direct Channel.

A. Mode 1: All-in-One Checkout (Rekomendasi untuk Iframe / Redirect)

Cukup kirimkan nominal dan data pelanggan. Sistem akan menghasilkan URL checkout yang siap di-redirect atau di-embed di iframe:

// Request Body (JSON):
{
  "merchant_trx_id": "INV-10023",          // Opsional (dibuat otomatis jika kosong)
  "amount": 150000,                        // Nominal tagihan dalam IDR
  "customer_name": "Steven Darmawan",      // Nama lengkap pelanggan
  "customer_email": "[email protected]",  // Email pelanggan
  "customer_phone": "081234567890",        // Nomor HP/WhatsApp aktif
  "callback_url": "https://tokosaya.com/thankyou", // Redirect setelah bayar
  "callback_url_result": "https://tokosaya.com/api/webhook" // Webhook instan
}
// Response Body (JSON):
{
  "status": "OK",
  "message": "Checkout session created successfully",
  "data": {
    "merchant_trx_id": "INV-10023",
    "amount": 150000,
    "status": "pending",
    "pay_url": "https://payment.zhujirou.com/pay/INV-10023",
    "checkout_url": "https://payment.zhujirou.com/pay/INV-10023"
  }
}
B. Mode 2: Direct Channel (Langsung Generate VA / QRIS / CC)

Jika merchant memiliki UI checkout sendiri dan ingin langsung menembak nomor VA / payload QRIS:

// Request Body (JSON):
{
  "channel_code": "BCA",                   // BCA | MANDIRI | BRI | BNI | PERMATA | CIMB | QRIS | SHOPEEPAY | DANA | dll
  "amount": 150000,
  "customer_name": "Steven Darmawan",
  "customer_email": "[email protected]"
}
// Response Body (JSON):
{
  "status": "OK",
  "message": "Transaction created successfully",
  "data": {
    "merchant_trx_id": "TRX-1787840483158-45121779",
    "amount": 150000,
    "va_number": "88081234567890",         // Jika channel Virtual Account
    "qr_payload": "000201010212266...",     // Jika channel QRIS
    "qr_image_url": "data:image/png;base64,...",
    "payment_url": "https://...",          // URL bayar (jika kartu kredit / DOKU)
    "pay_url": "https://payment.zhujirou.com/pay/TRX-1787840483158-45121779"
  }
}

Mengecek status pembayaran terkini secara real-time berdasarkan merchant_trx_id atau ID invoice.

// Response:
{
  "status": "OK",
  "message": "Transaction found",
  "data": {
    "id": 142,
    "merchant_name": "Toko Online Saya",
    "merchant_trx_id": "INV-10023",
    "status": "success",                  // "pending" | "success" | "failed" | "expired"
    "amount": 150000,
    "provider": "doku",
    "channel_code": "BCA",
    "va_number": "88081234567890",
    "paid_at": "2026-08-27T14:15:30Z",
    "created_at": "2026-08-27T14:10:00Z"
  }
}

Mengembalikan daftar channel pembayaran yang aktif dan diizinkan untuk merchant tersebut (DOKU VA BCA/Mandiri, CC Mandiri, QRIS DOKU, QRIS Dinamis 0%, Rintisan).

Ketika pelanggan berhasil membayar, Gateway secara instan mengirimkan HTTP POST webhook ke webhook_url yang didaftarkan di profil merchant:

Header Webhook:
x-webhook-signature: <sha256_hmac_hex_of_raw_body>
Content-Type: application/json
Payload Webhook:
{
  "merchant_trx_id": "INV-10023",
  "status": "success",
  "amount": 150000,
  "provider": "doku",
  "channel": "BCA",
  "va_number": "88081234567890",
  "paid_at": "2026-08-27T14:15:30.000Z",
  "timestamp": "2026-08-27T14:15:31.000Z"
}
3. Contoh Kode Integrasi Siap Pakai
<?php
// Contoh Inisiasi Checkout Pembayaran dengan PHP
$apiKey = 'zj_live_your_api_key_here';
$payload = [
    'merchant_trx_id' => 'INV-' . time(),
    'amount'          => 150000,
    'customer_name'   => 'Steven Darmawan',
    'customer_email'  => '[email protected]',
    'customer_phone'  => '081234567890'
];

$ch = curl_init('https://payment.zhujirou.com/api/v1/payment/create');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => [
        'Content-Type: application/json',
        'x-api-key: ' . $apiKey
    ],
    CURLOPT_POSTFIELDS     => json_encode($payload)
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['status'] === 'OK') {
    $payUrl = $response['data']['pay_url'];
    // Redirect pelanggan ke halaman pembayaran atau tampilkan dalam iframe:
    header("Location: " . $payUrl);
    exit;
} else {
    echo "Gagal membuat pembayaran: " . $response['message'];
}
const axios = require('axios');

async function createPayment() {
  const apiKey = 'zj_live_your_api_key_here';
  
  try {
    const response = await axios.post('https://payment.zhujirou.com/api/v1/payment/create', {
      merchant_trx_id: `INV-${Date.now()}`,
      amount: 150000,
      customer_name: 'Steven Darmawan',
      customer_email: '[email protected]',
      customer_phone: '081234567890'
    }, {
      headers: {
        'Content-Type': 'application/json',
        'x-api-key': apiKey
      }
    });

    console.log('Checkout URL:', response.data.data.pay_url);
    // Buka di browser atau arahkan customer ke URL di atas
  } catch (err) {
    console.error('Error:', err.response?.data || err.message);
  }
}

createPayment();
import requests
import time

url = "https://payment.zhujirou.com/api/v1/payment/create"
headers = {
    "Content-Type": "application/json",
    "x-api-key": "zj_live_your_api_key_here"
}
payload = {
    "merchant_trx_id": f"INV-{int(time.time())}",
    "amount": 150000,
    "customer_name": "Steven Darmawan",
    "customer_email": "[email protected]",
    "customer_phone": "081234567890"
}

response = requests.post(url, json=payload, headers=headers)
data = response.json()

if data.get("status") == "OK":
    print("Link Bayar:", data["data"]["pay_url"])
else:
    print("Error:", data.get("message"))
curl -X POST https://payment.zhujirou.com/api/v1/payment/create \
  -H "Content-Type: application/json" \
  -H "x-api-key: zj_live_your_api_key_here" \
  -d '{
    "merchant_trx_id": "INV-10023",
    "amount": 150000,
    "customer_name": "Steven Darmawan",
    "customer_email": "[email protected]",
    "customer_phone": "081234567890"
  }'