QRIS otomatis · 10 penyedia · webhook bertanda tangan

Terima pembayaran. Tanpa ribet.

Pakai QRIS ShopeePay, GoPay, BCA, DANA, Livin', BNI, atau BRI yang sudah Anda punya. SHOMERCH membuat QR per nominal, mendeteksi pembayaran yang masuk, lalu mengabari sistem Anda lewat webhook.

  • Rp0 potongan per transaksi
  • Daftar & sambungkan penyedia gratis
  • Paket dari Rp10.000/bulan
Simulasi: pesanan INV-2026-0001 seharga Rp10.000 mendapat kode unik 81, sehingga pelanggan membayar Rp10.081. Pembayaran terdeteksi, diverifikasi, webhook terkirim, dan pesanan selesai otomatis.
  • Rp0potongan per transaksi
  • 10penyedia QRIS didukung
  • <12 dtkmedian deteksi pembayaran
  • AES-256enkripsi kredensial Anda

Bekerja dengan QRIS yang sudah ada di meja kasir.

Tidak perlu daftar merchant baru. Sambungkan akun yang sudah Anda punya — boleh lebih dari satu, pilih mana yang aktif kapan saja.

  • ShopeePay

    Portal merchant

    Merchant ShopeePay Partner — transaksi dibaca langsung dari portal.

  • GoPay

    Portal merchant

    GoBiz / GoFood Merchant — login cukup lewat OTP SMS, tanpa DevTools.

  • Grab Merchant Baru

    Portal merchant

    GrabFood / GrabPay / OVO — transaksi dibaca langsung dari portal merchant.grab.com.

  • InterActive QRIS Baru

    Portal merchant

    QRIS statis dari InterActive QRIS (PT InterActive) — login cukup email & password akun.

  • InstaQRIS Baru

    Portal merchant

    QRIS statis InstaQRIS (SpeedCash Merchant) — login cukup nomor HP + OTP WhatsApp.

  • BCA Merchant

    Notifikasi HP

    Notifikasi aplikasi Merchant BCA diteruskan ke server dalam hitungan detik.

  • DANA Bisnis

    Notifikasi HP

    "Pembayaran Masuk" di aplikasi DANA langsung melunasi pesanan Anda.

  • Livin' Merchant Baru

    Notifikasi HP

    QRIS statis Bank Mandiri — lengkap dengan nama pembayar yang disamarkan.

  • BNI Merchant Baru

    Notifikasi HP

    Notifikasi "Transaksi Sebesar … telah berhasil" terbaca otomatis.

  • BRI Merchant Baru

    Notifikasi HP

    Notifikasi "Jenis Transaksi PURCHASE … SUKSES" langsung melunasi pesanan.

  • Binance Pay Baru

    USDT · Binance Pay

    Terima USDT dari pembeli pengguna Binance — metode tambahan di samping QRIS. Cukup API key read-only.

01 Masalah

Ada tiga cara menerima QRIS. Dua di antaranya mahal.

Cara 1 · Cek manual

Mahal di waktu.

Pelanggan mengirim bukti bayar, Anda membuka aplikasi bank, mencocokkan nominal, lalu membalas satu per satu. Tanpa potongan — tapi tidak bisa ikut ramai.

Cara 2 · Gateway resmi

Mahal di potongan.

Deteksi otomatis dan banyak metode pembayaran, tapi setiap transaksi dipotong ±0,7%, umumnya perlu badan usaha, dan verifikasinya berhari-hari.

Cara 3 · SHOMERCH

QRIS Anda, deteksinya otomatis.

Pakai merchant QRIS yang sudah ada. Pembayaran terdeteksi sendiri dan sistem Anda dikabari lewat webhook. Biaya bulanan tetap, Rp0 per transaksi.

Perbandingan cek manual, SHOMERCH, dan gateway resmi
Aspek Cek manual SHOMERCH Gateway resmi
Biaya per transaksi Rp0 Rp0 ±0,7%
Biaya bulanan Rp0 Rp10rb–40rb Rp0
Deteksi otomatis Tidak Ya Ya
Webhook Tidak Ya Ya
Pakai QRIS yang sudah ada Ya 10 penyedia Tidak
Perlu badan usaha Tidak Tidak Umumnya ya
Waktu mulai — 15 menit Berhari-hari
Metode pembayaran QRIS saja QRIS + USDT (Binance Pay) Banyak
Jaminan SLA Tidak Tidak Ya

Butuh kartu kredit, VA, atau jaminan SLA? Pakai gateway resmi. SHOMERCH untuk toko yang sudah punya merchant QRIS dan ingin berhenti mengecek mutasi manual.

02 Cara kerja

