V3.1.0

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

GET

Endpoint

https://orkut.yilzidev.com/api/order/status/cqrs

Parameter

Parameter Wajib Tipe Data Deskripsi
amount Ya Integer Jumlah pembayaran (contoh: 50000)
fee Tidak Integer Biaya admin (contoh: 1000). Default jika tidak disertakan.
uniquecode Tidak String Kode unik custom (contoh: ORKUT-X1234XX987)
codeqr Ya String Kode merchant QRIS Anda
apikey Ya String API Key dari registrasi
callback_url Tidak String (URL) URL untuk notifikasi pembayaran

Catatan Penting

  • Beberapa e-wallet mungkin tidak menampilkan total dengan benar (misalnya GoPay).
  • Sertakan biaya admin di amount jika tidak terdeteksi.
  • Pastikan kode merchant QRIS valid.
  • QR code berlaku 24 jam.
  • Gunakan webhook atau cek status untuk monitoring.

Contoh Permintaan

GET https://orkut.yilzidev.tech/api/orderkuota/cqris?amount=50000&fee=1000&codeqr=YOUR_QRIS_CODE&apikey=API_KEY_ANDA

Contoh Permintaan (cURL)

curl -X GET \
  "https://orkut.yilzidev.tech/api/orderkuota/cqris?amount=50000&fee=1000&codeqr=YOUR_QRIS_CODE&apikey=API_KEY_ANDA" \
  -H "Content-Type: application/json"

Contoh Permintaan (NodeJS)

const axios = require('axios');

const createQRIS = async () => {
    try {
        const response = await axios.get('https://orkut.yilzidev.tech/api/orderkuota/cqris', {
            params: {
                amount: 50000,
                fee: 1000,
                codeqr: 'YOUR_QR_CODE',
                apikey: 'API_KEY_ANDA',
                uniquecode: 'ORKUT-1234'
            },
            headers: {
                'Content-Type': 'application/json',
            }
        });

        console.log('Response:', response.data);
    } catch (error) {
        console.error('Error:', error.response ? error.response.data : error.message);
    }
};

createQRIS();

Contoh Permintaan (PHP)

 50000,
    'fee' => 1000,
    'codeqr' => 'YOUR_QR_CODE',
    'apikey' => 'API_KEY_ANDA',
    'uniquecode' => 'ORKUT-1234'
]);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json'
]);

$response = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
} else {
    $data = json_decode($response, true);
    print_r($data);
}

curl_close($ch);
?>

Contoh Respon Sukses

{
    "status": true,
    "code": 200,
    "message": "QRIS berhasil dibuat",
    "data": {
        "transaction_id": "ORKUT-5X7R9P2K",
        "amount": 50000,
        "fee": 1000,
        "total_amount": 51000,
        "qr_string": "00020101021226650014COM.QRIS.WWW01189360091101111111111110208QCOM01202151234567890303UMI52045812530336054055100.05802ID5914MERCHANT NAME6013JAKARTA PUSAT61051234062380123ORKUT-5X7R9P2K6304A13F",
        "qr_image_url": "https://orkut.yilzidev.tech/api/qr/ORKUT-5X7R9P2K.png",
        "expiry_time": "2023-12-31T23:59:59+07:00",
        "created_at": "2023-12-31T12:00:00+07:00",
        "status": "pending",
        "merchant_name": "MERCHANT NAME",
        "merchant_city": "JAKARTA PUSAT",
        "payment_methods": ["DANA", "OVO", "GoPay", "ShopeePay", "Bank Transfer"]
    },
    "metadata": {
        "api_version": "3.1.0",
        "timestamp": "2023-12-31T12:00:00+07:00",
        "request_id": "req_abc123xyz456"
    }
}

Contoh Respon Gagal

{
    "status": false,
    "code": 400,
    "message": "Parameter tidak valid: amount harus berupa angka positif",
    "errors": [
        {
            "field": "amount",
            "message": "amount harus berupa angka positif"
        }
    ],
    "metadata": {
        "api_version": "3.1.0",
        "timestamp": "2023-12-31T12:00:01+07:00",
        "request_id": "req_def456uvw789"
    }
}

Cek Status Pembayaran

Metode

GET

Endpoint

https://orkut.yilzidev.tech/api/orderkuota/cekstatus

Parameter

Parameter Wajib Tipe Data Deskripsi
transaction_id Ya String ID transaksi dari respon QRIS
apikey Ya String API Key dari registrasi

Contoh Permintaan

GET https://orkut.yilzidev.tech/api/orderkuota/cekstatus?transaction_id=ORKUT-5X7R9P2K&apikey=API_KEY_ANDA

Contoh Permintaan (Python)

import requests
url = "https://orkut.yilzidev.tech/api/orderkuota/cekstatus"
params = {
    "transaction_id": "ORKUT-5X7R9P2K",
    "apikey": "API_KEY_ANDA"
}

response = requests.get(url, params=params)
print(response.json())

Contoh Respon Sukses

{
    "status": true,
    "code": 200,
    "message": "Status pembayaran berhasil didapatkan",
    "data": {
        "transaction_id": "ORKUT-5X7R9P2K",
        "amount": 50000,
        "fee": 1000,
        "total_amount": 51000,
        "status": "paid",
        "paid_at": "2023-12-31T12:30:45+07:00",
        "payment_method": "DANA",
        "settlement_status": "pending",
        "estimated_settlement_time": "2024-01-02T12:30:45+07:00"
    },
    "metadata": {
        "api_version": "3.1.0",
        "timestamp": "2023-12-31T12:35:00+07:00",
        "request_id": "req_ghi789rst012"
    }
}

