Dipercaya 1.200+ Merchant di Indonesia

Terima Pembayaran Qris dalam Hitungan Detik

Didukung semua e-wallet & bank di Indonesia — cepat, aman, dan saldo langsung masuk.

Tanpa KYC · Tanpa antre approval · Setup 2 menit
app.buatqris.site/dashboard
DashboardSelamat datang kembali
API Aktif
SALDO TERSEDIA Rp262.279 Saldo aktif · real-time
Income 30 hariRp 1.340.506
Total berhasil48 transaksi
Income hari iniRp 1.340.506
Fee dibayarRp 13.405
QR ASLI · SCAN UNTUK BUKA BUATQRIS
Total transaksi2.380Baru
Berhasil829Baru
Total incomeRp 1.340.506Baru
Total feeRp 13.405Baru
Transaksi TerbaruLihat semua →
#100828650950
Upgrade API ULTRA
Rp 50.000
Pending
#100872550475
Nestora Enterprise
Rp 299.000
Success
#100825514639
script bot whatsapp
Rp 5.000
Expired

Dukungan penuh metode pembayaran Qris

GoPayOVODanaShopeePayLinkAjam-banking
Fitur Unggulan

Yang bikin BuatQris beda

Tiga hal yang paling sering jadi alasan UMKM & developer pindah ke BuatQris.

Custom Nama Qris

Nama toko/UMKM-mu otomatis tampil saat pelanggan scan QR — pembayaran terasa lebih resmi & tepercaya.

field: umkm_name

Open API & Webhook

Integrasikan Qris ke sistemmu lewat REST API — konfirmasi otomatis via webhook, tanpa polling.

REST + HMAC-SHA256

Tanpa Langganan

Tanpa biaya daftar & bulanan. Cuma bayar mulai 1% saat transaksi berhasil.

Mulai 1% · hanya saat sukses
Fitur

Semua yang bisnismu butuhkan

Dari terima bayar sampai tarik saldo — semuanya dalam satu dashboard yang ringan & cepat.

Qris Instan 4 Metode

4 metode Qris siap pakai — kalau satu sibuk, sistem otomatis pindah ke metode lain.

Langsung Aktif, Tanpa KYC

Daftar langsung aktif — tanpa verifikasi dokumen, tanpa antre approval admin.

Biaya Transparan mulai 1%

Mulai 1% per transaksi berhasil. Tanpa biaya daftar, bulanan, atau tersembunyi.

Mulai 1% · hanya transaksi sukses

Halaman Bayar Tanpa Login

Bagikan link bayar — pelanggan tinggal scan, tanpa install app atau akun. Berlaku 15 menit.

Semua E-Wallet & Bank

GoPay, OVO, DANA, ShopeePay & m-banking apa pun — semua bayar ke satu QR.

Saldo Real-Time

Saldo & riwayat transaksi ter-update otomatis saat pembayaran masuk.

Tarik Dana Cepat

Cair 1×24 jam kerja, minimum Rp10.000. Gratis ke bank besar & GoPay.

Notifikasi WA & Telegram

Setiap transaksi masuk langsung dikirim ke WhatsApp atau Telegram.

Riwayat & Statistik Lengkap

Rekap transaksi, total fee & tren income — rapi untuk evaluasi bisnis.

Open API untuk Developer

REST API sederhana + webhook otomatis untuk integrasi ke sistemmu.

Program Referral

Ajak teman, dapat Rp5.000 tiap 5× transaksi sukses dari akun undangan.

Mode Sandbox

Simulasikan transaksi tanpa uang asli sebelum pakai mode nyata (Real).

Dark Mode & PWA

Pasang seperti aplikasi native di HP — ringan, cepat, mode terang/gelap.

Keamanan & Teknologi

Kenapa BuatQris Aman?

Setiap lapisan dirancang untuk melindungi dana & data kamu — dari verifikasi nomor sampai tanda tangan digital pada webhook.

Verifikasi OTP WhatsApp

Nomor WhatsApp wajib verifikasi OTP dulu sebelum menerima notifikasi.

Webhook Bertanda Tangan Digital

Setiap callback ditandatangani HMAC-SHA256 via header X-BuatQris-Signature — anti pemalsuan.

Secret Token & Account ID Terpisah

Token hanya boleh dipanggil dari server/backend — jangan pernah taruh di frontend/aplikasi mobile.

Regenerasi Token Kapan Saja

Token bocor? Regenerate sendiri dari dashboard — token lama langsung nonaktif.

Sandbox Terpisah dari Real

Uji coba integrasi penuh tanpa risiko transaksi uang asli.

