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
Binary file added images/payments/three-ways-to-get-paid.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
75 changes: 75 additions & 0 deletions images/payments/three-ways-to-get-paid.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
45 changes: 42 additions & 3 deletions products/payments/overview.mdx
Original file line number Diff line number Diff line change
@@ -1,16 +1,49 @@
---
title: "Payments"
description: "Enroll a Visa, Stripe, or Braintree card, set spending limits, and let your agents pay autonomously."
description: "The three Nevermined payment types (Catalog, Embedded Web Flow, Merchant Plans), and the card enrollment and delegation model that lets agents pay with Visa, Stripe, or Braintree."

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

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L3

Did you really mean 'Nevermined'?

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

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L3

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

Enroll a Visa, Stripe, or Braintree card. Create a delegation that caps how much can be spent. Your agents charge it directly via x402 — no checkout pages, no human in the loop.
Nevermined has three payment types: three ways money reaches a merchant. Pick the type first, because it decides who the buyer is, what they pay with, and how much you integrate. The rest of this page covers the card mechanics that agent payments run on.

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

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L7

Did you really mean 'Nevermined'?

## Three payment types

![Three ways to get paid on Nevermined: the Catalog (agents pay per call in stablecoin), the Embedded Web Flow (people pay by card on your site), and Merchant Plans (agents buy credits/time/PAYG) — all settling to the merchant, minus a small Nevermined fee.](/images/payments/three-ways-to-get-paid.png)

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

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L11

Did you really mean 'Nevermined'?

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

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L11

Did you really mean 'stablecoin'?

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

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L11

Did you really mean 'Nevermined'?

<CardGroup cols={3}>
<Card title="Catalog" icon="store" href="/products/catalog/overview">
AI agents discover your listed service and pay per call in stablecoin over x402 + mpp. You enroll nothing.

Check warning on line 15 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L15

Did you really mean 'stablecoin'?

Check warning on line 15 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L15

Did you really mean 'mpp'?
</Card>
<Card title="Embedded Web Flow" icon="cart-shopping" href="/integrate/patterns/orders">
A person pays any cart total by card through a checkout embedded on your site. No plan, no buyer account, no delegation.
</Card>
<Card title="Merchant Plans" icon="layer-group" href="/solutions/agent-to-agent-monetization#merchant-plans">
AI agents buy credits, time, or pay-as-you-go access to your service at a fixed price, paying by card or stablecoin.

Check warning on line 21 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L21

Did you really mean 'stablecoin'?
</Card>
</CardGroup>

| | Catalog | Embedded Web Flow | Merchant Plans |
|---|---|---|---|
| **Who pays** | An AI agent or harness | A person, in a browser | An AI agent or harness |
| **Pay with** | Stablecoin | Card (fiat) | Card or stablecoin |

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

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L28

Did you really mean 'Stablecoin'?

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

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L28

Did you really mean 'stablecoin'?
| **Pricing** | Dynamic — quoted per request | Dynamic — any cart total | Fixed — set per plan |
| **Merchant enrolls?** | No — Nevermined discovers and lists your service | Yes — you control an Org | Yes — you integrate NVM |

Check warning on line 30 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L30

Did you really mean 'Nevermined'?

