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_stateandsetup_intent_authentication_failure, so thedoc_urlof 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 Payelements.submit(), the PaymentIntent your server creates andconfirmPayment()with itsclientSecret. Payment Element names that way, and /llms/payment-element.txt now holds the section and its three error codes in place of Test mode andelement_not_supported, which it names by their addresses. - Docs fluveo.js now gives the whole
appearanceoption: 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
localeandloadernow say what each value does and which one is the default, each with an example. - Docs The entries of
layout,fieldsanddefaultValuesnow 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
appearanceand oflayout. - Docs fluveo.js now documents the options
mode,amountandcurrencyoffluveo.elements(), which mount the form before a PaymentIntent exists, withelements.update()for a new amount andelements.submit()at the press of Pay. fluveo.js errors explains the three codes of that way:confirm_client_secret_missing,submit_not_mountedandsubmit_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
loaderrorevent also comes when the form gave no answer 20 seconds aftermount()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-jsand@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_urlof an error thatfluveo.jsthrows 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_typesits real values: on the PaymentIntent object it is the list of payment methods when a Checkout Session made the PaymentIntent, andnullon any other, and the SetupIntent object now lists it, alwaysnull. The Checkout Session object no longer listsoptional_itemsandpresentment_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()anduseElements()), which load the same script as the script tag. fluveo.js errors now explainswrong_propandelements_provider_missing. - Docs fluveo.js errors now explains
billing_details_missingandappearance_value_invalid, and fluveo.js lists the optionsappearance,localeandloaderoffluveo.elements()andlayout,fieldsanddefaultValuesofelements.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
GETincluded, withWWW-Authenticateand a JSON error that links to Fluveo MCP. With an admitted key, any method butPOSTanswers 405 withAllow: 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_refundsandretrieve_refundread, andcreate_refund,capture_paymentandcancel_paymentwait 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_customersandretrieve_customerread the store's customers,create_customerandupdate_customerchange them, andcreate_checkout_sessionandcreate_payment_linkmake a Fluveo payment page or a payment link for a buyer. The four that write answer likefluveo_api_writeand 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_endpointsandretrieve_webhook_endpoint. They only read, answer likefluveo_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 offluveo_api_writeas aninput_requiredresult it can show the person, and its retry carries the token inrequestState. Other clients still get the link in the answer. Agent approvals shows the flow.MCP New tool
fluveo_api_writeon 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_searchandfluveo_api_detailsnow answeravailable: truefor eachPOSTandDELETEoperation 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_urlwithconfirm=true. Without it, or withoutpayment_method_types, that call answers400; the old example showed it succeeding.Docs The token example on Apple Pay no longer shows
dynamic_last4insidecard.wallet: a token carries it oncard, and the PaymentMethod and the Charge carry it inwallet.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
httpURL as well ashttps; only live mode requireshttps. Before, they saidhttpwas 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_recordandshared_payment_granted_tokenon the PaymentIntent object, andshared_payment_granted_tokenon 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_usageon PaymentIntent create, update and confirm, andoff_sessionon 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.