Aulaa is an Indonesian payment gateway that lets any business accept QRIS, Virtual Account, e-wallet and retail (Alfamart/Indomaret) payments from one merchant account, with payouts to 114+ Indonesian banks. This plugin connects your WooCommerce store to it.
This plugin integrates Aulaa as a payment method in WooCommerce. When a customer checks out, a payment link is created in Aulaa and the customer is taken to it, where they pick a payment method (QRIS, GoPay, ShopeePay, bank Virtual Account, Alfamart/Indomaret, etc.) and follow the payment instructions. Aulaa then returns them to the order page. Aulaa is a payment link provider, so your store never receives or stores raw payment credentials such as Virtual Account numbers or QRIS payloads — only the link. Order status is set solely by Aulaa's webhook and by the plugin's own status polling, never by the customer's browser.
Features:
- Supports both classic checkout (shortcode) and Checkout Blocks (React).
- Multi-Currency Support: Stores operating in foreign currencies (USD, SGD, EUR, JPY, MYR, AUD, etc.) can accept payments via Aulaa. Order totals are automatically converted to Rupiah (IDR) before creating the invoice.
- Flexible Exchange Rate Modes: Choice between Manual Fixed Rates (default, merchant-controlled) with friendly human-readable format, or automated daily live rates with built-in sanity checks, circuit breakers, and automatic fallback.
- Configurable Markup Buffer (%): Protects merchants against market volatility and foreign exchange conversion costs.
- Direct Checkout Payment Method Selection: Optionally let customers pick a specific payment method (QRIS, BCA VA, BRI VA, Mandiri VA, BNI VA, E-Wallets, Retail, etc.) directly on the checkout page using Aulaa's live methods API (
GET /v1/payments/methods).
- Order Cancellation Synchronization: Automatically cancels pending invoices at Aulaa (
POST /v1/payments/{id}/cancel) when an order is cancelled in WooCommerce.
- Self-Updating Order Status: After paying, the customer lands back on the Order Received page, which reports the new order status as soon as a webhook or the plugin's status polling confirms the payment — no manual refresh, and the browser never decides the status.
- 409 Conflict Smart Recovery: Automatically recovers from network dropouts during checkout by retrieving the existing invoice
payment_id without failing customer checkouts.
- Refund Status Support: Automatically marks orders as refunded when a refund is processed in Aulaa.
- Sandbox Simulation Tools: Quick links to the Aulaa payment simulator from the WordPress admin order page.
- Recurring Subscriptions Engine: Built-in subscription manager for periodic billing. Set products as recurring (daily, weekly, monthly, yearly), automatically generate renewal orders and invoices on due dates via Action Scheduler, and notify customers via email with direct Aulaa payment links.
- Customer Subscription Portal: Customers can view and manage their subscriptions, view due dates, pay pending renewal invoices, and cancel subscriptions directly in WooCommerce My Account.
- Admin Subscription Management: Full admin dashboard under WooCommerce → Langganan Aulaa with cycle tracking, notes history, manual bill now actions, and status controls.
- Background Auto-Polling: Automatically queries Aulaa's API every 10 minutes via Action Scheduler for pending orders to reconcile payments if webhooks are delayed or blocked.
- HPOS (High-Performance Order Storage) compatible.
- HMAC-SHA256 webhook verification — fraudulent notifications are rejected.
- Idempotent: duplicate notifications do not process an order twice.
- "Check payment status at Aulaa" button on the order edit page (manual reconciliation if a webhook is delayed or missing).
- Optional debug logging to WooCommerce → Status → Logs (source "aulaa").
- Transaction limits: Rp1.000 - Rp500.000.000 per invoice.
This plugin is a bridge to the
Aulaa payment gateway. You need an active Aulaa merchant account with an API Key and Webhook Secret from your project.
- Create an Aulaa merchant account if you do not have one yet, then create a project in the Aulaa dashboard.
- Upload the
aulaa-for-woocommerce folder to wp-content/plugins/, or install via Plugins → Add New → Upload.
- Activate the plugin from the Plugins menu.
- Go to WooCommerce → Settings → Payments → Aulaa (or click "Settings" in the plugin list).
- Enable the gateway and fill in:
- API Key — from your Aulaa dashboard → Project.
- Webhook Secret — from the same Aulaa project.
- Copy the Callback / Webhook URL displayed on the settings page and paste it as the Callback URL in your Aulaa project.
- Make sure the WooCommerce store currency is set to IDR (or enable "Konversi Mata Uang" under Multi-Currency settings if your store uses USD, SGD, EUR, JPY, etc.).
Sandbox vs. Live mode is controlled by the project mode in the Aulaa dashboard, not by the plugin. A walkthrough with screenshots is available at
aulaa.co/panduan.
2.0.6
Menghadirkan mode "Pisahkan per Metode" (Individual Gateways) agar setiap saluran pembayaran (QRIS, VA Bank, E-Wallet, Retail) tampil mandiri di checkout WooCommerce tanpa pilihan bersarang, serta tampilan grid kartu modern untuk mode satu gateway. Sangat disarankan untuk memperbarui.
2.0.5
Pembaruan tampilan pemilihan metode pembayaran langsung di halaman checkout dengan logo bank dan e-wallet resmi. Sangat disarankan untuk memperbarui.
2.0.4
Perbaikan penting untuk pemrosesan webhook agar status order selalu tersimpan ke database sebelum koneksi ditutup (mencegah status pesanan tetap pending di server LiteSpeed/FastCGI). Sangat disarankan untuk memperbarui.
2.0.2
Perbaikan penting untuk konflik permission/menu admin WooCommerce dan Meta WhatsApp, serta pembaruan tautan dokumentasi. Sangat disarankan untuk memperbarui.
2.0.1
Perbaikan penting untuk semua pengguna 2.0.0: memperbaiki status refund yang tidak pernah diterapkan, fatal error yang dapat dipicu pengguna login, halaman checkout yang menggantung saat API tidak dapat dihubungi, dan pembayaran yang tidak terekonsiliasi setelah pemulihan 409. Sangat disarankan untuk memperbarui.
2.0.0
Pembaruan besar v2.0.0: Menghadirkan fitur Langganan Berulang (Recurring Subscriptions), sinkronisasi pembatalan otomatis (Cancel API), pemilihan metode langsung di checkout, fallback QR/VA di halaman Thank You, dan auto-polling setiap 10 menit.
2.2.3
- Fix: logo metode pembayaran di checkout klasik tidak lagi tampil sebesar ukuran asli berkasnya. WooCommerce merender ikon gateway apa adanya, sehingga satu logo bisa muncul setinggi ratusan piksel sementara tetangganya hanya beberapa piksel dan daftar metodenya berantakan. Semua logo Aulaa kini disamakan tingginya dan dirapatkan ke kanan, di checkout klasik maupun Checkout Blocks.
- Fix: logo yang sebelumnya tampil hitam-putih kini berwarna sesuai mereknya. Berkas CIMB Niaga, GoPay, DANA, LinkAja, Indomaret, dan Maybank memakai
currentColor, yang di dalam tag <img> selalu jatuh ke hitam karena SVG-nya dokumen terpisah dan tidak mewarisi warna halaman.
- New: tujuh saluran yang ada di Aulaa tetapi tidak pernah didaftarkan plugin kini tersedia — BSI, BTN, bank bjb, Danamon, Sinarmas, Artha Graha, dan Bank Sahabat Sampoerna Virtual Account. Saluran yang belum aktif di project merchant tetap tidak ditawarkan, karena ketersediaannya diperiksa ke daftar metode live.
- Fix: Kartu Kredit / Debit kini juga terdaftar di WooCommerce Checkout Blocks. Sebelumnya saluran ini hanya ada di checkout klasik, sehingga toko yang memakai Blocks tidak pernah bisa menampilkannya. Slot kartunya memakai lambang jaringan Visa, Mastercard, dan JCB, dan metodenya tampil di urutan pertama.
- Change: ShopeePay memakai berkas logo yang benar. Berkas sebelumnya adalah logo Shopee biasa dalam susunan tegak, yang pada baris metode pembayaran menyusut jadi noktah.
- Tweak: daftar saluran pembayaran kini ditulis satu kali saja (
WC_Aulaa_Sub_Gateway::get_channels()) dan dipakai bersama oleh checkout klasik, Checkout Blocks, dan penjadwal langganan. Empat salinan terpisah sebelumnya sempat berbeda isi, dan itulah sebab kartu kredit hilang dari Blocks.
2.2.2
- Fix: membayar ulang pesanan yang sama — lewat tombol "Bayar" di daftar pesanan atau halaman bayar order — tidak lagi menerbitkan tagihan kedua secara membabi buta. Plugin kini menanyakan dulu nasib tagihan yang sudah ada: bila sudah lunas statusnya langsung diterapkan tanpa tagihan baru, bila masih menunggu dengan metode dan nominal yang sama tautannya dipakai ulang, dan bila memang harus diganti tagihan lamanya dibatalkan di Aulaa.
- Fix: webhook kini juga mengenali ref percobaan bayar yang sudah digantikan. Sebelumnya menimpa
_aulaa_order_ref membuat notifikasi untuk tagihan lama ditolak diam-diam dengan HTTP 200 — Aulaa menganggapnya terkirim dan tidak mengulang — sementara auto-polling hanya melihat tagihan terbaru. Akibatnya pembayaran ke tautan lama bisa masuk tanpa pesanan pernah ditandai lunas, tanpa jalur pemulihan otomatis apa pun.
- Change: pembeli kembali diarahkan langsung ke halaman pembayaran Aulaa di tab yang sama, lalu dikembalikan Aulaa ke halaman pesanan setelah membayar. Membuka tab baru dari halaman pesanan menuntut satu klik tambahan karena pemblokir pop-up, dan alur satu tab ini lebih singkat.
- Tweak: panel halaman pesanan kini fokus pada dua keadaan yang benar-benar terjadi — baru kembali dari Aulaa sebelum webhook mendarat, atau pembayaran yang ditinggal lalu dibuka lagi — dengan status yang memperbarui diri dan satu tautan untuk melanjutkan pembayaran.
2.2.1
- Fix: saluran pembayaran yang tidak dilayani project Aulaa milik merchant tidak lagi muncul di checkout. Sebelumnya validasi ke daftar metode live dilewati setiap kali nominal keranjang tidak diketahui — halaman bayar order dan tautan bayar perpanjangan termasuk di dalamnya — atau ketika daftar metode kosong, sehingga seluruh sub-gateway tampil dan
POST /payments ditolak 400 "metode pembayaran tidak tersedia" setelah pembeli selesai mengisi formulir.
- Fix: validasi ketersediaan saluran yang sama kini berlaku di WooCommerce Checkout Blocks, yang sebelumnya tidak memeriksanya sama sekali.
- Fix: Kartu Kredit / Debit (
credit_card) kini tersedia sebagai metode mandiri di checkout. Saluran ini dilayani API Aulaa tetapi belum punya sub-gateway, sehingga pada mode "Pisahkan per Metode" tidak pernah bisa dipilih pembeli meski aktif di project merchant.
- Fix: metode yang nominal keranjangnya di luar batas min/max tidak lagi ditawarkan. Sebelumnya, bila tidak ada satu pun metode yang cocok, daftar tak tersaring yang dikembalikan sehingga kegagalannya hanya berpindah ke
POST /payments.
- Tweak: metode tanpa field
is_available pada respons API diperlakukan sebagai tersedia, dan daftar metode yang tersaring habis dicatat ke log WooCommerce agar perubahan bentuk respons API langsung terlihat.
2.2.0
- Compliance: Aulaa berperan sebagai penyedia payment link, bukan payment gateway, sehingga nomor pembayaran mentah (nomor Virtual Account dan payload QRIS) tidak lagi disimpan maupun ditampilkan oleh plugin. Yang dipegang dan dibagikan toko hanya tautan pembayaran.
- Compliance: Nomor pembayaran mentah yang tersimpan di meta order oleh versi sebelumnya dibersihkan otomatis per batch di latar belakang lewat Action Scheduler. Pencocokan webhook dan rekonsiliasi tidak terpengaruh karena keduanya memakai id invoice dan order ref, bukan nomor pembayaran.
- Compliance: Penghapusan ketergantungan pada layanan pihak ketiga QR Server (api.qrserver.com). Payload QRIS tidak pernah lagi dikirim keluar dari toko.
- Change: Tautan pembayaran Aulaa dibuka di tab baru. Setelah menekan "Buat pesanan", pelanggan tetap berada di halaman Terima Kasih toko alih-alih dilempar keluar dari toko.
- Change: Panel halaman Terima Kasih kini menampilkan tautan pembayaran beserta indikator status yang diperbarui sendiri. Status dibaca dari server; webhook dan polling tetap satu-satunya penentu status pembayaran, dan browser pelanggan tidak pernah menentukannya.
- Enhancement: Polling status on-demand dari halaman Terima Kasih, dibatasi satu panggilan API per 15 detik per pesanan, sehingga pembayaran terkonfirmasi tanpa menunggu siklus auto-polling 10 menit.
- Tweak: Semua tautan pembayaran Aulaa di wp-admin, portal langganan pelanggan, dan email tagihan perpanjangan dibuka di tab baru dengan
rel="noopener".
2.1.0
- Feature: Multi-Currency Support — toko dengan mata uang selain IDR (USD, SGD, EUR, MYR, JPY, AUD, dll.) kini dapat menggunakan gateway pembayaran Aulaa. Total pesanan otomatis dikonversi ke Rupiah (IDR) sebelum invoice diterbitkan.
- Feature: Pilihan mode penentuan kurs: Kurs Manual (Fixed Rate, default/utama) dengan parser input fleksibel, serta opsi otomatis dari Live Exchange Rate API yang dilengkapi Sanity Check (Circuit Breaker) dan auto-fallback ke kurs manual.
- Feature: Pengaturan Buffer Markup Kurs (%) yang dapat disesuaikan oleh merchant untuk mengantisipasi selisih kurs riil dan biaya valas.
- Enhancement: Tampilan estimasi konversi mata uang yang transparan bagi pembeli di formulir checkout klasik dan WooCommerce Checkout Blocks.
- Enhancement: Penyimpanan audit trail konversi mata uang lengkap (mata uang asal, nominal asli, nilai kurs, mode kurs, dan nominal IDR) pada metadata pesanan dan metabox detail pesanan admin.
- Notice: Penambahan disclaimer tanggung jawab finansial dan hukum pada setelan gateway admin.
2.0.6
- Feature: Menghadirkan mode "Pisahkan per Metode" (Individual Gateways) — QRIS, Virtual Account (BCA, Mandiri, BNI, BRI, CIMB, Permata, dll.), E-Wallet (ShopeePay, GoPay, OVO, DANA), dan Retail tampil langsung sebagai pilihan utama mandiri di checkout WooCommerce tanpa radio button bersarang ("pilihan di dalam pilihan").
- Feature: Kontrol masing-masing metode di WooCommerce → Pengaturan → Pembayaran untuk mengaktifkan/menonaktifkan, mengubah judul, dan mengatur urutan tampilan.
- Enhancement: Tampilan baru mode satu gateway ("Pilih di Checkout") menggunakan grid kartu visual interaktif responsif dengan logo resmi tanpa radio button lingkaran ganda.
- Enhancement: Dukungan sub-gateway untuk WooCommerce Checkout Blocks (React).
- Fix: Sinkronisasi pembatalan otomatis, auto-polling 10 menit, dan aksi order admin sekarang mencakup semua transaksi dari sub-gateway Aulaa.
2.0.5
- Feature: Tampilan baru pemilihan metode pembayaran langsung di checkout dengan daftar kartu vertikal rapi, radio button di kiri, dan logo resmi bank/e-wallet di kanan (BCA, Mandiri, BNI, BRI, CIMB, Permata, QRIS, DANA, OVO, ShopeePay, dll.).
- Feature: Integrasi aset logo bank dan metode pembayaran resmi.
- Tweak: Penghapusan opsi dropdown fleksibel pada mode "Pilih di Checkout" agar pembeli langsung memilih metode spesifik.
- Tweak: Peningkatan batas timeout pemanggilan endpoint
/v1/payments/methods untuk performa render checkout yang lebih cepat.
2.0.4
- Fix: webhook execution order updated to process payment completion and save order status to database before returning HTTP 200 OK response, preventing premature script termination on LiteSpeed and FastCGI servers.
2.0.2
- Fix: fixed custom post type capability conflict where registering
aulaa_subscription hijacked the manage_woocommerce capability, causing admin sidebar menus (WooCommerce Payments, Meta WhatsApp) to disappear and triggering a 403 permission error on WooCommerce Settings.
- Docs: the plugin page now links to the Aulaa homepage, pricing, API documentation, guides and sign-up, so merchants can reach account setup from the plugin listing.
- Docs: added FAQ entries covering account setup, supported payment methods and where the API documentation lives.
- Docs: shortened the one-line description, which was over the 150-character limit and was being cut off in the WordPress.org listing.
- Tweak: Plugins → Installed Plugins now shows Aulaa website, documentation and support links in the plugin row.
- Tweak: the API credentials section of the gateway settings links straight to the Aulaa dashboard and sign-up page.
2.0.1
Maintenance release fixing defects introduced in 2.0.0. Upgrading is recommended for every 2.0.0 install.
- Fix: refund status from Aulaa was never applied — the "already paid" guard returned before the refund branch could run, so
refunded webhooks were silently ignored.
- Fix: removed an
admin_post hook registered to a method that was never defined, which produced a fatal error for any logged-in user who reached that URL.
- Fix: auto-polling fetched the oldest pending orders and then discarded ones older than three days, so abandoned checkouts could fill the batch and starve recent orders. The age limit is now applied in the query.
- Fix: failed payment-method lookups are now cached briefly. Previously, an unreachable Aulaa API made every checkout page render wait on a 30-second HTTP timeout.
- Fix: HTTP 409 recovery now reads back the invoice's original order reference. Previously it stored a freshly generated reference that the webhook could never match, leaving paid orders stuck as pending.
- Fix: renewal invoices validate the same Rp1.000 - Rp500.000.000 bounds as checkout.
- Fix: dates are rendered with
wp_date(), so stores in time zones observing DST display the correct local time.
- Fix:
label_count for subscription statuses no longer passes variables to _n_noop().
- Fix: uninstall now also removes the payment-method cache and any leftover renewal locks.
- Feature: payment method selection (QRIS, VA, E-Wallet, Retail) now also works on Checkout Blocks, not just classic checkout.
- Feature: the renewal notification is now a proper
WC_Email — configurable under WooCommerce > Settings > Emails, with theme-overridable templates and a plain-text version.
- Docs: declared the QR Server (goqr.me) image API under External services.
- Housekeeping: removed a stray plugin zip archive that was being shipped inside the plugin.
2.0.0
- Major release: Advanced Aulaa API integration and Recurring Subscriptions v2.
- Feature: Direct payment method selection at checkout (QRIS, VA, E-Wallet, Retail) via live API (
GET /v1/payments/methods).
- Feature: Order cancellation synchronization with Aulaa API (
POST /v1/payments/{id}/cancel).
- Feature: Fallback payment instructions on WooCommerce Thank You / Order Received page (QRIS QR Code & Virtual Account with 1-click copy button).
- Feature: Smart recovery from HTTP 409 Conflict during checkout retries.
- Feature: Refund status synchronization (
refunded).
- Feature: Transaction amount bounds validation (Rp1.000 - Rp500.000.000).
- Feature: Sandbox simulation shortcuts in WordPress Admin Order screen.
- Feature: Recurring subscriptions engine for periodic billing via Aulaa payment link invoices.
- Feature: Product-level subscription settings (interval, period, number of cycles).
- Feature: Action Scheduler automated renewal processing with lock protection.
- Feature: Automatic renewal order creation and email notifications with direct payment links.
- Feature: Customer self-service subscription portal under WooCommerce My Account.
- Feature: Admin subscription dashboard under WooCommerce → Langganan Aulaa.
- Feature: Background auto-polling every 10 minutes to query Aulaa API for pending orders.
1.0.1
- Fix webhook timeout (send early HTTP 200 OK response with fastcgi_finish_request before processing order and background hooks).
1.0.0
- Initial release: Aulaa gateway (classic checkout + Blocks), signed webhooks, HPOS.
- Order action "Check payment status at Aulaa" (manual reconciliation via GET /payments/{id}).
- Optional debug logging to WooCommerce Logs (credentials are never stored in logs).