Checkout Sessions
Create a Fluveo-hosted payment page for a single purchase.
Status:
contracted_test. The six canonical Checkout Session operations are in the generated API Reference. Onlysk_test_*mode is promised. See API coverage.
A Checkout Session represents one customer’s journey through the Fluveo-hosted
payment page. You create it server-side, redirect the customer to its url, and
retrieve it on return to confirm the outcome. For the end-to-end flow, see the
Checkout overview.
Create
POST /v1/checkout/sessions
PaymentIntent metadata
Session metadata stays on the session. If you want metadata on the
PaymentIntent too, send it in payment_intent_data[metadata]. Each rule below
that fails is a 400 invalid_request_error, and nothing is created:
- At most 31 keys: Stripe allows 50, and Fluveo and the payment processor reserve up to 19 keys on the PaymentIntent. Later PaymentIntent updates keep the same limit. A PaymentIntent that already has more than 31 keys can change or remove keys, but an update can never leave it with more keys than it had.
- No
order_idkey, in any letter case: the payment processor uses it to match the payment. - No
invoicekey: it marks a hosted invoice payment, and only Fluveo’s own hosted invoice page sets it. - No empty key, and no key with
[or]. The usualmetadatarules apply too: nofluveo_prefix, keys up to 40 and values up to 500 characters. - Session
metadata[order_id]andmetadata[invoice]are still fine, because they stay on the session.
The session object
status:open→complete(orexpired).payment_status:unpaid→paid.
Retrieve (confirm the outcome)
GET /v1/checkout/sessions/{id} — call this when the customer returns to your
success_url. Fulfill only when payment_status is paid — don’t trust the
redirect by itself. Merchant-public Events and WebhookEndpoints are currently
unavailable, so re-retrieve the session from your server until it reaches a
terminal state; do not make fulfillment depend on a public webhook.
Hidden from the public API
Each item below is hidden because it does not follow the Stripe parity ADR (ADR 0004 as amended). The hidden public /v1 registry lists every
hidden item. Public /v1 answers a hidden operation as an unknown URL, refuses a hidden request
parameter or value with Stripe’s invalid_request_error, and omits a hidden response key.
- the value
squareofbranding_settings[border_style]onPOST /v1/checkout/sessions(HIDE0-014) - the value
hostedofui_modeonPOST /v1/checkout/sessions(HIDE0-015) - the request parameter
customer_emailofPOST /v1/checkout/sessions/{session}(HIDE0-074) - the request parameter
shipping_detailsofPOST /v1/checkout/sessions/{session}(HIDE0-075)