Cutiezy • API Docs
QRIS Dinamis
Generate QRIS dengan nominal transaksi dari QRIS merchant yang sudah disimpan user melalui web.
Alur penggunaan
- User login ke web dan upload QRIS statis pada menu QRIS Dinamis.
- Sistem membaca QR dan menyimpan payload QRIS sebagai sumber default user.
- Integrator memanggil endpoint API di bawah hanya dengan nominal transaksi.
- Sistem menghasilkan payload QRIS dinamis dan PNG sementara. Gambar akan dibersihkan otomatis sesuai masa retensi.
QRIS sumber wajib disiapkan dari halaman web terlebih dahulu. Endpoint API tidak menerima upload gambar QRIS.
Endpoint
Method
POST
URL
https://api.cutiezy.id/api/qris/createAutentikasi
Gunakan API key akun. IP pemanggil juga harus terdaftar pada slot IP yang aktif.
X-API-Key: czw_xxxxxxxxxxxxxxxxx
Accept: application/json
API key juga didukung melalui Authorization: Bearer ... atau fallback apikey, tetapi header X-API-Key direkomendasikan.
Body request
| Parameter | Tipe | Wajib | Keterangan |
|---|---|---|---|
| amount | integer | Ya* | Nominal rupiah, bilangan bulat > 0. Contoh: 25000. |
| total | integer | Alias | Alias dari amount. Kirim salah satu saja. |
Body dapat dikirim sebagai JSON atau form-urlencoded.
Contoh cURL
curl -X POST "https://api.cutiezy.id/api/qris/create" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"amount":25000}'
Contoh PHP
<?php
$endpoint = 'https://api.cutiezy.id/api/qris/create';
$apiKey = 'YOUR_API_KEY';
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-API-Key: ' . $apiKey,
'Accept: application/json',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['amount' => 25000]),
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
Contoh JavaScript
const response = await fetch('https://api.cutiezy.id/api/qris/create', {
method: 'POST',
headers: {
'X-API-Key': 'YOUR_API_KEY',
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({ amount: 25000 })
});
const data = await response.json();
Response sukses · HTTP 201
{
"success": true,
"ok": true,
"message": "QRIS dinamis berhasil dibuat.",
"data": {
"id": 123,
"source_id": 7,
"amount": 25000,
"qris_string": "000201010212...6304ABCD",
"image_url": "https://example.com/public/generated/qris/20260902/qris_xxx.png",
"expires_at": "2026-09-03 10:00:00"
}
}
image_url adalah gambar sementara. Simpan/unduh dari sisi integrator bila perlu sebelum masa retensinya habis.
Kode error
| HTTP | Error | Arti |
|---|---|---|
| 401 | API_KEY_REQUIRED / INVALID_API_KEY | API key tidak ada atau tidak valid. |
| 403 | IP_NOT_ALLOWED | IP request tidak terdaftar pada slot akun. |
| 403 | SLOT_INACTIVE / SLOT_SUBSCRIPTION_REQUIRED | Slot IP belum dapat memakai API. |
| 409 | QRIS_SOURCE_REQUIRED | User belum upload QRIS melalui web. |
| 422 | INVALID_QRIS_REQUEST | Nominal kosong/tidak valid/melebihi batas. |
| 429 | RATE_LIMITED | Rate limit API tercapai. |
| 503 | QRIS_GENERATOR_UNAVAILABLE | Generator QR/extension server tidak tersedia. |