Dari QRIS sampai pesanan selesai — tanpa Anda sentuh.

Enam tahap yang terjadi pada setiap pembayaran. Bagian Anda cuma satu: memanggil API.

  1. 01

    Pesanan dibuat

    Sistem Anda memanggil satu endpoint dengan nomor pesanan dan harga. Tidak perlu tahu penyedia mana yang sedang aktif.

    POST /api/v1/transactions

    {
      "ref_id": "INV-2026-0001",
      "amount": 10000
    }
  2. 02

    QRIS dengan kode unik

    Kami menambahkan kode unik 1–99 yang dijamin tidak kembar dengan pesanan lain yang sedang berjalan. Nominal itulah sidik jari pembayarannya — selisihnya tetap milik Anda. Penjelasan lengkap

    HargaRp10.000
    Kode unik81
    Dibayar pelangganRp10.081
    Coba nominal lain

  3. 03

    Pelanggan membayar

    QR discan dengan aplikasi apa pun — m-banking, GoPay, OVO, DANA, ShopeePay. Uang masuk langsung ke akun merchant Anda, tidak pernah lewat kami.

    Toko Anda

    Rp10.081

    QRIS · berlaku 5 menit

    Bayar

    m-banking · GoPay · OVO · DANA · ShopeePay · LinkAja

  4. 04

    Pembayaran terdeteksi

    Dua jalur deteksi, satu hasil yang sama. Portal merchant dibaca tiap beberapa detik; notifikasi di HP kasir diteruskan aplikasi Payment Notify seketika.

    Portal merchant

    Tidak ada yang perlu dipasang di HP.

    Notifikasi HP

    Merchant BCA · baru saja

    Anda telah menerima pembayaran QRIS sebesar Rp 10.081 dari GOPAY.

  5. 05

    Diverifikasi tiga lapis

    Nominal harus persis, pembayaran harus masuk selama QR masih hidup, dan satu ID transaksi penyedia hanya boleh melunasi satu pesanan — ditegakkan oleh database, bukan sekadar pengecekan kode.

    • Nominal persis Rp10.081
    • Jendela waktu masuk saat QR berlaku
    • Klaim ID belum pernah melunasi pesanan lain
  6. 06

    Webhook, pesanan selesai

    Kami mengirim payment.paid bertanda tangan HMAC ke endpoint Anda. Gagal diterima? Dicoba lagi hingga 6 kali. Pesanan Anda selesai tanpa cek mutasi.

    POST https://toko-anda.id/webhook

    X-Shomerch-Event: payment.paid
    X-Shomerch-Signature: sha256=9c1e…
    { "ref_id": "INV-2026-0001", "status": "PAID" }

    200 OK Pesanan INV-2026-0001 lunas

03 Hitung sendiri

Omzet naik, biaya tidak ikut naik.

Payment gateway biasa memotong persentase dari setiap transaksi. SHOMERCH cukup langganan bulanan — semakin ramai toko Anda, semakin besar selisihnya.

  • Uang langsung masuk ke rekening/akun merchant Anda sendiri
  • Tidak perlu badan usaha, tidak ada verifikasi berhari-hari
  • Berhenti kapan saja — tanpa kontrak
Rp25.000.000
Payment gateway biasabiaya layanan ±0,7% per transaksi
Rp175.000
SHOMERCHpaket Basic, biaya tetap
Rp10.000

Selisih biaya gateway per bulan

Rp165.000

Rp2 jt setahun

Yang dibandingkan hanya biaya gateway. MDR dari penyedia tetap berlaku dan besarnya sama, apa pun yang Anda pakai. Angka 0,7% adalah biaya layanan gateway pada umumnya; tarif sebenarnya berbeda tiap penyedia.

04 Pemakaian

Cocok dipakai di mana saja.

API-nya HTTP biasa. Apa pun yang bisa mengirim request bisa memakainya.

  • Bot Telegram

    Jual akun, pulsa, atau voucher lewat bot. Webhook membuat bot tidak perlu polling sendiri.

  • Bot WhatsApp

    Terima order lewat chat, kirim QR, barang terkirim otomatis begitu lunas.

  • Toko online

    WooCommerce, Laravel, Next.js, atau apa pun buatan sendiri.

  • Web membership

    Aktifkan langganan otomatis saat pembayaran masuk.

  • Top-up & saldo

    Nominal bebas, saldo bertambah sendiri tanpa admin mengecek mutasi.

  • Kasir & warung

    Tampilkan QR per nominal di layar kasir — QRIS bank mana pun yang Anda pakai.

05 Integrasi

Satu request. QR siap tampil.

