# All error codes

Every error code returned by the BeeL. API in one flat table — useful as a cheat sheet or to import as constants in your codebase.

Every code the API can return, in one alphabetical table. **438 codes** across **15 domains**.

<Callout type="info">
Each `Code` cell links to the per-code reference page with the full example response and localised messages.
</Callout>

## Codes as a copy/paste list

Drop this into your codebase to declare every error code as a constant. The fenced code block has a one-click copy button.

```text
ACCOUNT_HAS_NO_HOLDER
ACCOUNT_MANAGEMENT_FORBIDDEN
ACCOUNT_NOT_ACCESSIBLE
ACCOUNT_REQUIRES_FOCUS_SWITCH
ACTIVE_COMPANY_HEADER_INVALID
ACTIVE_COMPANY_NOT_ACCESSIBLE
ACTIVE_COMPANY_REQUIRED
ALREADY_REGISTERED
ALTERNATIVE_ID_ACTUALLY_IN_CENSUS
ALTERNATIVE_ID_AND_NIF_EXCLUSIVE
ALTERNATIVE_ID_COUNTRY_REQUIRED
ALTERNATIVE_ID_INVALID
ALTERNATIVE_ID_REQUIRES_SPAIN
ALTERNATIVE_ID_SPAIN_INVALID_TYPE
ALTERNATIVE_ID_VAT_INVALID_FORMAT
ALTERNATIVE_ID_VAT_REQUIRES_EU_COUNTRY
ANNUAL_PLAN_NOT_AVAILABLE
API_COMMUNICATION_ERROR
API_KEY_LIVE_NOT_AVAILABLE
ATTACH_SOURCE_INVOICE_UNAVAILABLE
ATTACH_SOURCE_INVOICES_NO_SOURCES
ATTACH_SOURCE_INVOICES_REQUIRES_PDF
ATTACH_SOURCE_PDF_MISSING
ATTACH_SOURCE_ZIP_TOO_LARGE
AUTOMATIC_EMAIL_CONFIG_INVALID
BAD_REQUEST
BILLING_MANAGED_BY_PROVIDER
BULK_EMAIL_NO_VALID_INVOICES
BULK_VALIDATION_ERROR
BUSINESS_RULE_VIOLATION
CANNOT_DELETE_PRIMARY
CHECKOUT_REQUIRED
CHECKOUT_URLS_REQUIRED
CITY_EMPTY
CITY_MAX_LENGTH
CLAIM_TOKEN_EMAIL_REQUIRED
CLAIM_TOKEN_HOLDER_MISMATCH
CLIENT_DUPLICATE
CLIENT_HAS_INVOICES
CLIENT_NOT_FOUND
COMPANY_ACCESS_REVOKED
COMPANY_ACTIVE_IN_PRODUCTION
COMPANY_HAS_INVOICES
COMPANY_NIF_MISSING
COMPANY_NOT_ACTIVATED
COMPANY_NOT_ACTIVATED_IN_ENVIRONMENT
COMPANY_READ_ONLY
CONCURRENT_MODIFICATION
CONFLICT
CONNECTION_NOT_ACTIVE
CONNECTION_NOT_FOUND
CONNECTION_SERIE_INACTIVE
CONNECTION_SERIE_NOT_FOUND
CONNECTION_SERIE_TIPO_INCOMPATIBLE
CONTACT_SALES_REQUIRED
CONVERSION_REQUIRES_PROFORMA
CORRECTIVE_BAD_DEBT_BASE_TOO_LOW
CORRECTIVE_BAD_DEBT_TOO_EARLY
CORRECTIVE_CIRCUMSTANCE_DATE_NOT_APPLICABLE
CORRECTIVE_CIRCUMSTANCE_DATE_OUT_OF_RANGE
CORRECTIVE_EXCEEDS_INVOICED_AMOUNT
CORRECTIVE_INVOICE_INCOMPLETE
CORRECTIVE_NOT_RECTIFIABLE
CORRECTIVE_NOTHING_LEFT_TO_RECTIFY
CORRECTIVE_ORIGINAL_MIXED_IRPF
CORRECTIVE_ORIGINAL_MIXED_SURCHARGE
CORRECTIVE_ORIGINAL_NOT_FOUND
CORRECTIVE_ORIGINAL_RECORD_REJECTED
CORRECTIVE_OUT_OF_TIME
CORRECTIVE_PARTIAL_SUPLIDO_NOT_ALLOWED
CORRECTIVE_RECENT_DUPLICATE
CORRECTIVE_RECIPIENT_IS_ANOTHER_PERSON
CORRECTIVE_RECIPIENT_NOT_ACCEPTED
CORRECTIVE_RECIPIENT_NOT_ESTABLISHED
CORRECTIVE_RECIPIENT_UNCHANGED
CORRECTIVE_WITHHOLDING_ONLY
COUNTRY_CODE_MISMATCH
COUNTRY_CODE_REQUIRED
CSV_FILE_TOO_LARGE
CUSTOMER_ADDRESS_INVALID
CUSTOMER_DUPLICATED_IN_BATCH
CUSTOMER_DUPLICATED_IN_FILE
CUSTOMER_FIELD_INVALID_CHARACTERS
CUSTOMER_FIELD_INVALID_FORMAT
CUSTOMER_FIELD_REQUIRED
CUSTOMER_IDENTIFIER_REQUIRED
CUSTOMER_NOT_SAVED
CUSTOMER_ROW_NOT_PROCESSED
DEFAULT_CANNOT_BE_UNMARKED
DEFAULT_CANNOT_DEACTIVATE
DEFAULT_CANNOT_DELETE
DELETION_FAILED
DELIVERY_LOG_NOT_FOUND
DISPLAY_NAME_BLANK
DUE_DATE_BEFORE_ISSUE_DATE
DUPLICATE_HEADER
EMISSION_NOT_READY
EMPTY_FILE
ENCODING_ERROR
ENDPOINT_NOT_FOUND
ENTITY_TYPE_INCONSISTENT_WITH_NIF
ENV_MISMATCH
ENVIO_NO_PERMITIDO
ENVIRONMENT_HEADER_INVALID
EVENT_DRAFT_NOT_POSSIBLE
EVENT_FILTER_RANGE_INVALID
EVENT_INVALID_STATUS_FOR_DISCARD
EVENT_INVALID_STATUS_FOR_DRAFT
EVENT_INVALID_STATUS_FOR_RESOLVE
EVENT_INVALID_STATUS_FOR_RETRY
EVENT_MAX_RETRIES_EXCEEDED
EVENT_NOT_FOUND
EVENT_SOURCE_PAYLOAD_UNAVAILABLE
EXCHANGE_DUPLICATED_SIMPLIFIED
EXCHANGE_INVOICE_NOT_CORRECTABLE
EXCHANGE_INVOICE_NOT_VOIDABLE
EXCHANGE_REQUIRES_SIMPLIFIED
EXCHANGE_SIMPLIFIED_NOT_YET_ACCEPTED
EXCHANGE_SIMPLIFIED_RECORD_REJECTED
EXEMPT_ZERO_RATE_REQUIRES_REASON
EXEMPTION_INCOMPATIBLE_WITH_REGIME
EXEMPTION_NOT_FOR_ISSUED_INVOICE
EXEMPTION_REASON_NOT_ALLOWED_AS_DEFAULT
EXEMPTION_REASON_REQUIRES_ZERO_RATE
EXEMPTION_REASON_TEXT_REQUIRED
EXEMPTION_REGIME_NOT_SUPPORTED_IN_VERIFACTU
EXEMPTION_REQUIRES_RECIPIENT_ID_TYPE
EXPORT_LIMIT_EXCEEDED
EXPORT_SELECTION_REQUIRED
EXTERNAL_SERVICE_ERROR
FEATURE_NOT_AVAILABLE
FIELD_BLANK
FIELD_TOO_LONG
FILE_CORRUPTED
FILE_EMPTY
FILE_TOO_LARGE
FILTER_CATEGORY_NOT_ACTIONABLE
FILTER_PATTERN_INVALID
FILTER_PATTERN_TOO_LONG
FILTER_PATTERNS_TOO_MANY
FISCAL_IDENTITY_LIVE_ONLY
FORBIDDEN
GRANT_COMPANY_NOT_IN_ACCOUNT
GRANT_NOT_FOUND
GRANTS_ONLY_FOR_MEMBER
HAS_INVOICES_CANNOT_DELETE
HEADER_ROW_NOT_FOUND
IBAN_INVALID
IBAN_REQUIRED
IDEMPOTENCY_KEY_MISMATCH
IDEMPOTENCY_KEY_PROCESSING
IDEMPOTENCY_KEY_REQUIRED
IMMUTABLE_ENTITY_TYPE
IMMUTABLE_LEGAL_FORM
IMMUTABLE_NIF
INACTIVE_CANNOT_BE_DEFAULT
INSUFFICIENT_SCOPE
INTERNAL_ERROR
INVALID_CONTENT
INVALID_EMAIL_FORMAT
INVALID_EXCEL_FORMAT
INVALID_EXCEL_STRUCTURE
INVALID_EXTENSION
INVALID_FILE_TYPE
INVALID_FORMAT
INVALID_IBAN
INVALID_IDEMPOTENCY_KEY
INVALID_IRPF
INVALID_IVA_SURCHARGE_PAIR
INVALID_JSON_FORMAT
INVALID_PERCENTAGE
INVALID_REGIME_KEY_FOR_TAX_TYPE
INVALID_SURCHARGE
INVITATION_NOT_FOUND
INVOICE_ALREADY_SCHEDULED
INVOICE_ALREADY_VOIDED
INVOICE_CLIENT_NOT_FOUND
INVOICE_DRAFT_NOT_SENDABLE
INVOICE_DUPLICATE_EXTERNAL_REFERENCE
INVOICE_EMAIL_NO_RECIPIENTS
INVOICE_HAS_LIVE_CORRECTIVES
INVOICE_NO_LINES
INVOICE_NOT_CORRECTIBLE_IN_CURRENT_STATUS
INVOICE_NOT_FOUND
INVOICE_NOT_ISSUED_NO_PDF
INVOICE_NOT_REGISTERED_NO_PDF
INVOICE_NOT_SCHEDULED
INVOICE_NUMBER_INVALID_CHARACTERS
INVOICE_NUMBER_TOO_LONG
INVOICE_REQUIRES_AT_LEAST_ONE_NORMAL_LINE
INVOICE_SERIES_NOT_FOUND
INVOICE_STATUS_NOT_SCHEDULABLE
INVOICE_TAX_BREAKDOWN_TOO_LONG
INVOICE_TAX_RATE_TOO_MANY_DECIMALS
INVOICE_TOTAL_TOO_LARGE_FOR_VERIFACTU
IRPF_RATE_NOT_FOR_CORPORATE_ISSUER
IRPF_RATE_ONLY_FOR_CORPORATE_ISSUER
IRPF_REQUIRED_WHEN_NOT_EXEMPT
ISP_INCOMPATIBLE_WITH_SURCHARGE
LAST_OWNER_PROTECTED
LINE_DECLARED_TOTAL_FORBIDS_DISCOUNT
LINE_EXEMPTION_TEXT_REQUIRED
LINE_EXEMPTION_WITH_TAX
LINE_INVALID_QUANTITY
LINE_MAIN_TAX_REQUIRED
LINE_NEGATIVE_PRICE
LINE_NORMAL_DESCRIPTION_REQUIRED
LINE_SUPLIDO_MUST_HAVE_NO_IRPF
LINE_SUPLIDO_MUST_HAVE_NO_RECARGO
LINE_SUPLIDO_MUST_HAVE_NO_TAX
LINE_SUPLIDO_REFERENCE_REQUIRED
LINE_SUPLIDO_SOURCE_INVOICE_NOT_FOUND
LINE_SUPLIDO_SOURCE_INVOICE_NOT_ISSUED
LINE_SUPLIDO_TOO_MANY_SOURCE_ACCOUNTS
LINE_SUPLIDO_TOO_MANY_SOURCES
LINE_TOTAL_INCONSISTENT
LINE_UNIT_PRICE_OUT_OF_RANGE
LINE_UNIT_PRICE_TOO_MANY_DECIMALS
LINE_UNIT_PRICE_XOR_DECLARED_TOTAL
LIVE_CREDENTIAL_REQUIRED
MAIN_TAX_REQUIRED
MANAGED_ACCESS_INSUFFICIENT
MANAGED_ACCOUNT_HOLDER_REQUIRED
MANAGED_SCOPE_ELEVATION_REQUIRES_OWNER
MARK_SENT_ALREADY_SENT
MARK_SENT_FROM_DRAFT_NOT_ALLOWED
MARK_SENT_FROM_INVALID_STATE
MARK_SENT_FROM_LATER_STATE
MEMBER_ALREADY_IN_ACCOUNT
MEMBER_MANAGEMENT_FORBIDDEN
MEMBER_NOT_FOUND
METADATA_FILTER_TOO_MANY_KEYS
METHOD_NOT_ALLOWED
MISSING_HEADER
MISSING_HEADERS
MISSING_PARAMETER
MISSING_PART
MISSING_REQUIRED_FIELD
NEGATIVE_TOTAL_REQUIRES_RECTIFICATIVE
NIF_ALREADY_REGISTERED
NIF_CENSUS_MISMATCH
NIF_DE_BAJA
NIF_INVALID_CONTROL_DIGIT
NIF_INVALID_FORMAT
NIF_LIMIT_REACHED
NIF_NOT_CONFIGURED
NIF_NOT_IN_CENSUS
NIF_NOT_REGISTERED
NIF_PROD_ALREADY_ACTIVE_IN_ANOTHER_ACCOUNT
NIF_REPRESENTATION_REQUIRED
NIF_REVOCADO
NIF_VALIDATION_INVALID
NO_DATA_ROWS
NO_PDFS_AVAILABLE
NO_UNSIGNED_DOCUMENT
NOT_ACCEPTABLE
NOT_BILLING_OWNER
NOT_FOUND
NUMBER_MAX_LENGTH
NUMBERING_REQUIRES_ACTIVATION
ONLY_DRAFT_EMITTABLE
OPERATION_DATE_AFTER_ISSUE_DATE
OPERATION_DATE_TOO_OLD
OPERATION_REQUIRES_API_KEY
OPERATION_REQUIRES_SESSION
OSS_REGIME_INCOMPATIBLE_WITH_ISP
OWNER_ROLE_NOT_ASSIGNABLE
OWNER_ROLE_RESERVED
PARSING_ERROR
PAYMENT_DATE_REQUIRED
PAYMENT_DETAILS_REQUIRE_METHOD
PAYMENT_REQUIRED
PAYMENT_RETURN_URL_INVALID
PDF_EMPTY
PDF_INVALID_EXTENSION
PDF_INVALID_FORMAT
PDF_NOT_GENERATED
PDF_SIGNATURE_INVALID
PDF_TOO_LARGE
PDF_VALIDATION_FAILED
PENDING_INVITATION_NOT_FOUND
PERCENTAGE_OUT_OF_RANGE
PHYSICAL_PERSON_CANNOT_HAVE_LEGAL_FORM
PHYSICAL_PERSON_CANNOT_HAVE_REPRESENTATIVE
PLAN_ACTIVATION_REQUIRED
PLAZO_DIAS_OUT_OF_RANGE
POSTAL_CODE_EMPTY
POSTAL_CODE_INVALID_ES
PREVIEW_DRAFT_ONLY
PREVIEW_GENERATION_ERROR
PRODUCT_DUPLICATE
PRODUCT_NOT_FOUND
PROFILE_INCOMPLETE
PROFILE_NOT_FOUND
PROFORMA_ALREADY_CONVERTED
PROFORMA_CORRECTIVE_FORBIDDEN
PROFORMA_NOT_CONVERTIBLE
PROFORMA_NOT_ISSUABLE
PROFORMA_NOT_RECURRING
PROFORMA_PAYMENT_FORBIDDEN
PROFORMA_RECIPIENT_REQUIRED
PROFORMA_SCHEDULE_FORBIDDEN
PROFORMA_TRANSITION_FORBIDDEN
PROFORMA_TYPE_CHANGE_FORBIDDEN
PROVIDER_NOT_SUPPORTED
PROVINCE_EMPTY
PROVINCE_MAX_LENGTH
PROVISIONING_ACCOUNT_CLAIMED
PROVISIONING_ACCOUNT_NOT_ACCESSIBLE
PROVISIONING_EMAIL_ALREADY_REGISTERED
PROVISIONING_EMAIL_REQUIRED
PROVISIONING_EXTERNAL_REF_CONFLICT
PROVISIONING_INVALID_CURSOR
PROVISIONING_TAX_PROFILE_REQUIRED
QUOTA_EXCEEDED
RATE_LIMIT_EXCEEDED
RECARGO_EQUIVALENCIA_REQUIRED
RECARGO_IVA_COMBINATION_INVALID
RECARGO_REQUIRES_REGIME_RE
RECIPIENT_ADDRESS_REQUIRED
RECIPIENT_CUSTOMER_AND_DATA_EXCLUSIVE
RECIPIENT_FISCAL_NAME_REQUIRED
RECIPIENT_ID_REQUIRED
RECIPIENT_NIF_AND_ID_OTHER_EXCLUSIVE
RECIPIENT_NOT_PROVIDED
RECIPIENT_REQUIRED_FOR_ORDINARY
RECIPIENT_UNREGISTERED_ID_MUST_BE_DNI_OR_NIE
RECTIFICATION_REASON_REQUIRED
RECTIFICATIVA_PARCIAL_SIN_LINEAS
RECTIFICATIVA_R1R4_NOT_SIMPLIFICADA
RECTIFICATIVA_R5_ONLY_SIMPLIFICADA
RECTIFICATIVA_TOTAL_CON_LINEAS
RECURRING_ALREADY_ENDED
RECURRING_END_DATE_BEFORE_START
RECURRING_END_MODE_CONFLICT
RECURRING_MAX_INVOICES_ABOVE_MAXIMUM
RECURRING_MAX_INVOICES_BELOW_GENERATED
RECURRING_MAX_INVOICES_BELOW_MINIMUM
RECURRING_NO_OCCURRENCE_IN_WINDOW
RECURRING_NOT_ACTIVE
RECURRING_NOT_FOUND
RECURRING_NOT_STARTED
RECURRING_OCCURRENCE_ALREADY_CONSUMED
RECURRING_START_DATE_NOT_EDITABLE
RECURRING_STATE_TRANSITION_INVALID
RECURRING_TYPE_NOT_SUPPORTED
REFERENCED_BY_PAYMENT_CONNECTION
REFERENCED_BY_RECURRING_INVOICE
REGIME_KEY_CLASSIFICATION_NOT_ACCEPTED
REGIME_KEY_NOT_SUPPORTED
REGIME_KEY_REQUIRES_RECIPIENT_NIF
REGIME_KEY_REQUIRES_STANDARD_INVOICE
REGIME_KEY_REQUIRES_VAT_RATE
REGIME_REQUIRES_INCOMPATIBLE_EXEMPTION
REGIME_REQUIRES_SURCHARGE
REPRESENTATION_ALREADY_ACTIVE
REPRESENTATION_DOCUMENT_NOT_STORED
REPRESENTATION_NOT_ACTIVE
REPRESENTATION_NOT_FOUND
REQUEST_BLOCKED
REQUEST_BODY_TOO_LARGE
REQUEST_LOG_INVALID_CURSOR
REQUEST_LOG_INVALID_TIME_RANGE
REQUEST_LOG_NOT_FOUND
REVERSE_CHARGE_CASE_NOT_SUPPORTED
REVERT_ONLY_FROM_SENT
SCHEDULE_PATCH_EMPTY
SCHEDULED_DATE_IN_PAST
SERIES_ANNUAL_REQUIRES_YEAR
SERIES_CODE_DUPLICATED
SERIES_CODE_LOCKED_HAS_INVOICES
SERIES_COMPANY_DELETED
SERIES_DEFAULT_CONFLICT
SERIES_DEFAULT_NOT_FOUND
SERIES_DOCUMENT_TYPE_LOCKED_HAS_INVOICES
SERIES_FORMAT_INVALID_CHARACTERS
SERIES_FORMAT_INVALID_PADDING
SERIES_FORMAT_LOCKED_HAS_INVOICES
SERIES_FORMAT_NUM_REQUIRED
SERIES_FORMAT_NUMBER_TOO_LONG
SERIES_FORMAT_OVERLAPS
SERIES_FORMAT_UNRECOGNIZED_VARS
SERIES_INACTIVE
SERIES_INCOMPATIBLE_DOC_TYPE
SERIES_INITIAL_NUMBER_LOCKED_HAS_INVOICES
SERIES_INITIAL_NUMBER_OUT_OF_RANGE
SERIES_MONTHLY_REQUIRES_MONTH_AND_YEAR
SERIES_NOT_FOUND
SERIES_NUMBER_COLLISION
SERIES_NUMBERING_FROZEN
SERIES_RESET_LOCKED_HAS_INVOICES
SERIES_TYPE_CHANGE_LEAVES_TYPE_UNCOVERED
SERIES_UNASSIGNED_TYPE_NOT_ALLOWED
SERVICE_UNAVAILABLE
SIGNING_ONLY_IN_LIVE
SIMPLIFICADA_FORBIDS_CROSS_BORDER
SIMPLIFICADA_FORBIDS_IRPF
SIMPLIFICADA_FORBIDS_ISP
SIMPLIFICADA_FORBIDS_SURCHARGE
SIMPLIFIED_EXCHANGE_NOT_RECORDABLE
SIMPLIFIED_INVOICE_EXCEEDS_LEGAL_LIMIT
SIMPLIFIED_INVOICE_FORBIDS_IDENTIFIED_RECIPIENT
SIMPLIFIED_NOT_EXCHANGEABLE
SIN_DESTINATARIO_RESOLUBLE
STATUS_NOT_DELETABLE
STATUS_NOT_MODIFIABLE
STREET_EMPTY
STREET_MAX_LENGTH
SUBACCOUNT_USER_NOT_FOUND
SUBSCRIPTION_REQUIRED
SURCHARGE_RATE_NOT_ACCEPTED_ON_DATE
SURCHARGE_RATE_REQUIRES_RECALCULATION
SURCHARGE_REQUIRES_REGIME
SWIFT_INVALID
TAX_CONFIG_CONFLICT
TOO_MANY_RECORDS
TOO_MANY_REQUESTS
TOTAL_CORRECTIVE_NOT_VOIDABLE
TRANSITION_NOT_SUPPORTED
TYPE_CHANGE_CORRECTIVE_FORBIDDEN
UNAUTHORIZED
UNSUPPORTED_MEDIA_TYPE
URL_MUST_BE_HTTPS
URL_TARGET_NOT_ALLOWED
VALIDATION_ERROR
VALUE_OUT_OF_RANGE
VALUE_TOO_LONG
VAT_RATE_NOT_ACCEPTED_ON_DATE
VERIFACTU_ALWAYS_ON_IN_SANDBOX
VERIFACTU_RECORD_NOT_DECLARABLE
VERIFACTU_REPRESENTATION_REQUIRED
VOID_DATE_BEFORE_ISSUE_DATE
VOID_REQUIRES_ISSUED_IN_ERROR
WEBHOOK_ACTIVE_SUBSCRIPTION_LIMIT_REACHED
WEBHOOK_REACTIVATION_REQUIRES_LIVE_ENDPOINT
WEBHOOK_SUBSCRIPTION_NOT_FOUND
WEBHOOK_URL_INVALID
ZERO_RATE_REQUIRES_EXEMPTION_REASON
```