Kepatuhan & Anti Penyalahgunaan

Judi online, pencucian uang, narkotika & penipuan dilarang keras — pelanggaran diblokir permanen.

Anti-Phishing

BuatQris tidak pernah minta password lewat pesan langsung. Waspadai yang mengaku admin.

Dana Terima Penuh

Kode unik tidak dipotong dari saldo — UMKM menerima nominal penuh.

Untuk Developer

Integrasikan Pembayaran Qris ke Sistem Kamu

REST API sederhana dengan account_id + secret_token. Buat transaksi lewat API, terima konfirmasi otomatis via webhook — tanpa perlu polling.

  • Webhook otomatis server-to-server, tanpa polling
  • API Tester — coba request langsung dari dashboard sebelum produksi
  • Mode Sandbox untuk uji coba tanpa uang asli
Node.jsPHPPythonGoJavaC#KotlinSwiftDart
Dokumentasi API →
create-qris.js
// Panggil dari SERVER, jangan dari frontend
const res = await fetch('https://api.buatqris.site', {
  method: 'POST',
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
  body: new URLSearchParams({
    action:       'api_create_qris',
    account_id:   'YOUR_ACCOUNT_ID',
    secret_token: 'YOUR_SECRET_TOKEN',
    amount:       '25000',
    description:  'Pembayaran order #INV-1024',
    qris_method:  'qris_two',
  }),
});
const data = await res.json();
// → data.qr_url, data.payment_url, data.status
Cara Kerja

Mulai terima bayar dalam 4 langkah

Tanpa mesin EDC, tanpa antre bank — daftar sekali, langsung bisa terima pembayaran.

1

Daftar akun gratis

Buat akun dalam 2 menit — langsung aktif, tanpa KYC & tanpa antre approval.

2

Pilih metode & nominal

Tentukan salah satu metode Qris 1–4 dan masukkan jumlah tagihan.

3

Bagikan halaman bayar

Kirim link bayar atau tunjukkan QR ke pelanggan — mereka tinggal scan.

4

Saldo masuk otomatis

Pembayaran terkonfirmasi real-time, saldo bertambah, tarik kapan saja.

0+
merchant terdaftar
0+
transaksi sukses
0 dtk
Qris siap dibayar
0
metode Qris otomatis
Mulai 0%
biaya transaksi sukses
0 jam
pencairan ke rekening
Harga

Sederhana dan transparan

Tanpa biaya pendaftaran, tanpa biaya bulanan. Potongan hanya dari transaksi yang berhasil.

Daftar Gratis
Rp0 / selamanya
  • Buat Qris dinamis tanpa batas
  • Dashboard & riwayat transaksi
  • Semua e-wallet & bank
  • Notifikasi WA / Telegram
  • Langsung aktif, tanpa KYC
Mulai Gratis
Paling dipakai
Per Transaksi
Mulai 1% / transaksi berhasil
  • Semua fitur Daftar Gratis
  • Biaya hanya saat transaksi sukses
  • Pending / gagal / expired = Rp0
  • Saldo real-time & penarikan cepat
  • Kode unik tak dipotong dari saldo
  • Program referral berhadiah
Daftar gratis
Tarik Dana
Gratis / min. Rp10.000
  • Diproses 1×24 jam kerja
  • BRI, BCA, BNI, BSI, Jago, Mandiri
  • Maybank, Permata, Danamon, GoPay
  • Dana / OVO / ShopeePay: admin Rp2.500
Biaya admin Rp2.500 di luar potongan transaksi (mulai 1%).
Lihat Detail
FAQ

Pertanyaan yang sering ditanya

Belum menemukan jawabannya? Hubungi kami di komunitas Telegram BuatQris.

