Payment orchestrationForjio suite, IDR-native, not a MoR

Connect your provider and start charging. No glue code.

Bring your own Xendit, Midtrans, or PayPal — paste your keys and Plugipay handles the provider orchestration, the subscriptions, the dunning, and a ledger that actually balances. Priced in IDR — flat fee, not a percent of your MRR.

plugipay checkoutplugipay.com/c/cs_01HXZ8...
plugipay.com / dashboard / checkout-sessions / cs_01HXZ8
Rp 299,000 · QRIS

→ checkout_session.completed · settled in 12ms

GMV (30d)
Rp 487M
Today
+Rp 18M
Top method
QRIS

Every checkout writes a balanced double-entry ledger row. Your provider, your keys.

How it works

Three steps. Two minutes.

No PSP application, no merchant onboarding wait, no glue code. Sign up, install the SDK, charge a card.

01

Pick a provider

Sign up and we provision an automatic Xendit sub-account — no KYC for you, payouts wired to your bank. Or paste your own Xendit, Midtrans, or PayPal keys if you already have them.

02

Drop in the SDK

npm install @forjio/plugipay-node — or the embedded JS widget. Three lines to a checkout session, signed webhooks, idempotency keys, type-safe events. Sandbox keys (pk_test) ship alongside live keys.

03

Get paid (and reconcile)

QRIS, VA, e-wallets, cards, PayPal — every successful charge writes a balanced double-entry ledger row. Daily payouts, dunning emails on failure, customer portal for self-service.

Features

Everything you need from a payments platform.

Six things we ship. No quarterly roadmap theatre — if it's not on this page, we don't do it. IDR-native from day one.

One API, every method

QRIS, VA across five banks, OVO, DANA, LinkAja, ShopeePay, cards, retail counters, PayPal. Swap adapters without re-integrating. Worse than Primer at global routing, better at Indonesia.

Outbox webhooks

Every state change hits the outbox inside the same Postgres transaction. Huudis fans out with retries, dedup, and a circuit breaker. Dropped one? plugipay events replay.

Double-entry ledger

Plans, trials, coupons, proration, pause/resume, dunning. Every charge writes a balanced row. sum(debits) === sum(credits) at every point in time. PPN 11% built in.

Customer portal

Signed 15-minute portal sessions. Your buyers update their card, cancel at period end, or download past invoices themselves. You keep the customer relationship.

Real CLI

plugipay listen forwards live events to localhost with signature verification. plugipay clocks advance --days 35 time-travels a subscription through dunning in under a second.

Type-safe SDKs

REST API with idempotency keys, type-safe SDKs (Node, Python, Go), and a CLI: npm i -g @forjio/plugipay-cli. Separate pk_test sandbox keys plus test-clock subscription advance.

Pricing

Flat platform fee. No percent of MRR.

Free up to Rp 25M GMV / month. Pay your gateway whatever you'd pay them direct. Paid tiers add a thin +0.3% on volume that scales down to +0.2% on Scale — never a percent of your MRR.

Starter

For prototypes and side projects under Rp 25M GMV / month.

Rp 0forever
  • Up to Rp 25M GMV / month (or 200 tx)
  • 0% platform fee — gateway pass-through only
  • All methods (QRIS, VA, e-wallets, cards) for IDR
  • PayPal for international (USD)
  • Outbox webhooks + signed events
  • Full CLI
Start free
Most popular

Growth

Subscriptions + dunning + customer portal.

Rp 199.000/ month
  • Unlimited GMV
  • +0.3% platform fee on processed volume
  • Subscriptions + dunning + portal
  • BYO Xendit / Midtrans / PayPal
  • Multi-merchant via on-behalf-of
  • Double-entry ledger export
Get started

Scale

Daily payouts + priority support + lower take-rate.

Rp 999.000/ month
  • Unlimited GMV
  • +0.2% platform fee on processed volume
  • Daily payouts
  • Priority email support < 24h
  • 25 webhook endpoints, 50 API keys
Get started

Compare

Why teams swap to Plugipay.

Stripe doesn't run in Indonesia. Midtrans and Xendit work, but you're wiring subscriptions yourself. Chargebee is great until your IDR volume meets their global rate card. Plugipay sits in the middle and stays cheap.

CapabilityPlugipayStripeMidtrans directChargebee
Sign up → first charge~2 minKYC daysKYC daysDays
Pricing modelFlat fee + 0.3-0.4%Per-tx %Per-tx %0.75% on top of gateway
IDR-native (QRIS, VA, e-wallets)
BYO Xendit / Midtrans / PayPal
Subscriptions + dunning + portal
Real CLI with local event listen
Double-entry ledger out of the box
Not a Merchant of Record (you own contract)

