Malawali Payment Malawali Payment
Bantuan
Documentation
Malawali Payment · REST API v1

Integrasi Pembayaran QRIS

Buat order dari server Anda, tampilkan QR ke pelanggan, lalu terima callback order.paid setelah pembayaran terdeteksi otomatis. API Key dibuat per Project dan hanya aktif selama langganan berjalan.

Base URL http://localhost:3001/api
Autentikasi Header x-api-key: pk_live_…
Format JSON (request & response)
Webhook HMAC-SHA256, retry maksimal 3×, timeout 10 detik

Settings

Atur cara Malawali Payment menentukan nominal akhir (pay_amount).

POST /api/merchant/settings

POST
amount_modefee · unique · hybrid
fee_enabledBoolean, tambahkan fee ke nominal.
unique_enabledBoolean, tambahkan kode unik random.
unique_digitsJumlah digit kode unik (1–3).
curl -X POST http://localhost:3001/api/merchant/settings \
  -H "x-api-key: pk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "amount_mode": "hybrid",
    "fee_enabled": false,
    "unique_enabled": false,
    "unique_digits": 3
  }'
const res = await fetch("http://localhost:3001/api/merchant/settings", {
  method: "POST",
  headers: { "x-api-key": "pk_live_xxxxxxxxxxxxxxxxxxxxxxxx", "Content-Type": "application/json" },
  body: JSON.stringify({
    amount_mode: "hybrid",
    fee_enabled: false,
    unique_enabled: false,
    unique_digits: 3,
  }),
});
const data = await res.json();
<?php
$ch = curl_init("http://localhost:3001/api/merchant/settings");
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => ["x-api-key: pk_live_xxxxxxxxxxxxxxxxxxxxxxxx", "Content-Type: application/json"],
  CURLOPT_POSTFIELDS => json_encode([
    "amount_mode" => "hybrid",
    "fee_enabled" => false,
    "unique_enabled" => false,
    "unique_digits" => 3,
  ]),
]);
$data = json_decode(curl_exec($ch), true);
import requests

res = requests.post(
    "http://localhost:3001/api/merchant/settings",
    headers={"x-api-key": "pk_live_xxxxxxxxxxxxxxxxxxxxxxxx"},
    json={
        "amount_mode": "hybrid",
        "fee_enabled": False,
        "unique_enabled": False,
        "unique_digits": 3,
    },
    timeout=10,
)
data = res.json()