Integration FAQ
Environments
Can I test my integration before going live?
Nevermined provides two separate environments:- Sandbox: This is a testing environment where you can safely develop and test your integration. It makes real transactions but without any economic value.
- Live: This is the production environment where real transactions occur.
How can I change between “sandbox” and “live” environments?
a. If you are using the Nevermined App, you can switch environments in Settings > Environments. Just click on the “Switch Environment” button to change between “sandbox” and “live”. b. If you are using the Nevermined Payment Libraries, when you initialize the libraries you just need to set theenvironment parameter to either sandbox or live.
Payments
What payment methods are supported?
Nevermined provides payments in both cryptocurrency and fiat:- Cryptocurrency: Payments can be made using any ERC-20 cryptocurrencies or via
ETH. - Fiat: Traditional payment methods such as credit cards and bank transfers are also supported.
How can I configure different currencies when creating payment plans?
There are two ways, depending on whether you are using the Nevermined App or the Nevermined Payment Libraries:- Nevermined App: When creating a payment plan, you can select the currency from a dropdown menu. If you want to receive payments in fiat, you must connect your Stripe linked bank account to the Nevermined App and select USD or EUR as the currency. If you want to receive payments in cryptocurrency, you can select USDC or EURC currency. Via the Nevermined App you can create payment plans in USD, EUR, USDC, or EURC.
- Nevermined Payment Libraries: When creating a payment plan using the libraries, you can specify if the payment plan has to be paid in fiat or cryptocurrency by setting the
priceTypeattribute asPlanPriceType.FIXED_FIAT_PRICEfor fiat orPlanPriceType.FIXED_PRICEfor cryptocurrency. For fiat, use thecurrencyparameter to choose betweenUSD(default) andEUR. For crypto, if you selectFIXED_PRICE, in thetokenAddressattribute you can specify the address of the ERC-20 token you want to use for payments (e.g., USDC or EURC) orZeroAddressif you want to useETH. The SDK providesgetEURCPriceConfig()/get_eurc_price_config()convenience helpers for EURC.
How can I test payments in the “sandbox” environment?
If you want to test the payments functionality in the “sandbox” environment, you have two options depending on the payment method you want to use:- Cryptocurrency: You can use the Circle USDC Faucet to get some test USDC tokens. These tokens can be used to test payments in the “sandbox” environment.
- Fiat: You can use the Stripe Test Cards to test payments in the “sandbox” environment. Just use any of the test cards provided by Stripe when making a payment. The payments will be processed as if they were real payments, but no actual money will be charged.
How do I fix a payment-method mismatch?
A plan is either crypto (nvm:erc4337) or fiat (nvm:card-delegation) — never both — and the buyer’s setup has to match the plan. Most rejections come from that mismatch. First detect the plan’s type, then:
| What you see | Likely cause | Fix |
|---|---|---|
BCK.X402.0027 — “No accessible payment method found…” (or CLI “No enrolled card found”) | Fiat plan, but no card is enrolled | Enroll a card with the plan’s provider, create a card delegation, then retry |
BCK.PROTOCOL.0050 — “Fiat plans cannot be ordered through this endpoint” | Tried to orderPlan() a fiat plan via the crypto path | Use orderFiatPlan() (Stripe) or the card-delegation settle flow (POST /api/v1/x402/settle) |
| Token mints fine, but a fiat plan won’t settle | getX402AccessToken defaulted to nvm:erc4337 (crypto) | Pass scheme: 'nvm:card-delegation' — the direct token call does not auto-detect the scheme |
402 when settling a crypto plan | Wallet low on USDC/EURC, or the delegation limit is exhausted or expired | Fund the smart account, or create a fresh delegation |