## Full table

| Code | Category | English message |
|------|----------|-----------------|
| [`ACCOUNT_HAS_NO_HOLDER`](/errors/ACCOUNT_HAS_NO_HOLDER) | Companies | The target account has no registered holder yet, so a NIF cannot be created on its behalf |
| [`ACCOUNT_MANAGEMENT_FORBIDDEN`](/errors/ACCOUNT_MANAGEMENT_FORBIDDEN) | Authentication | Only the owner or an admin can manage account settings. |
| [`ACCOUNT_NOT_ACCESSIBLE`](/errors/ACCOUNT_NOT_ACCESSIBLE) | Authentication | You do not have access to that account |
| [`ACCOUNT_REQUIRES_FOCUS_SWITCH`](/errors/ACCOUNT_REQUIRES_FOCUS_SWITCH) | Authentication | You are a member of that account, but it is not your active account right now. Switch your active account and try again. |
| [`ACTIVE_COMPANY_HEADER_INVALID`](/errors/ACTIVE_COMPANY_HEADER_INVALID) | Authentication | Header '‹value›' must contain a company identifier (UUID). |
| [`ACTIVE_COMPANY_NOT_ACCESSIBLE`](/errors/ACTIVE_COMPANY_NOT_ACCESSIBLE) | Authentication | The selected company does not belong to your account |
| [`ACTIVE_COMPANY_REQUIRED`](/errors/ACTIVE_COMPANY_REQUIRED) | Authentication | Select an active company (NIF) for this operation |
| [`ALREADY_REGISTERED`](/errors/ALREADY_REGISTERED) | VeriFactu | The NIF is already registered in VeriFactu |
| [`ALTERNATIVE_ID_ACTUALLY_IN_CENSUS`](/errors/ALTERNATIVE_ID_ACTUALLY_IN_CENSUS) | Customers | The identifier '‹value›' is registered in the AEAT census, so it cannot be declared as not registered (07). Enter it as a NIF instead. |
| [`ALTERNATIVE_ID_AND_NIF_EXCLUSIVE`](/errors/ALTERNATIVE_ID_AND_NIF_EXCLUSIVE) | Customers | The customer cannot carry both a NIF and an alternative identifier. Use only one |
| [`ALTERNATIVE_ID_COUNTRY_REQUIRED`](/errors/ALTERNATIVE_ID_COUNTRY_REQUIRED) | Customers | The country of the alternative identifier is missing (alternative_id.country_code). It is required except for the PASSPORT and NOT_REGISTERED types, which are taken as Spanish when it is omitted. |
| [`ALTERNATIVE_ID_INVALID`](/errors/ALTERNATIVE_ID_INVALID) | Customers | The alternative identifier is not valid |
| [`ALTERNATIVE_ID_REQUIRES_SPAIN`](/errors/ALTERNATIVE_ID_REQUIRES_SPAIN) | Customers | Type NOT_REGISTERED (07) is only valid for Spain; received country: '‹value›' |
| [`ALTERNATIVE_ID_SPAIN_INVALID_TYPE`](/errors/ALTERNATIVE_ID_SPAIN_INVALID_TYPE) | Customers | For customers with country ES only types PASSPORT (03) or NOT_REGISTERED (07) are allowed |
| [`ALTERNATIVE_ID_VAT_INVALID_FORMAT`](/errors/ALTERNATIVE_ID_VAT_INVALID_FORMAT) | Customers | '‹value›' is not a valid EU VAT number for that country: it must be the prefix '‹value›' followed by the country's VAT number, in capital letters and without spaces. If it is the recipient of an invoice already issued, correct its data with an R4 corrective invoice |
| [`ALTERNATIVE_ID_VAT_REQUIRES_EU_COUNTRY`](/errors/ALTERNATIVE_ID_VAT_REQUIRES_EU_COUNTRY) | Customers | An EU VAT number (NIF_IVA, type 02) is only valid for an EU member state other than Spain; received country: '‹value›'. Identify a customer from outside the EU with another type, such as OTHER_DOCUMENT or COUNTRY_ID. If it is the recipient of an invoice already issued, correct its data with an R4 corrective invoice |
| [`ANNUAL_PLAN_NOT_AVAILABLE`](/errors/ANNUAL_PLAN_NOT_AVAILABLE) | Subscriptions | The annual plan is not available for this account. Activate without a billing period to subscribe to the monthly plan. |
| [`API_COMMUNICATION_ERROR`](/errors/API_COMMUNICATION_ERROR) | VeriFactu | Error communicating with the VeriFactu API |
| [`API_KEY_LIVE_NOT_AVAILABLE`](/errors/API_KEY_LIVE_NOT_AVAILABLE) | Authentication | This is a live API key, but your account does not have live mode available yet. |
| [`ATTACH_SOURCE_INVOICE_UNAVAILABLE`](/errors/ATTACH_SOURCE_INVOICE_UNAVAILABLE) | Invoices | A source invoice is not available (it does not exist or you no longer have access); uncheck the source invoices attachment to send without the folder |
| [`ATTACH_SOURCE_INVOICES_NO_SOURCES`](/errors/ATTACH_SOURCE_INVOICES_NO_SOURCES) | Invoices | The invoice has no consolidation disbursements: there are no source invoices to attach |
| [`ATTACH_SOURCE_INVOICES_REQUIRES_PDF`](/errors/ATTACH_SOURCE_INVOICES_REQUIRES_PDF) | Invoices | Attaching the source invoices also requires attaching the invoice PDF |
| [`ATTACH_SOURCE_PDF_MISSING`](/errors/ATTACH_SOURCE_PDF_MISSING) | Invoices | These source invoices have no generated PDF: ‹value› |
| [`ATTACH_SOURCE_ZIP_TOO_LARGE`](/errors/ATTACH_SOURCE_ZIP_TOO_LARGE) | Invoices | The source invoices ZIP (‹value› MB) exceeds the maximum sendable size (‹value› MB) |
| [`AUTOMATIC_EMAIL_CONFIG_INVALID`](/errors/AUTOMATIC_EMAIL_CONFIG_INVALID) | General | For automatic sending, you must provide an email configuration or a client with email |
| [`BAD_REQUEST`](/errors/BAD_REQUEST) | General | The provided data is not valid. |
| [`BILLING_MANAGED_BY_PROVIDER`](/errors/BILLING_MANAGED_BY_PROVIDER) | Subscriptions | This account's subscription is managed by your provider; you cannot change it here. |
| [`BULK_EMAIL_NO_VALID_INVOICES`](/errors/BULK_EMAIL_NO_VALID_INVOICES) | Invoices | No valid invoices to send. All selected invoices are drafts or have no generated PDF. |
| [`BULK_VALIDATION_ERROR`](/errors/BULK_VALIDATION_ERROR) | Customers | One or more customers in the batch are invalid; none were created |
| [`BUSINESS_RULE_VIOLATION`](/errors/BUSINESS_RULE_VIOLATION) | General | The operation breaks a business rule. |
| [`CANNOT_DELETE_PRIMARY`](/errors/CANNOT_DELETE_PRIMARY) | Companies | The account's primary company cannot be deleted. |
| [`CHECKOUT_REQUIRED`](/errors/CHECKOUT_REQUIRED) | Companies | A payment method is required to create a production company |
| [`CHECKOUT_URLS_REQUIRED`](/errors/CHECKOUT_URLS_REQUIRED) | Subscriptions | success_url and cancel_url are required to set up billing |
| [`CITY_EMPTY`](/errors/CITY_EMPTY) | General | City cannot be empty |
| [`CITY_MAX_LENGTH`](/errors/CITY_MAX_LENGTH) | General | City cannot exceed ‹value› characters |
| [`CLAIM_TOKEN_EMAIL_REQUIRED`](/errors/CLAIM_TOKEN_EMAIL_REQUIRED) | Accounts | The account has no holder yet: send the email of the person who will claim it. |
| [`CLAIM_TOKEN_HOLDER_MISMATCH`](/errors/CLAIM_TOKEN_HOLDER_MISMATCH) | Accounts | That account already has a holder with a different email. Omit the field to re-issue the link to them. |
| [`CLIENT_DUPLICATE`](/errors/CLIENT_DUPLICATE) | Customers | A client with this NIF already exists |
| [`CLIENT_HAS_INVOICES`](/errors/CLIENT_HAS_INVOICES) | Customers | This customer has invoices and cannot be deleted: deleting it would release its identifier and allow another customer to be created with the same one, splitting a single identity across two records. To stop using it, deactivate it with active:false |
| [`CLIENT_NOT_FOUND`](/errors/CLIENT_NOT_FOUND) | Customers | Client not found |
| [`COMPANY_ACCESS_REVOKED`](/errors/COMPANY_ACCESS_REVOKED) | Authentication | Your access to this company was revoked while the operation was running |
| [`COMPANY_ACTIVE_IN_PRODUCTION`](/errors/COMPANY_ACTIVE_IN_PRODUCTION) | Companies | This company is active in Live and cannot be deleted. Deactivate it in Live first: the deactivation is scheduled, the current cycle is charged and served in full, and from its effective date you will be able to delete the company |
| [`COMPANY_HAS_INVOICES`](/errors/COMPANY_HAS_INVOICES) | Companies | This company has invoices in Live and cannot be deleted. Delete its drafts and proformas first; if it has already issued invoices, the way out is to deactivate it in Live, not to delete it |
| [`COMPANY_NIF_MISSING`](/errors/COMPANY_NIF_MISSING) | VeriFactu | The issuing company has no NIF configured. Set the NIF before submitting invoices to VeriFactu |
| [`COMPANY_NOT_ACTIVATED`](/errors/COMPANY_NOT_ACTIVATED) | Invoices | The company is not activated in this environment: it cannot issue fiscal documents |
| [`COMPANY_NOT_ACTIVATED_IN_ENVIRONMENT`](/errors/COMPANY_NOT_ACTIVATED_IN_ENVIRONMENT) | Payment integrations | This company is not activated in ‹value› mode. Activate it in that mode before connecting the payment provider: activation is what creates the invoice series and tax configuration that charges need |
| [`COMPANY_READ_ONLY`](/errors/COMPANY_READ_ONLY) | Authentication | Your role on this company is read-only; you cannot perform this action |
| [`CONCURRENT_MODIFICATION`](/errors/CONCURRENT_MODIFICATION) | General | The resource was modified by another operation. Please retry. |
| [`CONFLICT`](/errors/CONFLICT) | General | The operation conflicts with the current state of the resource. |
| [`CONNECTION_NOT_ACTIVE`](/errors/CONNECTION_NOT_ACTIVE) | Payment integrations | Payment connection is not active |
| [`CONNECTION_NOT_FOUND`](/errors/CONNECTION_NOT_FOUND) | Payment integrations | Payment connection not found |
| [`CONNECTION_SERIE_INACTIVE`](/errors/CONNECTION_SERIE_INACTIVE) | Payment integrations | The selected series is deactivated |
| [`CONNECTION_SERIE_NOT_FOUND`](/errors/CONNECTION_SERIE_NOT_FOUND) | Payment integrations | The selected series does not exist in this company and environment |
| [`CONNECTION_SERIE_TIPO_INCOMPATIBLE`](/errors/CONNECTION_SERIE_TIPO_INCOMPATIBLE) | Payment integrations | The series document type (‹value›) is not compatible with this field (‹value›) |
| [`CONTACT_SALES_REQUIRED`](/errors/CONTACT_SALES_REQUIRED) | Subscriptions | To add more than one NIF, talk to us: we will prepare a per-NIF price for you. |
| [`CONVERSION_REQUIRES_PROFORMA`](/errors/CONVERSION_REQUIRES_PROFORMA) | Invoices | Only a proforma invoice can be converted into an invoice; this document is not a proforma |
| [`CORRECTIVE_BAD_DEBT_BASE_TOO_LOW`](/errors/CORRECTIVE_BAD_DEBT_BASE_TOO_LOW) | Invoices | A bad-debt corrective (R3) is not possible for an operation with a base of €‹value› to a consumer: the base must exceed €50. If the recipient acted as a business or professional, say so with recipient_is_business. |
| [`CORRECTIVE_BAD_DEBT_TOO_EARLY`](/errors/CORRECTIVE_BAD_DEBT_TOO_EARLY) | Invoices | It is too early for a bad-debt corrective (R3): at least six months must pass from when the tax accrued, one year if the previous year’s turnover exceeded €6,010,121.04. The earliest day is ‹value›. |
| [`CORRECTIVE_CIRCUMSTANCE_DATE_NOT_APPLICABLE`](/errors/CORRECTIVE_CIRCUMSTANCE_DATE_NOT_APPLICABLE) | Invoices | The circumstance date is only given when the cause is one of article 80 of the VAT Act, and code ‹value› is not: omit circumstance_date. |
| [`CORRECTIVE_CIRCUMSTANCE_DATE_OUT_OF_RANGE`](/errors/CORRECTIVE_CIRCUMSTANCE_DATE_OUT_OF_RANGE) | Invoices | The circumstance date must be between the operation date (‹value›) and today (‹value›). |
| [`CORRECTIVE_EXCEEDS_INVOICED_AMOUNT`](/errors/CORRECTIVE_EXCEEDS_INVOICED_AMOUNT) | Invoices | This correction takes the ‹value› taxable base below zero: only ‹value› € at that rate is left to rectify. A corrective invoice cannot rectify more than was invoiced. |
| [`CORRECTIVE_INVOICE_INCOMPLETE`](/errors/CORRECTIVE_INVOICE_INCOMPLETE) | Invoices | A corrective invoice must declare its rectification type and VeriFactu code (R1-R5). Create the corrective invoice from the original invoice. |
| [`CORRECTIVE_NOT_RECTIFIABLE`](/errors/CORRECTIVE_NOT_RECTIFIABLE) | Invoices | A corrective invoice cannot be rectified. To fix an erroneous corrective, issue another corrective against the original invoice. |
| [`CORRECTIVE_NOTHING_LEFT_TO_RECTIFY`](/errors/CORRECTIVE_NOTHING_LEFT_TO_RECTIFY) | Invoices | The previous corrective invoices have already brought this invoice to zero: there is nothing left for a total corrective to rectify. |
| [`CORRECTIVE_ORIGINAL_MIXED_IRPF`](/errors/CORRECTIVE_ORIGINAL_MIXED_IRPF) | Invoices | The original invoice applies different IRPF withholding rates per line, so there is none to inherit. Set irpf_rate on every line of the corrective invoice. |
| [`CORRECTIVE_ORIGINAL_MIXED_SURCHARGE`](/errors/CORRECTIVE_ORIGINAL_MIXED_SURCHARGE) | Invoices | The original invoice applies the equivalence surcharge on some lines but not others, so there is no regime to inherit. Set equivalence_surcharge_rate on every line of the corrective invoice. |
| [`CORRECTIVE_ORIGINAL_NOT_FOUND`](/errors/CORRECTIVE_ORIGINAL_NOT_FOUND) | Invoices | The original invoice to correct does not exist or is not accessible. |
| [`CORRECTIVE_ORIGINAL_RECORD_REJECTED`](/errors/CORRECTIVE_ORIGINAL_RECORD_REJECTED) | Invoices | AEAT rejected the record of the original invoice and it is not on file: fix and resubmit it before correcting it, or the corrective would be recorded without the invoice it corrects. |
| [`CORRECTIVE_OUT_OF_TIME`](/errors/CORRECTIVE_OUT_OF_TIME) | Invoices | This invoice can no longer be corrected: the four-year period to issue the corrective invoice ended on ‹value›. |
| [`CORRECTIVE_PARTIAL_SUPLIDO_NOT_ALLOWED`](/errors/CORRECTIVE_PARTIAL_SUPLIDO_NOT_ALLOWED) | Invoices | A partial corrective invoice does not accept disbursements: a disbursement is not part of the taxable base, so there is nothing in it to rectify. If that amount was not a disbursement, rectify it as a normal line with its tax. |
| [`CORRECTIVE_RECENT_DUPLICATE`](/errors/CORRECTIVE_RECENT_DUPLICATE) | Invoices | An identical corrective invoice of this invoice (‹value›) was created less than two minutes ago. If this is a retry, it is already done; if it is another one on purpose, wait a few minutes or change the reason. |
| [`CORRECTIVE_RECIPIENT_IS_ANOTHER_PERSON`](/errors/CORRECTIVE_RECIPIENT_IS_ANOTHER_PERSON) | Invoices | The recipient given is a different customer from the invoice's: this corrects the data of the same recipient. If the invoice was issued to another person, correct it in full (TOTAL) and issue a new invoice to the right recipient. |
| [`CORRECTIVE_RECIPIENT_NOT_ACCEPTED`](/errors/CORRECTIVE_RECIPIENT_NOT_ACCEPTED) | Invoices | A corrective invoice goes to the recipient of the invoice it corrects. Send recipient only to correct that recipient's data: with rectification_type PARTIAL, rectification_code R4 and no lines. |
| [`CORRECTIVE_RECIPIENT_NOT_ESTABLISHED`](/errors/CORRECTIVE_RECIPIENT_NOT_ESTABLISHED) | Invoices | Code ‹value› cannot be used with this recipient (country: ‹value›): the base is only reduced for insolvency or bad debt when the recipient is established in Spain, the Canary Islands, Ceuta or Melilla. |
| [`CORRECTIVE_RECIPIENT_UNCHANGED`](/errors/CORRECTIVE_RECIPIENT_UNCHANGED) | Invoices | The recipient given has the same name, tax ID and address as on the invoice: there is no data to correct. |
| [`CORRECTIVE_WITHHOLDING_ONLY`](/errors/CORRECTIVE_WITHHOLDING_ONLY) | Invoices | This correction only changes the withholding: the taxable base of every rate stays the same. A withholding is not a cause for a corrective invoice; void the invoice and issue a new one without it. |
| [`COUNTRY_CODE_MISMATCH`](/errors/COUNTRY_CODE_MISMATCH) | General | The country '‹value›' does not match country_code '‹value›'. Send only country_code, the country's ISO 3166-1 alpha-2 code. |
| [`COUNTRY_CODE_REQUIRED`](/errors/COUNTRY_CODE_REQUIRED) | General | The country '‹value›' is not valid. Send the country's ISO 3166-1 alpha-2 code in country_code (for example, GB for the United Kingdom). |
| [`CSV_FILE_TOO_LARGE`](/errors/CSV_FILE_TOO_LARGE) | Customers | The file is too large: ‹value› bytes (maximum: ‹value› bytes) |
| [`CUSTOMER_ADDRESS_INVALID`](/errors/CUSTOMER_ADDRESS_INVALID) | Customers | The address is not valid |
| [`CUSTOMER_DUPLICATED_IN_BATCH`](/errors/CUSTOMER_DUPLICATED_IN_BATCH) | Customers | NIF duplicated within the batch |
| [`CUSTOMER_DUPLICATED_IN_FILE`](/errors/CUSTOMER_DUPLICATED_IN_FILE) | Customers | Customer with a NIF/CIF duplicated in the file |
| [`CUSTOMER_FIELD_INVALID_CHARACTERS`](/errors/CUSTOMER_FIELD_INVALID_CHARACTERS) | Customers | The field '‹value›' contains characters that are not allowed |
| [`CUSTOMER_FIELD_INVALID_FORMAT`](/errors/CUSTOMER_FIELD_INVALID_FORMAT) | Customers | Invalid format for '‹value›': expected ‹value› |
| [`CUSTOMER_FIELD_REQUIRED`](/errors/CUSTOMER_FIELD_REQUIRED) | Customers | The field '‹value›' is required |
| [`CUSTOMER_IDENTIFIER_REQUIRED`](/errors/CUSTOMER_IDENTIFIER_REQUIRED) | Customers | Provide either a NIF or an alternative identifier. |
| [`CUSTOMER_NOT_SAVED`](/errors/CUSTOMER_NOT_SAVED) | Customers | The customer could not be saved |
| [`CUSTOMER_ROW_NOT_PROCESSED`](/errors/CUSTOMER_ROW_NOT_PROCESSED) | Customers | Unexpected error while processing the row |
| [`DEFAULT_CANNOT_BE_UNMARKED`](/errors/DEFAULT_CANNOT_BE_UNMARKED) | Account settings | Cannot unmark the default series. Set another series as default first |
| [`DEFAULT_CANNOT_DEACTIVATE`](/errors/DEFAULT_CANNOT_DEACTIVATE) | Account settings | Cannot deactivate the default series. Set another series as default first |
| [`DEFAULT_CANNOT_DELETE`](/errors/DEFAULT_CANNOT_DELETE) | Account settings | Cannot delete the default series. Set another series as default first |
| [`DELETION_FAILED`](/errors/DELETION_FAILED) | Invoices | Error deleting the invoice |
| [`DELIVERY_LOG_NOT_FOUND`](/errors/DELIVERY_LOG_NOT_FOUND) | Webhooks | Webhook delivery log not found |
| [`DISPLAY_NAME_BLANK`](/errors/DISPLAY_NAME_BLANK) | Accounts | The account name must not be blank. |
| [`DUE_DATE_BEFORE_ISSUE_DATE`](/errors/DUE_DATE_BEFORE_ISSUE_DATE) | Invoices | Due date cannot be before the issue date |
| [`DUPLICATE_HEADER`](/errors/DUPLICATE_HEADER) | Customers | File ‹value› repeats column ‹value›: there is no way to tell which of the two counts. Leave it just once |
| [`EMISSION_NOT_READY`](/errors/EMISSION_NOT_READY) | Invoices | The company is not ready to issue invoices in this environment |
| [`EMPTY_FILE`](/errors/EMPTY_FILE) | Customers | The file is empty |
| [`ENCODING_ERROR`](/errors/ENCODING_ERROR) | Customers | File encoding error: ‹value› |
| [`ENDPOINT_NOT_FOUND`](/errors/ENDPOINT_NOT_FOUND) | General | The requested endpoint does not exist. |
| [`ENTITY_TYPE_INCONSISTENT_WITH_NIF`](/errors/ENTITY_TYPE_INCONSISTENT_WITH_NIF) | Account settings | The entity type ‹value› does not match the NIF ‹value›: an individual is identified by a DNI or NIE, and a company or entity by a NIF that starts with a legal-form letter |
| [`ENV_MISMATCH`](/errors/ENV_MISMATCH) | VeriFactu | API key does not match NIF environment: use a live key for production NIFs and a test key for sandbox NIFs |
| [`ENVIO_NO_PERMITIDO`](/errors/ENVIO_NO_PERMITIDO) | Email delivery | In the test environment you can only send to your own address. Use tags to separate sends: youremail+test1@domain.com |
| [`ENVIRONMENT_HEADER_INVALID`](/errors/ENVIRONMENT_HEADER_INVALID) | Authentication | Header '‹value›' has an invalid value. Accepted values: TEST, PROD (legacy aliases: sandbox, test, production, live) |
| [`EVENT_DRAFT_NOT_POSSIBLE`](/errors/EVENT_DRAFT_NOT_POSSIBLE) | Payment integrations | The draft cannot be generated: ‹value› |
| [`EVENT_FILTER_RANGE_INVALID`](/errors/EVENT_FILTER_RANGE_INVALID) | Payment integrations | The filter range is inverted: the minimum value cannot be greater than the maximum |
| [`EVENT_INVALID_STATUS_FOR_DISCARD`](/errors/EVENT_INVALID_STATUS_FOR_DISCARD) | Payment integrations | Cannot discard a processed event. The event has an issued invoice linked and must remain in the history. |
| [`EVENT_INVALID_STATUS_FOR_DRAFT`](/errors/EVENT_INVALID_STATUS_FOR_DRAFT) | Payment integrations | Cannot generate a draft from an event in status ‹value› |
| [`EVENT_INVALID_STATUS_FOR_RESOLVE`](/errors/EVENT_INVALID_STATUS_FOR_RESOLVE) | Payment integrations | Event cannot be marked as resolved in its current status (‹value›) |
| [`EVENT_INVALID_STATUS_FOR_RETRY`](/errors/EVENT_INVALID_STATUS_FOR_RETRY) | Payment integrations | Event cannot be retried in its current status |
| [`EVENT_MAX_RETRIES_EXCEEDED`](/errors/EVENT_MAX_RETRIES_EXCEEDED) | Payment integrations | Maximum retry limit of ‹value› reached for this event |
| [`EVENT_NOT_FOUND`](/errors/EVENT_NOT_FOUND) | Payment integrations | Payment event not found |
| [`EVENT_SOURCE_PAYLOAD_UNAVAILABLE`](/errors/EVENT_SOURCE_PAYLOAD_UNAVAILABLE) | Payment integrations | The event no longer holds the original provider data, so it cannot be reprocessed or turned into a draft |
| [`EXCHANGE_DUPLICATED_SIMPLIFIED`](/errors/EXCHANGE_DUPLICATED_SIMPLIFIED) | Invoices | Simplified invoice ‹value› appears more than once in the list: include it only once. Nothing has been issued. |
| [`EXCHANGE_INVOICE_NOT_CORRECTABLE`](/errors/EXCHANGE_INVOICE_NOT_CORRECTABLE) | Invoices | Correcting an exchange invoice for simplified invoices recorded in VERI*FACTU is not available yet. Please contact support. |
| [`EXCHANGE_INVOICE_NOT_VOIDABLE`](/errors/EXCHANGE_INVOICE_NOT_VOIDABLE) | Invoices | An invoice issued in exchange for simplified invoices cannot be voided: the simplified invoices were replaced by it. If it has an error, correct it with a corrective invoice. |
| [`EXCHANGE_REQUIRES_SIMPLIFIED`](/errors/EXCHANGE_REQUIRES_SIMPLIFIED) | Invoices | Only simplified invoices can be exchanged, and ‹value› is not one. |
| [`EXCHANGE_SIMPLIFIED_NOT_YET_ACCEPTED`](/errors/EXCHANGE_SIMPLIFIED_NOT_YET_ACCEPTED) | Invoices | The record of simplified invoice ‹value› is not accepted by AEAT yet: wait until it is accepted and try the exchange again. Nothing was issued. |
| [`EXCHANGE_SIMPLIFIED_RECORD_REJECTED`](/errors/EXCHANGE_SIMPLIFIED_RECORD_REJECTED) | Invoices | The record of simplified invoice ‹value› was rejected and is not on file with AEAT: fix or resubmit it first, and exchange it again once AEAT accepts it. |
| [`EXEMPT_ZERO_RATE_REQUIRES_REASON`](/errors/EXEMPT_ZERO_RATE_REQUIRES_REASON) | Invoices | Lines with 0% tax rate must declare an exemption reason. Use one of: ‹value› |
| [`EXEMPTION_INCOMPATIBLE_WITH_REGIME`](/errors/EXEMPTION_INCOMPATIBLE_WITH_REGIME) | Invoices | Exemption reason ‹value› does not allow regime ‹value›; exports (art. 21 and 22 LIVA) use regime 02 |
| [`EXEMPTION_NOT_FOR_ISSUED_INVOICE`](/errors/EXEMPTION_NOT_FOR_ISSUED_INVOICE) | Invoices | Exemption reason ‹value› cannot be used on an issued invoice: article 26 of the VAT Law exempts the intra-community acquisition, which the buyer declares. If you sell to another Member State, the supply is the one of article 25 (EXENTA_ART_25) |
| [`EXEMPTION_REASON_NOT_ALLOWED_AS_DEFAULT`](/errors/EXEMPTION_REASON_NOT_ALLOWED_AS_DEFAULT) | General | That reason depends on each invoice and cannot be declared as a default: choose art. 20 exemption or other |
| [`EXEMPTION_REASON_REQUIRES_ZERO_RATE`](/errors/EXEMPTION_REASON_REQUIRES_ZERO_RATE) | General | An exemption reason is only compatible with a 0% tax rate |
| [`EXEMPTION_REASON_TEXT_REQUIRED`](/errors/EXEMPTION_REASON_TEXT_REQUIRED) | General | Provide the text explaining the exemption when the reason is "Other" |
| [`EXEMPTION_REGIME_NOT_SUPPORTED_IN_VERIFACTU`](/errors/EXEMPTION_REGIME_NOT_SUPPORTED_IN_VERIFACTU) | Invoices | The given exemption reason corresponds to a special regime (REAEA, equivalence surcharge, cash basis, investment gold…), not to an art. 20-26 LIVA exemption. VeriFactu models it with clave_regimen, not operacion_exenta. Switch to the appropriate clave_regimen. |
| [`EXEMPTION_REQUIRES_RECIPIENT_ID_TYPE`](/errors/EXEMPTION_REQUIRES_RECIPIENT_ID_TYPE) | Invoices | Exemption ‹value› requires the recipient to carry an alternative identifier of type ‹value› |
| [`EXPORT_LIMIT_EXCEEDED`](/errors/EXPORT_LIMIT_EXCEEDED) | Invoices | The export selects ‹value› invoices and the maximum per download is ‹value›. Narrow the date range or reduce the selection and export again. |
| [`EXPORT_SELECTION_REQUIRED`](/errors/EXPORT_SELECTION_REQUIRED) | Invoices | Provide invoice_ids or at least one filter: an export with no criteria does not export the whole account. |
| [`EXTERNAL_SERVICE_ERROR`](/errors/EXTERNAL_SERVICE_ERROR) | General | Error communicating with the external service |
| [`FEATURE_NOT_AVAILABLE`](/errors/FEATURE_NOT_AVAILABLE) | Subscriptions | The '‹value›' feature is not available in your plan |
| [`FIELD_BLANK`](/errors/FIELD_BLANK) | General | The field '‹value›' cannot be empty |
| [`FIELD_TOO_LONG`](/errors/FIELD_TOO_LONG) | General | The field '‹value›' cannot exceed ‹value› characters. |
| [`FILE_CORRUPTED`](/errors/FILE_CORRUPTED) | General | File is damaged or corrupt |
| [`FILE_EMPTY`](/errors/FILE_EMPTY) | General | The file is empty |
| [`FILE_TOO_LARGE`](/errors/FILE_TOO_LARGE) | General | File is too large. Maximum allowed size: ‹value› |
| [`FILTER_CATEGORY_NOT_ACTIONABLE`](/errors/FILTER_CATEGORY_NOT_ACTIONABLE) | Payment integrations | Category "‹value›" cannot be disabled: auto-invoicing filters only act on DIRECT_PAYMENT and SUBSCRIPTION. |
| [`FILTER_PATTERN_INVALID`](/errors/FILTER_PATTERN_INVALID) | Payment integrations | The description pattern "‹value›" is not a valid regular expression. |
| [`FILTER_PATTERN_TOO_LONG`](/errors/FILTER_PATTERN_TOO_LONG) | Payment integrations | A description pattern cannot exceed ‹value› characters (received one of ‹value›). |
| [`FILTER_PATTERNS_TOO_MANY`](/errors/FILTER_PATTERNS_TOO_MANY) | Payment integrations | You can configure at most ‹value› description patterns per list (received ‹value›). |
| [`FISCAL_IDENTITY_LIVE_ONLY`](/errors/FISCAL_IDENTITY_LIVE_ONLY) | Account settings | This company is live. In Test mode you can only change how the invoice looks (logo, colour, template, languages and additional information). Fiscal details are edited in Live mode |
| [`FORBIDDEN`](/errors/FORBIDDEN) | General | You do not have permission to perform this action |
| [`GRANT_COMPANY_NOT_IN_ACCOUNT`](/errors/GRANT_COMPANY_NOT_IN_ACCOUNT) | Accounts | One of the specified companies does not belong to this account. |
| [`GRANT_NOT_FOUND`](/errors/GRANT_NOT_FOUND) | Accounts | This member has no access to that company. |
| [`GRANTS_ONLY_FOR_MEMBER`](/errors/GRANTS_ONLY_FOR_MEMBER) | Accounts | Per-company access can only be granted to members with the MEMBER role. |
| [`HAS_INVOICES_CANNOT_DELETE`](/errors/HAS_INVOICES_CANNOT_DELETE) | Account settings | Cannot delete a series that has associated invoices. Delete the invoices first |
| [`HEADER_ROW_NOT_FOUND`](/errors/HEADER_ROW_NOT_FOUND) | Customers | No header row found in the first ‹value› lines of ‹value›. Required columns: ‹value›. ‹value› |
| [`IBAN_INVALID`](/errors/IBAN_INVALID) | General | Invalid IBAN: '‹value›'. Must match ISO 13616 format (e.g.: ES1234567890123456789012) |
| [`IBAN_REQUIRED`](/errors/IBAN_REQUIRED) | General | Payment method ‹value› requires an IBAN |
| [`IDEMPOTENCY_KEY_MISMATCH`](/errors/IDEMPOTENCY_KEY_MISMATCH) | General | This idempotency key was already used with a different request body. Use a new key for a different operation. |
| [`IDEMPOTENCY_KEY_PROCESSING`](/errors/IDEMPOTENCY_KEY_PROCESSING) | General | A request with this idempotency key is already being processed. Wait and retry with the same key. |
| [`IDEMPOTENCY_KEY_REQUIRED`](/errors/IDEMPOTENCY_KEY_REQUIRED) | General | This operation requires the Idempotency-Key header: without it, a retry would import the same file twice. |
| [`IMMUTABLE_ENTITY_TYPE`](/errors/IMMUTABLE_ENTITY_TYPE) | Account settings | Entity type (individual/company) cannot be changed. This field is immutable |
| [`IMMUTABLE_LEGAL_FORM`](/errors/IMMUTABLE_LEGAL_FORM) | Account settings | Legal form cannot be changed. This field is immutable |
| [`IMMUTABLE_NIF`](/errors/IMMUTABLE_NIF) | Account settings | NIF/CIF cannot be changed. This field is immutable |
| [`INACTIVE_CANNOT_BE_DEFAULT`](/errors/INACTIVE_CANNOT_BE_DEFAULT) | Account settings | Cannot set an inactive series as default |
| [`INSUFFICIENT_SCOPE`](/errors/INSUFFICIENT_SCOPE) | Authentication | The API key lacks the required permissions (scopes) for this operation. |
| [`INTERNAL_ERROR`](/errors/INTERNAL_ERROR) | General | An unexpected error occurred. Please try again later. |
| [`INVALID_CONTENT`](/errors/INVALID_CONTENT) | General | File content is not valid |
| [`INVALID_EMAIL_FORMAT`](/errors/INVALID_EMAIL_FORMAT) | General | The email '‹value›' has an invalid format |
| [`INVALID_EXCEL_FORMAT`](/errors/INVALID_EXCEL_FORMAT) | Holded import | Invalid Holded Excel file format: ‹value› |
| [`INVALID_EXCEL_STRUCTURE`](/errors/INVALID_EXCEL_STRUCTURE) | Holded import | The Excel file does not have the expected Holded contacts structure |
| [`INVALID_EXTENSION`](/errors/INVALID_EXTENSION) | General | File extension not allowed |
| [`INVALID_FILE_TYPE`](/errors/INVALID_FILE_TYPE) | General | File type not allowed. Accepted types: ‹value› |
| [`INVALID_FORMAT`](/errors/INVALID_FORMAT) | Customers | Invalid file format: ‹value› |
| [`INVALID_IBAN`](/errors/INVALID_IBAN) | Account settings | The IBAN format is not valid. It must start with the country code and be 15 to 34 characters long (e.g. ES9121000418450200051332) |
| [`INVALID_IDEMPOTENCY_KEY`](/errors/INVALID_IDEMPOTENCY_KEY) | General | Invalid idempotency key format. Must be a UUID or an alphanumeric string. |
| [`INVALID_IRPF`](/errors/INVALID_IRPF) | Invoices | Invalid income tax withholding type: '‹value›'. Allowed values: ‹value› |
| [`INVALID_IVA_SURCHARGE_PAIR`](/errors/INVALID_IVA_SURCHARGE_PAIR) | Invoices | Surcharge ‹value›% is not valid for VAT ‹value›%. Allowed pairs: 21↔5.2, 10↔1.4, 4↔0.5 |
| [`INVALID_JSON_FORMAT`](/errors/INVALID_JSON_FORMAT) | General | The request body contains invalid JSON syntax. |
| [`INVALID_PERCENTAGE`](/errors/INVALID_PERCENTAGE) | Invoices | Tax percentage ‹value›% is not valid for ‹value›. Valid rates: ‹value›. A 0% that is not listed is not a rate but the exemption sentinel: it is only accepted with an exemption reason, or under the OSS/IOSS regime. |
| [`INVALID_REGIME_KEY_FOR_TAX_TYPE`](/errors/INVALID_REGIME_KEY_FOR_TAX_TYPE) | Invoices | Regime key ‹value› is not valid for ‹value›. Valid regime keys: ‹value› |
| [`INVALID_SURCHARGE`](/errors/INVALID_SURCHARGE) | Invoices | Invalid equivalence surcharge type: '‹value›'. Allowed values: ‹value› |
| [`INVITATION_NOT_FOUND`](/errors/INVITATION_NOT_FOUND) | Accounts | No invitation with that id in this account. |
| [`INVOICE_ALREADY_SCHEDULED`](/errors/INVOICE_ALREADY_SCHEDULED) | Invoices | The invoice is already scheduled; repeat the request without the If-None-Match header to replace the existing schedule |
| [`INVOICE_ALREADY_VOIDED`](/errors/INVOICE_ALREADY_VOIDED) | Invoices | This invoice is already voided; voiding cannot be repeated |
| [`INVOICE_CLIENT_NOT_FOUND`](/errors/INVOICE_CLIENT_NOT_FOUND) | Invoices | Customer not found: ‹value› |
| [`INVOICE_DRAFT_NOT_SENDABLE`](/errors/INVOICE_DRAFT_NOT_SENDABLE) | Invoices | An invoice that is not issued yet (a draft or a scheduled invoice) cannot be sent by email. Issue it first. |
| [`INVOICE_DUPLICATE_EXTERNAL_REFERENCE`](/errors/INVOICE_DUPLICATE_EXTERNAL_REFERENCE) | Invoices | An invoice with this external reference already exists |
| [`INVOICE_EMAIL_NO_RECIPIENTS`](/errors/INVOICE_EMAIL_NO_RECIPIENTS) | Invoices | There are no recipients: send them in the request. |
| [`INVOICE_HAS_LIVE_CORRECTIVES`](/errors/INVOICE_HAS_LIVE_CORRECTIVES) | Invoices | An invoice that already has corrective invoices (‹value›) cannot be voided: if it was corrected, the operation took place. Correct it with another corrective invoice. |
| [`INVOICE_NO_LINES`](/errors/INVOICE_NO_LINES) | Invoices | The invoice must have at least one line |
| [`INVOICE_NOT_CORRECTIBLE_IN_CURRENT_STATUS`](/errors/INVOICE_NOT_CORRECTIBLE_IN_CURRENT_STATUS) | Invoices | This invoice cannot be corrected in its current status. Only an issued, non-voided invoice can be corrected. |
| [`INVOICE_NOT_FOUND`](/errors/INVOICE_NOT_FOUND) | Invoices | Invoice not found |
| [`INVOICE_NOT_ISSUED_NO_PDF`](/errors/INVOICE_NOT_ISSUED_NO_PDF) | Invoices | The invoice is a draft and has no fiscal PDF: issue it, or use the preview endpoint. |
| [`INVOICE_NOT_REGISTERED_NO_PDF`](/errors/INVOICE_NOT_REGISTERED_NO_PDF) | Invoices | The invoice is not registered with the AEAT, so it has no PDF: the PDF carries the QR code of that registration. The reason is in verifactu.error_message. |
| [`INVOICE_NOT_SCHEDULED`](/errors/INVOICE_NOT_SCHEDULED) | Invoices | The invoice is not scheduled |
| [`INVOICE_NUMBER_INVALID_CHARACTERS`](/errors/INVOICE_NUMBER_INVALID_CHARACTERS) | Invoices | The number ‹value› contains characters the AEAT does not accept (‹value›). The invoice was not issued and the number was not used: issue it with another series or, if this one has no issued invoices yet, fix its code or format |
| [`INVOICE_NUMBER_TOO_LONG`](/errors/INVOICE_NUMBER_TOO_LONG) | Invoices | The number ‹value› has ‹value› characters and the AEAT accepts at most ‹value›. The invoice was not issued and the number was not used: issue it with another series or, if this one has no issued invoices yet, shorten its code or format |
| [`INVOICE_REQUIRES_AT_LEAST_ONE_NORMAL_LINE`](/errors/INVOICE_REQUIRES_AT_LEAST_ONE_NORMAL_LINE) | Invoices | The invoice must contain at least one NORMAL line (disbursements cannot be invoiced alone): an invoice with only disbursements documents no operation. Add the item you are invoicing; on a corrective, also correct a NORMAL line, or document the disbursement on the invoice of the operation. |
| [`INVOICE_SERIES_NOT_FOUND`](/errors/INVOICE_SERIES_NOT_FOUND) | Invoices | Invoice series '‹value›' not found |
| [`INVOICE_STATUS_NOT_SCHEDULABLE`](/errors/INVOICE_STATUS_NOT_SCHEDULABLE) | Invoices | The current invoice status does not allow scheduling |
| [`INVOICE_TAX_BREAKDOWN_TOO_LONG`](/errors/INVOICE_TAX_BREAKDOWN_TOO_LONG) | Invoices | The invoice has ‹value› different combinations of tax, regime, rate and exemption, and the AEAT record accepts at most ‹value›. The invoice was not issued and the number was not used: split it into several invoices. |
| [`INVOICE_TAX_RATE_TOO_MANY_DECIMALS`](/errors/INVOICE_TAX_RATE_TOO_MANY_DECIMALS) | Invoices | The rate ‹value› % has more than two decimals and the AEAT accepts only two. The invoice was not issued and the number was not used: use a rate with at most two decimals. |
| [`INVOICE_TOTAL_TOO_LARGE_FOR_VERIFACTU`](/errors/INVOICE_TOTAL_TOO_LARGE_FOR_VERIFACTU) | Invoices | The invoice total, €‹value›, is €‹value› or more in absolute value, and AEAT requires that record to be flagged as Macrodato. The invoice was not issued and the number was not used: if it documents several operations, issue one invoice per operation. |
| [`IRPF_RATE_NOT_FOR_CORPORATE_ISSUER`](/errors/IRPF_RATE_NOT_FOR_CORPORATE_ISSUER) | Invoices | The ‹value› withholding rate is not an entity rate: only individuals pay IRPF (Law 35/2006, art. 8), and the 1, 2, 7 and 15 % rates (and 6, 2.8 and 7.6 % in Ceuta and Melilla) are theirs (RD 439/2007, arts. 95, 100 and 101). A company or any other legal person, or a permanent establishment, only bears 19 % or 24 % withholding if its income is subject to withholding (RD 634/2015, arts. 60 and 66; RDL 5/2004, art. 23), and 0 % otherwise (19 % is halved for rents in Ceuta and Melilla: 9.5 %); a non-resident entity bears the Non-Residents Income Tax withholding, 24 % or 19 % (RDL 5/2004, art. 25), or 0 % if exempt; and the State, the Autonomous Communities and the local entities bear none (Law 27/2014, art. 9.1; RD 634/2015, art. 61) |
| [`IRPF_RATE_ONLY_FOR_CORPORATE_ISSUER`](/errors/IRPF_RATE_ONLY_FOR_CORPORATE_ISSUER) | Invoices | The ‹value› withholding rate only exists in the Corporate Income Tax (19 % halved for rents in Ceuta and Melilla, RD 634/2015, art. 66.a): this issuer withholds under IRPF, where rent in Ceuta or Melilla is 7.6 % (19 % reduced by 60 %, Law 35/2006, art. 101.8). Allowed rates: ‹value› |
| [`IRPF_REQUIRED_WHEN_NOT_EXEMPT`](/errors/IRPF_REQUIRED_WHEN_NOT_EXEMPT) | General | The income tax withholding percentage is required when not exempt |
| [`ISP_INCOMPATIBLE_WITH_SURCHARGE`](/errors/ISP_INCOMPATIBLE_WITH_SURCHARGE) | Invoices | Reverse-charge (ISP) lines cannot carry equivalence surcharge: the buyer auto-liquidates VAT in their country and Spanish retail surcharge does not apply |
| [`LAST_OWNER_PROTECTED`](/errors/LAST_OWNER_PROTECTED) | Accounts | You cannot leave the account without an owner: at least one OWNER must remain. |
| [`LINE_DECLARED_TOTAL_FORBIDS_DISCOUNT`](/errors/LINE_DECLARED_TOTAL_FORBIDS_DISCOUNT) | Invoices | A declared total is incompatible with an explicit discount: any discount is already included in the total |
| [`LINE_EXEMPTION_TEXT_REQUIRED`](/errors/LINE_EXEMPTION_TEXT_REQUIRED) | Invoices | A descriptive text is required when the exemption reason is OTHER |
| [`LINE_EXEMPTION_WITH_TAX`](/errors/LINE_EXEMPTION_WITH_TAX) | Invoices | Line has an exemption reason but the tax rate is not 0%. Current value: ‹value›% |
| [`LINE_INVALID_QUANTITY`](/errors/LINE_INVALID_QUANTITY) | Invoices | The quantity cannot be zero or null |
| [`LINE_MAIN_TAX_REQUIRED`](/errors/LINE_MAIN_TAX_REQUIRED) | Invoices | Each line must specify its main tax (main_tax). No default tax is applied. |
| [`LINE_NEGATIVE_PRICE`](/errors/LINE_NEGATIVE_PRICE) | Invoices | The unit price cannot be negative |
| [`LINE_NORMAL_DESCRIPTION_REQUIRED`](/errors/LINE_NORMAL_DESCRIPTION_REQUIRED) | Invoices | Normal lines must include a description of the concept |
| [`LINE_SUPLIDO_MUST_HAVE_NO_IRPF`](/errors/LINE_SUPLIDO_MUST_HAVE_NO_IRPF) | Invoices | SUPLIDO lines cannot apply withholding tax (IRPF) |
| [`LINE_SUPLIDO_MUST_HAVE_NO_RECARGO`](/errors/LINE_SUPLIDO_MUST_HAVE_NO_RECARGO) | Invoices | SUPLIDO lines cannot apply equivalence surcharge |
| [`LINE_SUPLIDO_MUST_HAVE_NO_TAX`](/errors/LINE_SUPLIDO_MUST_HAVE_NO_TAX) | Invoices | SUPLIDO lines cannot apply VAT — the main tax must be 0% or empty |
| [`LINE_SUPLIDO_REFERENCE_REQUIRED`](/errors/LINE_SUPLIDO_REFERENCE_REQUIRED) | Invoices | SUPLIDO lines must declare a reference to the original third-party invoice |
| [`LINE_SUPLIDO_SOURCE_INVOICE_NOT_FOUND`](/errors/LINE_SUPLIDO_SOURCE_INVOICE_NOT_FOUND) | Invoices | One of the disbursement's source invoices does not exist or does not belong to you |
| [`LINE_SUPLIDO_SOURCE_INVOICE_NOT_ISSUED`](/errors/LINE_SUPLIDO_SOURCE_INVOICE_NOT_ISSUED) | Invoices | A disbursement's source invoices must be issued |
| [`LINE_SUPLIDO_TOO_MANY_SOURCE_ACCOUNTS`](/errors/LINE_SUPLIDO_TOO_MANY_SOURCE_ACCOUNTS) | Invoices | A disbursement line cannot consolidate invoices from that many different accounts |
| [`LINE_SUPLIDO_TOO_MANY_SOURCES`](/errors/LINE_SUPLIDO_TOO_MANY_SOURCES) | Invoices | A disbursement line cannot consolidate that many source invoices |
| [`LINE_TOTAL_INCONSISTENT`](/errors/LINE_TOTAL_INCONSISTENT) | Invoices | Line totals do not reconcile: expected ‹value›€ (base + VAT + surcharge - IRPF), declared ‹value›€. Difference exceeds 0.01€ |
| [`LINE_UNIT_PRICE_OUT_OF_RANGE`](/errors/LINE_UNIT_PRICE_OUT_OF_RANGE) | Invoices | The unit price is out of the accepted range: the maximum is ‹value› per unit |
| [`LINE_UNIT_PRICE_TOO_MANY_DECIMALS`](/errors/LINE_UNIT_PRICE_TOO_MANY_DECIMALS) | Invoices | The unit price ‹value› has more than 4 decimals and cannot be stored without changing it: use a price with at most 4 decimals. |
| [`LINE_UNIT_PRICE_XOR_DECLARED_TOTAL`](/errors/LINE_UNIT_PRICE_XOR_DECLARED_TOTAL) | Invoices | The line must carry exactly one of unit_price, total_excluding_tax or total_including_tax |
| [`LIVE_CREDENTIAL_REQUIRED`](/errors/LIVE_CREDENTIAL_REQUIRED) | Authentication | This operation changes the real account; it requires a live API key or a dashboard session. |
| [`MAIN_TAX_REQUIRED`](/errors/MAIN_TAX_REQUIRED) | General | You must configure a main tax (VAT, IGIC or IPSI) |
| [`MANAGED_ACCESS_INSUFFICIENT`](/errors/MANAGED_ACCESS_INSUFFICIENT) | Authentication | Management access over that account is not enough for this operation |
| [`MANAGED_ACCOUNT_HOLDER_REQUIRED`](/errors/MANAGED_ACCOUNT_HOLDER_REQUIRED) | Authentication | This managed NIF has no holder yet; it must be claimed before connecting a payment provider |
| [`MANAGED_SCOPE_ELEVATION_REQUIRES_OWNER`](/errors/MANAGED_SCOPE_ELEVATION_REQUIRES_OWNER) | Authentication | Only the account holder can raise management access over their account once it has been claimed |
| [`MARK_SENT_ALREADY_SENT`](/errors/MARK_SENT_ALREADY_SENT) | Invoices | The invoice is already in SENT status. |
| [`MARK_SENT_FROM_DRAFT_NOT_ALLOWED`](/errors/MARK_SENT_FROM_DRAFT_NOT_ALLOWED) | Invoices | Cannot mark an invoice in DRAFT status as SENT. Issue it first. |
| [`MARK_SENT_FROM_INVALID_STATE`](/errors/MARK_SENT_FROM_INVALID_STATE) | Invoices | Cannot mark as SENT from status ‹value›. |
| [`MARK_SENT_FROM_LATER_STATE`](/errors/MARK_SENT_FROM_LATER_STATE) | Invoices | Cannot mark an invoice in ‹value› status as SENT. The invoice is already in a later state. |
| [`MEMBER_ALREADY_IN_ACCOUNT`](/errors/MEMBER_ALREADY_IN_ACCOUNT) | Accounts | That person is already a member of the account. |
| [`MEMBER_MANAGEMENT_FORBIDDEN`](/errors/MEMBER_MANAGEMENT_FORBIDDEN) | Authentication | Only the owner or an admin can manage account members. |
| [`MEMBER_NOT_FOUND`](/errors/MEMBER_NOT_FOUND) | Accounts | No such member in this account. |
| [`METADATA_FILTER_TOO_MANY_KEYS`](/errors/METADATA_FILTER_TOO_MANY_KEYS) | Invoices | The metadata filter supports at most ‹value› key/value pairs per request |
| [`METHOD_NOT_ALLOWED`](/errors/METHOD_NOT_ALLOWED) | General | The HTTP method used is not allowed on this path. |
| [`MISSING_HEADER`](/errors/MISSING_HEADER) | General | A required request header is missing. |
| [`MISSING_HEADERS`](/errors/MISSING_HEADERS) | Customers | These required headers are missing: ‹value›. Headers found: ‹value› |
| [`MISSING_PARAMETER`](/errors/MISSING_PARAMETER) | General | A required request parameter is missing. |
| [`MISSING_PART`](/errors/MISSING_PART) | General | A required part of the multipart request is missing. |
| [`MISSING_REQUIRED_FIELD`](/errors/MISSING_REQUIRED_FIELD) | General | The field '‹value›' is required |
| [`NEGATIVE_TOTAL_REQUIRES_RECTIFICATIVE`](/errors/NEGATIVE_TOTAL_REQUIRES_RECTIFICATIVE) | Invoices | The invoice total cannot be negative. Use corrective invoices (R1-R5) for refunds. |
| [`NIF_ALREADY_REGISTERED`](/errors/NIF_ALREADY_REGISTERED) | Companies | The NIF is already registered |
| [`NIF_CENSUS_MISMATCH`](/errors/NIF_CENSUS_MISMATCH) | Account settings | The NIF does not match the fiscal name in the AEAT census. Please verify that both values match your official records exactly. Detail: ‹value› |
| [`NIF_DE_BAJA`](/errors/NIF_DE_BAJA) | General | The NIF '‹value›' is deregistered in the AEAT census and cannot issue invoices |
| [`NIF_INVALID_CONTROL_DIGIT`](/errors/NIF_INVALID_CONTROL_DIGIT) | Customers | The control digit of NIF '‹value›' is incorrect |
| [`NIF_INVALID_FORMAT`](/errors/NIF_INVALID_FORMAT) | Customers | The NIF '‹value›' has an invalid format |
| [`NIF_LIMIT_REACHED`](/errors/NIF_LIMIT_REACHED) | Subscriptions | You have reached the maximum of ‹value› active NIFs in Live included in your agreement. Contact BeeL to increase it. |
| [`NIF_NOT_CONFIGURED`](/errors/NIF_NOT_CONFIGURED) | VeriFactu | The profile has no NIF. Complete it before continuing. |
| [`NIF_NOT_IN_CENSUS`](/errors/NIF_NOT_IN_CENSUS) | Customers | The NIF '‹value›' does not exist in the AEAT census or the fiscal name does not match |
| [`NIF_NOT_REGISTERED`](/errors/NIF_NOT_REGISTERED) | VeriFactu | The NIF is not registered in VeriFactu |
| [`NIF_PROD_ALREADY_ACTIVE_IN_ANOTHER_ACCOUNT`](/errors/NIF_PROD_ALREADY_ACTIVE_IN_ANOTHER_ACCOUNT) | Companies | This NIF is already registered in production under another account. A NIF can only issue real invoices from a single account. |
| [`NIF_REPRESENTATION_REQUIRED`](/errors/NIF_REPRESENTATION_REQUIRED) | VeriFactu | You must sign the AEAT representation model before issuing real invoices with this NIF |
| [`NIF_REVOCADO`](/errors/NIF_REVOCADO) | General | The NIF '‹value›' has been revoked by the AEAT and cannot operate |
| [`NIF_VALIDATION_INVALID`](/errors/NIF_VALIDATION_INVALID) | VeriFactu | The NIF does not exist in the AEAT census |
| [`NO_DATA_ROWS`](/errors/NO_DATA_ROWS) | Customers | File ‹value› carries only the header row: there is no data row to import |
| [`NO_PDFS_AVAILABLE`](/errors/NO_PDFS_AVAILABLE) | Invoices | No PDFs available for download |
| [`NO_UNSIGNED_DOCUMENT`](/errors/NO_UNSIGNED_DOCUMENT) | VeriFactu | No unsigned representation document exists. Generate one before uploading the signed PDF |
| [`NOT_ACCEPTABLE`](/errors/NOT_ACCEPTABLE) | General | The response cannot be returned in the requested content type. |
| [`NOT_BILLING_OWNER`](/errors/NOT_BILLING_OWNER) | Subscriptions | Only the account owner can manage the subscription and billing. |
| [`NOT_FOUND`](/errors/NOT_FOUND) | General | ‹value› with identifier '‹value›' does not exist or is not available to this credential. |
| [`NUMBER_MAX_LENGTH`](/errors/NUMBER_MAX_LENGTH) | General | Number cannot exceed ‹value› characters |
| [`NUMBERING_REQUIRES_ACTIVATION`](/errors/NUMBERING_REQUIRES_ACTIVATION) | Companies | Series numbering can only be configured in a creation request that activates the company. Remove the numbering block or activate a mode (activate:true) |
| [`ONLY_DRAFT_EMITTABLE`](/errors/ONLY_DRAFT_EMITTABLE) | Invoices | Only draft invoices can be issued. Current status: ‹value› |
| [`OPERATION_DATE_AFTER_ISSUE_DATE`](/errors/OPERATION_DATE_AFTER_ISSUE_DATE) | Invoices | Operation date cannot be after the issue date |
| [`OPERATION_DATE_TOO_OLD`](/errors/OPERATION_DATE_TOO_OLD) | Invoices | Operation date ‹value› is more than ‹value› years old: AEAT does not accept an operation earlier than the issue date minus ‹value› years |
| [`OPERATION_REQUIRES_API_KEY`](/errors/OPERATION_REQUIRES_API_KEY) | Authentication | This operation is privileged and only available with an API key holding the matching scope (e.g. accounts:write); it cannot be performed from the web session. |
| [`OPERATION_REQUIRES_SESSION`](/errors/OPERATION_REQUIRES_SESSION) | Authentication | This operation is only available from the web session; it cannot be performed with an API key or OAuth. |
| [`OSS_REGIME_INCOMPATIBLE_WITH_ISP`](/errors/OSS_REGIME_INCOMPATIBLE_WITH_ISP) | Invoices | OSS/IOSS regime (key 17) is incompatible with reverse charge. The destination-country VAT is declared separately (Modelo 369), not as S2 |
| [`OWNER_ROLE_NOT_ASSIGNABLE`](/errors/OWNER_ROLE_NOT_ASSIGNABLE) | Accounts | The OWNER role cannot be assigned: account ownership is only handed over through transfer-ownership. |
| [`OWNER_ROLE_RESERVED`](/errors/OWNER_ROLE_RESERVED) | Authentication | Only an owner can assign or transfer the owner role. |
| [`PARSING_ERROR`](/errors/PARSING_ERROR) | Customers | Error processing the file: ‹value› |
| [`PAYMENT_DATE_REQUIRED`](/errors/PAYMENT_DATE_REQUIRED) | Invoices | Payment date is required to mark the invoice as paid |
| [`PAYMENT_DETAILS_REQUIRE_METHOD`](/errors/PAYMENT_DETAILS_REQUIRE_METHOD) | Invoices | payment_iban, payment_swift and payment_term_days are only accepted together with a payment_method that is present, not null and not NONE. Send the method together with the details, or neither. |
| [`PAYMENT_REQUIRED`](/errors/PAYMENT_REQUIRED) | Companies | You have an outstanding payment. Settle it to keep operating in production |
| [`PAYMENT_RETURN_URL_INVALID`](/errors/PAYMENT_RETURN_URL_INVALID) | Payment integrations | return_url must be an absolute https:// URL with a host (for example https://your-portal.com/return) |
| [`PDF_EMPTY`](/errors/PDF_EMPTY) | VeriFactu | The PDF file is empty |
| [`PDF_INVALID_EXTENSION`](/errors/PDF_INVALID_EXTENSION) | VeriFactu | The file must be a PDF (.pdf) |
| [`PDF_INVALID_FORMAT`](/errors/PDF_INVALID_FORMAT) | VeriFactu | The file does not have a valid PDF format |
| [`PDF_NOT_GENERATED`](/errors/PDF_NOT_GENERATED) | Invoices | The invoice PDF has not been generated yet |
| [`PDF_SIGNATURE_INVALID`](/errors/PDF_SIGNATURE_INVALID) | VeriFactu | The signed PDF is not valid: ‹value› |
| [`PDF_TOO_LARGE`](/errors/PDF_TOO_LARGE) | VeriFactu | The PDF file exceeds the maximum allowed size: ‹value› (maximum: ‹value› MB) |
| [`PDF_VALIDATION_FAILED`](/errors/PDF_VALIDATION_FAILED) | VeriFactu | Error validating the signed PDF. Please try again later |
| [`PENDING_INVITATION_NOT_FOUND`](/errors/PENDING_INVITATION_NOT_FOUND) | Accounts | No pending invitation with that id in this account. |
| [`PERCENTAGE_OUT_OF_RANGE`](/errors/PERCENTAGE_OUT_OF_RANGE) | Invoices | The percentage ‹value› is not valid. It must be between 0 and 100 |
| [`PHYSICAL_PERSON_CANNOT_HAVE_LEGAL_FORM`](/errors/PHYSICAL_PERSON_CANNOT_HAVE_LEGAL_FORM) | Account settings | Individuals cannot have a legal form |
| [`PHYSICAL_PERSON_CANNOT_HAVE_REPRESENTATIVE`](/errors/PHYSICAL_PERSON_CANNOT_HAVE_REPRESENTATIVE) | Account settings | Individuals cannot have a legal representative |
| [`PLAN_ACTIVATION_REQUIRED`](/errors/PLAN_ACTIVATION_REQUIRED) | Companies | Your plan is still in its trial period. Activate it to start invoicing in production |
| [`PLAZO_DIAS_OUT_OF_RANGE`](/errors/PLAZO_DIAS_OUT_OF_RANGE) | General | Payment term must be between ‹value› and ‹value› days |
| [`POSTAL_CODE_EMPTY`](/errors/POSTAL_CODE_EMPTY) | General | Postal code cannot be empty |
| [`POSTAL_CODE_INVALID_ES`](/errors/POSTAL_CODE_INVALID_ES) | General | Invalid Spanish postal code: '‹value›'. Must be 5 digits |
| [`PREVIEW_DRAFT_ONLY`](/errors/PREVIEW_DRAFT_ONLY) | Invoices | PDF preview is only available for draft invoices |
| [`PREVIEW_GENERATION_ERROR`](/errors/PREVIEW_GENERATION_ERROR) | Invoices | Error generating PDF preview |
| [`PRODUCT_DUPLICATE`](/errors/PRODUCT_DUPLICATE) | Products | A product with code '‹value›' already exists |
| [`PRODUCT_NOT_FOUND`](/errors/PRODUCT_NOT_FOUND) | Products | Product not found: ‹value› |
| [`PROFILE_INCOMPLETE`](/errors/PROFILE_INCOMPLETE) | Account settings | Your tax profile is incomplete. Complete the required data before issuing invoices |
| [`PROFILE_NOT_FOUND`](/errors/PROFILE_NOT_FOUND) | Account settings | User profile not found |
| [`PROFORMA_ALREADY_CONVERTED`](/errors/PROFORMA_ALREADY_CONVERTED) | Invoices | This proforma has already been converted into an invoice; conversion cannot be repeated |
| [`PROFORMA_CORRECTIVE_FORBIDDEN`](/errors/PROFORMA_CORRECTIVE_FORBIDDEN) | Invoices | A proforma invoice cannot be corrected; it is not a fiscal document |
| [`PROFORMA_NOT_CONVERTIBLE`](/errors/PROFORMA_NOT_CONVERTIBLE) | Invoices | A proforma can only be converted while it is active; its current status (‹value›) does not allow it |
| [`PROFORMA_NOT_ISSUABLE`](/errors/PROFORMA_NOT_ISSUABLE) | Invoices | A proforma invoice is not issued: it is born active and becomes an invoice when the customer accepts it |
| [`PROFORMA_NOT_RECURRING`](/errors/PROFORMA_NOT_RECURRING) | Invoices | A proforma invoice cannot be recurring; a quote is a one-off offer, not a subscription |
| [`PROFORMA_PAYMENT_FORBIDDEN`](/errors/PROFORMA_PAYMENT_FORBIDDEN) | Invoices | A proforma invoice cannot be marked as paid; it is not part of the payment cycle |
| [`PROFORMA_RECIPIENT_REQUIRED`](/errors/PROFORMA_RECIPIENT_REQUIRED) | Invoices | A proforma invoice requires a recipient (customer or complete recipient data) |
| [`PROFORMA_SCHEDULE_FORBIDDEN`](/errors/PROFORMA_SCHEDULE_FORBIDDEN) | Invoices | A proforma invoice cannot be scheduled; scheduling is a fiscal issuance flow |
| [`PROFORMA_TRANSITION_FORBIDDEN`](/errors/PROFORMA_TRANSITION_FORBIDDEN) | Invoices | A proforma invoice can only be active, converted or voided; that status change belongs to the fiscal cycle |
| [`PROFORMA_TYPE_CHANGE_FORBIDDEN`](/errors/PROFORMA_TYPE_CHANGE_FORBIDDEN) | Invoices | Cannot change type to/from PROFORMA; use the conversion flow |
| [`PROVIDER_NOT_SUPPORTED`](/errors/PROVIDER_NOT_SUPPORTED) | Payment integrations | Payment provider '‹value›' not supported |
| [`PROVINCE_EMPTY`](/errors/PROVINCE_EMPTY) | General | Province cannot be empty |
| [`PROVINCE_MAX_LENGTH`](/errors/PROVINCE_MAX_LENGTH) | General | Province cannot exceed ‹value› characters |
| [`PROVISIONING_ACCOUNT_CLAIMED`](/errors/PROVISIONING_ACCOUNT_CLAIMED) | Accounts | The holder has already claimed that account and it is now theirs: there is nothing left to claim, and only they can grant you further access from their account. |
| [`PROVISIONING_ACCOUNT_NOT_ACCESSIBLE`](/errors/PROVISIONING_ACCOUNT_NOT_ACCESSIBLE) | Accounts | That account is not managed by your organisation. |
| [`PROVISIONING_EMAIL_ALREADY_REGISTERED`](/errors/PROVISIONING_EMAIL_ALREADY_REGISTERED) | Accounts | That email is already registered with BeeL. Use a different email, or ask the owner to grant you access from their account. |
| [`PROVISIONING_EMAIL_REQUIRED`](/errors/PROVISIONING_EMAIL_REQUIRED) | Accounts | With send_email set to true you must send email: without it there is nobody to send the link to. |
| [`PROVISIONING_EXTERNAL_REF_CONFLICT`](/errors/PROVISIONING_EXTERNAL_REF_CONFLICT) | Accounts | An account with that external reference already exists; retry the request and the existing account will be returned. |
| [`PROVISIONING_INVALID_CURSOR`](/errors/PROVISIONING_INVALID_CURSOR) | Accounts | The pagination cursor is not valid: use the next_cursor from the previous page. |
| [`PROVISIONING_TAX_PROFILE_REQUIRED`](/errors/PROVISIONING_TAX_PROFILE_REQUIRED) | Accounts | With access_level OPERATE you must send tax_profile: invoicing on the account's behalf needs its NIF. |
| [`QUOTA_EXCEEDED`](/errors/QUOTA_EXCEEDED) | Subscriptions | You have exceeded your '‹value›' limit: ‹value›/‹value› used. Resets on ‹value› |
| [`RATE_LIMIT_EXCEEDED`](/errors/RATE_LIMIT_EXCEEDED) | General | You have exceeded the request rate limit. Wait the seconds given in the Retry-After header and try again. |
| [`RECARGO_EQUIVALENCIA_REQUIRED`](/errors/RECARGO_EQUIVALENCIA_REQUIRED) | General | The equivalence surcharge is required for this type of operation |
| [`RECARGO_IVA_COMBINATION_INVALID`](/errors/RECARGO_IVA_COMBINATION_INVALID) | General | The equivalence surcharge does not match the chosen VAT rate. |
| [`RECARGO_REQUIRES_REGIME_RE`](/errors/RECARGO_REQUIRES_REGIME_RE) | General | When equivalence surcharge is enabled, the main tax regime must be "18 - Equivalence surcharge". Change the regime to 18 or disable the surcharge. |
| [`RECIPIENT_ADDRESS_REQUIRED`](/errors/RECIPIENT_ADDRESS_REQUIRED) | Invoices | Recipient address is required for standard invoices |
| [`RECIPIENT_CUSTOMER_AND_DATA_EXCLUSIVE`](/errors/RECIPIENT_CUSTOMER_AND_DATA_EXCLUSIVE) | Invoices | Send a customer or the recipient data, not both. |
| [`RECIPIENT_FISCAL_NAME_REQUIRED`](/errors/RECIPIENT_FISCAL_NAME_REQUIRED) | Invoices | Recipient legal name is required for standard invoices |
| [`RECIPIENT_ID_REQUIRED`](/errors/RECIPIENT_ID_REQUIRED) | Invoices | Recipient must have a NIF or alternative identifier |
| [`RECIPIENT_NIF_AND_ID_OTHER_EXCLUSIVE`](/errors/RECIPIENT_NIF_AND_ID_OTHER_EXCLUSIVE) | Invoices | The recipient cannot carry both a Spanish NIF and an alternative identifier. Use only one |
| [`RECIPIENT_NOT_PROVIDED`](/errors/RECIPIENT_NOT_PROVIDED) | Invoices | Send a customer or the recipient data. |
| [`RECIPIENT_REQUIRED_FOR_ORDINARY`](/errors/RECIPIENT_REQUIRED_FOR_ORDINARY) | Invoices | Ordinary invoices require a valid recipient |
| [`RECIPIENT_UNREGISTERED_ID_MUST_BE_DNI_OR_NIE`](/errors/RECIPIENT_UNREGISTERED_ID_MUST_BE_DNI_OR_NIE) | Invoices | An identifier of type 07 (not registered) with country ES only accepts a Spanish DNI or NIE |
| [`RECTIFICATION_REASON_REQUIRED`](/errors/RECTIFICATION_REASON_REQUIRED) | Invoices | A corrective invoice must state the reason for the correction. |
| [`RECTIFICATIVA_PARCIAL_SIN_LINEAS`](/errors/RECTIFICATIVA_PARCIAL_SIN_LINEAS) | Invoices | Partial rectificative invoices must include correction lines. Use negative quantities/amounts to subtract, positive to add. |
| [`RECTIFICATIVA_R1R4_NOT_SIMPLIFICADA`](/errors/RECTIFICATIVA_R1R4_NOT_SIMPLIFICADA) | VeriFactu | The R1-R4 correction methods do not apply to simplified invoices |
| [`RECTIFICATIVA_R5_ONLY_SIMPLIFICADA`](/errors/RECTIFICATIVA_R5_ONLY_SIMPLIFICADA) | VeriFactu | The R5 correction method only applies to simplified invoices |
| [`RECTIFICATIVA_TOTAL_CON_LINEAS`](/errors/RECTIFICATIVA_TOTAL_CON_LINEAS) | Invoices | Total rectificative invoices must not include lines. Lines are automatically copied from the original invoice with negative amounts. |
| [`RECURRING_ALREADY_ENDED`](/errors/RECURRING_ALREADY_ENDED) | Invoices | The recurrence has ended: it accepts no changes and no new invoices |
| [`RECURRING_END_DATE_BEFORE_START`](/errors/RECURRING_END_DATE_BEFORE_START) | Invoices | The end date must be after the first scheduled generation (‹value›) |
| [`RECURRING_END_MODE_CONFLICT`](/errors/RECURRING_END_MODE_CONFLICT) | Invoices | A recurrence ends in one way only: by date (end_date) or by number of invoices (max_invoices), never both at once. To switch modes send the new field with a value and the old one as null in the same call. |
| [`RECURRING_MAX_INVOICES_ABOVE_MAXIMUM`](/errors/RECURRING_MAX_INVOICES_ABOVE_MAXIMUM) | Invoices | A recurring template cannot be capped above 600 invoices, fifty years of monthly billing |
| [`RECURRING_MAX_INVOICES_BELOW_GENERATED`](/errors/RECURRING_MAX_INVOICES_BELOW_GENERATED) | Invoices | The cap cannot fall below the ‹value› invoices already generated: issued invoices are fiscal facts and are not undone by lowering the cap. To stop it now, end the recurrence by setting its status to COMPLETED. |
| [`RECURRING_MAX_INVOICES_BELOW_MINIMUM`](/errors/RECURRING_MAX_INVOICES_BELOW_MINIMUM) | Invoices | A recurring template cannot be capped below 2 invoices. For a single invoice you do not need a recurrence: schedule the invoice with PUT /v1/companies/&#123;company_id&#125;/invoices/&#123;invoice_id&#125;/schedule, which also issues it on the exact date you choose instead of on the recurrence day of month. |
| [`RECURRING_NO_OCCURRENCE_IN_WINDOW`](/errors/RECURRING_NO_OCCURRENCE_IN_WINDOW) | Invoices | With this cadence the first invoice would fall on ‹value›, after the end date: the window never contains a single generation. Extend the end date or pick a shorter cadence |
| [`RECURRING_NOT_ACTIVE`](/errors/RECURRING_NOT_ACTIVE) | Invoices | Only active recurrences allow this operation. Current status: ‹value› |
| [`RECURRING_NOT_FOUND`](/errors/RECURRING_NOT_FOUND) | Invoices | Recurring invoice not found |
| [`RECURRING_NOT_STARTED`](/errors/RECURRING_NOT_STARTED) | Invoices | The recurring template does not start until ‹value›: there is no occurrence to bring forward yet. If you need to bill before that date, create a normal invoice. |
| [`RECURRING_OCCURRENCE_ALREADY_CONSUMED`](/errors/RECURRING_OCCURRENCE_ALREADY_CONSUMED) | Invoices | That occurrence of the recurring template has already been billed: an invoice exists for that scheduled date. Check the template history before retrying. |
| [`RECURRING_START_DATE_NOT_EDITABLE`](/errors/RECURRING_START_DATE_NOT_EDITABLE) | Invoices | Cannot modify the start date because invoices have already been generated |
| [`RECURRING_STATE_TRANSITION_INVALID`](/errors/RECURRING_STATE_TRANSITION_INVALID) | Invoices | Cannot move from ‹value› to ‹value› |
| [`RECURRING_TYPE_NOT_SUPPORTED`](/errors/RECURRING_TYPE_NOT_SUPPORTED) | Invoices | Cannot create a recurrence from a rectificative invoice |
| [`REFERENCED_BY_PAYMENT_CONNECTION`](/errors/REFERENCED_BY_PAYMENT_CONNECTION) | Account settings | Cannot delete or deactivate the series: it is configured in a payment connection. Remove it from the connection settings first or choose another series there |
| [`REFERENCED_BY_RECURRING_INVOICE`](/errors/REFERENCED_BY_RECURRING_INVOICE) | Account settings | Cannot delete or deactivate the series: there are active or paused recurring invoice templates using it. Finish them or switch them to another series first |
| [`REGIME_KEY_CLASSIFICATION_NOT_ACCEPTED`](/errors/REGIME_KEY_CLASSIFICATION_NOT_ACCEPTED) | Invoices | Regime key ‹value› does not accept a line with exemption_reason ‹value›: with that key AEAT only accepts exemption_reason ‹value› |
| [`REGIME_KEY_NOT_SUPPORTED`](/errors/REGIME_KEY_NOT_SUPPORTED) | Invoices | Regime key ‹value› is not available. Keys 06 and 14 require data the invoice does not carry (06, the cost-based taxable base; 14, an operation date after the issue date and a public-administration recipient). Key 03 requires the invoice not to show the tax separately (RD 1619/2012, art. 16.2.c), and the invoice always does. Use the key that fits the operation |
| [`REGIME_KEY_REQUIRES_RECIPIENT_NIF`](/errors/REGIME_KEY_REQUIRES_RECIPIENT_NIF) | Invoices | With regime key ‹value› the recipient must be identified by NIF: AEAT does not accept an alternative identifier |
| [`REGIME_KEY_REQUIRES_STANDARD_INVOICE`](/errors/REGIME_KEY_REQUIRES_STANDARD_INVOICE) | Invoices | Regime key ‹value› is only accepted on a full invoice (F1): AEAT rejects it on a simplified or a corrective invoice |
| [`REGIME_KEY_REQUIRES_VAT_RATE`](/errors/REGIME_KEY_REQUIRES_VAT_RATE) | Invoices | With regime key ‹value› AEAT only accepts VAT at ‹value› % |
| [`REGIME_REQUIRES_INCOMPATIBLE_EXEMPTION`](/errors/REGIME_REQUIRES_INCOMPATIBLE_EXEMPTION) | Invoices | Regime ‹value› requires exemption reason ‹value›; the line does not carry it |
| [`REGIME_REQUIRES_SURCHARGE`](/errors/REGIME_REQUIRES_SURCHARGE) | Invoices | Regime ‹value› requires recargo de equivalencia and the line does not carry it |
| [`REPRESENTATION_ALREADY_ACTIVE`](/errors/REPRESENTATION_ALREADY_ACTIVE) | VeriFactu | There is already an active representation document. Cancel it before generating another one. |
| [`REPRESENTATION_DOCUMENT_NOT_STORED`](/errors/REPRESENTATION_DOCUMENT_NOT_STORED) | VeriFactu | No representation document is stored. Generate it again. |
| [`REPRESENTATION_NOT_ACTIVE`](/errors/REPRESENTATION_NOT_ACTIVE) | VeriFactu | There is no active representation document. Generate and sign one before continuing. |
| [`REPRESENTATION_NOT_FOUND`](/errors/REPRESENTATION_NOT_FOUND) | VeriFactu | There is no representation document. Generate one before continuing. |
| [`REQUEST_BLOCKED`](/errors/REQUEST_BLOCKED) | General | A security filter at the edge rejected this request before the API saw its body. This usually happens because a text field contains something that looks like code or markup (HTML tags, scripts). Review the request body and try again. |
| [`REQUEST_BODY_TOO_LARGE`](/errors/REQUEST_BODY_TOO_LARGE) | General | The request body exceeds the maximum allowed size of ‹value›. |
| [`REQUEST_LOG_INVALID_CURSOR`](/errors/REQUEST_LOG_INVALID_CURSOR) | API Logs | Invalid pagination cursor |
| [`REQUEST_LOG_INVALID_TIME_RANGE`](/errors/REQUEST_LOG_INVALID_TIME_RANGE) | API Logs | The start of the range must not be later than its end |
| [`REQUEST_LOG_NOT_FOUND`](/errors/REQUEST_LOG_NOT_FOUND) | API Logs | Request log not found |
| [`REVERSE_CHARGE_CASE_NOT_SUPPORTED`](/errors/REVERSE_CHARGE_CASE_NOT_SUPPORTED) | Invoices | Reverse-charge case ‹value› cannot be invoiced from BeeL.: the VAT Law (art. 84.Uno.2.º g) requires it to be documented in a special series |
| [`REVERT_ONLY_FROM_SENT`](/errors/REVERT_ONLY_FROM_SENT) | Invoices | Can only revert from SENT status. Current status: ‹value› |
| [`SCHEDULE_PATCH_EMPTY`](/errors/SCHEDULE_PATCH_EMPTY) | Invoices | You must provide at least scheduled_for or generation_mode |
| [`SCHEDULED_DATE_IN_PAST`](/errors/SCHEDULED_DATE_IN_PAST) | Invoices | The scheduling date cannot be in the past |
| [`SERIES_ANNUAL_REQUIRES_YEAR`](/errors/SERIES_ANNUAL_REQUIRES_YEAR) | Account settings | Annual reset requires the format to include the year (&#123;YYYY&#125; or &#123;YY&#125;); otherwise the invoice number would repeat every year. |
| [`SERIES_CODE_DUPLICATED`](/errors/SERIES_CODE_DUPLICATED) | Account settings | The code '‹value›' is already taken by a series, existing or deleted. Series codes are never reused: they identify invoices already issued. Choose a different code. |
| [`SERIES_CODE_LOCKED_HAS_INVOICES`](/errors/SERIES_CODE_LOCKED_HAS_INVOICES) | Account settings | Cannot modify the series code because it has associated invoices. This would affect numbering integrity. |
| [`SERIES_COMPANY_DELETED`](/errors/SERIES_COMPANY_DELETED) | Account settings | The series belongs to a deleted tax ID: it cannot be activated or set as default. |
| [`SERIES_DEFAULT_CONFLICT`](/errors/SERIES_DEFAULT_CONFLICT) | Account settings | Another operation changed the default series for this document type at the same time. Please try again. |
| [`SERIES_DEFAULT_NOT_FOUND`](/errors/SERIES_DEFAULT_NOT_FOUND) | Account settings | You have no default invoice series. Create a series in settings before issuing invoices. |
| [`SERIES_DOCUMENT_TYPE_LOCKED_HAS_INVOICES`](/errors/SERIES_DOCUMENT_TYPE_LOCKED_HAS_INVOICES) | Account settings | The document type of a series that has already numbered invoices cannot be changed: it would number two types in the same sequence (RD 1619/2012, arts. 6.1.a and 7.1.a). Create a new series for the other type. |
| [`SERIES_FORMAT_INVALID_CHARACTERS`](/errors/SERIES_FORMAT_INVALID_CHARACTERS) | Account settings | The number this series generates would contain characters the AEAT does not accept: ‹value›. Use printable ASCII characters only, without quotes, &lt;, &gt; or = |
| [`SERIES_FORMAT_INVALID_PADDING`](/errors/SERIES_FORMAT_INVALID_PADDING) | Invoices | Invalid padding for &#123;NUM&#125;: ‹value› |
| [`SERIES_FORMAT_LOCKED_HAS_INVOICES`](/errors/SERIES_FORMAT_LOCKED_HAS_INVOICES) | Account settings | Cannot modify the series format because it has associated invoices. This would affect numbering integrity. |
| [`SERIES_FORMAT_NUM_REQUIRED`](/errors/SERIES_FORMAT_NUM_REQUIRED) | Invoices | Variable &#123;NUM&#125; is required in the format. Sequential numbering is required by law |
| [`SERIES_FORMAT_NUMBER_TOO_LONG`](/errors/SERIES_FORMAT_NUMBER_TOO_LONG) | Account settings | The number this series generates can reach ‹value› characters and the AEAT accepts at most ‹value› (series and number together). Shorten the code or the fixed text of the format |
| [`SERIES_FORMAT_OVERLAPS`](/errors/SERIES_FORMAT_OVERLAPS) | Account settings | This series' format can produce the same numbers as series '‹value›'. An invoice number must be unique per issuer: change the code or the format. |
| [`SERIES_FORMAT_UNRECOGNIZED_VARS`](/errors/SERIES_FORMAT_UNRECOGNIZED_VARS) | Invoices | Unrecognized variables: ‹value›. Valid variables: &#123;CODIGO&#125;, &#123;YYYY&#125;, &#123;YY&#125;, &#123;MM&#125;, &#123;NUM&#125;, &#123;NUM:X&#125; |
| [`SERIES_INACTIVE`](/errors/SERIES_INACTIVE) | Invoices | The invoice series '‹value›' is inactive |
| [`SERIES_INCOMPATIBLE_DOC_TYPE`](/errors/SERIES_INCOMPATIBLE_DOC_TYPE) | Account settings | Series '‹value›' does not accept documents of type ‹value›: each series numbers only its own type. Choose a series of that type. |
| [`SERIES_INITIAL_NUMBER_LOCKED_HAS_INVOICES`](/errors/SERIES_INITIAL_NUMBER_LOCKED_HAS_INVOICES) | Account settings | Cannot modify the initial number because the series has associated invoices. This would affect numbering integrity. |
| [`SERIES_INITIAL_NUMBER_OUT_OF_RANGE`](/errors/SERIES_INITIAL_NUMBER_OUT_OF_RANGE) | Account settings | The initial number must be between 1 and 999999 |
| [`SERIES_MONTHLY_REQUIRES_MONTH_AND_YEAR`](/errors/SERIES_MONTHLY_REQUIRES_MONTH_AND_YEAR) | Account settings | Monthly reset requires the format to include the month (&#123;MM&#125;) and the year (&#123;YYYY&#125; or &#123;YY&#125;); otherwise the invoice number would repeat every month. |
| [`SERIES_NOT_FOUND`](/errors/SERIES_NOT_FOUND) | Account settings | Invoice series not found |
| [`SERIES_NUMBER_COLLISION`](/errors/SERIES_NUMBER_COLLISION) | Invoices | The number assigned by the series is already in use. Please contact support: the series numbering needs review |
| [`SERIES_NUMBERING_FROZEN`](/errors/SERIES_NUMBERING_FROZEN) | Account settings | This series has already assigned invoice numbers: its code, format, reset policy and initial number cannot be modified. |
| [`SERIES_RESET_LOCKED_HAS_INVOICES`](/errors/SERIES_RESET_LOCKED_HAS_INVOICES) | Account settings | Cannot modify the counter reset policy because the series has associated invoices. This would affect numbering integrity. |
| [`SERIES_TYPE_CHANGE_LEAVES_TYPE_UNCOVERED`](/errors/SERIES_TYPE_CHANGE_LEAVES_TYPE_UNCOVERED) | Account settings | Cannot change the type of this series: it is the default for ‹value›, and that type still has other active series that would be left without a default. Set another ‹value› series as default first |
| [`SERIES_UNASSIGNED_TYPE_NOT_ALLOWED`](/errors/SERIES_UNASSIGNED_TYPE_NOT_ALLOWED) | Account settings | Set the series' document type. Unassigned series can no longer be created: corrective invoices need a series of their own. |
| [`SERVICE_UNAVAILABLE`](/errors/SERVICE_UNAVAILABLE) | General | The service is temporarily unavailable. Please try again in a few seconds. |
| [`SIGNING_ONLY_IN_LIVE`](/errors/SIGNING_ONLY_IN_LIVE) | VeriFactu | The AEAT representation can only be signed in Live mode: the document has no test mode |
| [`SIMPLIFICADA_FORBIDS_CROSS_BORDER`](/errors/SIMPLIFICADA_FORBIDS_CROSS_BORDER) | Invoices | A simplified invoice cannot document an intra-EU supply exempt under art. 25 LIVA or an operation not subject by location rules (RD 1619/2012, art. 4.4): issue a standard invoice identifying the recipient |
| [`SIMPLIFICADA_FORBIDS_IRPF`](/errors/SIMPLIFICADA_FORBIDS_IRPF) | Invoices | BeeL. does not accept IRPF withholding on simplified invoices or their correctives (R5): issue a standard invoice identifying the recipient |
| [`SIMPLIFICADA_FORBIDS_ISP`](/errors/SIMPLIFICADA_FORBIDS_ISP) | Invoices | Simplified invoices and their correctives (R5) cannot carry reverse-charge: the anonymous recipient cannot auto-liquidate |
| [`SIMPLIFICADA_FORBIDS_SURCHARGE`](/errors/SIMPLIFICADA_FORBIDS_SURCHARGE) | Invoices | Simplified invoices and their correctives (R5) cannot carry recargo de equivalencia: the retailer must receive an identified ordinary (F1) invoice |
| [`SIMPLIFIED_EXCHANGE_NOT_RECORDABLE`](/errors/SIMPLIFIED_EXCHANGE_NOT_RECORDABLE) | Invoices | Simplified invoice ‹value› was issued without VERI*FACTU and is not on file with AEAT: the exchange invoice (F3) only replaces simplified invoices that were recorded. |
| [`SIMPLIFIED_INVOICE_EXCEEDS_LEGAL_LIMIT`](/errors/SIMPLIFIED_INVOICE_EXCEEDS_LEGAL_LIMIT) | Invoices | Simplified invoices cannot exceed ‹value›€ (VAT included). Current total: ‹value›€. Reduce the amount or issue an ordinary invoice. |
| [`SIMPLIFIED_INVOICE_FORBIDS_IDENTIFIED_RECIPIENT`](/errors/SIMPLIFIED_INVOICE_FORBIDS_IDENTIFIED_RECIPIENT) | Invoices | BeeL. does not issue simplified invoices with an identified recipient (NIF or alternative identifier). Issue an ordinary invoice instead. |
| [`SIMPLIFIED_NOT_EXCHANGEABLE`](/errors/SIMPLIFIED_NOT_EXCHANGEABLE) | Invoices | Simplified invoice ‹value› cannot be exchanged: it must be issued, not voided or exchanged before, and have no corrective invoices. |
| [`SIN_DESTINATARIO_RESOLUBLE`](/errors/SIN_DESTINATARIO_RESOLUBLE) | Email delivery | There is no recipient to send the automatic email to. Add an email to the customer or turn off automatic sending. |
| [`STATUS_NOT_DELETABLE`](/errors/STATUS_NOT_DELETABLE) | Invoices | Cannot delete an invoice in status ‹value› |
| [`STATUS_NOT_MODIFIABLE`](/errors/STATUS_NOT_MODIFIABLE) | Invoices | Cannot modify an invoice in status ‹value› |
| [`STREET_EMPTY`](/errors/STREET_EMPTY) | General | Street cannot be empty |
| [`STREET_MAX_LENGTH`](/errors/STREET_MAX_LENGTH) | General | Street cannot exceed ‹value› characters |
| [`SUBACCOUNT_USER_NOT_FOUND`](/errors/SUBACCOUNT_USER_NOT_FOUND) | Companies | User not found |
| [`SUBSCRIPTION_REQUIRED`](/errors/SUBSCRIPTION_REQUIRED) | Subscriptions | An active subscription is required to access this resource |
| [`SURCHARGE_RATE_NOT_ACCEPTED_ON_DATE`](/errors/SURCHARGE_RATE_NOT_ACCEPTED_ON_DATE) | Invoices | AEAT does not accept an equivalence surcharge of ‹value› % with VAT at ‹value› % on an operation dated ‹value› |
| [`SURCHARGE_RATE_REQUIRES_RECALCULATION`](/errors/SURCHARGE_RATE_REQUIRES_RECALCULATION) | Invoices | Recalculate the line: the 0.625 % equivalence surcharge no longer exists, it has been 0.62 % since Royal Decree-law 1/2023 |
| [`SURCHARGE_REQUIRES_REGIME`](/errors/SURCHARGE_REQUIRES_REGIME) | Invoices | Recargo de equivalencia is only compatible with regime 18; the line is on regime ‹value› |
| [`SWIFT_INVALID`](/errors/SWIFT_INVALID) | General | Invalid SWIFT code: '‹value›'. Must be 8 or 11 characters (e.g.: ABCDESMMXXX) |
| [`TAX_CONFIG_CONFLICT`](/errors/TAX_CONFIG_CONFLICT) | General | Another operation created the tax configuration at the same time. Please try again. |
| [`TOO_MANY_RECORDS`](/errors/TOO_MANY_RECORDS) | Customers | Too many records: ‹value› (maximum: ‹value›) |
| [`TOO_MANY_REQUESTS`](/errors/TOO_MANY_REQUESTS) | General | You have exceeded the request limit. Please try again in ‹value› seconds |
| [`TOTAL_CORRECTIVE_NOT_VOIDABLE`](/errors/TOTAL_CORRECTIVE_NOT_VOIDABLE) | Invoices | A total corrective invoice cannot be voided: the invoice it corrects would stay voided with nothing to offset it. If what it rectified was wrong, issue a new invoice for what should have stayed invoiced. |
| [`TRANSITION_NOT_SUPPORTED`](/errors/TRANSITION_NOT_SUPPORTED) | Invoices | Transition to status ‹value› is not supported |
| [`TYPE_CHANGE_CORRECTIVE_FORBIDDEN`](/errors/TYPE_CHANGE_CORRECTIVE_FORBIDDEN) | Invoices | Cannot change type to/from CORRECTIVE |
| [`UNAUTHORIZED`](/errors/UNAUTHORIZED) | Authentication | Authentication is required to access this resource |
| [`UNSUPPORTED_MEDIA_TYPE`](/errors/UNSUPPORTED_MEDIA_TYPE) | General | The submitted content type is not supported. |
| [`URL_MUST_BE_HTTPS`](/errors/URL_MUST_BE_HTTPS) | Webhooks | The webhook URL must use HTTPS |
| [`URL_TARGET_NOT_ALLOWED`](/errors/URL_TARGET_NOT_ALLOWED) | Webhooks | The webhook URL points to an internal network address. Use an endpoint reachable from the internet. |
| [`VALIDATION_ERROR`](/errors/VALIDATION_ERROR) | General | The provided data is not valid. |
| [`VALUE_OUT_OF_RANGE`](/errors/VALUE_OUT_OF_RANGE) | General | The value provided exceeds the range allowed for that field |
| [`VALUE_TOO_LONG`](/errors/VALUE_TOO_LONG) | General | The value provided exceeds the maximum length allowed for that field |
| [`VAT_RATE_NOT_ACCEPTED_ON_DATE`](/errors/VAT_RATE_NOT_ACCEPTED_ON_DATE) | Invoices | AEAT does not accept VAT at ‹value› % on an operation dated ‹value›. The rate is judged by the operation date (operation_date), or by the issue date when there is none. Period in which ‹value› % is accepted: ‹value› |
| [`VERIFACTU_ALWAYS_ON_IN_SANDBOX`](/errors/VERIFACTU_ALWAYS_ON_IN_SANDBOX) | VeriFactu | VeriFactu is always on in sandbox and cannot be disabled |
| [`VERIFACTU_RECORD_NOT_DECLARABLE`](/errors/VERIFACTU_RECORD_NOT_DECLARABLE) | Invoices | AEAT would reject this invoice's record: it breaks section ‹value› of its VERI*FACTU validations. The invoice was not issued and the number was not used. |
| [`VERIFACTU_REPRESENTATION_REQUIRED`](/errors/VERIFACTU_REPRESENTATION_REQUIRED) | VeriFactu | To enable VeriFactu in production you must first sign the AEAT representation form for this tax ID |
| [`VOID_DATE_BEFORE_ISSUE_DATE`](/errors/VOID_DATE_BEFORE_ISSUE_DATE) | Invoices | The void date cannot be before the issue date |
| [`VOID_REQUIRES_ISSUED_IN_ERROR`](/errors/VOID_REQUIRES_ISSUED_IN_ERROR) | Invoices | This invoice has already been sent or paid: it is only voided if it was issued by mistake (the operation did not take place, it is a duplicate, or it carries a withholding that should not have been applied). Confirm it with issued_in_error; if the operation took place, correct it with a corrective invoice. |
| [`WEBHOOK_ACTIVE_SUBSCRIPTION_LIMIT_REACHED`](/errors/WEBHOOK_ACTIVE_SUBSCRIPTION_LIMIT_REACHED) | Webhooks | The account already has the maximum of ‹value› active webhook subscriptions. Deactivate or delete one before creating or reactivating another. |
| [`WEBHOOK_REACTIVATION_REQUIRES_LIVE_ENDPOINT`](/errors/WEBHOOK_REACTIVATION_REQUIRES_LIVE_ENDPOINT) | Webhooks | BeeL. paused this subscription. To reactivate it, the endpoint must first answer a test delivery successfully. |
| [`WEBHOOK_SUBSCRIPTION_NOT_FOUND`](/errors/WEBHOOK_SUBSCRIPTION_NOT_FOUND) | Webhooks | Webhook subscription not found |
| [`WEBHOOK_URL_INVALID`](/errors/WEBHOOK_URL_INVALID) | Webhooks | The webhook URL is not valid: it must include a host (for example https://mydomain.com/webhook) |
| [`ZERO_RATE_REQUIRES_EXEMPTION_REASON`](/errors/ZERO_RATE_REQUIRES_EXEMPTION_REASON) | General | 0% is not a tax rate: state why the operation carries no tax (art. 20 exemption or another reason) |

---

Full OpenAPI spec: https://docs.beel.es/api/openapi