Tentang API QRIS Orkut
API QRIS dari Orkut memungkinkan integrasi pembayaran QRIS yang cepat dan aman ke dalam sistem Anda. Buat QR code dinamis dengan jumlah spesifik untuk setiap transaksi.
Mendukung semua bank dan e-wallet QRIS seperti GoPay, OVO, DANA, LinkAja, ShopeePay, dan lainnya.
Kasus Penggunaan
- Pembayaran e-commerce
- Donasi digital
- Tagihan dan utilitas
- Aplikasi pembayaran mobile
- Sistem POS
- Integrasi ERP
Keunggulan Kami
Integrasi Mudah
Dokumentasi lengkap dengan contoh kode multi-bahasa.
Proses Cepat
Respon API di bawah 150ms.
Keamanan Tinggi
Enkripsi end-to-end dan PCI DSS compliant.
Dukungan 24/7
Tim siap membantu kapan saja.
Buat QRIS Dinamis
Metode
POST
Endpoint
https://orkut.requimeboost.id/api/qris
Parameter
Parameter | Wajib | Tipe Data | Deskripsi |
---|---|---|---|
merchant |
Ya | String | Kode merchant QRIS kamu (ex: OK2476620) |
nominal |
Ya | Integer | Jumlah nominal yang akan dibayar |
callback_url |
Tidak | String (URL) | URL untuk notifikasi otomatis saat QR dibayar |
Catatan Penting
- QR hanya aktif selama 24 jam atau hingga dibayar
- Gunakan
callback_url
agar sistemmu mendapat notifikasi real-time - Gunakan
/mutasi
untuk cek status jika tidak menggunakan webhook
Contoh Permintaan (cURL)
curl -X POST https://orkut.requimeboost.id/api/qris \\
-H "Authorization: Bearer YOUR_API_KEY" \\
-H "Content-Type: application/json" \\
-d '{"merchant":"OK2476620","nominal":"1000"}
Contoh (Node.js)
const axios = require('axios');
axios.post('https://orkut.requimeboost.id/api/qris', {
merchant: "OK2476620",
nominal: 1000
}, {
headers: {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
})
.then(res => console.log(res.data))
.catch(err => console.error(err.response.data));
Contoh (PHP)
<?php
$ch = curl_init('https://orkut.requimeboost.id/api/qris');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
'merchant' => 'OK2476620',
'nominal' => 1000
]));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
Contoh Respon Sukses
{
"status": true,
"message": "QRIS berhasil dibuat",
"data": {
"kode_deposit": "DEP1234567890",
"kode_merchant": "OK2476620",
"metode": "QRIS",
"nominal": "1000",
"kode_unik": 155,
"jumlah_transfer": "1155",
"saldo_didapat": "1000",
"status": "pending",
"expired": "2025-07-20 17:30:00",
"link_qr": "https://orkut.requimeboost.id/qris/DEP1234567890.png"
}
}
Contoh Respon Gagal
{
"status": false,
"message": "Nominal tidak valid. Minimum 1000.",
"code": 400
}
Cek Status Pembayaran
Metode
POST
Endpoint
https://orkut.requimeboost.id/api/mutasi
Parameter
Parameter | Wajib | Tipe | Deskripsi |
---|---|---|---|
merchant |
Ya | String | Kode merchant QRIS kamu |
auth_username |
Ya | String | Username akun kamu |
auth_token |
Ya | String | Token login aktif (hasil dari verifikasi OTP) |
Contoh Permintaan (cURL)
curl -X POST https://orkut.requimeboost.id/api/mutasi \\
-H "Authorization: Bearer YOUR_API_KEY" \\
-H "Content-Type: application/json" \\
-d '{"merchant":"OK2476620","auth_username":"defac","auth_token":"2476730:xxxx"}'
Contoh (Node.js)
const axios = require('axios');
axios.post('https://orkut.requimeboost.id/api/mutasi', {
merchant: "OK2476620",
auth_username: "defac",
auth_token: "2476730:xxxx"
}, {
headers: {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
})
.then(res => console.log(res.data))
.catch(err => console.error(err.response.data));
Contoh Respon Berhasil
{
"status": true,
"message": "Mutasi ditemukan",
"data": {
"kode_deposit": "DEP1690877345",
"jumlah_transfer": "1155",
"waktu_bayar": "2025-07-20 17:22:10",
"status": "paid",
"saldo_didapat": "1000",
"via": "QRIS OVO"
}
}
Contoh Respon Jika Belum Bayar
{
"status": false,
"message": "Belum ada mutasi terdeteksi",
"data": null
}
Daftar Status Pembayaran
Status | Deskripsi |
---|---|
pending | Pembayaran belum diterima |
paid | Pembayaran sudah berhasil |
expired | QR sudah kadaluarsa |
failed | Pembayaran gagal atau dibatalkan |
Konfigurasi Webhook
Webhook memberikan notifikasi real-time saat status pembayaran berubah, lebih efisien daripada polling.
Pastikan endpoint webhook Anda menerima POST request dan mengembalikan kode 200.
Cara Menggunakan Webhook
Siapkan Endpoint
Buat endpoint yang menerima POST request dan mengembalikan 200 OK.
Konfigurasi Webhook
Tambahkan callback_url
saat membuat QRIS atau di dashboard.
Verifikasi Signature
Verifikasi header X-Orkut-Signature
untuk keamanan.
Format Notifikasi Webhook
{
"event": "payment.success",
"data": {
"transaction_id": "ORKUT-ABC123",
"amount": 10000,
"status": "paid",
"paid_at": "2025-07-20T17:22:10+07:00",
"payment_method": "OVO",
"merchant_name": "TOKO KAMU",
"customer_reference": "INV-20250720-01"
},
"metadata": {
"timestamp": "2025-07-20T17:22:11+07:00",
"signature": "c4867a23be61e9b70f..."
}
}
Contoh Webhook Handler (Node.js)
const express = require('express');
const app = express();
const crypto = require('crypto');
app.use(express.json());
app.post('/webhook/qris', (req, res) => {
const body = req.body;
const signature = req.headers['x-orkut-signature'];
const secret = 'WEBHOOK_SECRET_KAMU';
const hash = crypto.createHmac('sha256', secret).update(JSON.stringify(body)).digest('hex');
if (signature !== hash) {
return res.status(403).send('Invalid signature');
}
console.log('Notifikasi diterima:', body);
// Simpan ke database, update status, dsb
res.status(200).send('OK');
});
app.listen(3000, () => {
console.log('Webhook listening on port 3000');
});
Event Webhook yang Didukung
Event | Deskripsi |
---|---|
payment.success |
Pembayaran berhasil diterima dan dikonfirmasi |
payment.pending |
QR telah dibuat, menunggu pembayaran |
payment.failed |
Pembayaran gagal atau dibatalkan oleh pengguna |
payment.expired |
QRIS sudah kadaluarsa tanpa pembayaran |
Fitur Tambahan
- Auto Expire: QR otomatis kadaluarsa dalam 24 jam
- Support e-Wallet & Bank QR: OVO, GoPay, ShopeePay, DANA, BCA, BNI, dll
- Multi-Merchant Support
- Webhook Signature Verification
- Realtime Callback & Logging
Integrasi Cepat
Kami menyediakan library & template untuk bahasa berikut:
- Node.js (axios, express)
- PHP (curl native dan Guzzle)
- Python (requests)
- Postman Collection (.json)
Pertanyaan Umum (FAQ)
Berapa lama QR aktif?
QR aktif selama 24 jam atau sampai dibayar, mana yang lebih dulu.
Bagaimana jika tidak menggunakan webhook?
Kamu bisa menggunakan endpoint /mutasi
untuk polling status secara berkala.
Apakah bisa custom nominal unik?
Saat ini belum, sistem akan otomatis generate kode unik untuk memisahkan transaksi.