More than one NIF on the API plan: a 403 that routes to sales
On the API plan with no agreed price, a second NIF, or going Live with several, answers 403 CONTACT_SALES_REQUIRED with a link to sales.
The API plan covers one NIF self-service; more than one is priced per NIF with sales. Until that price is agreed, the API says so with a new code, 403 CONTACT_SALES_REQUIRED. Its error.details carries reason — which rule applied — and salesUrl, where the account holder talks to sales. Nothing is created or switched on, and no checkout is opened. Once sales sets up the price, the same request goes through.
It does not apply to accounts with an agreed price, to managed accounts or the agencies that provision them, or to the Stripe plan and older plans.
What breaks
- Adding a second NIF (
POST /v1/accounts/{account_id}/companies, inTESTorPROD) to an account with exactly one active company used to answer201; it now answers403 CONTACT_SALES_REQUIREDwithreason: SECOND_NIF. - Switching a NIF on in Live (
POST /v1/companies/{company_id}/activations, or creating it inPROD) when the account has two or more active companies used to answer201or a402with a checkout; it now answers403 CONTACT_SALES_REQUIREDwithreason: LIVE_WITH_MULTIPLE_NIFS, before any402. LiveActivationVerdictgainsCONTACT_SALES. A client that validates the enum strictly must accept the new value.
Does this affect you?
- If your account is on the API plan and you create companies or switch them on in Live through the API, handle
CONTACT_SALES_REQUIREDby showingerror.details.salesUrlinstead of treating it as a failure. - If you validate
LiveActivationVerdictagainst a closed list, addCONTACT_SALES.
What else changed
402 PAYMENT_REQUIREDmeans unpaid: payment retries are exhausted. A failed charge that is still being retried no longer blocks Live.
Endpoints
- POST/v1/accounts/{account_id}/companies403 CONTACT_SALES_REQUIRED (SECOND_NIF, LIVE_WITH_MULTIPLE_NIFS)
- POST/v1/companies/{company_id}/activations403 CONTACT_SALES_REQUIRED (LIVE_WITH_MULTIPLE_NIFS)
Where to go next
A unit price with more than 4 decimals is rejected, not rounded
A `unit_price` with more than 4 significant decimals now answers `422 LINE_UNIT_PRICE_TOO_MANY_DECIMALS` instead of being rounded silently. Round to 4 decimals, or send the line total.
Province is only required for addresses in Spain
`province` is no longer required on an `Address` outside Spain: a foreign customer or inline recipient without one is accepted. A Spanish address without it still answers `422 PROVINCE_EMPTY`.