Dokumentasi API
Buka Console →

1. Cara Integrasi Singkat (BTZ Webpay Style)

Aetheria Paygate menyediakan API otomatis untuk mengonversi pembayaran QRIS Statis menjadi QRIS Dinamis Tag 54 dengan kode unik. Uang masuk 100% langsung ke rekening/e-wallet Anda.

Base URL Endpoint
https://aetheria-paygate.vercel.app/api/v1
Header Wajib untuk Setiap Request:
Content-Type: application/json X-Aetheria-Key: aeth_pk_live_YOUR_API_KEY

POST /transaction/create

Membuat tagihan pembayaran QRIS Dinamis baru. API akan mengembalikan payload QRIS EMVCo Tag 54 yang sudah siap di-render menjadi gambar QR Code pada bot Telegram atau website Anda.

Parameter Request (JSON Body):

ParameterTipeWajibDeskripsi
amount_original Number Ya Nominal tagihan yang ingin dibayar (contoh: 15000).
merchant_ref String Ya ID transaksi unik dari toko Anda (contoh: INV-20261026-001).
unique_code Number Tidak Kode unik tambahan (1-999). Jika kosong, sistem membuatkannya otomatis.

Contoh Request (Node.js / Axios):

const axios = require('axios'); const res = await axios.post('https://aetheria-paygate.vercel.app/api/v1/transaction/create', { amount_original: 15000, merchant_ref: 'ORDER-1728123456' }, { headers: { 'X-Aetheria-Key': 'aeth_pk_live_your_api_key', 'Content-Type': 'application/json' } }); console.log(res.data);

Contoh Response Sukses:

{ "status": true, "message": "Transaksi QRIS Dinamis berhasil dibuat.", "data": { "reference": "AETH-TRX-1740561234", "merchant_ref": "ORDER-1728123456", "amount_original": 15000, "unique_code": 142, "amount_total": 15142, "raw_qris_dynamic": "00020101021226600016ID.CO.NOBU...5405151425802ID...6304E1F4", "status": "UNPAID", "created_at": "2026-10-26T10:00:00.000Z" } }

GET /transaction/status

Mengecek status pembayaran transaksi apakah sudah PAID (lunas) atau masih UNPAID (menunggu transfer).

Query Parameters:

ParameterTipeWajibDeskripsi
trx_id String Opsional* Nomor referensi sistem Aetheria (contoh: AETH-TRX-1740561234).
merchant_ref String Opsional* ID invoice toko Anda saat dibuat (contoh: ORDER-1728123456).
*Wajib menyertakan minimal salah satu dari trx_id atau merchant_ref.

Contoh Request (cURL):

curl -X GET "https://aetheria-paygate.vercel.app/api/v1/transaction/status?merchant_ref=ORDER-1728123456" \ -H "X-Aetheria-Key: aeth_pk_live_your_api_key"

Contoh Response:

{ "status": true, "message": "Status transaksi berhasil didapatkan.", "data": { "trx_id": "AETH-TRX-1740561234", "merchant_ref": "ORDER-1728123456", "amount_original": 15000, "unique_code": 142, "amount_total": 15142, "status": "PAID", "created_at": "2026-10-26T10:00:00.000Z", "paid_at": "2026-10-26T10:02:15.000Z" } }

4. Webhook / Callback Otomatis

Ketika pembeli mentransfer dana dan mutasi masuk terdeteksi oleh sistem/APK reader, Aetheria Paygate akan secara otomatis mengirimkan HTTP POST request ke URL Webhook yang Anda daftarkan di tab profil.

Payload Callback yang Diterima Server Anda:

{ "event": "PAYMENT_RECEIVED", "trx_id": "AETH-TRX-1740561234", "merchant_ref": "ORDER-1728123456", "amount_original": 15000, "unique_code": 142, "amount_total": 15142, "status": "PAID", "paid_at": "2026-10-26T10:02:15.000Z" }

5. Keamanan HMAC-SHA256 (Opsional)

Jika Anda ingin memverifikasi integritas permintaan agar data tidak dimanipulasi saat transmisi, sertakan header X-Aetheria-Signature atau parameter signature dengan rumus hashing:

const crypto = require('crypto'); // Rumus payload string: "MERCHANT_CODE:MERCHANT_REF:AMOUNT" const payload = \`\${merchantCode}:\${merchantRef}:\${amountOriginal}\`; // Enkripsi menggunakan Secret Key toko Anda const signature = crypto.createHmac('sha256', secretKey) .update(payload) .digest('hex'); console.log('Signature:', signature);
Verifikasi di Sisi Server Anda:

Sistem backend Aetheria akan secara otomatis memvalidasi keaslian signature yang Anda kirim dengan menghitung ulang HMAC SHA-256 menggunakan secret key toko yang terdaftar di database.