Kode Anda tidak perlu tahu penyedia mana yang sedang aktif. Ganti dari ShopeePay ke BCA, atau dari GoPay ke BNI, cukup satu klik di dashboard — integrasinya tetap sama.

  • <300 msrespons — QR dibuat lokal, tidak menunggu penyedia
  • Idempotenref_id yang diulang tidak membuat QR kedua
  • 6 percobaanwebhook bertanda tangan HMAC, dikirim ulang bertahap
Baca dokumentasi
Buat pembayaran
POST https://shomerch.web.id/api/v1/transactions
curl -X POST 'https://shomerch.web.id/api/v1/transactions' \
  -H 'X-API-Key: str-live-xxxxxxxx' \
  -H 'Content-Type: application/json' \
  -d '{ "ref_id": "INV-2026-0001", "amount": 10000 }'
const res = await fetch('https://shomerch.web.id/api/v1/transactions', {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.SHOMERCH_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ ref_id: 'INV-2026-0001', amount: 10000 }),
});
const { data } = await res.json();  // data.total_amount → 10081
$ch = curl_init('https://shomerch.web.id/api/v1/transactions');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => [
        'X-API-Key: ' . getenv('SHOMERCH_KEY'),
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(['ref_id' => 'INV-2026-0001', 'amount' => 10000]),
]);
$data = json_decode(curl_exec($ch), true)['data'];
use Illuminate\Support\Facades\Http;

$data = Http::withHeaders(['X-API-Key' => env('SHOMERCH_KEY')])
    ->post('https://shomerch.web.id/api/v1/transactions', [
        'ref_id' => 'INV-2026-0001',
        'amount' => 10000,
    ])
    ->json('data');  // $data['total_amount'] → 10081
import os, requests

r = requests.post(
    'https://shomerch.web.id/api/v1/transactions',
    headers={'X-API-Key': os.environ['SHOMERCH_KEY']},
    json={'ref_id': 'INV-2026-0001', 'amount': 10000},
    timeout=15,
)
data = r.json()['data']  # data['total_amount'] → 10081

201 Createdapplication/json

{
  "success": true,
  "data": {
    "ref_id": "INV-2026-0001",
    "amount": 10000,
    "unique_code": 81,
    "total_amount": 10081,
    "qr_string": "00020101021226…",
    "status": "PENDING"
  }
}

06 Keamanan

Keamanan yang bisa diperiksa.

Setiap poin di bawah ditegakkan oleh kode dan database — bukan sekadar janji di halaman ini.

AES-256-GCM
Kredensial terenkripsi. Kredensial penyedia dan Device Key dienkripsi dengan kunci yang disimpan di luar database. Tidak pernah ditampilkan utuh — termasuk ke admin.
HMAC-SHA256
Webhook bertanda tangan. Setiap kiriman ditandatangani atas timestamp + body mentah. Penerima bisa menolak kiriman palsu maupun kiriman lama.
bcrypt
API key tidak disimpan. Yang tersimpan hanya hash dan prefiksnya. Key utuh ditampilkan sekali saja, saat dibuat.
UNIQUE
Satu pembayaran, satu pesanan. Klaim ID transaksi penyedia ditegakkan constraint database — dua proses yang berjalan bersamaan pun tidak bisa melunasi dua pesanan.
Idempoten
Aman diulang. ref_id yang sama mengembalikan transaksi lama. Setiap webhook membawa event ID untuk deduplikasi di sisi Anda.
Guard SSRF
URL webhook diperiksa. Alamat privat dan internal ditolak, redirect tidak diikuti.
CSRF · rate limit
Akun terlindungi. Semua form bertoken, login dibatasi 5 kali per 15 menit, dan HTTPS dengan HSTS di produksi.
Rp0 dititipkan
Uang tidak lewat kami. Dana masuk langsung ke akun merchant Anda. SHOMERCH tidak bisa memindahkan uang Anda.

07 Harga

Satu harga tetap. Rp0 per transaksi.

Berapa pun nilai transaksinya, biayanya sama setiap bulan. Daftar dan sambungkan penyedia gratis — paket baru dibutuhkan saat Anda mulai memakai API dan menerima pembayaran.

Basic

Rp10.000 /bulan

50 transaksi per hari

  • 30 request per menit
  • 2 API key
  • Semua penyedia QRIS · 1 merchant aktif
  • Riwayat 30 hari
  • Webhook + retry otomatis
  • Dukungan Email
Mulai dengan Basic

Premium

Rp40.000 /bulan

Tanpa batas transaksi per hari

  • 120 request per menit
  • 20 API key
  • Semua penyedia QRIS · 5 merchant aktif
  • Riwayat 365 hari
  • Webhook + retry otomatis
  • Ekspor CSV
  • Dukungan WhatsApp
Mulai dengan Premium

