Account Overview
Current Balance
Total Income (This Month)
Total Withdraw (This Month)
Today's Transactions
Create Payment
QRIS Payment GatewayPayment QR Code
Scan this QR code to make payment
Transaction History
Period Summary
No transactions yet
Start by creating your first payment
API Documentation
v2.0.0Overview
Heroikzre Payment Gateway API memungkinkan Anda mengintegrasikan sistem pembayaran QRIS ke dalam aplikasi Anda dengan mudah. API ini menggunakan metode GET dengan parameter sederhana.
Create Payment Endpoint
Endpoint untuk membuat transaksi pembayaran baru dan mendapatkan QR Code.
Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
apikey |
Yes | String | API Key Anda (didapat dari dashboard setelah registrasi) |
amount |
Yes | Integer | Jumlah pembayaran dalam Rupiah (minimal Rp 1,000) |
Response Format
{
"status": true,
"result": {
"idtrx": "HERO-ABC123",
"qris_url": "https://qris.url/abc123",
"fee_admin": 500,
"base_amount": 10000,
"amount": 10500,
"qr_id": "QR123456"
}
}
Contoh Penggunaan
// JavaScript Fetch Example
async function createPayment(apikey, amount) {
const response = await fetch(
`https://heroikzre-api.vercel.app/payment/create?apikey=${apikey}&amount=${amount}`
);
return await response.json();
}
// Contoh pemanggilan
createPayment('API_1234567890', 10000)
.then(data => console.log(data));
Check Payment Endpoint
Endpoint untuk mengecek status transaksi pembayaran.
Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
apikey |
Yes | String | API Key Anda |
idtrx |
Yes | String | ID Transaksi yang didapat dari response create payment |
Response Format
{
"status": true,
"message": "sukses",
"saldo": 150000,
"data": {
"idtrx": "HERO-ABC123",
"amount": 10500,
"status": "paid",
"created_at": "2024-01-01T12:00:00Z"
}
}
Status Response
- status: true, message: "sukses" - Pembayaran berhasil
- status: false, message: "pending" - Menunggu pembayaran
- status: false, message: "expired" - Transaksi expired
- status: true, saldo: [jumlah] - Transaksi sudah berhasil sebelumnya
Contoh Penggunaan
// JavaScript Fetch Example
async function checkPayment(apikey, idtrx) {
const response = await fetch(
`https://heroikzre-api.vercel.app/payment/check?apikey=${apikey}&idtrx=${idtrx}`
);
return await response.json();
}
// Contoh pemanggilan
checkPayment('API_1234567890', 'HERO-ABC123')
.then(data => console.log(data));
Delete Payment Endpoint
Endpoint untuk menghapus transaksi pending yang belum dibayar.
Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
apikey |
Yes | String | API Key Anda |
amount |
Yes | Integer | Jumlah transaksi dalam Rupiah |
idtrx |
Yes | String | ID Transaksi yang akan dihapus |
Response Format
{
"status": true,
"creator": "Heroikzre Api",
"message": "Transaksi pending berhasil dihapus",
"request_id": "CCBB4904",
"processing_time_ms": 2476,
"data": {
"idtrx": "HERO-IIO8KJKT",
"amount": 188,
"base_amount": 100,
"fee_admin": 88,
"unique_fee": 8,
"created_at": "2026-01-26T13:36:37.194Z",
"deleted_at": "2026-01-26T14:24:59.978Z",
"hours_old": 0.81
}
}
Contoh Penggunaan
// JavaScript Fetch Example
async function deletePayment(apikey, amount, idtrx) {
const response = await fetch(
`https://heroikzre-api.vercel.app/payment/delete?apikey=${apikey}&amount=${amount}&idtrx=${idtrx}`
);
return await response.json();
}
// Contoh pemanggilan
deletePayment('API_1234567890', 10000, 'HERO-ABC123')
.then(data => console.log(data));
API Keys Management
API Key adalah kunci unik yang digunakan untuk mengautentikasi semua request ke API Heroikzre.
Cara Mendapatkan API Key
- Registrasi akun baru di dashboard
- Login ke dashboard Anda
- API Key akan ditampilkan di profil Anda
- Gunakan API Key tersebut untuk semua request API
Keamanan API Key
- API Key memberikan akses penuh ke akun Anda
- Simpan API Key di environment variable, bukan di kode frontend
- Ganti API Key secara berkala untuk keamanan
- Gunakan API Key hanya untuk server-side applications
Contoh Implementasi Lengkap
Workflow Pembayaran Lengkap
- Buat transaksi baru dengan endpoint
/payment/create - Simpan
idtrxdari response - Tampilkan QR Code kepada pengguna
- Polling status dengan endpoint
/payment/checksetiap 5 detik - Update UI ketika status berubah menjadi "paid"
- Gunakan endpoint
/payment/deleteuntuk membatalkan transaksi pending jika perlu
Contoh Kode JavaScript Lengkap
class HeroikzrePayment {
constructor(apiKey) {
this.apiKey = apiKey;
this.baseUrl = 'https://heroikzre-api.vercel.app';
}
async createPayment(amount) {
try {
const response = await fetch(
`${this.baseUrl}/payment/create?apikey=${this.apiKey}&amount=${amount}`
);
return await response.json();
} catch (error) {
return { status: false, message: 'Network error' };
}
}
async checkPayment(idtrx) {
try {
const response = await fetch(
`${this.baseUrl}/payment/check?apikey=${this.apiKey}&idtrx=${idtrx}`
);
return await response.json();
} catch (error) {
return { status: false, message: 'Network error' };
}
}
async deletePayment(amount, idtrx) {
try {
const response = await fetch(
`${this.baseUrl}/payment/delete?apikey=${this.apiKey}&amount=${amount}&idtrx=${idtrx}`
);
return await response.json();
} catch (error) {
return { status: false, message: 'Network error' };
}
}
async waitForPayment(idtrx, timeout = 300000) {
const startTime = Date.now();
while (Date.now() - startTime < timeout) {
const result = await this.checkPayment(idtrx);
if (result.status === true && result.message === 'sukses') {
return { success: true, data: result };
} else if (result.status === false && result.message === 'expired') {
return { success: false, error: 'Transaction expired' };
}
// Tunggu 5 detik sebelum cek lagi
await new Promise(resolve => setTimeout(resolve, 5000));
}
return { success: false, error: 'Payment timeout' };
}
}
// Contoh penggunaan
const payment = new HeroikzrePayment('YOUR_API_KEY_HERE');
// 1. Buat pembayaran
payment.createPayment(10000).then(response => {
if (response.status) {
const idtrx = response.result.idtrx;
console.log('Transaction ID:', idtrx);
// 2. Tunggu pembayaran
payment.waitForPayment(idtrx).then(result => {
if (result.success) {
console.log('Payment successful!');
} else {
console.log('Payment failed:', result.error);
}
});
}
});
Kode Error Handling
// Error handling yang baik
async function processPayment(apiKey, amount) {
try {
// 1. Validasi input
if (!apiKey || apiKey.length < 10) {
throw new Error('Invalid API Key');
}
if (amount < 100) {
throw new Error('Minimum amount is Rp 100');
}
// 2. Buat pembayaran
const createResult = await createPayment(apiKey, amount);
if (!createResult.status) {
throw new Error(createResult.message || 'Payment creation failed');
}
// 3. Tampilkan QR Code
displayQRCode(createResult.result.qris_url);
// 4. Polling status
const checkResult = await pollPaymentStatus(apiKey, createResult.result.idtrx);
if (checkResult.success) {
return { success: true, data: checkResult.data };
} else {
throw new Error(checkResult.error);
}
} catch (error) {
console.error('Payment processing error:', error);
return {
success: false,
error: error.message
};
}
}
Support Center
Need Help?
Contact our support team for assistance with payments, withdrawals, or account issues.
Email Support
admin@heroikzre.my.id
Response time: 24 hours
Account Profile
-
-
Features
Multi-Method
Cards & E-wallets
Encrypted
256-bit Protection
Bank-Grade Security
Secure Transactions