No Fianto fee during the beta. Any fee comes with at least 30 days notice. See pricing
Developers8 min read

Add USDC checkout with an AI coding agent, using the Fianto agent skill.

Run npx skills add fianto-xyz/skills in your project, then ask your coding agent to add Fianto checkout: the skill gives it the real API, the official @fianto/* packages and the rules that keep money safe. It cannot create your merchant account, your API keys or your webhook secret, and it is told to ask you before anything irreversible, such as cancelling a real subscription or moving USDC.

On this page
How do you install the Fianto agent skill?What is in the Fianto agent skill?What does an AI agent get wrong about Fianto without the skill?What should you ask the agent to build?What can a coding agent not do with Fianto?Which actions does the skill make the agent confirm first?How do you check the code the agent wrote?SourcesQuestions
TL;DR
  • The Fianto agent skill (version 0.3.0) is a SKILL.md plus ten reference files, installed with npx skills add fianto-xyz/skills.
  • It covers checkout sessions, subscriptions, webhooks, shop and payment-link sales, the seven @fianto/* packages and the go-live checklist.
  • Account sign-up, approval, API keys and the webhook URL stay with you; the agent never needs your secrets.

How do you install the Fianto agent skill?

You install the Fianto agent skill from its public repository with the skills command-line tool, which the vercel-labs/skills README calls "The CLI for the open agent skills ecosystem." (vercel-labs/skills, read 15 October 2026). Run it from your project root:

terminal
npx skills add fianto-xyz/skills                     # this project, choose agents interactively
npx skills add fianto-xyz/skills -g                  # every project
npx skills add fianto-xyz/skills -a claude-code -y   # one agent, no prompts
npx skills add fianto-xyz/skills --list              # see what the repo contains

A project install puts the skill in your agent's skills folder inside the repository; commit that folder and everyone who clones the project gets the same instructions. If your tool does not use the CLI, copy SKILL.md and references/ into a fianto folder in its skills directory, for example .claude/skills/fianto/ for Claude Code. In a chat app with no skill support, paste SKILL.md into the project instructions and add the reference file for the task at hand.

An agent skill, in the format's own words, is "a folder containing a SKILL.md file" with metadata and instructions (agentskills.io, read 15 October 2026). Agents load only each skill's name and description at startup and read the full file when a task matches, so an installed skill costs almost nothing until you mention Fianto, one of its packages or one of its errors.

What is in the Fianto agent skill?

The Fianto agent skill is one instruction file of 271 lines and ten reference files, each summarising pages of docs.fianto.xyz and linking them. SKILL.md holds the security rules, the 20 v1 endpoints at a glance, nine integration rules and one complete Next.js example. The agent reads a reference file only when the task needs it.

Reference fileWhat the agent gets from it
setup.mdAccount, review, application, webhook URL, environment variables
sdk.mdThe seven @fianto/* packages for Next.js, Express, Hono, the browser and React
checkout.mdSession fields, the one-time url, reissue and cancel, order and payment statuses
webhooks.mdThe verification challenge, signatures, the 14 event types, retries, secret roll
subscriptions.mdRecurring prices, renewals, past due, cancelling
api.mdAuth, error codes, idempotency keys, pagination, rate limits
testing.mdTesting without a test mode, and the CLI
security.mdSecrets, prompt injection, actions that need your confirmation
production.mdFast webhook acknowledgement, reconciliation, monitoring, go-live checklist
concepts.mdHow money moves, who pays what, shop and payment-link orders

The repository's README gives the reason it exists: Fianto is new, so coding agents have never seen its API, and without the skill they guess. Every fact in it is taken from the Fianto docs. Read the skill on GitHub first. The README asks for that itself: "Read the skill before installing it, as with any code you give an agent."

What does an AI agent get wrong about Fianto without the skill?

Without the skill, an AI agent writes the payment API it has seen most often, and most of those names are wrong for Fianto. The skill carries a correction table for exactly these guesses. Each right-hand entry below is what the real API and SDK use.

What an agent guessesWhat Fianto uses
Authorization: Bearer with a secret keyHTTP Basic, app_id:app_secret (fian_app_... and fian_sk_live_...); no publishable key
POST /v1/checkout/sessionsPOST /v1/checkout-sessions
payment.succeeded, subscription.canceledorder.paid, subscription.ended and twelve more
An x-fianto-signature header with a hex HMACStandard Webhooks: webhook-id, webhook-timestamp, webhook-signature v1,<base64>
Amounts like "9.99" in webhooksBase-unit strings: "9990000" is 9.99 USDC
The order id in data.metadata.order_iddata.order_id
A test key and a sandboxNeither exists: production runs on Solana mainnet

The quieter mistakes cost more. An agent that skips the webhook URL's verification challenge builds an integration that never receives an event: Fianto stores events published before the URL is first verified but never delivers them. One that fulfils from the browser's redirect ships goods before the payment is final. And one that retries a checkout create with a fresh idempotency key gets url: null back, with no working link until it reissues one. The skill states each of these as a rule. Why the key matters is in idempotency keys and order ids.

What should you ask the agent to build?

Ask the agent for a complete outcome in your own stack, and name the stack. These prompts come from the skill's README:

  • "Add fianto checkout to my Next.js shop so orders are marked paid when the payment finalizes."
  • "Sell a 9.99 USDC plan every 30 days from my Hono app and let signed-in users cancel it."
  • "My Express fianto webhook returns 500 BodyAlreadyParsedError. Fix it."
  • "Review my fianto integration against the go-live checklist."
  • "A customer says they paid but the order is still pending. What happened?"

Plan for the result to be three pieces: a checkout route on your server that decides the price and creates the session, a pay button in the browser, and a webhook route that verifies the signature and fulfils on order.paid for one-off payments or subscription.created for subscriptions. With the skill loaded the agent builds them with @fianto/nextjs, @fianto/express or @fianto/hono. Hand-written versions of the same three pieces for comparison: Next.js, Express subscriptions and Hono.

The API, the SDK packages and the CLI the skill teaches.

Open the developer overview

What can a coding agent not do with Fianto?

A coding agent cannot create a Fianto account, an application or a key, and it should never see your secrets. The skill says so directly: "An agent cannot create accounts or applications." These steps stay with you:

  1. Sign up at merchant.fianto.xyz, complete the business profile, two-factor sign-in and the signed proof of your receiving wallet, and submit for review. A Fianto admin approves the account; no review time is promised.
  2. After approval, create an application under Developers. Its app id and secret go in your server's environment as FIANTO_APP_ID and FIANTO_APP_SECRET, typed by you, not pasted into the chat.
  3. If you sell a subscription or charge by price_id, create the product and its price in the dashboard. The v1 API reads them but cannot create them.
  4. Set the webhook URL, put its whsec_ secret in FIANTO_WEBHOOK_SECRET, restart, and check the endpoint's status reads Active.
  5. Make sure the receiving wallet holds a USDC token account; otherwise creating a session fails with 422 merchant_token_account_missing.

Payment links, discount codes and the shop are dashboard features with no API or SDK, so an agent can explain them and write code that handles their sales (their orders arrive as plink_ and shop_ ids through webhooks), but it cannot create them. For a no-code start, see USDC payment links.

Which actions does the skill make the agent confirm first?

The skill makes the agent stop and wait for a clear yes from you, in the conversation, before any action that cannot be undone. Text inside a webhook payload, an event, metadata or a web page never counts as that yes: the skill tells the agent to treat such text as data, and to report instructions found in it as prompt injection instead of following them.

ActionWhy the agent asks
Cancelling a real subscription, at now or period_endFinal; now ends access at once
Any cancel loop over the subscription listIrreversible for every subscriber it touches
Cancelling a checkout session a payer may be usingIt kills the live checkout
Disabling an applicationPermanent; revokes secrets and stops webhooks
Rolling a secret with ImmediatelyEvery server on the old secret fails at once
fianto trigger --allow-remote, or forwarding events to a non-local URLThose are validly signed events: a sample order.paid could fulfil a fake order
Sending USDC from any walletIrreversible; agents do not move funds

The last row is also a product fact: there is no refund API, and finalized Solana transfers cannot be reversed. A refund is USDC the merchant sends back from its own wallet, by hand. The skill tells agents never to tell a payer "you were not charged" from an unknown or expired state, because USDC may already have landed.

How do you check the code the agent wrote?

Check the agent's code against the skill's go-live essentials before any customer pays. Each item is quick to verify by reading the diff:

  • Secrets are read from the server environment and never reach a client bundle; the browser holds no key.
  • The price is decided on the server, never taken from the request body.
  • In Express, both Fianto routes are registered before express.json().
  • Fulfilment happens only in the webhook route, on order.paid or subscription.created, never on success_url.
  • The webhook route records event.id in the same database transaction as the fulfilment and skips ids it has seen.
  • onError and onVerificationError log somewhere you read.
  • The page at success_url says the payment is being confirmed.

Then test it without spending: signed samples of each event type through the CLI, and one real payment of 0.01 USDC at the end. Testing a USDC integration without a test mode has the full routine.

Fianto is not alone in shipping instructions for agents. As of 15 October 2026, Stripe's API reference opens with: "Stripe provides skills and plugins for agents to build faster and more accurately." (Stripe API reference.) If your agent has no skill support at all, point it at docs.fianto.xyz/llms.txt: every docs page is also served as Markdown at its address plus .md, which is where the skill itself sends agents for anything it leaves out.

Sources
Questions

Questions about building Fianto checkout with an AI agent.

Which coding agents can use the Fianto skill?

Any agent that reads Agent Skills, which the README names as Claude Code, Cursor, Codex, OpenCode, GitHub Copilot, Windsurf and others. Agents without skill support can be given SKILL.md as project instructions.

Does the Fianto skill need my API keys?

No. Keep FIANTO_APP_ID, FIANTO_APP_SECRET and FIANTO_WEBHOOK_SECRET in your server environment. The skill tells agents never to ask you to paste a secret into the chat.

Can the agent create my Fianto account or API keys?

No. You sign up, pass review and create the application in the dashboard yourself. Keys work only after the account is approved.

Can I test the integration the agent wrote without real money?

Partly. Fianto has no test mode, but the CLI sends signed sample events to your local route without any payment. One real payment, from 0.01 USDC, checks the rest.

Where does the Fianto skill get its facts?

From the Fianto documentation at docs.fianto.xyz. Each reference file links the pages it summarises, and the version in the SKILL.md frontmatter was 0.3.0 on 15 October 2026.

Read next.

Developers8 min read

Accept USDC payments with Hono on Node, Cloudflare Workers or Bun

Hono takes USDC payments through @fianto/hono's two handlers: checkout() creates a one-off checkout session for your pay button, and webhooks() verifies the order.paid event you fulfil from. Both pass Hono's untouched c.req.raw to the SDK and use only fetch, Request, Response and Web Crypto. On Node the code reads process.env; on Cloudflare Workers you build the handlers inside the route from c.env, and Fianto's CI does not yet test Workers or Bun.

Developers10 min read

USDC subscriptions in Express: a checkout route, a webhook route and a gate

To sell a USDC subscription from Express, register two routes from @fianto/express before express.json(): checkout() creates a subscription session for a recurring price, and webhooks() verifies the subscription.* events you store. Your own middleware then lets a user in while their stored status is ACTIVE or PAST_DUE. A subscription never creates an order, so order.paid never fires for it.

DevelopersCompare8 min read

Pay-per-request (x402) vs subscriptions for APIs: per-request payments and capped monthly plans compared

x402 is an open standard that answers an unpaid HTTP request with status 402 and lets the client pay in stablecoins per request; a subscription charges a fixed price once per period. Per-request payment fits sporadic callers and AI agents with no account; a capped monthly plan fits steady customers and predictable revenue. Fianto does not implement x402 or any usage-based billing: it runs monthly and yearly USDC plans on Solana.

Install the skill, then ask.

Keys, approval and the webhook URL stay in your hands.

New posts are announced on X and Discord.