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 base URL for this environment is
https://lpgpay.com.
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 https://lpgpay.com/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 https://lpgpay.com/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.
Send one canonical request; LPG's Processor Orchestration layer translates it to your processor — Fiserv, WorldPay, FIS, TSYS, Global Payments, Stripe, Square, or Adyen — across onboarding, transactions, settlement, and reporting. Add or switch a processor without changing your integration. Stripe is connected in sandbox for onboarding (Connect accounts) and reporting today.
Card data is never sent to LPG or a processor in the clear. Collect it with the processor's client SDK (e.g. Stripe.js/Elements) to get a token, then pass the token — so sensitive card data never touches your server or ours.
Each processor's endpoints and security credentials are configured in Bank Admin → Integrations. Credentials are encrypted at rest and never returned by the API — only whether they're configured.
Onboarding risk checks (KYC/KYB, OFAC/sanctions, MATCH, credit, web) are sourced from configurable providers. A check can have multiple sources, and each partner picks the source and a hard/soft gate.
Funds settle down the hierarchy with per-payment-type pricing, reserves, carry-forward, and reconciliation — visible in real time across Bank Admin, Partner, and Merchant portals.