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
Malawali Payment Gateway dirancang untuk QRIS deposit automation, unique nominal matching, integrasi API untuk bot dan panel, serta transaction lifecycle yang aman: create, check, cancel, dan history.
- Default invoice prefix:
MPAY - Custom user alias tersedia hingga
4karakter - Max pending transaction:
5perapikeydalam5 menit - Payment expiry:
10 menit - QRIS amount memakai unique code sekecil mungkin
Response Format
Success Pattern
{
"status": true,
"creator": "Heroikzre Developer",
"code": "SOME_SUCCESS_CODE",
"message": "Human readable message",
"result": {}
}
Error Pattern
{
"status": false,
"creator": "Heroikzre Developer",
"code": "SOME_ERROR_CODE",
"message": "Human readable message"
}
Endpoint List
| Endpoint | Method | Purpose |
|---|---|---|
/payment/create | GET | Create new QRIS payment |
/payment/check | GET | Check payment status |
/payment/delete | GET / POST / DELETE | Cancel pending payment |
/payment/alias/update | GET / POST | Update invoice alias |
/payment/mutasi-user | GET / POST | Get user transaction history |
Create Payment Endpoint
Endpoint untuk membuat transaksi pembayaran baru dan menghasilkan transaksi QRIS dengan unique nominal matching.
Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
apikey |
Yes | String | User API key |
amount |
Yes | Integer | Base amount in rupiah |
Success Response
{
"status": true,
"creator": "Heroikzre Developer",
"code": "PAYMENT_CREATED",
"message": "Transaksi berhasil dibuat",
"result": {
"idtrx": "MPAY-7F3K9Q2A",
"invoice_alias": "MPAY",
"payment_status": "pending",
"amount_requested": 10000,
"amount_to_pay": 10000,
"unique_code": 0,
"fee": 0,
"created_at": "2026-03-12T01:23:45.000Z",
"expires_at": "2026-03-12T01:33:45.000Z",
"qris_url": "https://pay.heroikzre.my.id/qris/MPAY-7F3K9Q2A"
}
}
Common Error
{
"status": false,
"creator": "Heroikzre Developer",
"code": "TOO_MANY_PENDING_PAYMENTS",
"message": "Maksimal 5 transaksi pending dalam 5 menit"
}
Check Payment Endpoint
Endpoint untuk mengecek status transaksi pembayaran.
Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
apikey |
Yes | String | User API key |
idtrx |
Yes* | String | Full transaction ID |
invoice |
Yes* | String | Alternate parameter name for full idtrx |
custom_invoice |
Yes* | String | Alternate parameter name for full idtrx |
* Gunakan salah satu dari idtrx, invoice, atau custom_invoice. Jangan kirim hanya prefix alias seperti MPAY atau ABCD.
Paid Response
{
"status": true,
"creator": "Heroikzre Developer",
"message": "Sukses",
"saldo_added": 10000,
"saldo": 250000,
"base_amount": 10000,
"fee_admin": 0,
"total_amount": 10000,
"processing_time_ms": 842
}
Pending Response
{
"status": false,
"creator": "Heroikzre Developer",
"message": "Pending"
}
Cancelled Response
{
"status": false,
"creator": "Heroikzre Developer",
"code": "PAYMENT_CANCELLED",
"message": "Transaksi dibatalkan",
"payment_status": "cancelled",
"expires_at": "2026-03-12T01:33:45.000Z"
}
Delete Payment Endpoint
Endpoint untuk membatalkan transaksi pending yang belum dibayar.
Parameters
| Parameter | Required | Type | Description |
|---|---|---|---|
apikey |
Yes | String | User API key |
idtrx |
Yes* | String | Full transaction ID |
invoice |
Yes* | String | Alternate parameter name for full idtrx |
custom_invoice |
Yes* | String | Alternate parameter name for full idtrx |
amount |
No | Integer | Optional extra validation |
Success Response
{
"status": true,
"creator": "Heroikzre Developer",
"code": "PAYMENT_CANCELLED",
"message": "Transaksi berhasil dibatalkan",
"result": {
"idtrx": "MPAY-7F3K9Q2A",
"payment_status": "cancelled",
"amount_requested": 10000,
"amount_to_pay": 10000,
"unique_code": 0,
"created_at": "2026-03-12T01:23:45.000Z",
"cancelled_at": "2026-03-12T01:25:10.000Z",
"expires_at": "2026-03-12T01:33:45.000Z",
"reservation_released": false
}
}
Update Invoice Alias
| Parameter | Required | Type | Description |
|---|---|---|---|
apikey | Yes | String | User API key |
pw or password | Yes | String | User password |
invoice or alias | Yes | String | New alias |
- Max
4characters - Only uppercase alphanumeric
- Can only be changed once every
7 days - Alias only changes the prefix for new transaction IDs
{
"status": true,
"creator": "Heroikzre Developer",
"code": "ALIAS_UPDATED",
"message": "Alias invoice berhasil diperbarui",
"result": {
"apikey": "APIKEY123",
"invoice_alias": "ABCD",
"changed_at": "2026-03-12T01:40:00.000Z",
"next_change_at": "2026-03-19T01:40:00.000Z"
}
}
User Mutation History
| Parameter | Required | Type | Description |
|---|---|---|---|
apikey | Yes | String | User API key |
limit | No | Integer | Default 50, max 200 |
status | No | String | Filter by transaction status |
pendingpaidcancelledexpired
{
"status": true,
"creator": "Heroikzre Developer",
"code": "USER_MUTATION_HISTORY",
"message": "Histori transaksi berhasil diambil",
"result": {
"apikey": "APIKEY123",
"total": 2,
"limit": 20,
"status_filter": "paid",
"transactions": [
{
"idtrx": "ABCD-7F3K9Q2A",
"invoice_alias": "ABCD",
"payment_status": "paid",
"amount_requested": 10000,
"amount_to_pay": 10001,
"unique_code": 1,
"fee": 0,
"created_at": "2026-03-12T01:23:45.000Z",
"expires_at": "2026-03-12T01:33:45.000Z",
"paid_at": "2026-03-12T01:24:15.000Z",
"cancelled_at": null
}
]
}
}
Common Error Codes
INVALID_REQUESTINVALID_APIKEYINVALID_AMOUNTAMOUNT_TOO_SMALLAMOUNT_TOO_LARGEREQUEST_IN_PROGRESSTOO_MANY_PENDING_PAYMENTSPAYMENT_CREATEDPAYMENT_CANCELLEDPAYMENT_EXPIREDPAYMENT_ALREADY_PAIDALIAS_UPDATEDALIAS_CHANGE_COOLDOWNUSER_MUTATION_HISTORY
Production Notes
- Always store
idtrxfrom create response. - Use full
idtrxfor check and delete. - Invoice alias only changes the prefix of future transaction IDs.
- Avoid aggressive polling to
checkendpoint. - Cancelled transactions are soft-cancelled for safety, not blindly removed.
Integration Examples
Create
curl "https://restapi.heroikzre.my.id/payment/create?apikey=YOUR_APIKEY&amount=10000"
Check
curl "https://restapi.heroikzre.my.id/payment/check?apikey=YOUR_APIKEY&idtrx=MPAY-XXXXXXX"
Delete
curl "https://restapi.heroikzre.my.id/payment/delete?apikey=YOUR_APIKEY&idtrx=MPAY-XXXXXXX"
Alias Update
curl "https://restapi.heroikzre.my.id/payment/alias/update?apikey=YOUR_APIKEY&pw=YOUR_PASSWORD&invoice=ABCD"
Mutation History
curl "https://restapi.heroikzre.my.id/payment/mutasi-user?apikey=YOUR_APIKEY&limit=10"
Branding
- Web: malawalipayment.web.id
- Payment: pay.heroikzre.my.id
- Bot: @heroikzre_paymentgateawaybot
- Owner: @daffaheroikzre
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
QRIS Payment
Create, check, and cancel QRIS transactions
API Integration
API key based access with docs and history endpoints
Transaction History
Payment and withdrawal history from your account