Dokumentasi API QRIS

Solusi Pembayaran Digital oleh Orkut

Integrasikan pembayaran QRIS dengan cepat dan aman ke dalam aplikasi Anda menggunakan API kami yang modern.

99.9% Uptime
<150ms Response
PCI DSS Compliant

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

TERBARU v3.1

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

1

Siapkan Endpoint

Buat endpoint yang menerima POST request dan mengembalikan 200 OK.

2

Konfigurasi Webhook

Tambahkan callback_url saat membuat QRIS atau di dashboard.

3

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

Integrasi Cepat

Kami menyediakan library & template untuk bahasa berikut:

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.