Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion development-guide/nevermined-x402.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Nevermined x402"

Check warning on line 2 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L2

Did you really mean 'Nevermined'?
description: "Nevermined provides first-class support for the x402 payment protocol, enabling AI agents, APIs, and services to charge per-request using secure, locally-signed payment authorizations."

Check warning on line 3 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L3

Did you really mean 'Nevermined'?
icon: "credit-card"
related:
- Get a Nevermined API key: /docs/agents-guide/get-api-key
Expand All @@ -8,21 +8,21 @@
- Register a plan and agent: /docs/agents-guide/register-plan-and-agent
---

# Nevermined x402

Check warning on line 11 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L11

Did you really mean 'Nevermined'?

Nevermined provides first-class support for the x402 payment protocol, enabling AI agents, APIs, and services to charge per-request using secure, locally-signed payment authorizations.

Check warning on line 13 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L13

Did you really mean 'Nevermined'?

<Note>
For the complete technical specification, see the [x402 Smart Accounts Extension Spec](/specs/x402-smart-accounts).
</Note>

<Note>
**x402 has a sibling protocol: MPP.** Nevermined also speaks the **Merchant Payment Protocol (MPP)**, which settles against the **same Payment Plans, credits, and delegation** as x402 — a request that costs 2 credits burns 2 either way. The only difference is the wire handshake. A service tells you which it speaks by its `402` response:

Check warning on line 20 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L20

Did you really mean 'Nevermined'?

