IDEN
Wacommerce

Buat Order & Metode Pembayaran

Buat order lewat Public API dan pilih metode pembayaran lewat field payment.method (qris, virtual_account, manual_transfer, cod, snap/payment_link).

Buat order lewat `POST /orders`. Order mendukung field `payment.method` untuk memilih metode pembayaran, dan `payment.bank` opsional untuk virtual account. Nilai `billingType` dan `payment.method` bersifat sejajar — isi keduanya agar konsisten.

Metode pembayaran yang didukung

  • `snap` / `payment_link` — Midtrans Snap / payment link
  • `qris` — QRIS
  • `virtual_account` — virtual account (butuh `payment.bank`, mis. `bni`; aktif sekarang: BNI, BRI, Permata, CIMB)
  • `manual_transfer` — transfer manual ke rekening
  • `cod` — bayar di tempat (cash on delivery)

Contoh QRIS

json{
  "to": "+628123456789",
  "billingType": "qris",
  "payment": { "method": "qris" }
}

Contoh Virtual Account

json{
  "to": "+628123456789",
  "billingType": "virtual_account",
  "payment": { "method": "virtual_account", "bank": "bni" }
}

Contoh COD

json{
  "to": "+628123456789",
  "billingType": "cod",
  "payment": { "method": "cod" }
}

Diskon ongkir

Body order menerima `shippingDiscount: { type, value }` untuk memotong biaya ongkir. `type` adalah `percentage` atau `fixed`. Ongkir bersih = `max(0, ongkir − diskon)` — diskon tidak pernah membuat ongkir negatif.

json{
  "to": "+628123456789",
  "billingType": "cod",
  "payment": { "method": "cod" },
  "shippingDiscount": { "type": "percentage", "value": 50 }
}

Field payment.method

Field `payment.method` menormalkan metode pembayaran. Jika provider pembayaran (Midtrans) belum dikonfigurasi, response bisa berstatus `PENDING_CONFIGURATION` dengan `provider: stub` — lihat troubleshooting Midtrans belum dikonfigurasi.

BCA VA sengaja tidak menjadi opsi default karena merchant Midtrans saat ini mengembalikan 402 `Payment channel is not activated`. Setelah BCA VA aktif di Midtrans Dashboard, tambahkan `bca` ke `MIDTRANS_ENABLED_VA_BANKS`.