The full comparison (rails, plans, buyer accounts, who integrates what) is on [Monetize Your AI](/solutions/agent-to-agent-monetization#three-ways-to-get-paid).

## Card payments for agents

Everything below is the mechanism behind **card-paid agent payments**, which is how a Merchant Plan gets paid by card. Enroll a Visa, Stripe, or Braintree card. Create a delegation that caps how much can be spent. Your agents charge it directly via x402 — no checkout pages, no human in the loop.

Check warning on line 36 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L36

Did you really mean 'Braintree'?

<Note>
**Three payment types and three card networks are different things.** Catalog, Embedded Web Flow, and Merchant Plans are *what you sell and who buys*. Visa, Stripe, and Braintree are *card networks*: the providers an enrolled card and its delegation settle through. Delegations apply to Merchant Plans paid by card. The Embedded Web Flow settles through the same PSPs, but the buyer confirms each charge in the browser, so there is no enrollment and no delegation. Catalog payments are stablecoin and never touch a card.

Check warning on line 39 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L39

Did you really mean 'Braintree'?

Check warning on line 39 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L39

Did you really mean 'PSPs'?

Check warning on line 39 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L39

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

Manage everything at [nevermined.app](https://nevermined.app).

<CardGroup cols={3}>
<Card title="Card Enrollment" icon="credit-card" href="/products/payments/card-enrollment">
Enroll Visa, Stripe, or Braintree cards

Check warning on line 46 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L46

Did you really mean 'Braintree'?
</Card>
<Card title="Delegations" icon="shield-check" href="/products/payments/mandates">
Set spending limits and expiration
Expand All @@ -24,13 +57,13 @@

<Steps>
<Step title="Enroll a card">
Add a Visa, Stripe, or Braintree card at [nevermined.app](https://nevermined.app). Card data is tokenized in the browser by the provider's PCI-compliant capture (VGS Collect for Visa and Stripe, Braintree Drop-in for Braintree). Nevermined never stores raw card numbers.

Check warning on line 60 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L60

Did you really mean 'Braintree'?

Check warning on line 60 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L60

Did you really mean 'Braintree'?

Check warning on line 60 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L60

Did you really mean 'Braintree'?

Check warning on line 60 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L60

Did you really mean 'Nevermined'?
</Step>
<Step title="Create a delegation">
Set the spending limit, duration, and (optionally) max transactions. Visa delegations also require a per-delegation passkey approval that binds the limits to your device. Optionally link the delegation to a specific API key for automatic routing.
</Step>
<Step title="Agents charge it">
Agents call the Nevermined API with their API key. Nevermined resolves the right delegation and generates an x402 token. The resource server verifies, executes, and settles.

Check warning on line 66 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L66

Did you really mean 'Nevermined'?

Check warning on line 66 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L66

Did you really mean 'Nevermined'?
</Step>
</Steps>

Expand All @@ -52,32 +85,32 @@
|-> POST /settle -> charges card, returns payment-response
```

## One delegation model, three networks
## One delegation model, three card networks

All three providers share the same `nvm:card-delegation` x402 scheme and the same `POST /api/v1/delegation/create` endpoint. The `network` field on the delegation (`stripe`, `braintree`, or `visa`) is set by the card you choose and routes settlement to the right PSP.

<CardGroup cols={3}>
<Card title="Visa" icon="cc-visa">
PAN tokenized by VGS Credential Management Platform (CMP) into a Visa Agentic Token. Each delegation requires a one-time WebAuthn/passkey device-binding ceremony enforced by Visa VTS. Settlement runs through Stripe Connect against the seller's connected account.

Check warning on line 94 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L94

Did you really mean 'Agentic'?
</Card>
<Card title="Stripe" icon="stripe">
Card captured via VGS Collect and confirmed against a Stripe SetupIntent. No passkey. Settlement runs through Stripe PaymentIntents directly.
</Card>
<Card title="Braintree" icon="paypal">

Check warning on line 99 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L99

Did you really mean 'Braintree'?
Card captured via Braintree Drop-in, exchanged for a vaulted `paymentMethodToken`. Settlement runs through `transaction.sale` against the seller's per-currency OAuth-connected Braintree merchant account.

Check warning on line 100 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L100

Did you really mean 'Braintree'?
</Card>
</CardGroup>

<Note>
The Visa Agentic Tokens flow replaces the earlier VTS/VIC + mandate endpoints. There is no longer a separate "mandate" object — a Visa delegation is just a `nvm:card-delegation` record with `provider: 'visa'`.

Check warning on line 105 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L105

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

## Key Concepts

| Concept | Description |
|---|---|
| **Delegation** | A scoped spending authorization on an enrolled card. Defines the spending limit, max transactions, and expiration. Same concept across Visa, Stripe, and Braintree. |

Check warning on line 112 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L112

Did you really mean 'Braintree'?
| **Visa Agentic Token** | The CMP-issued identifier (`vat_…`) that replaces the real PAN. Stored as the delegation's `providerPaymentMethodId` for Visa cards. |

Check warning on line 113 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L113

Did you really mean 'Agentic'?
| **Device binding** | A per-delegation WebAuthn/passkey ceremony required by Visa VTS. Produces a single-use `assuranceData` blob bound to the spending limit, duration, and merchant context. Browser-only. |
| **Spending Ceiling** | Per-card cumulative limit across all active delegations (default $10.00). |
| **API Key Linking** | Link a delegation to a specific API key so agents automatically use the right one. |
Expand All @@ -85,7 +118,7 @@

## SDK consumption

The TypeScript and Python SDKs treat all three networks identically. Pass the `delegationId` to `DelegationConfig` and the SDK auto-resolves the scheme + network from the plan and the delegation record:

Check warning on line 121 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L121

Did you really mean 'SDKs'?

<Tabs>
<Tab title="TypeScript">
Expand All @@ -112,7 +145,7 @@
<Tab title="Python">
```python
import os
from payments_py import Payments

Check warning on line 148 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L148

Did you really mean 'payments_py'?
from payments_py.x402 import DelegationConfig, X402TokenOptions

payments = Payments(
Expand All @@ -134,13 +167,13 @@
</Tabs>

<Warning>
For Visa, `delegationId` reuse is the **only** SDK path. `createDelegation` with `provider='visa'` cannot run from a non-browser context — the backend rejects it without `consumerPrompt` + `assuranceData`, both of which require the WebAuthn ceremony embedded by Visa VTS in the webapp. The SDK rejection surfaces as `PaymentsError.code = 'BCK.VISA.0014'`.

Check warning on line 170 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L170

Did you really mean 'webapp'?
</Warning>

## Environments

- **Sandbox** — Testing and development. Visa runs against VGS sandbox + VTS test PANs; Stripe in test mode; Braintree on sandbox merchants.

Check warning on line 175 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L175

Did you really mean 'Braintree'?
- **Live** — Production. Real payments through Visa, Stripe, and Braintree.

Check warning on line 176 in products/payments/overview.mdx

View check run for this annotation

Mintlify / Mintlify Validation (neverminedag) - vale-spellcheck

products/payments/overview.mdx#L176

Did you really mean 'Braintree'?

<Note>
You need an [NVM API Key](/agents-guide/get-api-key). Set it as `NVM_API_KEY`.
Expand All @@ -155,4 +188,10 @@
<Card title="Create a Delegation" icon="shield-check" href="/products/payments/mandates">
Define spending limits, usage caps, and expiration
</Card>
<Card title="Compare the three payment types" icon="table" href="/solutions/agent-to-agent-monetization#three-ways-to-get-paid">
Catalog, Embedded Web Flow, and Merchant Plans side by side
</Card>
<Card title="Orders: Goods & Services Checkout" icon="cart-shopping" href="/integrate/patterns/orders">
The Embedded Web Flow contract, and its current availability
</Card>
</CardGroup>
Loading