> ## Documentation Index
> Fetch the complete documentation index at: https://neverminedag-sync-api-errors-9d14109.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Integration FAQ

> Frequently asked questions about integrating Nevermined Payment Libraries

This page will answer some common questions about integrating Nevermined Payment Libraries into your AI services.

## 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](https://nevermined.app), you can switch environments in [Settings > Environments](https://nevermined.app/environment). 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 the `environment` 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 `priceType` attribute as `PlanPriceType.FIXED_FIAT_PRICE` for fiat or `PlanPriceType.FIXED_PRICE` for cryptocurrency. For fiat, use the `currency` parameter to choose between `USD` (default) and `EUR`. For crypto, if you select `FIXED_PRICE`, in the `tokenAddress` attribute you can specify the address of the ERC-20 token you want to use for payments (e.g., USDC or EURC) or `ZeroAddress` if you want to use `ETH`. The SDK provides `getEURCPriceConfig()` / `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](https://faucet.circle.com/) 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](https://stripe.com/docs/testing#international-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](/docs/development-guide/order-plans#which-payment-type-does-this-plan-need), 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](/docs/products/payments/card-enrollment) 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                                                                    |

See [Automatic Credit Top-Ups](/docs/integrate/patterns/top-up#when-top-ups-stop) for how funding and delegation-limit failures surface (402 vs 500).