- an x402 `accepts` / `payment-required` body → follow the x402 steps on this page;
- a `WWW-Authenticate: Payment …` header → follow [Paying an MPP-protected service](#paying-an-mpp-protected-service) below.

MPP here is the **plan-model sibling of x402**, offered the same way — not the buyer-side [Router MPP rail](/products/catalog/router/rails-mpp), which pays *external* merchants that were never onboarded to Nevermined.

Check warning on line 25 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L25

Did you really mean 'onboarded'?

Check warning on line 25 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L25

Did you really mean 'Nevermined'?
</Note>

## Overview
Expand All @@ -30,7 +30,7 @@
This section explains:

- The x402 HTTP 402 handshake and `PAYMENT-SIGNATURE` retry pattern
- How Nevermined extends x402 with Smart Account-based settlement

Check warning on line 33 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L33

Did you really mean 'Nevermined'?
- How subscribers generate and sign x402 payment proofs
- How delegations, session keys, and delegated execution work
- How the facilitator verifies and settles requests
Expand All @@ -41,7 +41,7 @@

- [Payment Models](/integrate/patterns/payment-models)

Nevermined's x402 implementation is compatible with the standard protocol while adding programmable settlement layers powered by Nevermined smart contracts.

Check warning on line 44 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L44

Did you really mean 'Nevermined's'?

Check warning on line 44 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L44

Did you really mean 'Nevermined'?

## Background: What x402 Solves

Expand All @@ -56,21 +56,21 @@
- Checks balance/permissions
- Settles payment on-chain (EIP-3009 or equivalent)

Nevermined extends this with ERC-4337 Smart Accounts, session keys, and programmable billing models, allowing much more complex behavior than standard EIP-3009-based transfers.

Check warning on line 59 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L59

Did you really mean 'Nevermined'?

## Why Nevermined Extends x402

Check warning on line 61 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L61

Did you really mean 'Nevermined'?

x402 itself focuses on single ERC-20, pay-per-request flows.

Nevermined introduces:

Check warning on line 65 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L65

Did you really mean 'Nevermined'?

| Area | x402 | Nevermined |

Check warning on line 67 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L67

Did you really mean 'Nevermined'?
| --------------------- | --------------- | ------------------------------------------------------------------- |
| Payment authorization | EIP-3009 | ERC-4337 UserOps + session keys |
| Wallet model | EOA signatures | Smart Accounts with granular permissions |
| Billing models | Pay-per-request | Subscriptions, credits, time windows, credit-burning |
| Delegated execution | Basic | Fully programmable “burn”, “order”, “redeem”, plan-specific actions |
| Settlement layer | ERC-20 | Nevermined smart-contract settlement |

Check warning on line 73 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L73

Did you really mean 'Nevermined'?


This means a subscriber can grant a server the ability to redeem credits or burn usage units while maintaining strict control over what the server can do.
Expand All @@ -92,17 +92,17 @@

- Subscriber: owns a Smart Account; delegates permissions through smart account policies
- Server/Agent: exposes an API secured by x402
- Facilitator: Nevermined component that verifies and settles payments

Check warning on line 95 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L95

Did you really mean 'Nevermined'?
- Blockchain: executes credit burns, orders, or other plan-specific actions

Check warning on line 96 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L96

Did you really mean 'Blockchain'?


## The Nevermined x402 Extensions

Check warning on line 99 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L99

Did you really mean 'Nevermined'?

Nevermined introduces two x402 schemes for different payment rails:

Check warning on line 101 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L101

Did you really mean 'Nevermined'?

| Scheme | Network | Use Case | Settlement |
|--------|---------|----------|------------|
| `nvm:erc4337` | `eip155:84532` | Crypto payments | ERC-4337 UserOps + session keys |

Check warning on line 105 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L105

Did you really mean 'Crypto'?
| `nvm:card-delegation` | `stripe` | Fiat/credit card | Stripe PaymentIntent + credit burn |

For the complete delegation specification, see the [Delegation Spec](/specs/x402-card-delegation).
Expand All @@ -128,7 +128,7 @@
**`network` is the settlement *rail*, not the environment.** Send `eip155:<chainId>` (e.g. `eip155:84532`) for a crypto/ERC-4337 plan, or one of `stripe` / `braintree` / `visa` for a card-delegation plan. It is **not** the environment name — do **not** put `sandbox` or `live` here (that value fails validation). The environment is selected by your API key and base URL, never by this field.
</Note>

**Crypto plan (`nvm:erc4337`):**

Check warning on line 131 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L131

Did you really mean 'Crypto'?

```json
{
Expand Down Expand Up @@ -221,7 +221,7 @@

## Complete Payment & Execution Flow

Below is the Nevermined x402 Smart Account flow (verification + settlement).

Check warning on line 224 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L224

Did you really mean 'Nevermined'?

```mermaid
sequenceDiagram
Expand Down Expand Up @@ -284,7 +284,7 @@
- Execute order (if needed) to top up credits
- Execute burn to deduct usage
- Submit UserOps on-chain
- Return tx hashes to the server

Check warning on line 287 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L287

Did you really mean 'tx'?

## Developer Guide: Subscriber Flow

Expand All @@ -298,7 +298,7 @@

### Step 2 — Build a payment payload

Using Nevermined Payments libraries (Python or TS), you generate an x402 access token. The supported flow is **create-first**: create a delegation once with `createDelegation`, then request access tokens by passing its `delegationId`. A delegation captures the spending limit, duration, `provider`, and `currency`; reuse it for every token request until it expires or is exhausted.

Check warning on line 301 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L301

Did you really mean 'Nevermined'?

<Tabs>
<Tab title="TypeScript">
Expand Down Expand Up @@ -345,7 +345,7 @@
import base64
import json
import requests
from payments_py import Payments, PaymentOptions

Check warning on line 348 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L348

Did you really mean 'payments_py'?
from payments_py.x402 import (
CreateDelegationPayload,
DelegationConfig,
Expand Down Expand Up @@ -399,7 +399,7 @@
**The buyer-side `getX402AccessToken` / `get_x402_access_token` call does not auto-detect the scheme — it defaults to `nvm:erc4337` (crypto).** For a **fiat** plan (`isCrypto: false`) you must resolve and pass the scheme, and create the delegation with the matching card provider:

- Detect the scheme with `resolveScheme()` (TypeScript) / `resolve_scheme()` (Python), then pass `scheme: 'nvm:card-delegation'` to the token call.
- Use `provider: 'stripe'` (or `'braintree'` / `'visa'`) with `currency: 'usd'` in the delegation; for crypto plans use `provider: 'erc4337'` with `currency: 'usdc'`.

Check warning on line 402 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L402

Did you really mean 'crypto'?

Server-side **middleware** (Express, FastAPI) and the **A2A clients** resolve the scheme for you automatically — see the [Express.js](/integrate/add-to-your-agent/express) and [FastAPI](/integrate/add-to-your-agent/fastapi) guides, and [Which payment type does this plan need?](/getting-started/core-concepts#fiat-vs-crypto-what-each-plan-needs).
</Note>
Expand Down Expand Up @@ -541,7 +541,7 @@
</Tab>
<Tab title="Python">
```python
from payments_py import Payments, PaymentOptions

Check warning on line 544 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L544

Did you really mean 'payments_py'?

payments = Payments.get_instance(
PaymentOptions(nvm_api_key="nvm:agent-key", environment="sandbox")
Expand Down Expand Up @@ -618,10 +618,10 @@

## Paying an MPP-protected service

Some services accept **MPP (Merchant Payment Protocol)** instead of x402. MPP settles against the same Nevermined Payment Plans as x402 — same credits, same delegation, same meter — so the buyer flow mirrors the one above with `/api/v1/mpp/*` in place of `/api/v1/x402/*`. You recognise an MPP service by its `402`: it carries a `WWW-Authenticate: Payment …` header instead of an x402 `accepts` body.

Check warning on line 621 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L621

Did you really mean 'Nevermined'?

<Note>
This is the **buyer** side. To make *your own* plan-protected endpoint MPP-payable, see [Accepting MPP payments](/products/x402-facilitator/mpp-seller).
This is the **buyer** side. To make *your own* plan-protected endpoint MPP-payable, see [Accepting MPP payments](/products/payments-facilitator/mpp-seller).
</Note>

### Recommended: the SDK does it for you
Expand Down Expand Up @@ -654,7 +654,7 @@
<Tab title="Python">
```python
import os
from payments_py import Payments, PaymentOptions

Check warning on line 657 in development-guide/nevermined-x402.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

development-guide/nevermined-x402.mdx#L657

Did you really mean 'payments_py'?
from payments_py.mpp import MppFetchOptions
from payments_py.x402.types import DelegationConfig

Expand Down
30 changes: 25 additions & 5 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -195,9 +195,9 @@
"group": "Payments Facilitator",
"icon": "credit-card",
"pages": [
"products/x402-facilitator/overview",
"products/x402-facilitator/how-it-works",
"products/x402-facilitator/mpp-seller"
"products/payments-facilitator/overview",
"products/payments-facilitator/how-it-works",
"products/payments-facilitator/mpp-seller"
]
},
{
Expand Down Expand Up @@ -486,13 +486,33 @@
"source": "/products/nvm-pay/faq",
"destination": "/products/payments/faq"
},
{
"source": "/products/payments-facilitator",
"destination": "/products/payments-facilitator/overview"
},
{
"source": "/products/payments-facilitator/",
"destination": "/products/payments-facilitator/overview"
},
{
"source": "/products/x402-facilitator",
"destination": "/products/x402-facilitator/overview"
"destination": "/products/payments-facilitator/overview"
},
{
"source": "/products/x402-facilitator/",
"destination": "/products/x402-facilitator/overview"
"destination": "/products/payments-facilitator/overview"
},
{
"source": "/products/x402-facilitator/overview",
Comment thread
aaitor marked this conversation as resolved.
"destination": "/products/payments-facilitator/overview"
},
{
"source": "/products/x402-facilitator/how-it-works",
"destination": "/products/payments-facilitator/how-it-works"
},
{
"source": "/products/x402-facilitator/mpp-seller",
"destination": "/products/payments-facilitator/mpp-seller"
},
{
"source": "/products/nevermined-app",
Expand Down
2 changes: 1 addition & 1 deletion products/catalog/overview.mdx
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
---
title: "Catalog Overview"
description: "A curated directory of external AI services your agents can discover and pay for — through one budget, over the Nevermined Router."

Check warning on line 3 in products/catalog/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/overview.mdx#L3

Did you really mean 'Nevermined'?
icon: "store"
---

![Diagram: your agent browses the Catalog to pick a service, then the Nevermined Router pays each service — x402 or MPP — on the agent's behalf, all from one shared budget.](/images/catalog/routing-diagram.png)

Check warning on line 7 in products/catalog/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/overview.mdx#L7

Did you really mean 'Nevermined'?

The **Nevermined Catalog** is a curated directory of external AI services your agents can pay for — browsable by a human at [nevermined.app/catalog](https://nevermined.app/catalog/), and readable by an agent over a public API. Every listed service prices each request on the wire, so your agent can **find** a capability it needs and **pay** for it in the same motion, without a signup, an API key, or a subscription at the provider.

Check warning on line 9 in products/catalog/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/overview.mdx#L9

Did you really mean 'Nevermined'?

Check warning on line 9 in products/catalog/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/overview.mdx#L9

Did you really mean 'browsable'?

Check warning on line 9 in products/catalog/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/overview.mdx#L9

Did you really mean 'signup'?

The Catalog is the front door; the **[Router](/products/catalog/router/overview)** is how you walk through it. You discover a service in the Catalog, then pay it through the Router from a budget you control. The two are one product read in one direction: **spending** at services that were never onboarded to Nevermined.

Check warning on line 11 in products/catalog/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/overview.mdx#L11

Did you really mean 'onboarded'?

Check warning on line 11 in products/catalog/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/overview.mdx#L11

Did you really mean 'Nevermined'?

<Note>
The Catalog lists services you **buy from**. If instead you want your own API to *get paid* by callers, that's the seller side — see the **[Payments Facilitator](/products/x402-facilitator/overview)**. You can be on both sides at once, and you can even **[add your own AI service](/products/catalog/ai-services#add-your-ai-service)** to the Catalog so other buyers discover it.
The Catalog lists services you **buy from**. If instead you want your own API to *get paid* by callers, that's the seller side — see the **[Payments Facilitator](/products/payments-facilitator/overview)**. You can be on both sides at once, and you can even **[add your own AI service](/products/catalog/ai-services#add-your-ai-service)** to the Catalog so other buyers discover it.
</Note>

## What's in it
Expand All @@ -25,11 +25,11 @@

Services that authenticate with a long-lived API key and bill you monthly aren't in the listed set — there's no per-call price on the wire for the Router to pay. The Catalog only surfaces what an autonomous agent can actually buy.

Listings are organized into a curated set of categories — **Data & Enrichment**, **Search & Research**, **Crypto & Blockchain**, **Finance & Markets**, **AI & Media**, **Web Scraping & Automation**, and more — each with granular sub-categories. See [AI Services](/products/catalog/ai-services) for the full offering and how to add your own, or [Discovering services](/products/catalog/discover) for browsing and filtering.

Check warning on line 28 in products/catalog/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/overview.mdx#L28

Did you really mean 'Crypto'?

Check warning on line 28 in products/catalog/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/overview.mdx#L28

Did you really mean 'Blockchain'?

## How the Catalog and Router fit together

One agent, one budget, one API key — reaching many independent services it never had to sign up for. Those services are unrelated to each other and to Nevermined: different providers, different payment rails, no shared account. Your agent treats them uniformly because the Router, not the agent, speaks each rail.

Check warning on line 32 in products/catalog/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/overview.mdx#L32

Did you really mean 'Nevermined'?

<CardGroup cols={2}>
<Card title="The Catalog: discover" icon="magnifying-glass" href="/products/catalog/discover">
Expand All @@ -40,13 +40,13 @@
</Card>
</CardGroup>

Your agent authenticates with its Nevermined API key and spends against a **Delegation** — a budget with a hard cap and an expiry. It never holds a private key, never learns a payment protocol, and never needs an account with the service it just paid.

Check warning on line 43 in products/catalog/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/overview.mdx#L43

Did you really mean 'Nevermined'?

## What you need to buy through it

<Steps>
<Step title="A Nevermined API key">
Created from the [Nevermined app](https://nevermined.app). It authenticates you to Nevermined — never send it to a merchant. It must be a current-generation key; see [the Router quickstart](/products/catalog/router/quickstart#1-get-an-api-key).

Check warning on line 49 in products/catalog/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/overview.mdx#L49

Did you really mean 'Nevermined'?
</Step>
<Step title="A Delegation">
Your budget: a hard cap in cents and an expiry. Created once, reused for every payment until it's exhausted or expires.
Expand Down
2 changes: 1 addition & 1 deletion products/catalog/router/overview.mdx
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
---
title: "Router Overview"
description: "The Router lets your agents pay any x402 or MPP service from one budget — without those services integrating Nevermined."

Check warning on line 3 in products/catalog/router/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/router/overview.mdx#L3

Did you really mean 'Nevermined'?
icon: "route"
---

The **Nevermined Router** is the buyer side of Nevermined. It lets your agents **pay for external services that were never onboarded to Nevermined** — any endpoint that speaks the x402 protocol or the Merchant Payment Protocol (MPP).

Check warning on line 7 in products/catalog/router/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/router/overview.mdx#L7

Did you really mean 'Nevermined'?

Check warning on line 7 in products/catalog/router/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/router/overview.mdx#L7

Did you really mean 'Nevermined'?

Check warning on line 7 in products/catalog/router/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/router/overview.mdx#L7

Did you really mean 'onboarded'?

Check warning on line 7 in products/catalog/router/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/router/overview.mdx#L7

Did you really mean 'Nevermined'?

Your agent authenticates with its Nevermined API key and spends against a **Delegation** — a budget with a hard cap and an expiry. The Router does everything else: it reads the merchant's payment challenge, signs the payment from your wallet, enforces the cap, and records the spend on one unified ledger.

Check warning on line 9 in products/catalog/router/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/router/overview.mdx#L9

Did you really mean 'Nevermined'?

Your agent never holds a private key, never learns a payment protocol, and never needs an account with the service it just paid.

Expand All @@ -16,9 +16,9 @@

## What this is not

Nevermined has two halves, and it's worth being precise about which one you're reading:

Check warning on line 19 in products/catalog/router/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/router/overview.mdx#L19

Did you really mean 'Nevermined'?

| | **Router** (this section) | **[Payments Facilitator](/products/x402-facilitator/overview)** |
| | **Router** (this section) | **[Payments Facilitator](/products/payments-facilitator/overview)** |
| --- | --- | --- |
| Role | **Buyer** — your agent pays someone else | **Seller** — your API charges its callers |
| Who integrates | Only you | Only the service being paid |
Expand All @@ -33,7 +33,7 @@
A single Delegation covers x402 and MPP alike. Your agent doesn't branch on protocol, and you don't reconcile two sets of books.
</Card>
<Card title="No per-provider accounts" icon="key">
Pay-per-call services need no signup, no API key, and no subscription. The payment *is* the authentication.

Check warning on line 36 in products/catalog/router/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/router/overview.mdx#L36

Did you really mean 'signup'?
</Card>
<Card title="A hard spending cap" icon="shield-check">
The Delegation is enforced server-side, per payment. An agent cannot exceed it — not by looping, not by retrying, not by being wrong.
Expand All @@ -52,14 +52,14 @@

You do **not** need to know which one a service speaks. In the recommended call mode the Router probes the service, detects the protocol from its 402, and pays it. The detected protocol always wins over anything you declare.

Services that authenticate with a conventional API key and bill you monthly are a different shape entirely — there is no per-request price on the wire and nothing for the Router to pay. Those aren't routable today.

Check warning on line 55 in products/catalog/router/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/router/overview.mdx#L55

Did you really mean 'routable'?

## What it costs

A routed call can cost you more than the merchant's price, and the two are charged separately:

- **The merchant's price** — whatever the service asked for in its `402`. Paid in full; the Router never takes a cut of it.
- **A Nevermined routing fee of 2%** of that price. Added **on top**, so a $1.00 call debits your Delegation cap $1.02 while the merchant still receives their full $1.00.

Check warning on line 62 in products/catalog/router/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/router/overview.mdx#L62

Did you really mean 'Nevermined'?

Every payment response carries a `fee` object saying exactly what was charged, and `fee.capChargedCents` — not `settlement.approxCents` — is the figure your budget actually moved by. See [the routing fee](/products/catalog/router/how-it-works#the-routing-fee) for how it is applied and rounded, and [the ledger](/products/catalog/router/ledger#the-routing-fee-on-a-record) for reading it back per payment.

Expand Down Expand Up @@ -112,7 +112,7 @@
Cursor, Windsurf, Cline, Amazon Q, Codex and Copilot are covered too — see [AI Coding Skill](/development-guide/build-using-nvm-skill) for the per-tool instructions, or read [the skill itself](https://github.com/nevermined-io/docs/tree/main/skills/nevermined-router).

<Note>
Install `nevermined-router` when your agent is **spending** at external services. Its sibling, `nevermined-payments`, is for the opposite direction — **receiving** payments and buying Nevermined plans. Installing both is fine; they don't overlap.

Check warning on line 115 in products/catalog/router/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/catalog/router/overview.mdx#L115

Did you really mean 'Nevermined'?
</Note>

## Next
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
</Note>

<Note>
This page covers the **x402** protocol. The Payments Facilitator also speaks **MPP (Merchant Payment Protocol)** against the same plans and credits — see [Accepting MPP payments](/products/x402-facilitator/mpp-seller) for the seller side and [Paying an MPP-protected service](/development-guide/nevermined-x402#paying-an-mpp-protected-service) for the buyer side.
This page covers the **x402** protocol. The Payments Facilitator also speaks **MPP (Merchant Payment Protocol)** against the same plans and credits — see [Accepting MPP payments](/products/payments-facilitator/mpp-seller) for the seller side and [Paying an MPP-protected service](/development-guide/nevermined-x402#paying-an-mpp-protected-service) for the buyer side.
</Note>

If you're new to the programmable extension concepts, see:
Expand All @@ -19,9 +19,9 @@
- [Making x402 programmable](https://nevermined.ai/blog/making-x402-programmable)
- [Building Agentic Payments with Nevermined, x402, A2A, and AP2](https://nevermined.ai/blog/building-agentic-payments-with-nevermined-x402-a2a-and-ap2)

## The Nevermined x402 programmable extension

Check warning on line 22 in products/payments-facilitator/how-it-works.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments-facilitator/how-it-works.mdx#L22

Did you really mean 'Nevermined'?

Nevermined extends x402 with the `nvm:erc4337` scheme, enabling **programmable settlement** (credits/subscriptions/PAYG) using ERC-4337 smart accounts and session keys.

Check warning on line 24 in products/payments-facilitator/how-it-works.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments-facilitator/how-it-works.mdx#L24

Did you really mean 'Nevermined'?

### PaymentRequired Response (402)

Expand Down Expand Up @@ -128,7 +128,7 @@

### Step 2: Generate x402 access token

Use the Nevermined SDK to generate an x402 access token. The supported flow is **create-first**: create a delegation once with `createDelegation` (`provider` and `currency` are required), then request access tokens by passing its `delegationId`. Reuse the delegation until it expires or is exhausted.

Check warning on line 131 in products/payments-facilitator/how-it-works.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments-facilitator/how-it-works.mdx#L131

Did you really mean 'Nevermined'?

<Tabs>
<Tab title="TypeScript">
Expand Down Expand Up @@ -157,7 +157,7 @@
<Tab title="Python">
```python
import os
from payments_py import Payments, PaymentOptions

Check warning on line 160 in products/payments-facilitator/how-it-works.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments-facilitator/how-it-works.mdx#L160

Did you really mean 'payments_py'?
from payments_py.x402 import (
CreateDelegationPayload,
DelegationConfig,
Expand Down Expand Up @@ -341,7 +341,7 @@
</Tab>
<Tab title="Python">
```python
from payments_py import Payments, PaymentOptions

Check warning on line 344 in products/payments-facilitator/how-it-works.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments-facilitator/how-it-works.mdx#L344

Did you really mean 'payments_py'?

payments = Payments.get_instance(
PaymentOptions(nvm_api_key=os.environ['NVM_API_KEY'], environment='sandbox')
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
---
title: "Payments Facilitator"
description: "The Nevermined Payments Facilitator verifies and settles both x402 and MPP payments against the same Nevermined Payment Plans — smart accounts, programmable contracts, and credit metering."

Check warning on line 3 in products/payments-facilitator/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments-facilitator/overview.mdx#L3

Did you really mean 'Nevermined'?

Check warning on line 3 in products/payments-facilitator/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments-facilitator/overview.mdx#L3

Did you really mean 'Nevermined'?
icon: "credit-card"
---

{/* The docs path stays /products/x402-facilitator/* for link stability — it is historical, from when the product was x402-only, and not a sign the facilitator is x402-only today. Do not "fix" it by renaming the route without adding redirects from every old path. */}

The Nevermined Payments Facilitator is an **enforcement and settlement engine** for HTTP-native agent payments. It lets any API, agent, MCP tool, or protected resource get paid without running on-chain infrastructure — and it speaks **two sibling payment protocols that settle against the same Nevermined Payment Plans**:

Check warning on line 7 in products/payments-facilitator/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments-facilitator/overview.mdx#L7

Did you really mean 'Nevermined'?

Check warning on line 7 in products/payments-facilitator/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments-facilitator/overview.mdx#L7

Did you really mean 'Nevermined'?

- **[x402](/development-guide/nevermined-x402)** — payment terms travel in a `payment-required` header and the payment is presented in `payment-signature`. Covers standard "pay-per-request" x402 and Nevermined's programmable extension (`nvm:erc4337` and `nvm:card-delegation` schemes, with smart accounts, session keys, and contract settlement).

Check warning on line 9 in products/payments-facilitator/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments-facilitator/overview.mdx#L9

Did you really mean 'Nevermined's'?
- **[MPP (Merchant Payment Protocol)](/products/x402-facilitator/mpp-seller)** — the same plan, credits, and delegation, negotiated with an RFC 7235 `WWW-Authenticate: Payment …` challenge and an `Authorization: Payment …` credential instead.
- **[MPP (Merchant Payment Protocol)](/products/payments-facilitator/mpp-seller)** — the same plan, credits, and delegation, negotiated with an RFC 7235 `WWW-Authenticate: Payment …` challenge and an `Authorization: Payment …` credential instead.
Comment thread
aaitor marked this conversation as resolved.

A request that costs 2 credits burns 2 whether it was paid over x402 or MPP: **one meter, one delegation budget, two wire protocols.**

<Note>
For the complete technical specification of the x402 extension, see the [x402 Smart Accounts Extension Spec](/specs/x402-smart-accounts). For the MPP seller integration, see [Accepting MPP payments](/products/x402-facilitator/mpp-seller).
For the complete technical specification of the x402 extension, see the [x402 Smart Accounts Extension Spec](/specs/x402-smart-accounts). For the MPP seller integration, see [Accepting MPP payments](/products/payments-facilitator/mpp-seller).
</Note>

The Facilitator sits in the payment flow — when a server receives a payment token, it delegates verification and settlement to the Facilitator rather than handling it directly. See [how the x402 flow works end to end](/development-guide/nevermined-x402).
Expand All @@ -36,8 +34,8 @@

| Environment | URL | Purpose |
|------------|-----|---------|
| **Sandbox** | `https://facilitator.sandbox.nevermined.app` | Testing and development with testnets |

Check warning on line 37 in products/payments-facilitator/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments-facilitator/overview.mdx#L37

Did you really mean 'testnets'?
| **Production** | `https://facilitator.live.nevermined.app` | Live mainnet transactions |

Check warning on line 38 in products/payments-facilitator/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments-facilitator/overview.mdx#L38

Did you really mean 'mainnet'?

<Note>
Use the sandbox environment for development and testing. Switch to production only when you're ready to process real payments.
Expand Down Expand Up @@ -85,7 +83,7 @@
</Card>
</CardGroup>

Buyers mint their access token at `POST /api/v1/x402/permissions` (x402) or `POST /api/v1/mpp/permissions` (MPP). A token minted for one protocol is refused on the other's routes — see [protocol isolation](/products/x402-facilitator/mpp-seller#protocol-isolation). Full MPP seller reference: [Accepting MPP payments](/products/x402-facilitator/mpp-seller).
Buyers mint their access token at `POST /api/v1/x402/permissions` (x402) or `POST /api/v1/mpp/permissions` (MPP). A token minted for one protocol is refused on the other's routes — see [protocol isolation](/products/payments-facilitator/mpp-seller#protocol-isolation). Full MPP seller reference: [Accepting MPP payments](/products/payments-facilitator/mpp-seller).

## How it works

Expand Down Expand Up @@ -115,13 +113,13 @@
Server-->>Client: Response + payment-response header
```

## Nevermined's programmable x402 extension

Check warning on line 116 in products/payments-facilitator/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments-facilitator/overview.mdx#L116

Did you really mean 'Nevermined's'?

Standard x402 is often implemented as an "exact transfer" authorization (e.g., EIP-3009). Nevermined extends x402 to support:

Check warning on line 118 in products/payments-facilitator/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments-facilitator/overview.mdx#L118

Did you really mean 'Nevermined'?

- **Smart Accounts (ERC-4337)** and delegated **session keys**
- **Smart-contract settlement** (credits, subscriptions, PAYG, dynamic charging)
- **Policy enforcement** (merchant allowlists, spend caps, validity windows)

Check warning on line 122 in products/payments-facilitator/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments-facilitator/overview.mdx#L122

Did you really mean 'allowlists'?

This keeps the HTTP handshake the same, but upgrades settlement from "transfer" to **programmable execution**.

Expand Down Expand Up @@ -150,11 +148,11 @@
One-line payment protection with Express middleware
</Card>

<Card title="How It Works" icon="gears" href="/products/x402-facilitator/how-it-works">
<Card title="How It Works" icon="gears" href="/products/payments-facilitator/how-it-works">
End-to-end flow (client + server) with x402 headers and facilitator calls
</Card>

<Card title="Accepting MPP payments" icon="handshake" href="/products/x402-facilitator/mpp-seller">
<Card title="Accepting MPP payments" icon="handshake" href="/products/payments-facilitator/mpp-seller">
Advertise your plan-protected endpoint as MPP-payable, metered exactly like x402
</Card>

Expand Down
4 changes: 2 additions & 2 deletions solutions/api-providers.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
icon: "plug"
---

Agents are a new buyer of your API, and they don't onboard the way humans do. They don't sit at a browser, fill out a Stripe Checkout, or remember to top up a credit balance. Today they either stall at your paywall or hardcode a human's API key.

Check warning on line 7 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L7

Did you really mean 'hardcode'?

Nevermined turns that failure mode into revenue with a small server-side integration. Agents holding a delegated card mint an [x402](/development-guide/nevermined-x402) access token, send it to your endpoint, and you provision or top up access in response. You verify and settle through Nevermined's [Payments Facilitator](/products/x402-facilitator/overview); the buyer's card is charged through Stripe, Braintree, or the Visa Trusted Agent Protocol depending on how it was enrolled. All three settle x402 charges through the same `nvm:card-delegation` scheme — your endpoint code doesn't change.
Nevermined turns that failure mode into revenue with a small server-side integration. Agents holding a delegated card mint an [x402](/development-guide/nevermined-x402) access token, send it to your endpoint, and you provision or top up access in response. You verify and settle through Nevermined's [Payments Facilitator](/products/payments-facilitator/overview); the buyer's card is charged through Stripe, Braintree, or the Visa Trusted Agent Protocol depending on how it was enrolled. All three settle x402 charges through the same `nvm:card-delegation` scheme — your endpoint code doesn't change.

Check warning on line 9 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L9

Did you really mean 'Nevermined'?

Check warning on line 9 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L9

Did you really mean 'Nevermined's'?

Check warning on line 9 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L9

Did you really mean 'Braintree'?

## Featured providers

[**Exa**](https://exa.ai) is the live reference. Agents pay Exa \$7 via a Nevermined-delegated card and receive an Exa API key with \$7 of credits. When the key runs out, the agent tops up through the same endpoint. Same key, more credits, no human touched it.

Check warning on line 13 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L13

Did you really mean 'Exa'?

Check warning on line 13 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L13

Did you really mean 'Exa'?

Check warning on line 13 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L13

Did you really mean 'Exa'?

- Exa integration guide: [/integrations/exa](/integrations/exa)

Check warning on line 15 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L15

Did you really mean 'Exa'?

[**You.com**](https://you.com) runs the same flow at \$5 a purchase, provisioning or topping up a You.com API key that works across every You.com API — Web Search, Contents, Answer, Research and Finance Research. It also publishes the agent-facing `.md` mirror described below, listed in its own `llms.txt`.

Expand All @@ -22,7 +22,7 @@

<Steps>
<Step title="Create a pay-as-you-go plan">
On the [Nevermined App](https://nevermined.app/), choose **pay-as-you-go** pricing (one charge per purchase) and set your price (e.g. \$7). That's it: the App doesn't ask about credits on PAYG, and one call to your purchase endpoint = one card charge of your plan price. See [Manage Plans](/products/nevermined-app/manage-plans).

Check warning on line 25 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L25

Did you really mean 'Nevermined'?
</Step>
<Step title="Expose one endpoint">
Accept a `payment-signature` header on a new route or an existing one. Existing customers keep their flow unchanged.
Expand All @@ -40,7 +40,7 @@

## Server-side handler

Your handler does three things: read the `payment-signature` header, verify the token with the Nevermined facilitator, and settle after running your business logic. Examples below for TypeScript, Python, and raw HTTP.

Check warning on line 43 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L43

Did you really mean 'Nevermined'?

<Tabs>
<Tab title="TypeScript">
Expand Down Expand Up @@ -100,9 +100,9 @@
```python
import base64
import os
from fastapi import FastAPI, Request

Check warning on line 103 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L103

Did you really mean 'fastapi'?
from fastapi.responses import JSONResponse
from payments_py import Payments, PaymentOptions

Check warning on line 105 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L105

Did you really mean 'payments_py'?
from payments_py.x402.helpers import build_payment_required

app = FastAPI()
Expand Down Expand Up @@ -294,8 +294,8 @@
<Tab title="Python (FastAPI)">
```python
import os
from fastapi import FastAPI, Request

Check warning on line 297 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L297

Did you really mean 'fastapi'?
from payments_py import Payments, PaymentOptions

Check warning on line 298 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L298

Did you really mean 'payments_py'?
from payments_py.x402.fastapi import PaymentMiddleware

app = FastAPI()
Expand Down Expand Up @@ -346,13 +346,13 @@

<CardGroup cols={2}>
<Card title="Vend-the-key" icon="key">
A Nevermined purchase returns a credential (e.g. an API key with \$X of

Check warning on line 349 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L349

Did you really mean 'Nevermined'?
credits). You meter ongoing usage internally with your existing
infrastructure. Exa works this way. Best when you already have per-key

Check warning on line 351 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L351

Did you really mean 'Exa'?
billing.
</Card>
<Card title="Full metering" icon="gauge">
Nevermined settles each underlying API call. Best when you don't have

Check warning on line 355 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L355

Did you really mean 'Nevermined'?
internal billing infra or prefer per-request settlement. Use the
[validate-requests](/integrate/patterns/validate-requests) and
[charge-credits](/integrate/patterns/charge-credits) patterns directly
Expand All @@ -366,7 +366,7 @@

<Tabs>
<Tab title="Organization path">
A Premium org auto-generates both files for you, served live from the Nevermined facilitator:

Check warning on line 369 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L369

Did you really mean 'Nevermined'?

```
GET https://api.live.nevermined.app/api/v1/organizations/{orgId}/llms.txt
Expand Down Expand Up @@ -404,7 +404,7 @@
<Tab title="TypeScript">
```typescript
// Create a card delegation first (provider + currency required), then
// request the token by its delegationId.

Check warning on line 407 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L407

Did you really mean 'delegationId'?
const delegation = await payments.delegation.createDelegation({
provider: 'stripe',
providerPaymentMethodId: 'pm_...',
Expand Down Expand Up @@ -473,14 +473,14 @@
Settled funds are paid out via your connected payout provider on the
provider's standard schedule: Stripe Connect for Stripe and Visa Trusted
Agent Protocol delegations (Visa settlement runs through Stripe Connect);
your Braintree OAuth merchant account for Braintree delegations.

Check warning on line 476 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L476

Did you really mean 'Braintree'?

Check warning on line 476 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L476

Did you really mean 'Braintree'?
</Accordion>
<Accordion title="Do my existing customers see any change?">
No. Your existing API and billing surface stay as-is. Agent-payable signup

Check warning on line 479 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L479

Did you really mean 'signup'?
is a parallel path you opt into with a new endpoint.
</Accordion>
<Accordion title="Can I keep my current pricing model?">
Yes. Per-call, top-ups, and credit bundles map cleanly to Nevermined plans.

Check warning on line 483 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L483

Did you really mean 'Nevermined'?
For subscriptions, talk to us, recurring billing is supported case-by-case.
</Accordion>
<Accordion title="What card rails are supported?">
Expand All @@ -502,14 +502,14 @@
underlying flow.
</Accordion>
<Accordion title="Is there a sandbox?">
Yes, on the Stripe and Braintree rails. Integrate, run end-to-end test

Check warning on line 505 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L505

Did you really mean 'Braintree'?
transactions, and validate your handler before flipping to live. The Visa
Trusted Agent Protocol uses VGS sandbox with VTS-registered test PANs;
Visa delegations require a real device that can run a WebAuthn ceremony
(or fall back to the email OTP that VTS sends).
</Accordion>
<Accordion title="What languages and frameworks are supported?">
TypeScript and Python SDKs ship today, with framework helpers for

Check warning on line 512 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L512

Did you really mean 'SDKs'?
[Express.js](/integrate/add-to-your-agent/express) and
[FastAPI](/integrate/add-to-your-agent/fastapi). The facilitator API
is plain HTTP, so any language can call verify/settle directly. See the
Expand All @@ -518,18 +518,18 @@
<Accordion title="Do I need a Stripe account?">
A Stripe Connect account is required for Stripe and Visa Trusted Agent
Protocol delegations (Visa settlement runs through Stripe Connect). For
Braintree delegations, you connect a Braintree OAuth merchant account

Check warning on line 521 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L521

Did you really mean 'Braintree'?

Check warning on line 521 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L521

Did you really mean 'Braintree'?
instead (see
[Braintree onboarding](/products/payments/braintree-onboarding)).

Check warning on line 523 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L523

Did you really mean 'Braintree'?
Nevermined handles card acquisition and PCI scope on the buyer side; you

Check warning on line 524 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L524

Did you really mean 'Nevermined'?
just bring your payout destination.
</Accordion>
<Accordion title="Who is the merchant of record?">
**You are.** Nevermined creates each card charge with Stripe's

Check warning on line 528 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L528

Did you really mean 'Nevermined'?
`on_behalf_of` parameter set to your connected account, which makes your
account the merchant of record: your statement descriptor appears on your
buyers' card statements, and the charge settles in your country and
currency. Nevermined takes its fee as a Stripe application fee and

Check warning on line 532 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L532

Did you really mean 'Nevermined'?
transfers the remainder to your connected account.
</Accordion>
<Accordion title="How are chargebacks handled?">
Expand All @@ -540,7 +540,7 @@
</Accordion>
<Accordion title="Multi-currency?">
Stripe Connect handles currency conversion to your destination account,
so non-USD payouts work for Stripe and Visa delegations. Braintree

Check warning on line 543 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L543

Did you really mean 'Braintree'?
requires the seller to have a child merchant account per accepted
currency. The Visa Trusted Agent Protocol currently supports
predominantly US-based issuers, with the eligibility list expanding
Expand All @@ -548,9 +548,9 @@
</Accordion>
</AccordionGroup>

## Want a shortcut? Become a Nevermined Organization

Check warning on line 551 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L551

Did you really mean 'Nevermined'?

A Premium Organization bundles the agent-discovery work above and adds tooling on top: an embeddable PCI-compliant card-capture widget for your domain, auto-generated `llms.txt` and `agentic-instructions.md` rendered live from your plans, webhooks, analytics, an activity feed, and multi-seat access. The DIY recipe above stays fully supported and is what powers Exa today; pick whichever fits your operational model. See [Platform Partners (Organizations)](/integrations/organizations) for the org-specific guide.

Check warning on line 553 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L553

Did you really mean 'embeddable'?

Check warning on line 553 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L553

Did you really mean 'Exa'?

## Pricing

Expand All @@ -559,8 +559,8 @@
| Plan | Cost | What's included |
|---|---|---|
| **Personal** | Free | Publish up to 20 agents and 10 plans on a single-seat account. Unlimited customers. No org features (no widgets, no auto-generated agent docs, no analytics). |
| **Premium** ⭐ **Recommended** | **\$250 / month** | Up to 100 agents and 50 plans, 5 invitable seats, widget card capture, auto-generated `llms.txt` / `agentic-instructions.md`, webhooks, analytics, activity feed. |

Check warning on line 562 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L562

Did you really mean 'invitable'?
| **Enterprise** | **\$500 / month** | Premium + unlimited agents, plans, and seats, plus the [customer CRM](/solutions/organizations/customers) and the realtime activity stream (WebSocket). |

Check warning on line 563 in solutions/api-providers.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

solutions/api-providers.mdx#L563

Did you really mean 'realtime'?

The caps count what *you* publish — agents are your registered services, plans are your pricing packages. The number of customers buying them is unlimited on every tier. See [Tiers at a glance](/solutions/organizations/overview#tiers-at-a-glance) for the full comparison.

Expand All @@ -585,7 +585,7 @@

- [x402 Card Delegation Spec](/specs/x402-card-delegation) - full
verify/settle protocol with JWT claims, error codes, and the four-phase flow
- [Payments Facilitator: How it works](/products/x402-facilitator/how-it-works)
- [Payments Facilitator: How it works](/products/payments-facilitator/how-it-works)
- end-to-end walk-through of the facilitator API
- [Validate Requests](/integrate/patterns/validate-requests) and
[Charge Credits](/integrate/patterns/charge-credits) - copy-paste
Expand Down