HTTP statuses from InFlow
| Status | Code | Meaning | Fix |
|---|---|---|---|
401 | No structured body | The credential is missing, not valid, or expired. | Check the API key and the environment. |
403 | SELLER_ACCOUNT_REQUIRED | The credential is valid, but it does not belong to a Seller account. | Create a key in a Seller account. |
Seller SDK errors
| Error | Package | Cause | Fix |
|---|---|---|---|
InflowApiError | @inflowpayai/x402, @inflowpayai/mpp | An InFlow API call failed. | For x402, read error.code. For MPP, read error.body. For SELLER_ACCOUNT_REQUIRED, change the key. |
RouteConfigurationError | @x402/core middleware | No registered scheme covers a scheme and network pair that an endpoint advertises. | Pass await inflowSchemeRegistrations(seller) as the third argument to paymentMiddlewareFromConfig. |
MppUnsupportedCurrencyError | @inflowpayai/mpp-seller | The charge currency has no rail in the PSP configuration. | Charge in a supported currency, for example USDC or USD. |
MppCredentialProblemError | @inflowpayai/mpp-seller | The credential check or the broadcast failed. It carries an RFC 9457 problem from the PSP. | Read the problem. Decide between a new challenge and a hard failure. A status of 500 means that the result is not known. Do not create a new payment. |
MppCardUnavailableError | @inflowpayai/mpp-seller | The seller configuration does not advertise the USD Visa CARD capability. | Enable cards for your Seller account. |
MppStripeUnavailableError | @inflowpayai/mpp-seller | The seller has no Stripe capability that is safe to use. | Connect a Stripe account to your Seller account. |
MppStripeAmountError | @inflowpayai/mpp-seller | The amount is less than USD 0.50, more than USD 999,999.99, or not in exact cents. | Charge an amount in this range, in whole cents. |
InflowConfigurationError | InFlow Node.js SDKs | INFLOW_HTTP_PROXY is set, but the optional undici package is missing. The error appears at the first request. | Install undici, or remove the variable. |
No payment offers are available for this request | @inflowpayai/mpp-seller | canOffer rejected every offer. | Check your canOffer hooks. selectOffers must also return at least one offer. |
Catch the account error at startup
import { InflowApiError } from '@inflowpayai/x402';
try {
await startSeller();
} catch (error) {
if (error instanceof InflowApiError && error.code === 'SELLER_ACCOUNT_REQUIRED') {
throw new Error('Configure a Seller account API key for this integration.');
}
throw error;
}
error.body. The MPP inflow method loads its configuration in the background, so the error can occur at the first paid request.
CLI states
| State | Meaning | Fix |
|---|---|---|
authenticated is false | The CLI has no valid session. | Run inflow auth login. |
The response has an update field | A newer CLI is available. | Run the installer again. The current version still works. |
| A human-action error about the vault | The vault is locked or not initialized. | The owner runs inflow vault unlock in a terminal. |
| The payment stays pending | The owner did not approve it. | Check with inflow mpp status or inflow x402 status. Approval expires after 900 seconds. |
| No matching option | The filters exclude every seller option. | Remove the filters. Run inflow inspect again. |