For developers

CLI-first. Type-safe SDKs. Webhooks that don't lie.

Real CLI, type-safe SDKs for Node.js, Python, and Go, REST API, signed webhooks, idempotency keys, and pk_test sandbox keys. Test before charging a single real card.

  • Create, list, refund, replay — all scriptable from the CLI
  • OpenAPI spec + type-safe SDKs (Node, Python, Go)
  • Webhooks with HMAC signatures + replay protection (t=…,v1=…; 5-min window)
  • Separate pk_test + pk_live keys per workspace, plus test-clocks for subscriptions
plugipay — sandbox
zsh
# Install once
$ npm i -g @forjio/plugipay-cli

# Log in with your Forjio account
$ plugipay auth login
✔ Authenticated as you@example.com via Huudis

# Create a checkout session
$ plugipay checkout create \
    --amount 299000 --currency IDR
✔ Created: plugipay.com/c/cs_01HXZ8...
charge.ts
ts
import { Plugipay } from "@forjio/plugipay-node";

const plugipay = new Plugipay({
  apiKey: process.env.PLUGIPAY_KEY!,
});

const session = await plugipay.checkout.sessions.create({
  amount: 299000,
  currency: "IDR",
});

console.log(session.url); // plugipay.com/c/cs_01HXZ8...

One login

One Huudis login. Every Forjio product.

Plugipay shares its account system with the rest of the Forjio suite through Huudis SSO. Add a teammate to Plugipay and they're already part of your other Forjio workspaces.

Huudis

identity

Plugipaypaymentsyou are here
Storlaunchstorefront
Serrontservice invoicing
Fulkrumafulfillment
Ripllomarketing
MalaposPOS
Suppuosupport

Powered by Huudis — the identity provider for the Forjio suite.

FAQ

Common questions.

  • Are you a Merchant of Record? Who's on the contract with the buyer?
    No — Plugipay is not a MoR. Your business stays on the merchant contract with Xendit, Midtrans, or PayPal. We orchestrate the payment, ledger, subscriptions, and dunning, but the gateway relationship is yours. That means lower fees and tax stays your problem (or your accountant's).
  • What providers do you support?
    Today: bring your own Xendit, Midtrans, or PayPal — paste your keys and Plugipay handles orchestration, webhooks, refunds, and reconciliation on top. Coming soon: a fully-managed Xendit sub-account (no KYC for you, payouts wired direct to your bank in IDR) for teams who would rather not touch a provider dashboard at all.
  • How do refunds and chargebacks work?
    Refunds are a single API call (or one click in the dashboard) — we route to the underlying provider and write the matching ledger reversal. Chargebacks land as webhooks (plugipay.dispute.created) with the gateway evidence URL — respond directly via the provider dashboard, we surface the alert and resolution.
  • Can I migrate subscriptions from Stripe / Chargebee / Recurly?
    Yes. We import customer records, plans, and active subscriptions via CSV or the bulk-import API. We accept payment tokens from PayPal Vault and Xendit. Cards from Stripe require a network token transfer (we'll coordinate with both sides). Migration usually takes a week including a parallel-run period.
  • What happens if Plugipay goes down?
    Outbox events keep accumulating during a downtime — when we're back, the worker drains and replays in order. Formal SLA + multi-region failover ship with Enterprise; Growth and Scale tiers run on the same infra with best-effort uptime targets while we collect launch-period data.
  • Why "Forjio family" — is Plugipay open source or proprietary?
    Plugipay is proprietary, hosted by Forjio. The CLI and SDKs are open source (MIT). Plugipay shares identity (Huudis SSO) and billing infra with the rest of the Forjio suite — Storlaunch, Fulkruma, Ripllo, etc. — so the same Forjio account works across all of them. You can use Plugipay totally standalone if you only want payments.
  • How does PPN (11%) work?
    We invoice you in IDR with PPN-compliant invoices on every paid tier. PPN is added to your Plugipay platform fee (not to your customers' charges — those flow through your provider untouched). e-Faktur and faktur pajak documents land on Enterprise. NPWP optional but recommended for VAT input credits.

Plug it in. Take payments. In two minutes.

Free up to Rp 20M GMV / month. No card, no sales call. First checkout session in three commands.

Free forever on Starter. PPN-compliant IDR invoicing on every paid tier.