Bayar 3 bulan hemat 5% · 6 bulan hemat 10% · 12 bulan hemat 20%. Pembayaran lewat QRIS, atau tukar kode voucher. Bandingkan semua fitur

08 Batasan

Tahu sebelum integrasi.

Kami tulis di depan supaya Anda tidak kaget setelah membayar.

Bukan API resmi dari penyedia. Tidak ada penyedia di atas yang menyediakan API pembayaran untuk pihak ketiga. Kami membaca portal merchant atau notifikasi HP Anda — keduanya bisa berubah tanpa pemberitahuan dari penyedia.

  1. ShopeePay & GoPay: sesi berumur terbatas. Token portal merchant bisa kedaluwarsa. Sesi GoPay kami perpanjang otomatis; kalau ada yang mati, Anda dapat email & notifikasi.

  2. BCA, DANA, Livin', BNI & BRI: bergantung pada HP. HP kasir harus menyala, online, dan aplikasinya tidak dimatikan penghemat baterai. Dashboard memberi tahu begitu HP berhenti mengirim kabar.

  3. Maksimal 99 pesanan aktif per nominal yang sama. Praktis tidak akan tercapai untuk toko kecil–menengah.

  4. Pencocokan lewat nominal. Pelanggan harus membayar persis sebesar total_amount.

  5. Bukan penyelenggara jasa pembayaran. Kami perangkat lunak rekonsiliasi. Dana masuk langsung ke akun Anda dan tidak pernah melewati rekening kami.

09 FAQ

Pertanyaan umum.

Belum terjawab? Dokumentasi membahas semuanya lebih rinci.

Penyedia apa saja yang didukung?

ShopeePay, GoPay, BCA Merchant, DANA Bisnis, Livin' Merchant (Mandiri), BNI Merchant, dan BRI Merchant. Anda boleh menyambungkan lebih dari satu, lalu memilih mana yang aktif dipakai menerima pembayaran.

Kenapa BCA, DANA, Livin', BNI, dan BRI butuh HP?

Penyedia ini tidak punya halaman daftar transaksi yang bisa kami baca dari server. Satu-satunya pemberitahuan pembayaran adalah notifikasi di HP — jadi aplikasi Payment Notify kami di HP kasir yang meneruskannya. Satu HP bisa memantau kelimanya sekaligus.

Apakah uang saya lewat SHOMERCH?

Tidak. Pembayaran masuk langsung ke akun merchant Anda sendiri. Kami hanya mencocokkan pembayaran dengan pesanan Anda dan tidak pernah bisa memindahkan dana Anda.

Kenapa pelanggan harus bayar Rp10.081, bukan Rp10.000?

Karena QRIS statis tidak bisa membedakan dua pembayaran bernominal sama. Kode unik 1–99 membuat setiap pesanan punya nominal berbeda, sehingga pencocokan akurat. Selisihnya paling banyak Rp99 dan tetap masuk ke Anda.

Apa bedanya dengan Midtrans atau Xendit?

Mereka payment gateway resmi berizin, dengan SLA dan banyak metode pembayaran, tapi memotong biaya per transaksi dan umumnya butuh badan usaha. Kami hanya membantu QRIS yang sudah Anda punya, dengan biaya bulanan tetap.

Bisa dipakai untuk bot Telegram atau WhatsApp?

Bisa. API-nya HTTP biasa, jadi apa pun yang bisa mengirim request bisa memakainya. Kalau bot Anda tidak punya alamat publik untuk webhook, ada cara polling hemat di dokumentasi.

Kalau paket saya habis, transaksi berjalan bagaimana?

Transaksi yang sudah dibuat tetap dipantau sampai lunas atau kedaluwarsa. Yang berhenti hanya pembuatan transaksi baru. Uang pelanggan tidak akan menggantung.

Data saya aman?

Kredensial dan Device Key disimpan terenkripsi AES-256-GCM dengan kunci di luar database, dan tidak pernah ditampilkan kembali secara utuh. Anda bisa menghapusnya kapan saja.

Berhenti mengecek
mutasi manual.

  1. 1

    Sambungkan penyedia

    Tempel string QRIS statis, lalu hubungkan akunnya — login OTP untuk GoPay, kredensial portal untuk ShopeePay, atau pasangkan HP untuk BCA, DANA, Livin', BNI, dan BRI.

  2. 2

    Pasang API key

    Satu request untuk membuat QRIS, satu endpoint untuk cek status. Contoh siap tempel untuk cURL, Node, PHP, dan Python.

  3. 3

    Terima webhook

    Begitu pembayaran terdeteksi, pesanan diproses otomatis. Sekali setup, sekitar 15 menit — ada video tutorial di dashboard.