Status Pembayaran

Status Deskripsi
pending Pembayaran belum diterima
paid Pembayaran berhasil diterima
expired QR code telah 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-5X7R9P2K",
        "amount": 50000,
        "fee": 1000,
        "total_amount": 51000,
        "status": "paid",
        "paid_at": "2023-12-31T12:30:45+07:00",
        "payment_method": "DANA",
        "merchant_name": "MERCHANT NAME",
        "merchant_city": "JAKARTA PUSAT",
        "customer_reference": "INV-2023-12345"
    },
    "metadata": {
        "api_version": "3.1.0",
        "timestamp": "2023-12-31T12:30:50+07:00",
        "signature": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"
    }
}

Contoh Implementasi (NodeJS)

const express = require('express');
const crypto = require('crypto');
const app = express();

app.use(express.json());

const WEBHOOK_SECRET = 'WEBHOOK_SECRET_ANDA';

app.post('/webhook', (req, res) => {
    const signature = req.headers['x-orkut-signature'];
    const payload = JSON.stringify(req.body);

    const expectedSignature = crypto
        .createHmac('sha256', WEBHOOK_SECRET)
        .update(payload)
        .digest('hex');

    if (signature !== expectedSignature) {
        return res.status(401).send('Invalid signature');
    }

    const event = req.body.event;
    const data = req.body.data;

    switch (event) {
        case 'payment.success':
            console.log('Pembayaran berhasil:', data);
            break;
        case 'payment.failed':
            console.log('Pembayaran gagal:', data);
            break;
        case 'payment.expired':
            console.log('Pembayaran kadaluarsa:', data);
            break;
    }

    res.status(200).send('OK');
});

app.listen(3000, () => {
    console.log('Webhook server running on port 3000');
});

Jenis-Jenis Event

Event Deskripsi
payment.success Pembayaran berhasil diterima
payment.failed Pembayaran gagal atau dibatalkan
payment.expired QR code telah kadaluarsa
payment.pending Pembayaran dalam proses verifikasi

Fitur Unggulan

Pembayaran Real-time

Notifikasi instan via webhook dengan respon <150ms.

Keamanan Tingkat Tinggi

Enkripsi end-to-end dan PCI DSS compliant.

QR Dinamis

QR code dengan jumlah spesifik dan masa aktif fleksibel.

Multi E-Wallet

Dukung GoPay, OVO, DANA, LinkAja, ShopeePay, dll.

SDK Lengkap

SDK untuk NodeJS, Python, PHP, Java, Go, .NET.

Analitik Lanjutan

Dashboard untuk performa transaksi dan statistik.

Panduan Integrasi

Langkah-langkah Integrasi

1

Daftar Akun Developer

Buat akun di dashboard.orkut.id untuk API Key.

2

Verifikasi Merchant QRIS

Verifikasi kode merchant QRIS Anda.

3

Integrasikan API

Gunakan endpoint API sesuai kebutuhan.

4

Uji di Mode Sandbox

Tes di mode sandbox sebelum produksi.

5

Deploy ke Produksi

Ganti API Key sandbox dengan produksi.

Mode Sandbox

Gunakan endpoint sandbox untuk pengujian:

https://sandbox-orkut.yilzidev.tech/api/orderkuota/

API Key sandbox tersedia di dashboard developer.

Pertanyaan Umum (FAQ)

Apa itu QRIS?

QRIS adalah standar QR code pembayaran nasional dari Bank Indonesia, memungkinkan transaksi antar bank dan e-wallet dengan satu QR code.

Berapa lama QR code berlaku?

QR code berlaku 24 jam sejak dibuat. Setelah itu, QR code kadaluarsa.

Bagaimana cara mendapatkan kode merchant QRIS?

Daftar bisnis Anda ke bank atau penyedia QRIS untuk mendapatkan kode merchant unik.

Apakah ada batas transaksi?

Minimum Rp 1.000. Maksimum tergantung bank/e-wallet, biasanya Rp 5-10 juta per transaksi.

Berapa lama waktu settlement dana?

Settlement memakan waktu 1-2 hari kerja, tergantung bank/e-wallet.

Apakah ada biaya chargeback?

Tidak ada biaya chargeback. Kami membantu investigasi transaksi bermasalah sesuai ketentuan BI.

Bagaimana jika transaksi tidak sesuai?

Laporkan via dashboard atau hubungi support untuk investigasi dan solusi.

Testimoni Pengguna

A

Andi Wijaya

CTO TokoOnlineKu

"API QRIS Orkut sangat mudah diintegrasikan dengan dokumentasi yang jelas. Webhook membantu kami mendapatkan update real-time."

B

Budi Santoso

Founder DonasiDigital

"Fitur kode unik sangat membantu tracking donasi. Tim support Orkut sangat responsif dan profesional."

Mulai Gunakan API QRIS Sekarang

Daftar akun developer dan dapatkan API Key untuk integrasi cepat.

Hubungi Kami

Tim support kami siap membantu 24/7 melalui berbagai channel.

Support

Pertanyaan teknis dan bantuan API

support@orkut.id

Sales

Informasi fitur dan layanan

sales@orkut.id

Partnership

Kerjasama bisnis dan kemitraan

partner@orkut.id

Media Sosial