Apakah perlu KYC atau menunggu approval untuk mulai pakai? +
Tidak. Akun langsung aktif setelah daftar — tanpa verifikasi dokumen berlapis dan tanpa antre approval admin, jadi kamu bisa langsung transaksi saat itu juga.
Berapa biaya yang dikenakan? +
Mulai dari 1% dari nominal transaksi yang berhasil, tergantung volume transaksi. Tidak ada biaya pendaftaran, biaya bulanan, atau biaya tersembunyi lainnya. Transaksi pending, gagal, atau expired tidak dikenai biaya apa pun.
Berapa lama penarikan saldo diproses? +
Pencairan diproses 1×24 jam kerja dengan minimum penarikan Rp10.000. Ke bank besar (BRI/BCA/BNI/BSI/Jago/Mandiri/Maybank/Permata/Danamon) & GoPay gratis biaya admin; ke Dana/OVO/ShopeePay ada biaya admin Rp2.500.
Apakah pelanggan perlu install aplikasi? +
Tidak. Pelanggan cukup scan QR pakai e-wallet atau mobile banking apa saja yang mendukung Qris. Halaman bayar juga bisa dibuka tanpa login & tanpa daftar akun.
Apakah aman menyimpan Secret Token API? +
Secret Token hanya boleh dipanggil dari server/backend kamu — jangan pernah ditaruh di frontend/JS browser atau ditanam di aplikasi mobile karena rawan bocor. Alur yang benar: App/Web → Backend kamu (simpan token) → API BuatQris. Kalau token bocor, kamu bisa regenerate kapan saja dari dashboard.
Apa saja yang dilarang di platform ini? +
BuatQris melarang penggunaan untuk perjudian online, pencucian uang, transaksi narkotika, penipuan/scam, pendanaan terorisme, konten ilegal, skema ponzi/investasi bodong, dan penghindaran pajak. Pelanggaran berakibat pemblokiran permanen dan dapat dilaporkan ke pihak berwajib.
Dokumentasi API

Open API BuatQris untuk Developer

Semua yang kamu butuhkan untuk integrasi produksi — dari membuat transaksi sampai verifikasi webhook. Nama field & parameter persis seperti sistem asli.

Base URL & Autentikasi

REST API sederhana. Setiap request menyertakan account_id dan secret_token yang didapat dari dashboard → Open API.

Base URL: https://api.buatqris.site Content-Type: application/x-www-form-urlencoded
Panggil API ini hanya dari server/backend. Jangan dari browser (JS frontend) atau ditanam di aplikasi mobile — Secret Token bisa bocor & disalahgunakan.
App / Web (frontend)  →  Backend kamu (simpan Secret Token)  →  API BuatQris

Bahasa contoh yang didukung: Node.js, PHP, Python, Go, Java, C#, Kotlin, Swift, Dart. Semua tersedia di dashboard Open API beserta API Tester untuk mencoba request sebelum produksi.

Buat Transaksi Qris POST action=api_create_qris

ParameterWajibKeterangan
account_idWajibID akun dari dashboard
secret_tokenWajibToken rahasia dari dashboard
amountWajibNominal transaksi (angka positif)
descriptionOpsionalKeterangan / nama produk
qris_methodOpsionalPilihan metode, mis. qris_two (Qris 1–4)
umkm_nameOpsionalNama toko yang tampil di QR (maks 15 huruf). Kosong = pakai nama profil akun
callback_urlOpsionalWebhook khusus untuk transaksi ini
testOpsional1 = mode sandbox / uji coba
const res = await fetch('https://api.buatqris.site', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams({ action: 'api_create_qris', account_id: 'YOUR_ACCOUNT_ID', secret_token: 'YOUR_SECRET_TOKEN', amount: '25000', description: 'Pembayaran order #INV-1024', qris_method: 'qris_two', umkm_name: 'Warung Berkah', }), }); const data = await res.json();
$ch = curl_init('https://api.buatqris.site'); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query([ 'action' => 'api_create_qris', 'account_id' => 'YOUR_ACCOUNT_ID', 'secret_token' => 'YOUR_SECRET_TOKEN', 'amount' => '25000', 'description' => 'Pembayaran order #INV-1024', 'qris_method' => 'qris_two', 'umkm_name' => 'Warung Berkah', ]), ]); $data = json_decode(curl_exec($ch), true);
import requests res = requests.post('https://api.buatqris.site', data={ 'action': 'api_create_qris', 'account_id': 'YOUR_ACCOUNT_ID', 'secret_token': 'YOUR_SECRET_TOKEN', 'amount': '25000', 'description': 'Pembayaran order #INV-1024', 'qris_method': 'qris_two', 'umkm_name': 'Warung Berkah', }) data = res.json()
form := url.Values{} form.Set("action", "api_create_qris") form.Set("account_id", "YOUR_ACCOUNT_ID") form.Set("secret_token", "YOUR_SECRET_TOKEN") form.Set("amount", "25000") form.Set("description", "Pembayaran order #INV-1024") form.Set("qris_method", "qris_two") form.Set("umkm_name", "Warung Berkah") res, _ := http.PostForm("https://api.buatqris.site", form)

Contoh Respons

{ "success": true, "data": { "transaction_id": "100543415", "qr_url": "https://app.buatqris.site/poto/qris/100543415.png", "qris_image": "data:image/png;base64,iVBOR...", "payment_url": "https://app.buatqris.site/trx/100543415", "amount": 10000, "total_amount": 10200, "status": "pending" } }

