Introduction
FloPay documentation covering the REST API, Playground, SDKs, and webhook delivery model.
FloPay
FloPay is a payment orchestration platform. These docs cover the main ways to work with Flo: the REST API, the Playground, the JavaScript and React SDKs, the Node SDK, and the webhook contract clients receive from Flo.
Use Flo when you want a consistent payment surface for checkout, subscriptions, invoices, and webhook-driven automation without coupling your application to a single gateway.
REST API
The Flo REST API is the server-side surface for creating and managing Flo resources directly.
Use it when you want to:
- create checkout sessions from your backend
- manage client webhook endpoints and review delivery events
- build integrations in non-JavaScript stacks
- work directly with Flo resources outside the SDKs
Playground
The Playground is the fastest way to explore Flo in a hosted environment before wiring up your own frontend or backend.
Use it to:
- understand the checkout flow end to end
- see how Flo concepts map to real user journeys
- validate integration expectations before implementation
FloPay SDK
The SDK packages are the frontend and Node integration layer for teams that want higher-level primitives on top of the Flo platform.
Packages
The SDK is split into four packages:
| Package | Purpose |
|---|---|
@flopay/shared | Shared types, error classes, constants, and theme definitions |
@flopay/js | Core browser SDK -- loads the payment provider, creates elements, confirms payments |
@flopay/react | React bindings -- FloPayCheckout, FloPayProvider, form components, and hooks |
@flopay/node | Server-side SDK -- webhook verification, customer management, and optional session creation |
Key Features
- Provider-agnostic adapter pattern -- swap from Stripe to another provider without changing your integration code
- REST API and SDK coverage -- integrate through direct API calls, frontend SDKs, or a mixed model
- Embedded one-shot checkout --
FloPayCheckoutcan create the session inline and render the payment form in one component - Automatic payment buttons --
FloPayAutomaticPaymentButtonwraps saved-payment purchases in the same processing / success / decline modal used by checkout - Self-contained checkout forms --
CheckoutFormandSplitCardFormhandle the full payment lifecycle (tokenize, create intent, confirm, process, 3DS retry) out of the box - 3D Secure handled automatically -- both forms detect
3ds_requiredresponses and trigger the authentication flow transparently - PayPal support --
SplitCardFormrenders a PayPal button alongside card fields with a separate Elements instance, matching Stripe's architecture requirements - Built-in theming -- three bundled themes (
default,flat,night) with customizable CSS variables - Structured errors --
FloPayErrorprovides typed error categories (validation_error,api_error,network_error, etc.) with factory helpers
How It Works
- Choose your surface -- use the REST API, the SDKs, or both
- Configure -- set the FloPay environment and your client ID
- Render -- drop in
<FloPayCheckout createSession={...} />for the embedded one-shot flow - Pay -- Flo creates the session, initializes the active gateway, and renders the payment form
- Complete -- use
onCompleteon the client and webhooks on the server as needed
FloPay is published to Npm. See the Installation guide for registry setup.
Next Steps
- REST API Docs -- explore the server-side API
- Playground -- try Flo in a hosted demo environment
- Installation -- set up your project
- React Quick Start -- build your first embedded checkout
- Node.js Quick Start -- add webhook handling for embedded checkout
- Concepts -- understand the architecture
- Terminology -- align on Flo terms