← Kembali ke kategori

Dokumentasi

Dokumentasi API Payment Gateway QRIS (ClincooPay)

ClincooPay adalah payment gateway bawaan Clincoo: pembeli membayar lewat QRIS, saldo masuk ke dashboard proyekmu, dan kamu bisa mencairkannya kapan pun. Artikel ini adalah dokumentasi resmi API-nya untuk situs yang kamu deploy dari app.clincoo.buzz.

Alur besar integrasi

  1. Aktifkan Pembayaran di Pengaturan proyekmu, lalu salin pay_key (berawalan clc_pay_).
  2. Situsmu memanggil POST /api/pay untuk membuat transaksi QRIS.
  3. Pembeli diarahkan ke halaman bayar resmi Clincoo, atau kamu menampilkan QR sendiri.
  4. Status dicek lewat GET /api/pay?action=status sampai lunas.
  5. Saat dibayar, Clincoo mengirim webhook ke URL yang kamu daftarkan.

Ringkasan endpoint

EndpointFungsiAutentikasi
POST /api/pay {action:"create"}Membuat transaksi QRIS barupay_key (publik)
GET /api/pay?action=statusCek status transaksipay_key (publik)
POST /api/pay {action:"activate"}Aktifkan gateway untuk proyekLogin Clincoo
GET /api/pay?action=configStatus, pay_key, dan saldoLogin Clincoo
POST /api/pay {action:"withdraw"}Ajukan penarikan saldoLogin Clincoo
POST /api/pay {action:"transactions"}Log 25 transaksi terakhirLogin Clincoo

Semua endpoint berada di https://app.clincoo.buzz/api/pay. Pay_key aman dipakai di frontend karena hanya bisa membuat transaksi dan membaca status — kredensial gateway sebenarnya tetap di server Clincoo.

Membuat transaksi QRIS

Kirim permintaan POST dari situs deploy-mu tanpa perlu login:

POST https://app.clincoo.buzz/api/pay
Content-Type: application/json

{
  "action": "create",
  "key": "clc_pay_....",
  "amount": 25000,
  "description": "Paket A"
}

Parameter:

FieldWajibKeterangan
keyYaPay_key proyekmu, contoh clc_pay_....
amountYaInteger rupiah, Rp 1.000 sampai Rp 100.000.000
descriptionTidakKeterangan transaksi, maksimal 100 karakter

Contoh respons sukses:

{
  "success": true,
  "order_id": "clincoo....",
  "checkout_url": "https://app.clincoo.buzz/pay/?order_id=clincoo....&key=clc_pay_....",
  "amount": 25000,
  "qr_image": "https://api.qrserver.com/v1/create-qr-code/?...",
  "qr_string": "<payload QRIS>",
  "total_payment": 25415,
  "expires_at": "2026-10-03T09:00:00.000Z",
  "is_sandbox": false
}

total_payment adalah nominal yang benar-benar dibayar pembeli (nominal + biaya QRIS). Respons 503 gateway_not_ready berarti QRIS server sedang menyiapkan diri — tampilkan pesan itu apa adanya.

Cara termudah: pakai halaman bayar resmi

Setelah create berhasil, cukup alihkan pembeli ke checkout_url. Halaman bayar resmi Clincoo sudah menampilkan QR, total tagihan, cek status otomatis, dan halaman sukses — kamu tidak perlu membuat halaman bayar sendiri.

async function buatBayaran(amount) {
  const r = await fetch('https://app.clincoo.buzz/api/pay', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ action: 'create', key: 'clc_pay_....', amount, description: 'Pembayaran' })
  });
  const d = await r.json();
  if (d.success) window.location.href = d.checkout_url;
}

Kalau kamu ingin tampilan bayar khusus, alternatifnya: tampilkan qr_image di tag img (atau render qr_string sendiri), lalu polling status seperti di bawah.

Cek status transaksi

GET https://app.clincoo.buzz/api/pay?action=status&key=clc_pay_....&order_id=clincoo....

{ "success": true, "status": "paid", "amount": 25000, "total_payment": 25415 }

Nilai status yang mungkin:

StatusArti
pendingMenunggu pembayaran; QR masih aktif
paidLunas — saldo masuk ke dashboard proyek
expiredQR kedaluwarsa atau dibatalkan

Lakukan polling tiap 3-5 detik sampai status paid, lalu arahkan pembeli ke halaman sukses. Server hanya mengecek ke gateway maksimal satu kali per 4 detik untuk tiap transaksi, jadi polling lebih cepat dari itu tidak memberi hasil baru.

Webhook pembayaran

Setiap transaksi berubah jadi paid, Clincoo mengirim notifikasi POST ke URL webhook proyekmu (daftarkan di Pengaturan > Webhook):

{
  "event": "payment.paid",
  "order_id": "clincoo....",
  "amount": 25000,
  "description": "Paket A",
  "status": "paid",
  "paid_at": "2026-10-03T09:00:00.000Z"
}

Selalu cocokkan order_id ke sistemmu sebelum mengaktifkan pesanan. Halaman sukses untuk pembeli tetap perlu dibuat di situsmu.

Dashboard pemilik proyek

Aksi berikut butuh login Clincoo dan field project_id:

AksiHasil
configStatus aktif, pay_key, saldo tersedia, total masuk, total dicairkan
summaryRingkasan saldo singkat
transactions25 transaksi terakhir
withdrawPenarikan saldo, minimum Rp 10.000, maksimum saldo tersedia
withdrawals25 riwayat penarikan

Semua bisa dilakukan dari halaman Pengaturan > Pembayaran di dashboard tanpa menyentuh API. Butuh bantuan? Cek FAQ atau Masalah Umum.