Cek Status Transaksi POST action=api_check_status

Parameter: account_id, secret_token, transaction_id. Disarankan polling tiap 5–10 detik jika tidak memakai webhook.

pending success expired failed
const res = await fetch('https://api.buatqris.site', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams({ action: 'api_check_status', account_id: 'YOUR_ACCOUNT_ID', secret_token: 'YOUR_SECRET_TOKEN', transaction_id: '100543415', }), }); const data = await res.json();

Buat Penarikan POST action=api_withdraw

ParameterWajibKeterangan
account_idWajibID akun dari dashboard
secret_tokenWajibToken rahasia dari dashboard
amountWajibNominal penarikan (min. Rp10.000)
bank_nameWajibNama bank / e-wallet tujuan
bank_accountWajibNomor rekening / nomor e-wallet
bank_holderWajibNama pemilik rekening
Gratis biaya admin: BRI, BCA, BNI, BSI, Jago, Mandiri, Maybank, Permata, Danamon, GoPay.  Biaya admin Rp2.500: Dana, OVO, ShopeePay. Diproses 1×24 jam kerja.

Webhook / Callback

BuatQris otomatis POST ke callback_url kamu (tanpa polling), ditandatangani header X-BuatQris-Signature (HMAC-SHA256). Header lain: X-BuatQris-Event, X-BuatQris-Delivery (= transaction_id / withdrawal_id). Event: payment.success, payment.expired, payment.failed, withdrawal.pending, withdrawal.approved, withdrawal.rejected. Balas HTTP 200 untuk menandai sukses; jika tidak, sistem mencoba kirim ulang sekali.

Contoh Payload

{ "event": "payment.success", "transaction_id": "100043729581", "status": "success", "amount": 10000, "total_amount": 10037, "credit_amount": 9800, "admin_fee": 200, "qris_method": "qris_two", "is_test": false, "paid_at": "2026-06-28T10:00:00+07:00" }
{ "event": "withdrawal.approved", "withdrawal_id": "WD-ABC123-1720000000", "transaction_id": "WD-ABC123-1720000000", "status": "approved", "amount": 100000, "fee": 0, "net_amount": 100000, "bank_name": "BCA", "bank_account": "1234567890", "bank_holder": "Nama Pemilik", "is_test": false }

Verifikasi Signature (PHP)

$body = file_get_contents('php://input'); $sig = $_SERVER['HTTP_X_BUATQRIS_SIGNATURE'] ?? ''; $calc = 'sha256=' . hash_hmac('sha256', $body, $SECRET); if (!hash_equals($calc, $sig)) { http_response_code(401); exit; } $data = json_decode($body, true); switch ($data['event'] ?? '') { case 'payment.success': // tandai order lunas break; case 'payment.expired': case 'payment.failed': // tandai order gagal/kedaluwarsa break; case 'withdrawal.pending': case 'withdrawal.approved': case 'withdrawal.rejected': // update status payout break; } http_response_code(200);

Signing Secret bisa dilihat / di-regenerate dari dashboard Open API — regenerasi membuat secret lama tidak berlaku.

Menampilkan QR Code

Cara termudah: pakai field qr_url — langsung URL gambar QR, tinggal dipasang di <img>, tanpa library apa pun, dan aman dari masalah CORS karena dilayani dari domain BuatQris sendiri.

<img src="https://app.buatqris.site/poto/qris/100543415.png" alt="Qris" width="220" height="220">
Custom Nama Qris: gambar QR (qr_url & qris_image) otomatis menampilkan nama tokomu saat di-scan — untuk semua metode Qris. Nama diambil dari field umkm_name; kalau dikosongkan, dipakai nama toko di profil akun.

Alternatif: render dari qris_image (base64), atau paling simpel — arahkan pelanggan ke payment_url (halaman bayar siap pakai: QR + timer + cek status otomatis).

Format Error

Semua error API dikembalikan dengan format konsisten:

{ "success": false, "message": "..." }

Mode Test / Sandbox

Kirim test=1 saat api_create_qris untuk simulasi tanpa uang asli & tanpa menembak provider (transaksi tidak menambah saldo). Untuk menyelesaikan transaksi uji coba (perlu sesi login pemilik akun):

action=test_pay id=100543415

Saat ditandai lunas, webhook tetap terkirim ke callback_url dengan field "is_test": true — jadi endpoint webhook bisa diuji end-to-end.

Siap terima pembayaran Qris hari ini?

Daftar gratis, langsung aktif tanpa KYC — mulai terima pembayaran lebih cepat & aman.

Buat Qris Gratis →