Plugipay — Plugipay managed (xenPlatform) Provider Guide (/docs/providers/managed) Copy
- Project: plugipay (M4, Forjio split)
- Source brief:
spec/prd.md§10 (Pricing) ·copy/landing-copy.md(voice anchor, shipped) ·copy/docs/quickstart-dev.md(voice + structure parallel) · positioning memo2026-04-19(xenPlatform as default, dual-track funnel) · Xendit xenPlatform reference docs - Audience: Developers and technical founders evaluating the zero-setup path. Some merchants land here from
/docs/providersafter Concepts. Most read this before signup to confirm fees, limits, and migration story. Ecosystem norm: English. - Voice anchor:
copy/landing-copy.md— "Stripe circa 2014, before corporate polish." Three voice rules: (1) admit trade-offs, (2) show with a runnable command (or a real number), (3) no success theatre. - Register: Imperative mood. Terse. Numbers before claims. No second-person marketing (
You'll love...,Your team deserves...). UseMost merchants...or just show the math. No motivational framing. Nojourney,seamlessly,empowering,unlock,best-in-class,revolutionary,next-generation,ecosystem solution. - Technical terms: full English ecosystem norm.
xenPlatform,Xendit,QRIS,VA,OVO,DANA,Alfamart,Indomaret,KYC,GMV,PPN,IDR,webhook,sandbox,test mode,live mode— keep verbatim. Entity names PascalCase:CheckoutSession,Subscription,Plan,Invoice,Ledger.
Information architecture
| # | Block | Goal |
|---|---|---|
| 1 | Hero | Name the path, set the "no provider account needed" promise, link to signup |
| 2 | Behind the scenes | What Plugipay does on signup — sub-merchant provisioning via xenPlatform |
| 3 | Payment methods | The full method list ships on day one — no enable-toggle dance |
| 4 | Fees | Worked example — Plugipay fee + Xendit pass-through |
| 5 | Limits | Initial GMV cap until KYC top-up |
| 6 | When to migrate | The four signals that you've outgrown the managed path |
| 7 | How migration works | Steps + zero-code-change story (orchestrator abstraction) |
| 8 | Tradeoffs | What you don't own on this path — explicit |
| 9 | Common questions | The questions we get asked the week after signup |
Nine blocks. One page. No setup walkthrough — the whole point of this path is there's nothing to set up.
1. Hero
Single column. No code block on the right — there are no commands to run.
Eyebrow
Providers · Plugipay managed (recommended)
Headline (8 words)
The zero-setup path. No Xendit account needed.
Subheadline (one sentence, 28 words)
Sign up, get a sub-merchant provisioned automatically on Xendit's xenPlatform, and start accepting payments in QRIS, VA, e-wallets, cards, and convenience stores — same day.
Trade-off line (voice rule #1, under subhead)
You don't own the underlying Xendit account on this path. We do. That's the whole point — it's also the whole tradeoff. See §7 Tradeoffs before you commit volume.
Primary CTA (inline under subhead)
- Start for free — 2-minute setup →
/signup(brand-700 button) - Compare with BYO Xendit →
/docs/providers/xendit(text link, secondary)
[Screenshot: Plugipay onboarding Step 1 — "Plugipay managed (recommended — zero-setup, 2 min)" radio selected, no fields rendered]
2. What happens when you sign up
Three things happen, in order, server-side, when you create a Plugipay account on the managed path:
- Sub-merchant provisioning. Plugipay calls the Xendit xenPlatform API and creates a sub-account under our master account. Settlement, refunds, and disputes route to your sub-account — the parent relationship is held by Plugipay.
- Method enablement. All xenPlatform-supported methods (QRIS, VA, OVO, DANA, ShopeePay, LinkAja, cards, Alfamart, Indomaret) are enabled by default. No per-method toggle dance, no separate underwriting.
- Webhook wiring. The sub-account's webhook URL is set to Plugipay's internal ingress. Events flow into your
Ledgerandoutbox, then out to your own webhook subscribers via the standard Plugipay envelope.
Typical sequence finishes in under three seconds. If xenPlatform rate-limits or returns 5xx, Plugipay retries with backoff and surfaces a banner in the dashboard.
[Screenshot: Plugipay Dashboard — Settings → Providers → Plugipay managed → Status panel showing "active · sub-merchant ID: subm_..."]
3. Available payment methods
Same set as Xendit's xenPlatform supports for Indonesia. Available the moment provisioning completes:
- QRIS — universal QR code scheme (works with all major Indonesian banks and e-wallet apps)
- Virtual Account (VA) — BCA, Mandiri, BNI, BRI, Permata, CIMB
- E-wallets — OVO, DANA, ShopeePay, LinkAja
- Cards — Visa, Mastercard, JCB (3DS where issuer requires)
- Convenience stores — Alfamart, Indomaret
PayPal is not available on the managed path. xenPlatform is Xendit's product and routes only to Xendit's gateway. To accept PayPal, run the BYO PayPal path in parallel — Plugipay's orchestrator handles routing across providers without code changes (see /docs/providers/paypal).
4. Fees
Two layers stack on the managed path:
- Xendit's gateway fees — passed through at cost, no markup.
- Plugipay's platform fee — based on your tier. See
/docs/pricingfor the full table.
Worked example — Rp 299.000/bulan subscription on Growth tier, customer pays via QRIS
| Line | Amount |
|---|---|
| Customer pays (Rp 299.000 + PPN 11%) | Rp 331.890 |
| Xendit QRIS fee (passed through, ~0,7%) | − Rp 2.323 |
| Plugipay platform fee (0,4% of gateway volume) | − Rp 1.327 |
| You receive per transaction | Rp 328.240 |
| Plugipay monthly subscription (Growth) | Rp 299.000/bulan flat |
Exact Xendit fees vary by method (QRIS, VA, e-wallet, and card all differ). Check Xendit's pricing page for the authoritative rates; Plugipay passes them through at cost. Fees show up as line items in the Ledger for month-end reconciliation.
5. Limits
Initial GMV cap (before KYC top-up): xenPlatform sub-accounts start with a per-month GMV cap that applies until you complete Xendit's KYC top-up. The exact cap depends on the current xenPlatform onboarding tier and is shown in your Plugipay dashboard at Settings → Providers → Plugipay managed → Limits. When you approach the cap, you get an in-dashboard banner and an email — upload your KYC documents at that point to lift the limit.
Plugipay tier caps stack on top of xenPlatform's. If you're on the Starter tier and GMV exceeds Rp 20M/month, Plugipay hard-blocks new CheckoutSession creation; existing subscriptions continue to charge. The dashboard banner prompts you to upgrade. See /docs/pricing for tier boundaries.
[Screenshot: Plugipay Dashboard — Settings → Providers → Plugipay managed → Limits card showing GMV used vs. cap, KYC status pill]
6. When to migrate to BYO Xendit
Migrate when one or more of these is true:
- You want direct control of the Xendit relationship — your own contract, account manager, pricing negotiation.
- You're approaching enterprise volume (typically > Rp 2B/month GMV) and Xendit will quote you better rates than Plugipay's pass-through.
- You need xenPlatform-restricted features — most commonly direct-debit BCA, custom-branded invoice pages, or reporting fields not exposed to sub-accounts.
- Your finance team wants the settlement account in your own name on Xendit's records.
Migration is about ten minutes of dashboard work, zero code change. See §7.
7. How migration works
Plugipay's orchestrator abstracts the gateway behind a single internal interface. The same CheckoutSession, Subscription, Invoice, and Ledger objects work across Plugipay managed, BYO Xendit, BYO Midtrans, and BYO PayPal. Your application code never names the provider.
The migration:
- Open a Xendit account in your own name — see
/docs/providers/xenditStep 1. - Create a secret key + callback token — see
/docs/providers/xenditStep 2. - In Plugipay, go to Settings → Providers → Add provider → Xendit (BYO) and paste the credentials.
- Choose a routing rule. Send all new sessions to BYO Xendit, or let active subscriptions finish on the managed path, or split by currency/country/method.
- Cut over. Deactivate
Plugipay managedin Settings → Providers. Existing managed-sub-account balances settle to your Xendit account on the next settlement cycle — no money stranded, no migration script.
What does not change: CheckoutSession IDs, customer PaymentTokens (re-vaulted on next charge), webhook subscriber URLs, CLI scripts, dashboard URLs.
[Screenshot: Plugipay Dashboard — Settings → Providers → Routing rules editor with "managed → byo_xendit" cutover rule]
8. Tradeoffs
What you give up on the managed path, stated plainly:
- You don't own the Xendit account. Settlement routes to a sub-account Plugipay holds. If Plugipay's master xenPlatform relationship ever changed, your sub-account would migrate — 90 days notice, but cutover-window risk on you.
- No direct fee negotiation. Plugipay passes Xendit's standard rates through. Enterprise rates require migrating to BYO Xendit.
- xenPlatform-only methods. No PayPal on this path (run BYO PayPal in parallel). No Midtrans (run BYO Midtrans in parallel). Direct-account-only Xendit features (custom invoice branding, some reporting endpoints) aren't available.
- KYC still applies. xenPlatform reduces day-one friction but doesn't eliminate KYC — you'll upload business documents to lift the initial GMV cap. Plan for that around Rp 15M/month volume.
These are real costs. We list them here so you find them now, not three weeks after signup.
9. Common questions
Can I run Plugipay managed alongside BYO Midtrans or BYO PayPal? Yes. Configure routing rules in Settings → Providers to split traffic by currency, method, or country.
How is settlement handled? Xendit settles to the sub-account on the standard schedule (T+1 most methods, T+2 some VA banks). Available balance shows at Settings → Providers → Plugipay managed → Balance; withdrawals use Xendit's standard disbursement flow.
Refunds and disputes?
Same as BYO — call POST /v1/refunds with the original CheckoutSession ID, or use the dashboard. VA partial refunds are inconsistent across banks; QRIS and cards support partial refunds reliably.
Is the managed sub-account in test mode or live mode?
Both. Each Plugipay account gets a sandbox sub-account (subm_test_...) and a live sub-account (subm_live_...). Switch with the standard environment toggle — no provider re-config.
Something wrong with this doc?
Open an issue or email support@forjio.com with the section you hit. Docs that are wrong are worse than docs that are missing.
10. Placement notes
All sections render in code/frontend/src/app/(marketing)/docs/providers/managed/page.tsx as scroll-anchored blocks (#hero, #behind-the-scenes, #methods, #fees, #limits, #migrate, #how-migration-works, #tradeoffs, #faq). Sidebar nav entry comes from docs/index.md §3.3 and links to code/frontend/src/app/(marketing)/docs/providers/page.tsx. Screenshot assets go to code/frontend/public/docs/providers/managed/ (PNG, 2x) — Iro/Hikari produce them during implementation.