Skip to content
Payments Operational|2 provider rails

Accept paymentsyour way.

Hosted payment links or a server-to-server API — one interface over VPS/Payzone, Stripe, and NAPS, with subscriptions, installments, and stored value built in.

Money-flow capabilities

Tenant-toggleable features — every flow is a sellable capability, composed into a preset.

INSTANT_CAPTURE

Instant Capture

One-time charges captured the moment the customer pays — the default path for everyday checkout.

PREAUTH_CAPTURE

Pre-authorization

Authorize now, capture later. Hold funds on the card and settle only when the order is fulfilled.

WALLET

Stored Value

Closed-loop wallets: top up, pay-as-you-go, and draw down. The merchant holds the value in their own PSP account — CorpoPay only tracks the balance.

SUBSCRIPTIONS

Subscriptions

Recurring billing on daily, weekly, monthly, or custom intervals — dunning and statuses included.

INSTALLMENTS

Installments

A down payment plus a fixed schedule — funded by the merchant, never by CorpoPay.

One adapter for every provider

A strategy interface behind every rail — add a PSP without touching a route.

VPS
Full integration

VPS / Payzone

Moroccan PSP · MAD

STR
Full integration

Stripe

International · MAD / EUR / USD

NAPS
Roadmap

NAPS

Moroccan PSP · MAD

Hosted payment links

No-code checkout. Share a link, and the customer pays on a hosted page — with optional recurring or installment plans attached.

https://app.corpopay.site/checkout/<slug>

Server-to-server API

API-key auth, HMAC-verified webhooks, and idempotent requests for building payments directly into your product.

Authorization: Bearer sk_live_…

Every payment becomes two legs

CorpoPay is the orchestration layer: your PSP collects the payment, and CorpoPay mirrors it in a balanced double-entry ledger — fee and net always reconciled. Funds settle straight from your PSP to your own bank account.

Capture

gross

Settle

net → your bank

Payment intent lifecycle

Every payment is a tracked state machine.

CREATEDREQUIRES_ACTIONPROCESSINGSUCCEEDED
TerminalFAILEDCANCELEDREFUNDED— REFUNDED unwinds the capture, posting AVAILABLE + FEES + RESERVE → CASH.