Wokku’s paid plans use a monthly invoice model. There’s no metering, no deposit balance, no per-resource line items — just one flat invoice per workspace per month, plus optional add-on lines (extra seats on Team, mid-cycle proration on plan switches).
This page covers the full invoice lifecycle.
The cycle
day 0 subscribe (or upgrade) → 7-day free trial begins
day 7 trial ends → first invoice generated
day +N billing date (your anchor day) → invoice payable from now
day +N+7 due date → unpaid? grace period begins
day +N+14 grace period ends → apps suspended if still unpaid
day +N+30 next billing date → cycle repeats
Your billing date is anchored to the day of the month you first subscribed. If you sign up on the 15th, every monthly invoice lands on the 15th.
What the invoice contains
A standard renewal invoice has one line:
Wokku Pro · 2026-06-15 → 2026-07-15 Rp 225.000
Total: Rp 225.000
On the Team plan with extra seats, you’ll see a second line:
Wokku Team · 2026-06-15 → 2026-07-15 Rp 750.000
Extra seats × 2 · 2026-06-15 → 2026-07-15 Rp 90.000
Total: Rp 840.000
On a mid-cycle upgrade, you’ll see a proration line:
Pro → Team upgrade · prorated 18 of 30 days Rp 315.000
Total: Rp 315.000
When invoices are generated
— First invoice — at the end of your 7-day trial
— Renewal invoice — 7 days before each billing date (via Billing::IssueUpcomingInvoicesJob, daily)
— Proration invoice — immediately on a mid-cycle upgrade
You get an email when the invoice is generated, with the amount and the iPaymu payment link.
Paying
iPaymu handles all payment methods:
— QRIS — universal Indonesian QR — works with any e-wallet
— Virtual Account — BCA, Mandiri, BNI, BRI, Permata
— E-wallet direct — GoPay, OVO, DANA, LinkAja
— Card — Visa, Mastercard, Amex (3DS where supported)
You can pay from the email link or from /dashboard/billing. iPaymu’s webhook updates the invoice status to paid within seconds of the bank confirmation.
Grace period & suspension
If an invoice goes unpaid past the due date, you enter a 7-day grace period. Nothing visible happens — your apps stay up, your team keeps working. We email you reminders at days 1, 3, and 6.
If the invoice is still unpaid at 7 days past due, Billing::SuspendOverdueJob runs and:
— Sets the workspace’s billing_status to suspended
— Stops every paid app’s containers (data preserved on disk; databases keep running)
— Emails the workspace owner
Pay the invoice → apps wake up automatically (within ~30 seconds of the webhook landing). No redeploy, no data loss.
Mid-cycle changes
Upgrade
Switch from Solo to Pro on day 18 of a 30-day cycle:
— A proration invoice is issued immediately for the difference, prorated for the days remaining: (Pro_price - Solo_price) × (days_left / total_days)
— The plan flips as soon as the proration invoice is paid (or right away if you’re inside the trial)
— Your next regular renewal lands on the original billing date with the full new plan price
Downgrade
Switch from Pro to Solo on day 18:
— No immediate invoice — you’ve already paid for Pro through the end of the cycle
— The plan change is scheduled for the next billing date
— Until then, you keep Pro
— The next renewal invoice is at the Solo price
This is intentional: you don’t lose what you’ve paid for.
Cancel
Cancel the plan from /dashboard/plan:
— Like downgrade: scheduled for end of cycle
— At the billing date, you fall back to the Free plan
— Your paid resources (Postgres beyond 100 MB, second Redis, larger boxes) are gracefully restricted: data preserved, but reads/writes that exceed the Free tier limits get a 503 with a “upgrade to continue” message
Refunds
Paid invoices are non-refundable as a default. If something goes wrong on our side (hosting incident, billing bug, data loss caused by us), email billing@wokku.cloud with the invoice number — we’ll work it out case-by-case.
API
curl https://wokku.cloud/api/v1/invoices \
-H "Authorization: Bearer $TOKEN"
Returns every invoice for the active workspace, ordered newest first. Each row includes status (pending / paid / failed / expired / refunded), amount_idr, period_start, period_end, and the iPaymu payment URL if still unpaid.
Self-hosted
Community Edition has no invoice flow. You run the platform yourself; there’s nothing to bill.
See also
— Plans & Pricing — what each plan costs and includes
— Usage — live view of plan + seat + bundle utilization
— Plan Bundles — DB / Redis / MinIO caps that ship with each plan