Docs
API 2026-05-27.dahlia Dashboard

Overview

Dated changes to the Fluveo API and to these docs, newest first.

This page lists changes to the Fluveo API and to these docs, newest first. Each change sits under the day it landed, in UTC, and links to the page it is about. The changelog starts on 2026-11-10 and lists nothing from before that day. Which changes need a new API version is in the deprecation policy.

2026-11-12#

  • Docs Errors now explains setup_intent_unexpected_state and setup_intent_authentication_failure, so the doc_url of both opens their section. The links that some error messages print, such as the one to tax codes or to the expire call of a Checkout Session, now open the page that explains them instead of a page that does not exist.
  • Docs New page Appearance: the payment form's three themes, each with a photograph and an example to copy, what each of the ten variables changes and its default in each theme, floating labels, condensed inputs, animations, what the text inside the card fields follows, a change of look on a form that is already on the page, and what the script refuses. Payment Element now shows the three themes side by side.
  • Docs New section Mount the form before its PaymentIntent walks the form's second way in order, with the Pay handler to copy: fluveo.elements({ mode: "payment", amount, currency }), elements.update(), then at the press of Pay elements.submit(), the PaymentIntent your server creates and confirmPayment() with its clientSecret. Payment Element names that way, and /llms/payment-element.txt now holds the section and its three error codes in place of Test mode and element_not_supported, which it names by their addresses.
  • Docs fluveo.js now gives the whole appearance option: its three themes, its ten variables with the kind of value each takes, where the labels go, how the fields join and whether the form animates, with an example.
  • Docs The entries of locale and loader now say what each value does and which one is the default, each with an example.
  • Docs The entries of layout, fields and defaultValues now list every part of each option with its type, its values and its default, each with an example.
  • Docs New sections elements.update() and element.update() say what each call changes on a form that is already made, and which error an option it cannot change throws. fluveo.js errors now lists what both calls take, and the values of appearance and of layout.
  • Docs fluveo.js now documents the options mode, amount and currency of fluveo.elements(), which mount the form before a PaymentIntent exists, with elements.update() for a new amount and elements.submit() at the press of Pay. fluveo.js errors explains the three codes of that way: confirm_client_secret_missing, submit_not_mounted and submit_required.
  • Docs fluveo.js now says where the form shows each error: a field's under that field, a declined card's under the card number, and all of them under the block of fields when the inputs are condensed.
  • Docs The photographs of Payment Element were taken again and show the form's new look: the test mode line is larger and sits in a box, bordered in the default theme, with its words in the text colour, and the security code's icon is one colour. A declined card's message now shows right under the card number, as Errors on that page says.
  • Docs New page Payment Element: what Fluveo's payment form is, the payment methods it shows, its three layouts, its look, its options and its errors, with photographs of the form and examples to copy. /llms/payment-element.txt holds the page whole.
  • Docs fluveo.js now says that the loaderror event also comes when the form gave no answer 20 seconds after mount() and when its PaymentIntent takes no card. fluveo.js errors explains the code of the second case, payment_intent_unexpected_state.
  • Docs The page of Custom checkout is now a whole checkout: Pay stays disabled until the form is ready, the button shows the PaymentIntent's amount, and a spinner turns while the payment confirms. Its React tab is written with @fluveo/fluveo-js and @fluveo/react-fluveo-js.
  • Docs The file an AI agent reads to build a checkout is now two: /llms/custom-checkout.txt stays the whole first checkout, and the new /llms/payment-element.txt holds what changes the payment form after that, which is its calls, its events and its options, with the errors they throw. Build with AI agents lists both.
  • Docs The doc_url of an error that fluveo.js throws now opens fluveo.js errors in the browser, at that error's section. It used to open the page's Markdown copy, which a browser shows as plain text.
  • Docs The reference now gives allowed_payment_method_types its real values: on the PaymentIntent object it is the list of payment methods when a Checkout Session made the PaymentIntent, and null on any other, and the SetupIntent object now lists it, always null. The Checkout Session object no longer lists optional_items and presentment_details, which the API never sends.
  • Docs fluveo.js now documents the npm packages @fluveo/fluveo-js (loadFluveo() and the types) and @fluveo/react-fluveo-js (Elements, PaymentElement, useFluveo() and useElements()), which load the same script as the script tag. fluveo.js errors now explains wrong_prop and elements_provider_missing.
  • Docs fluveo.js errors now explains billing_details_missing and appearance_value_invalid, and fluveo.js lists the options appearance, locale and loader of fluveo.elements() and layout, fields and defaultValues of elements.create("payment").
  • MCP New guide MCP sign-in with OAuth: a client signs in through the Dashboard with no key, the person picks the store's permissions on the consent page, and the connection shows in Connections, where it can be revoked. Connect to Fluveo MCP now gives the OAuth way first for Claude Code, Cursor, Codex and VS Code.
  • MCP A request to the MCP endpoint without an admitted agent key now answers 401 on any method, a browser's GET included, with WWW-Authenticate and a JSON error that links to Fluveo MCP. With an admitted key, any method but POST answers 405 with Allow: POST. Connect to Fluveo MCP says what a client must send.
  • Docs The MCP pages now point to Settings > Developers > AI agents in the Dashboard: MCP authentication shows each agent key with its last use and how to revoke it, Agent approvals where the pending requests are listed, and MCP security the switch that turns agent access off for the store and how to list only the agents' calls in Logs.

