Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.nevermined.app/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Before an agent can charge a payment card, the card must be enrolled in NVM Pay. Enrollment tokenizes the card data (NVM Pay never stores raw card numbers), verifies the cardholder’s identity, and registers the card with the payment provider. NVM Pay supports three enrollment providers, each available as a separate tab in the Nevermined Pay dashboard. The right provider for a given plan is determined by the seller’s fiatPaymentProvider metadata: Stripe-priced plans require a Stripe-vaulted card, and Braintree-priced plans require a Braintree-vaulted card.

Enrollment Paths

Visa Enrollment

Visa cards are tokenized via Visa Token Service (VTS) and enrolled in Visa Intelligent Commerce (VIC). This path requires passkey (FIDO2) authentication.
1

Capture card data

Enter your card details through the enrollment form. Card data is captured in a PCI-compliant VGS Collect iframe and tokenized in the browser before submission.
2

Tokenize with Visa

NVM Pay registers the card with Visa Token Service (VTS), producing a provisioned token ID that replaces the real card number.
3

Enroll in Visa Intelligent Commerce

The tokenized card is enrolled in VIC, which enables mandate-based charging.
4

Authenticate with passkey

Complete passkey authentication (FIDO2/WebAuthn) to prove you authorized the enrollment. If passkeys aren’t available, a one-time password (OTP) is sent to your email instead.
5

Create a mandate

After enrollment, create a spending mandate to define how agents can charge this card.

Visa Card Lifecycle

Enrollment started
  |
  |-> PAN enrolled (VTS tokenization)
  |
  |-> Token provisioned (provisioned token ID created)
  |
  |-> VIC enrolled (payment network registration)
  |
  |-> Authentication (passkey or OTP)
  |
  |-> Active -> Mandates can be created
        |
        |-> Inactive (card deactivated or removed)
You can track enrollment progress in the dashboard. Each step is recorded, and if enrollment fails at any point, the specific step and error are captured.

Card Properties

Visa, Stripe, and Braintree cards share these core properties:
PropertyDescription
idUnique card identifier
userIdOwner of the card
last4Last 4 digits of the card number (for display)
aliasUser-friendly name (e.g., “Work Visa”, “Dev Card”)
statusactive or inactive
spendingCeilingMaximum total amount that can be allocated across all active mandates or delegations on this card (default: $10.00)

Spending Ceiling

Every card has a spending ceiling, a cumulative limit on the total amount allocated to active authorizations. This prevents over-allocation and provides a safety net. Both Visa and Stripe cards enforce the same ceiling. For example, if your card has a $10.00 ceiling:
  • Authorization A: $5.00
  • Authorization B: $3.00
  • Remaining capacity: $2.00
The default spending ceiling is $10.00 during the pilot phase. Contact the Nevermined team if you need a higher limit.
When you create or update a mandate/delegation, NVM Pay validates that the total allocated amount across all active authorizations on the card doesn’t exceed the ceiling. If it would, the request is rejected with a clear error showing the remaining capacity.

Managing Cards

Via the Nevermined Pay Dashboard

The Nevermined Pay dashboard provides a visual interface for managing your enrolled cards. Visa, Stripe, and Braintree cards appear in separate tabs:
  • View all enrolled cards with their status and spending ceiling
  • See active mandates/delegations per card with remaining capacity
  • View transaction history for each card
  • Deactivate or remove cards

Via the API

EndpointMethodDescription
/cardsGETList enrolled Visa cards (filter by userId)
/cards/{id}GETGet card details including mandates
/cards/{id}PUTUpdate card properties
/cards/{id}DELETERemove a card and its mandates
/cards/{cardId}/transactionsGETGet transaction history (paginated)

Choosing a Provider

VisaStripeBraintree
Enrollment complexityMulti-step with passkey authSimple card formSimple card form (Braintree Drop-in)
AuthenticationPasskeys (FIDO2) or OTPStripe handles verificationBraintree verifyCard at vault time
Best forHigh-security use cases, production deploymentsQuick setup, developer testing, broader card supportPlans whose seller settles on Braintree (per-currency merchant accounts, OAuth Connect)
SettlementVisa credentials charged via StripeStripe PaymentIntents directlyBraintree transaction.sale against vaulted paymentMethodToken
All three providers support the same spending controls (ceilings, usage limits, expiration) and API key linking. The right enrollment provider for a given plan is determined by the plan’s fiatPaymentProvider metadata: a Braintree-priced plan can only be paid by a Braintree-vaulted card.

What’s Next?

Once your card is enrolled, create a spending authorization to control how agents can charge it.

Create a Mandate or Delegation

Define spending limits, usage caps, and expiration for agent payments