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 two enrollment providers, each available as a separate tab in the Nevermined Pay dashboard.Enrollment Paths
- Visa
- Stripe
Visa Enrollment
Visa cards are tokenized via Visa Token Service (VTS) and enrolled in Visa Intelligent Commerce (VIC). This path requires passkey (FIDO2) authentication.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.
Tokenize with Visa
NVM Pay registers the card with Visa Token Service (VTS), producing a provisioned token ID that replaces the real card number.
Enroll in Visa Intelligent Commerce
The tokenized card is enrolled in VIC, which enables mandate-based charging.
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.
Create a mandate
After enrollment, create a spending mandate to define how agents can charge this card.
Visa Card Lifecycle
Card Properties
Both Visa and Stripe cards share these core properties:| Property | Description |
|---|---|
id | Unique card identifier |
userId | Owner of the card |
last4 | Last 4 digits of the card number (for display) |
alias | User-friendly name (e.g., “Work Visa”, “Dev Card”) |
status | active or inactive |
spendingCeiling | Maximum 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.
Managing Cards
Via the Nevermined Pay Dashboard
The Nevermined Pay dashboard provides a visual interface for managing your enrolled cards. Visa and Stripe 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
- Visa
- Stripe
| Endpoint | Method | Description |
|---|---|---|
/cards | GET | List enrolled Visa cards (filter by userId) |
/cards/{id} | GET | Get card details including mandates |
/cards/{id} | PUT | Update card properties |
/cards/{id} | DELETE | Remove a card and its mandates |
/cards/{cardId}/transactions | GET | Get transaction history (paginated) |
Choosing a Provider
| Visa | Stripe | |
|---|---|---|
| Enrollment complexity | Multi-step with passkey auth | Simple card form |
| Authentication | Passkeys (FIDO2) or OTP | Stripe handles verification |
| Best for | High-security use cases, production deployments | Quick setup, developer testing, broader card support |
| Settlement | Visa credentials charged via Stripe | Stripe PaymentIntents directly |
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