LPG is a payment orchestration platform and PayFac-as-a-Service for sponsor banks and their partners. One API to onboard merchants, move money, and manage your ISO/ISV hierarchy — with the bank's compliance guardrails built in.
Run a PayFac program end-to-end — partner onboarding, risk and compliance review, fee schedules, and funding — from one control plane.
Board and manage your merchants, set pricing within bank-approved limits, and see payouts and reporting in real time.
A clean, versioned REST API with idempotency, webhooks, and test mode — so you can integrate once and scale across the hierarchy.
Go from zero to your first payment in four steps. The development base URL is
http://192.168.1.182:8000; production uses https://api.lpg.dev.
Create an API key from the portal (Developer → API Keys). Every key is scoped to an
organization and a mode — test or live (livemode). Start in test.
Send your key as a Bearer token on every request. All write paths are scoped by your organization
(bank_tenant_id) and enforce livemode.
curl http://192.168.1.182:8000/api/v1/health \
-H "Authorization: Bearer lpg_test_your_key_here"
A PaymentIntent tracks a payment through its lifecycle
(requires_payment_method → requires_confirmation → processing → succeeded / canceled).
Amounts are integer minor units (cents) — never floats. Pass an
Idempotency-Key so retries never double-charge.
curl -X POST http://192.168.1.182:8000/api/v1/payment-intents \
-H "Authorization: Bearer lpg_test_your_key_here" \
-H "Idempotency-Key: a1b2c3d4-..." \
-H "Content-Type: application/json" \
-d '{"amount": 4200, "currency": "usd", "description": "First charge"}'
Subscribe to webhooks for asynchronous events (payment succeeded, payout paid,
onboarding approved), swap your test key for a live key, and you're processing real volume.
# Webhook delivery is signed and retried with backoff.
# Verify the signature, then 2xx to acknowledge.
POST https://your-app.com/webhooks/lpg → 200 OK
Sponsor Bank → Partner (ISO/ISV/PayFac) → Merchant. Every object and query is scoped to where you sit in the tree.
Send an Idempotency-Key on POSTs; the same key
returns the same result, so retries are safe.
livemode separates sandbox from real
money. Keys, objects, and webhooks are mode-scoped.
All amounts are integer minor units and decimals are exact — no floating point, ever.
The API is versioned by URL path (/api/v1/) so
integrations don't break under you.
Signed, retried event delivery keeps your systems in sync with payments, payouts, and onboarding.