2026-11-11#

  • MCP Fluveo MCP now lists its 28 tools, with the payment and refund tools: list_payments, retrieve_payment, search_payments, list_refunds and retrieve_refund read, and create_refund, capture_payment and cancel_payment wait for a person to approve each call in the Dashboard, within 15 minutes. Agent approvals names the native tools that end in an approval.

  • MCP Six new tools on MCP tools for customers and checkout: list_customers and retrieve_customer read the store's customers, create_customer and update_customer change them, and create_checkout_session and create_payment_link make a Fluveo payment page or a payment link for a buyer. The four that write answer like fluveo_api_write and run at once, since their operations are allowed for an agent key.

  • MCP Seven new tools on MCP tools that each read one kind of store data with named arguments: get_balance, list_disputes, retrieve_dispute, list_events, retrieve_event, list_webhook_endpoints and retrieve_webhook_endpoint. They only read, answer like fluveo_api_read, and appear for a key with Read on the resource each one reads.

  • MCP On protocol revision 2026-07-28, a client that declares URL elicitation gets the approval link of fluveo_api_write as an input_required result it can show the person, and its retry carries the token in requestState. Other clients still get the link in the answer. Agent approvals shows the flow.

  • MCP New tool fluveo_api_write on MCP tools: an agent runs one create, update or delete operation of the API with its agent key. An operation that needs approval answers the approval link and a token, and the call with that token sends the same request after a person approves it. Agent approvals shows the flow.

  • MCP fluveo_api_search and fluveo_api_details now answer available: true for each POST and DELETE operation an agent key may run, at once or after approval. MCP tools lists them.

  • MCP A restricted key without the agent mark is refused with 401 agent_key_required. Make the key with This key is for an AI agent checked, as MCP authentication shows.

  • MCP New guide Fluveo MCP: a remote MCP server that lets an AI client search these docs, look up API operations and read your test store with an agent key.

  • MCP New guide Connect to Fluveo MCP: the configuration for Claude Code, Cursor, Codex, VS Code and any other client that speaks MCP over HTTP, and what each refused answer means.

  • MCP New guide MCP authentication: make a restricted test key for an AI agent, choose its permissions, and rotate or expire it.

  • MCP New reference MCP tools: every tool the server lists, with its arguments and answers, and what an agent key may do on each API operation.

  • MCP New guide Agent approvals: which requests of an agent key wait for a person in the Dashboard, how long an approval lasts, and how the agent retries with Fluveo-Approval.

  • MCP New guide MCP security: what the API and the MCP server mask, refuse or mark as untrusted when an AI agent holds a key.

  • Docs llms.txt and the agent playbook now send an agent that speaks MCP straight to Fluveo MCP.

  • Docs The example of creating a PaymentIntent now sends return_url with confirm=true. Without it, or without payment_method_types, that call answers 400; the old example showed it succeeding.

  • Docs The token example on Apple Pay no longer shows dynamic_last4 inside card.wallet: a token carries it on card, and the PaymentMethod and the Charge carry it in wallet.

  • API An error of a logged call now carries error.request_log_url, a link to that call's log in the Dashboard. New guide Request logs: what each log shows, what it hides, how long it is kept and how to open it from an error.

  • Docs The API reference now marks as Preview each operation and parameter that works but is not locked yet and may change.

  • Docs Receive webhooks and Test webhooks now say that a test-mode endpoint takes a public http URL as well as https; only live mode requires https. Before, they said http was always refused.

2026-11-10#

  • Docs The Payments overview, and the pages on cards, Pix, payouts and Dashboard payment links, now link to the new guides below.
  • Docs New guide Save a card: save a card with a SetupIntent and charge it later while the buyer is away.
  • API The reference now lists the fields the API always sends as null: allowed_payment_method_types, payment_record and shared_payment_granted_token on the PaymentIntent object, and shared_payment_granted_token on the PaymentMethod object.
  • Docs New guide Reserves: see what part of your sales is held back, why, and when it is released.
  • API The reference now lists setup_future_usage on PaymentIntent create, update and confirm, and off_session on create and confirm. The API already took both; only the reference was missing them.
  • Docs New guide Payment links: sell your Prices through a link, switch the link off and read its payments.
  • Docs New guide Capture or cancel: hold an amount on a card, then capture all or part of it, or cancel the payment.
  • Docs New guide Customers: create, find, update and delete a Customer, and keep its tax IDs.
  • Docs New page Permissions: what each restricted key permission allows. Each operation in the reference now shows the permission a restricted key needs to call it.