DevelopersOne API.
One API.
Every acquirer.
Integrate once. Cardflo routes every transaction across our acquiring network, no extra code when you add a new provider, no breaking changes when routes shift.
create-payment.ts
// Create a payment, one API, every acquirer
const payment = await cardflo.payments.create({
amount: 4999, // £49.99
currency: "GBP",
customer: { id: "cus_8aF2..." },
method: { type: "card", token: "tok_live_..." },
// Smart routing picks the best acquirer automatically.
routing: { strategy: "approval_then_cost" },
});
if (payment.status === "approved") {
// Webhook payment.succeeded will follow.
}Toolkit
Everything you need to ship payments fast.
REST API
Predictable resources, idempotent writes and JSON-everywhere.
Hosted checkout
Drop-in, PCI-scoped, themable to match your brand.
Webhooks
Signed events for every payment, refund and dispute.
Vault & network tokens
Portable customer cards with token lifecycle management.
Server SDKs
Node, Python, Go and PHP, typed clients with retries built in.
Plugins
WooCommerce, Magento, Shopify and Salesforce Commerce Cloud.
Webhooks
Real-time events for every payment lifecycle.
Signed, retried with exponential backoff, and idempotent by event ID. Subscribe to what you care about, ignore the rest.
- payment.succeededCaptured by routed acquirer
- payment.retriedSoft decline → next acquirer
- payment.failedAll routes exhausted
- refund.createdInitiated for capture
- dispute.openedChargeback received
- payout.completedSettled to your bank
