Payment Links
Status:
contracted_test./v1/payment_linkscreate / retrieve / update / expire / list return the Stripepayment_linkenvelope under the active merchant, and the hosted page renders onpay.fluveo.com/p/{id}with signed explicit continuation. The suite is managed with a Fluveosk_test_*merchant secret key. Processor keys are not public API credentials. See API coverage.
A Payment Link is a hosted URL you share with a customer — in an email, an invoice, a chat — and they pay on a Fluveo-hosted page without any checkout UI on your side. Each Fluveo link is a reusable merchant-owned template; every explicit customer continuation creates a fresh Checkout Session or PaymentIntent correlated to that template. It is the no-code sibling of Checkout Sessions: a session is created per purchase by your server, whereas a link is created once and reused.
What works today
- The full CRUD API is live in test mode.
POST /v1/payment_links(create),GET /v1/payment_links/:id(retrieve),POST /v1/payment_links/:id(update metadata),POST /v1/payment_links/:id/expire(expire), andGET /v1/payment_links(list, with cursor pagination) all return the Stripepayment_linkenvelope. - Line items are readable.
GET /v1/payment_links/:id/line_itemsreturns the immutable inline items for links created with itemized pricing. - The hosted page is live in test mode. A link renders the same Fluveo-hosted payment experience as Checkout — see the hosted page.
- Create and manage links in the dashboard.
A deliberate divergence from Stripe
Fluveo links are merchant-owned templates with exactly one authoritative money shape per template:
- Flat amount: pass
amount(smallest currency unit) andcurrencyfor a single-amount link. - Inline line items: pass 1–20
line_itemswith inlineprice_data(amount, currency, product data/description as documented by the API Reference). Fluveo collapses those items into one authoritative total for payment creation and keeps the immutable itemized view readable atGET /v1/payment_links/{id}/line_items.
Catalog price IDs are not supported on Payment Links. Use inline
price_data on the link, or create a Checkout Session
when you need a server-created cart per purchase.
expires_at is a Fluveo extension (not a Stripe payment_links parameter): a
Unix timestamp that must land 30 minutes to 30 days out, defaulting to 24 hours.
The create body is application/x-www-form-urlencoded and the mutating create
honors the Idempotency-Key header. An identical replay returns the original
link; reusing the key with different parameters is a 409 idempotency_error.
See /v1/payment_links in the API Reference for the full request
and object shape.