Tots els error codes
Referència completa de cada error code de l'API pública, agrupat per bounded context, amb el seu estat HTTP i type.
Aquesta és la referència canònica de tots els code d'error que pot retornar l'API pública, agrupats pel bounded context que els emet. Cada code és estable entre versions; el message és només per mostrar. El total i l'agrupació es generen del catàleg en viu.
Compte
| Code | Type | HTTP | Descripció |
|---|---|---|---|
account_not_found | not_found_error | 404 | No es va poder resoldre el compte associat a la clau, cosa que sol voler dir que la clau ja no apunta a una empresa viva. |
api_key_already_revoked | invalid_request_error | 422 | La clau ja estava revocada, i una clau revocada no admet més operacions: la revocació és terminal. |
api_key_not_found | not_found_error | 404 | L'identificador no correspon a cap clau API de l'empresa autenticada. |
Autenticació
| Code | Type | HTTP | Descripció |
|---|---|---|---|
api_key_expired | authentication_error | 401 | La clau va passar la seva data de caducitat. |
api_key_revoked | authentication_error | 401 | La clau va ser revocada, i una clau revocada no torna a autenticar mai: revocar és justament la manera de tallar una credencial filtrada. |
invalid_api_key | authentication_error | 401 | La clau no correspon a cap clau activa. Pot estar mal copiada, truncada, o pertànyer a un altre entorn: les claus de prova i les de producció no són intercanviables. |
ip_not_allowed | authentication_error | 401 | La clau restringeix les adreces que accepta, i la petició va arribar des d'una que no és a la llista. |
missing_api_key | authentication_error | 401 | La petició no porta credencials: ni capçalera Authorization ni X-API-Key. |
origin_not_allowed | authentication_error | 401 | La petició ve d'un origen de navegador que la clau no accepta. |
too_many_auth_failures | authentication_error | 429 | Van arribar massa intents fallits d'autenticació des de la mateixa adreça, així que queda bloquejada temporalment per frenar els intents d'endevinar credencials. |
Autorització
| Code | Type | HTTP | Descripció |
|---|---|---|---|
addon_not_active | authorization_error | 403 | La funcionalitat pertany a un add-on que ara mateix no està actiu per a l'empresa. |
feature_not_available_in_plan | authorization_error | 403 | La funcionalitat no està inclosa en el pla de l'empresa. |
forbidden_action | authorization_error | 403 | L'acció està bloquejada per a aquest recurs encara que l'abast sigui el correcte: el recurs pertany a un catàleg compartit, o el canvi va per un altre endpoint. |
insufficient_scope | authorization_error | 403 | La clau autentica correctament però no porta l'abast que exigeix aquesta operació. Els abasts es concedeixen en emetre la clau i no s'amplien en temps de crida. |
max_api_keys_exceeded | authorization_error | 422 | L'empresa va arribar al nombre de claus API que permet el seu pla. |
max_webhook_endpoints_exceeded | authorization_error | 422 | L'empresa va arribar al nombre d'endpoints de webhook que permet el seu nivell d'add-on. |
module_not_available_in_sandbox | authorization_error | 403 | El recurs pertany a un mòdul vetat en mode test. La sandbox mai toca l'AEAT, els bancs ni cobraments reals, així que aquests mòduls queden fora a propòsit. |
scope_not_allowed_by_plan | authorization_error | 422 | Un dels abasts demanats pertany a un mòdul que el pla no inclou, així que la clau naixeria amb un permís que mai podria exercir. |
scope_not_allowed_in_sandbox | authorization_error | 422 | Una clau de prova no pot néixer amb abasts de mòduls vetats a la sandbox. |
Clients
| Code | Type | HTTP | Descripció |
|---|---|---|---|
alternative_id_type_invalid | invalid_request_error | 422 | El tipus d'identificador alternatiu queda fora del catàleg nif_iva, passport, country_id, residence_certificate, other_document, not_registered. |
cannot_have_both_tax_id_and_alternative_id | invalid_request_error | 422 | El client envia tax_id i un identificador alternatiu alhora. La identitat fiscal és una: l'identificador alternatiu existeix precisament per a parts sense NIF espanyol. |
census_requires_tax_id | invalid_request_error | 422 | La verificació censal contrasta el parell nom + NIF contra l'AEAT, i en falta un dels dos. |
client_has_documents | invalid_request_error | 422 | El client està referenciat per documents emesos. Esborrar-lo deixaria factures, pressupostos o albarans sense la part a qui es van emetre, i els registres fiscals han de seguir sent traçables. |
client_import_too_large | invalid_request_error | 422 | El CSV supera el límit de files que admet la importació síncrona, ja que el fitxer sencer es processa dins de la mateixa petició. |
client_not_found | not_found_error | 404 | L'identificador no resol a cap client de l'empresa autenticada. |
client_requires_tax_identity | invalid_request_error | 422 | El client no té identitat fiscal: ni tax_id ni identificador alternatiu, i no es pot emetre una factura a una part sense identificar. |
direct_debit_requires_default_bank_account | invalid_request_error | 422 | Es va triar domiciliació bancària com a mètode de pagament, però el client no té compte bancari per defecte on carregar. |
tax_id_already_exists | conflict_error | 409 | Un altre client de l'empresa ja té aquest NIF, i el NIF identifica la part sense ambigüitat dins d'una empresa. |
Empreses
| Code | Type | HTTP | Descripció |
|---|---|---|---|
company_inactive | authorization_error | 403 | El perfil que indica X-Active-Profile és una de les teves empreses gestionades, però està desactivada i no es pot operar fins que torni a estar activa. |
gestoria_module_required | authorization_error | 403 | La gestoria té un pla vigent, però sense el mòdul de gestoria, així que no pot crear ni operar empreses gestionades. |
gestoria_plan_required | payment_required_error | 402 | La gestoria no té una subscripció de pagament activa, així que no hi ha subscripció sobre la qual cobrar el seient. |
payment_method_required | payment_required_error | 402 | Donar d'alta una empresa gestionada cobra un seient immediatament, i la gestoria opera en mode real sense mètode de pagament configurat. |
seat_charge_failed | payment_required_error | 402 | El cobrament immediat del prorrateig del seient va ser rebutjat: la targeta es va denegar, necessita autenticació, o el proveïdor de pagament era inaccessible. L'empresa no es crea si el seient no es cobra. |
Albarans
| Code | Type | HTTP | Descripció |
|---|---|---|---|
delivery_note_not_found | not_found_error | 404 | L'identificador no resol a cap albarà de l'empresa autenticada. |
delivery_note_section_not_editable_in_status | invalid_request_error | 422 | La secció logística —transportista, vehicle, conductor— està congelada perquè l'albarà ja està lliurat, facturat o cancel·lat. |
driver_tax_id_requires_name | invalid_request_error | 422 | Es va enviar el NIF del conductor sense el seu nom, i un identificador sense nom no identifica ningú al document de lliurament. |
signature_payload_too_large | invalid_request_error | 422 | La imatge de la signatura supera la mida admesa per al camp. |
Empleats
| Code | Type | HTTP | Descripció |
|---|---|---|---|
employee_seat_charge_failed | payment_required_error | 402 | El cobrament immediat del prorrateig del seient d'empleat va ser rebutjat: la targeta es va denegar, necessita autenticació, o el proveïdor de pagament era inaccessible. L'empleat no s'activa si el seient no es cobra. |
employee_seat_payment_method_required | payment_required_error | 402 | Donar d'alta o reactivar un empleat cobra un seient immediatament, i l'empresa opera en mode real sense mètode de pagament configurat. |
Events
| Code | Type | HTTP | Descripció |
|---|---|---|---|
event_not_found | not_found_error | 404 | L'identificador no correspon a cap esdeveniment de l'empresa autenticada, o l'esdeveniment va ser purgat per la política de retenció de 30 dies. |
Idempotency
| Code | Type | HTTP | Descripció |
|---|---|---|---|
idempotency_key_in_use | idempotency_error | 409 | Hi ha una altra petició amb la mateixa Idempotency-Key encara en curs, i encara no se'n coneix el resultat. |
idempotency_key_invalid | invalid_request_error | 400 | La Idempotency-Key no encaixa amb el format admès: entre 1 i 255 caràcters ASCII imprimibles. |
idempotency_key_reused | idempotency_error | 409 | Aquesta Idempotency-Key ja es va fer servir amb un payload diferent. La clau identifica una operació concreta, així que reutilitzar-la per a una altra buidaria de sentit el replay. |
Factures
| Code | Type | HTTP | Descripció |
|---|---|---|---|
corrective_invoice_inanulable | invalid_request_error | 422 | La factura és al seu torn una rectificativa, i les rectificatives no s'anul·len mai: la cadena de correcció ha de seguir sent auditable de punta a punta. |
export_limit_exceeded | invalid_request_error | 422 | La selecció filtrada supera el límit de 5.000 factures de l'exportació, així que el fitxer es rebutja d'entrada en lloc de truncar-se en silenci. |
invalid_correction_nature | invalid_request_error | 422 | correction_nature només accepta S (substitució: la rectificativa porta els imports corregits complets) o I (per diferències: només porta el delta). |
invalid_correction_reason | invalid_request_error | 422 | El motiu de rectificació queda fora de la llista fiscal tancada (error_fundado, concurso, incobrable, error_importe, error_cliente, devolucion, descuento, otras), que mapeja als codis AEAT R1 a R4. |
invalid_invoice_id | invalid_request_error | 400 | La referència de factura rebuda no és un identificador vàlid; sol voler dir que s'ha colat un valor intern on l'API espera l'id públic. |
invalid_invoice_number | invalid_request_error | 422 | El número de factura no segueix el format canònic SÈRIE-AAAA-NNN, més el sufix -RECn a les rectificatives. |
invalid_invoice_status | invalid_request_error | 422 | El valor enviat com a estat de factura queda fora del catàleg del cicle de vida (draft, scheduled, sent, paid, overdue, cancelled, annulled). |
invalid_invoice_uuid | invalid_request_error | 400 | L'identificador de factura de la ruta o del payload no és un UUID vàlid. |
invalid_payment_method | invalid_request_error | 422 | El mètode de pagament queda fora de l'allowlist tancada: bank_transfer, cash, credit_card, sepa_direct_debit, paypal, bizum, other. |
invoice_already_annulled | invalid_request_error | 422 | La factura ja estava anul·lada. L'anul·lació és terminal i, amb VeriFactu actiu, el seu registre d'anul·lació ja va arribar a l'AEAT. |
invoice_already_paid | invalid_request_error | 422 | La factura ja està cobrada. paid és un estat terminal i comptablement tancat: l'IVA repercutit ja s'ha declarat, o es declararà en el període. |
invoice_already_sent | invalid_request_error | 422 | La factura ja va ser emesa: té número definitiu de sèrie i, amb VeriFactu actiu, l'alta a l'AEAT. L'emissió no passa dues vegades. |
invoice_cannot_assign_number | invalid_request_error | 422 | Es va demanar número definitiu per a una factura que no és esborrany, o que ja en té. La numeració de sèrie és monòtona i els números no es reassignen. |
invoice_invalid_status_transition | invalid_request_error | 422 | L'estat destí no és assolible des de l'actual. El cicle de vida és dirigit: draft passa a scheduled o sent, sent a paid, overdue o annulled, i paid, cancelled i annulled són terminals. |
invoice_not_cancellable_in_current_state | invalid_request_error | 422 | Cancel·lar retira un esborrany que encara no és fiscalment vinculant, així que només s'aplica mentre la factura està en draft. |
invoice_not_correctable_in_current_state | invalid_request_error | 422 | Una rectificativa només s'emet contra una factura ja emesa (sent o paid). Un esborrany, una factura cancel·lada o una anul·lada no tenen res a rectificar. |
invoice_not_deletable_in_current_state | invalid_request_error | 422 | Només s'esborren les factures en draft i cancelled. Una factura numerada no desapareix mai: la sèrie correlativa ha de seguir sent auditable. |
invoice_not_editable_in_current_state | invalid_request_error | 422 | Només un esborrany admet edició. Un cop emesa, la factura és immutable i el seu contingut queda congelat juntament amb el seu registre fiscal. |
invoice_not_eligible_for_action | invalid_request_error | 422 | L'acció sol·licitada no s'aplica a aquesta factura: el seu tipus o el seu estat actual la deixen fora de l'abast de l'operació. |
invoice_not_found | not_found_error | 404 | L'identificador no resol a cap factura de l'empresa autenticada. Les factures d'una altra empresa responen exactament igual. |
invoice_not_modifiable_in_current_state | invalid_request_error | 422 | El camp que intentes canviar està congelat per a l'estat actual — per exemple el règim fiscal d'una factura anul·lada. |
invoice_not_paid | invalid_request_error | 422 | Es va demanar un justificant de pagament d'una factura sense cobrament registrat, així que no hi ha res a certificar. |
invoice_not_reschedulable_in_current_state | invalid_request_error | 422 | Reprogramar mou la data d'emissió d'una factura que espera en scheduled, i aquesta factura no està esperant. |
invoice_not_schedulable_in_current_state | invalid_request_error | 422 | Només un esborrany es pot programar: la programació reserva un moment futur d'emissió sense consumir encara número de sèrie. |
invoice_not_unschedulable_in_current_state | invalid_request_error | 422 | Desprogramar torna la factura de scheduled a draft, així que només s'aplica mentre segueix esperant a emetre's. |
invoice_not_unsendable_in_current_state | invalid_request_error | 422 | Desfer la marca de lliurament només s'aplica a una factura sent: neteja sent_at i manté la factura emesa. |
invoice_requires_at_least_one_line | invalid_request_error | 422 | La factura no porta cap línia d'operació, així que no té base imposable i no es pot emetre. Passa tant quan no envies línies com quan totes les que envies són de suplert: un suplert és una quantitat pagada per compte del client (art. 78.Tres.3 LIVA), no una operació teva. |
invoice_year_required_for_ambiguous_number | invalid_request_error | 422 | Aquest número de factura existeix en més d'un exercici, així que per si sol no identifica una única factura. |
line_total_checksum_mismatch | invalid_request_error | 422 | El line_total declarat no coincideix amb el que calcula Factuarea per a aquella línia (quantitat × preu − descompte + IVA − retenció + recàrrec) i la desviació supera el cèntim de tolerància. L'import que es factura i es declara a l'AEAT és sempre el calculat aquí, així que la discrepància vol dir que el teu sistema i la factura emesa no quadrarien. |
line_type_invalid | invalid_request_error | 422 | El tipus de línia queda fora del catàleg tancat NORMAL / SUPLIDO. Una factura emesa només distingeix dues naturaleses: el que véns tu, que forma base imposable i porta IVA, i el suplert, que són diners avançats en nom i per compte del client i per això queda fora de la base (art. 78.Tres.3 LIVA). |
no_invoices_in_period | invalid_request_error | 422 | L'operació trimestral no va trobar factures en el període demanat, així que no hi ha res a empaquetar ni a enviar. |
payment_method_invalid | invalid_request_error | 422 | La mateixa allowlist tancada que invalid_payment_method, reportada quan el valor es rebutja en llegir el camp de mètode de pagament del payload. |
reminder_not_applicable | invalid_request_error | 422 | El recordatori de pagament no escau: la factura no està en sent ni overdue, no hi ha adreça de destinatari, falta l'enllaç públic o està desactivat, o ja va sortir un altre recordatori les últimes 24 hores. |
scheduled_for_in_past | invalid_request_error | 422 | scheduled_for no és estrictament futur, així que no hi ha cap espera a reservar. |
simplified_invoice_cannot_be_substituted | invalid_request_error | 422 | Una de les factures de la llista de substitució no es pot substituir: no és simplificada, està cancel·lada o anul·lada, pertany a una altra empresa, o ja té substitutiva. |
simplified_invoice_not_allowed | invalid_request_error | 422 | L'operació no és elegible per a factura simplificada: supera els 3.000 €, o és un lliurament intracomunitari, una exportació, una operació amb inversió del subjecte passiu, o el client necessita factura completa per deduir l'IVA. |
simplified_limit_exceeded | invalid_request_error | 422 | Les línies portarien la factura simplificada (F2) per sobre del límit legal absolut de 3.000 € IVA inclòs. |
suplido_line_cannot_carry_taxes | invalid_request_error | 422 | La línia de suplert porta càrrega pròpia: tipus d'IVA, retenció, recàrrec d'equivalència, descompte, clau de règim, causa d'exempció o producte/paquet. Un suplert no és una operació de l'emissor, així que repercutir-hi un impost seria tributar per un lliurament que no has fet, i lligar-lo a un producte mouria un estoc que mai no has venut. |
suplido_not_allowed_in_simplified_invoice | invalid_request_error | 422 | La factura és simplificada (F2) i una simplificada no identifica el destinatari. Sense destinatari identificat no hi ha a qui acreditar el pagament per compte d'altri, així que l'import no admet el tractament de suplert en aquest tipus de factura. |
suplido_requires_source_invoice_reference | invalid_request_error | 422 | La línia de suplert no informa source_invoice_reference, el número del justificant que el tercer va expedir a nom del client. Sense aquest justificant el pagament no s'acredita com a fet per compte d'altri i Hisenda el tractaria com a base imposable pròpia de l'emissor, amb el seu IVA repercutit. |
Notificacions
| Code | Type | HTTP | Descripció |
|---|---|---|---|
notification_not_found | not_found_error | 404 | L'identificador no correspon a cap notificació de l'empresa autenticada, o la notificació va quedar fora de la finestra de retenció. |
Pagaments
| Code | Type | HTTP | Descripció |
|---|---|---|---|
invalid_payment_date | invalid_request_error | 422 | La data de pagament queda fora de la finestra admesa: no pot ser anterior a la data d'emissió de la factura ni situar-se al futur. |
payout_reconciliation_amount_mismatch | invalid_request_error | 422 | L'import confirmat no coincideix amb el net de la liquidació, així que la conciliació tancaria amb una diferència que ningú justifica. |
receipt_not_available | invalid_request_error | 422 | No hi ha justificant a emetre perquè el document no té cap cobrament registrat al darrere. |
stripe_payout_already_reconciled | invalid_request_error | 422 | La liquidació ja estava conciliada, i la conciliació és terminal: repetir-la comptabilitzaria dues vegades l'apunt bancari. |
stripe_payout_not_found | not_found_error | 404 | L'identificador no resol a cap liquidació de l'empresa autenticada. |
Productes
| Code | Type | HTTP | Descripció |
|---|---|---|---|
pack_in_use | invalid_request_error | 422 | El pack està referenciat per documents emesos, així que esborrar-lo trencaria la seva composició. |
pack_not_found | not_found_error | 404 | L'identificador no resol a cap pack de l'empresa autenticada. |
pack_share_link_failed | api_error | 500 | No es va poder generar l'enllaç per compartir el pack. El pack en si no queda afectat. |
product_in_use | invalid_request_error | 422 | El producte està referenciat per documents emesos o per altres entrades del catàleg, i eliminar-lo deixaria aquestes referències penjant. |
product_not_found | not_found_error | 404 | L'identificador no resol a cap producte de l'empresa autenticada. |
sku_already_exists | conflict_error | 409 | Un altre producte de l'empresa ja fa servir aquest SKU, i el SKU identifica l'article sense ambigüitat dins del catàleg. |
Factures proforma
| Code | Type | HTTP | Descripció |
|---|---|---|---|
invalid_expiry_date | invalid_request_error | 422 | La data de venciment és anterior a la d'emissió, o la supera en més de 365 dies. |
invalid_proforma_id | invalid_request_error | 400 | La referència de proforma rebuda no és un identificador vàlid, normalment perquè un valor intern va substituir l'id públic. |
invalid_proforma_number | invalid_request_error | 422 | El número de proforma no segueix el format canònic de numeració de la seva sèrie. |
invalid_proforma_status | invalid_request_error | 422 | El valor enviat com a estat queda fora del catàleg draft, accepted, rejected, expired, invoiced, cancelled. |
invalid_proforma_uuid | invalid_request_error | 400 | L'identificador de proforma de la ruta o del payload no és un UUID vàlid. |
proforma_already_accepted | invalid_request_error | 422 | El client ja va acceptar la proforma, i l'acceptació es registra una sola vegada. |
proforma_already_rejected | invalid_request_error | 422 | La proforma ja està marcada com a rebutjada. |
proforma_cannot_be_accepted | invalid_request_error | 422 | L'acceptació no escau des de l'estat actual: una proforma facturada, cancel·lada o expirada ja no l'admet. |
proforma_cannot_be_rejected | invalid_request_error | 422 | El rebuig no escau des de l'estat actual: un cop facturada, cancel·lada o expirada, la proforma està tancada. |
proforma_cannot_be_sent | invalid_request_error | 422 | L'enviament per correu no s'aplica a una proforma en estat terminal: no hi ha oferta viva a lliurar. |
proforma_invalid_status_transition | invalid_request_error | 422 | L'estat destí no és assolible des de l'actual: un esborrany s'accepta, es cancel·la o expira; una proforma acceptada es factura, es rebutja o expira; facturada, cancel·lada i expirada són terminals. |
proforma_not_convertible_in_current_state | invalid_request_error | 422 | Convertir en factura exigeix que el client hagi acceptat la proforma; des de qualsevol altre estat no hi ha acord a facturar. |
proforma_not_deletable_in_current_state | invalid_request_error | 422 | Només s'esborra una proforma en esborrany. Un cop acceptada, rebutjada o facturada forma part del rastre comercial. |
proforma_not_draft | invalid_request_error | 422 | L'operació només té sentit mentre la proforma és un esborrany, i aquesta ja ha avançat. |
proforma_not_editable_in_current_state | invalid_request_error | 422 | Només una proforma en esborrany admet edició. Un cop acceptada, rebutjada, expirada, facturada o cancel·lada, el seu contingut queda fixat. |
proforma_not_found | not_found_error | 404 | L'identificador no resol a cap proforma de l'empresa autenticada. |
proforma_requires_at_least_one_line | invalid_request_error | 422 | La proforma no porta línies, així que no hi ha import a posar davant del client. |
public_link_expires_at_exceeds_max_days | invalid_request_error | 422 | La caducitat demanada per a l'enllaç públic supera la finestra màxima que permet el teu pla per a documents compartits. |
Factures de compra
| Code | Type | HTTP | Descripció |
|---|---|---|---|
attachment_invalid_filename | invalid_request_error | 422 | El nom del fitxer no és utilitzable: és buit, porta components de ruta, o supera els 200 caràcters. |
attachment_mime_not_allowed | invalid_request_error | 422 | El tipus de fitxer queda fora del conjunt admès: PDF, PNG, JPEG, XML i HTML. |
attachment_missing | not_found_error | 404 | La factura de compra existeix però no té fitxer adjunt, així que no hi ha res a descarregar. |
attachment_too_large | invalid_request_error | 422 | El fitxer supera la mida màxima permesa per a un adjunt de document. |
cannot_attach_to_cancelled_purchase_invoice | invalid_request_error | 422 | La factura està cancel·lada, i adjuntar documents a un registre cancel·lat alteraria documentació ja tancada. |
invalid_purchase_invoice_id | invalid_request_error | 400 | La referència de factura de compra rebuda no és un identificador vàlid, normalment perquè un valor intern va substituir l'id públic. |
invalid_purchase_invoice_number | invalid_request_error | 422 | El número de factura és buit o no encaixa amb el format admès. En una factura de compra el número és el que va imprimir el proveïdor, no un que generi Factuarea. |
invalid_purchase_invoice_uuid | invalid_request_error | 400 | L'identificador de factura de compra de la ruta o del payload no és un UUID vàlid. |
operation_regime_invalid | invalid_request_error | 422 | El règim d'operació queda fora del catàleg general, intracomunitaria, importacion_exportacion, isp. |
purchase_invoice_already_exists | conflict_error | 409 | Aquest proveïdor ja té registrada una factura de compra amb el mateix número. El parell proveïdor + número identifica el document sense ambigüitat i evita comptabilitzar dues vegades la mateixa despesa. |
purchase_invoice_not_deletable_in_current_state | invalid_request_error | 422 | Només s'esborren les factures de compra en esborrany o cancel·lades. Una de pendent o pagada forma part del llibre de despeses. |
purchase_invoice_not_draft | invalid_request_error | 422 | L'operació només s'aplica mentre la factura de compra és un esborrany, i aquesta ja està registrada. |
purchase_invoice_not_editable_in_current_state | invalid_request_error | 422 | Només s'edita una factura de compra en esborrany. Un cop registrada com a pendent, pagada o cancel·lada, el seu contingut dona suport a un apunt comptable. |
purchase_invoice_not_found | not_found_error | 404 | L'identificador no resol a cap factura de compra de l'empresa autenticada. |
purchase_invoice_requires_at_least_one_line | invalid_request_error | 422 | La factura de compra no porta línies, així que no hi ha despesa ni IVA suportat a registrar. |
Pressupostos
| Code | Type | HTTP | Descripció |
|---|---|---|---|
quote_already_accepted | invalid_request_error | 422 | El pressupost ja estava aprovat, i l'aprovació es registra una sola vegada. |
quote_already_rejected | invalid_request_error | 422 | El pressupost ja està marcat com a rebutjat. |
quote_expired | invalid_request_error | 422 | El pressupost va passar la seva data de validesa, així que les condicions ofertes ja no vinculen i no es pot aprovar ni convertir tal com està. |
quote_not_found | not_found_error | 404 | L'identificador no resol a cap pressupost de l'empresa autenticada. |
Límit de peticions
| Code | Type | HTTP | Descripció |
|---|---|---|---|
monthly_quota_exceeded | rate_limit_error | 429 | L'empresa va esgotar la quota mensual de crides que inclou el seu pla. |
rate_limit_exceeded | rate_limit_error | 429 | La clau va enviar més peticions de les que permet el seu ritme a la finestra actual. |
Factures recurrents
| Code | Type | HTTP | Descripció |
|---|---|---|---|
invalid_frequency_interval | invalid_request_error | 422 | L'interval és menor que 1, així que la recurrència mai avançaria a una execució següent. |
invalid_frequency_type | invalid_request_error | 422 | La freqüència queda fora del catàleg daily, weekly, biweekly, monthly, bimonthly, quarterly, semiannual, annual, custom. |
invalid_holiday_handling | invalid_request_error | 422 | La política de festius queda fora del catàleg skip, before, after, same. |
invalid_recurring_invoice_id | invalid_request_error | 400 | La referència de recurrència rebuda no és un identificador vàlid, normalment perquè un valor intern va substituir l'id públic. |
invalid_recurring_invoice_uuid | invalid_request_error | 400 | L'identificador de recurrència de la ruta o del payload no és un UUID vàlid. |
recurring_already_active | invalid_request_error | 422 | La recurrència ja està en marxa, així que no hi ha res a activar. Codi antic conservat per compatibilitat: els endpoints actuals reporten això com a recurring_invoice_already_active. |
recurring_invoice_already_active | invalid_request_error | 422 | La recurrència ja està en marxa. |
recurring_invoice_already_cancelled | invalid_request_error | 422 | La recurrència ja estava cancel·lada, i la cancel·lació és terminal. |
recurring_invoice_already_paused | invalid_request_error | 422 | La recurrència ja està pausada, així que pausar-la un altre cop no canvia res. |
recurring_invoice_cancelled_cannot_resume | invalid_request_error | 422 | Una recurrència cancel·lada no es reprèn: la cancel·lació la tanca definitivament, a diferència de la pausa. |
recurring_invoice_cannot_run | invalid_request_error | 422 | La recurrència no pot generar una factura ara mateix: no està en marxa, el seu cicle s'ha acabat, o li falten dades que la factura necessita. error.message indica el motiu concret. |
recurring_invoice_has_generated_invoices | invalid_request_error | 422 | La recurrència ja va generar factures, i aquestes factures en depenen per a la seva traçabilitat. |
recurring_invoice_not_found | not_found_error | 404 | L'identificador no resol a cap recurrència de l'empresa autenticada. |
recurring_invoice_requires_at_least_one_line | invalid_request_error | 422 | La recurrència no porta línies, així que cada factura generada sortiria buida. |
recurring_not_active | invalid_request_error | 422 | L'operació necessita una recurrència en marxa i aquesta està pausada, completada o cancel·lada. Codi antic conservat per compatibilitat amb integracions velles. |
Request
| Code | Type | HTTP | Descripció |
|---|---|---|---|
business_rule_violation | invalid_request_error | 422 | Una invariant del domini va rebutjar l'operació. Aquest codi indica la família; error.subcode anomena la regla concreta i error.message l'explica. |
conflicting_pagination_params | invalid_request_error | 422 | starting_after i ending_before van viatjar a la mateixa petició. Recorren la col·lecció en sentits oposats, així que només se'n pot aplicar un. |
external_id_already_exists | conflict_error | 409 | L'external_id amb què concilies contra el teu sistema ja està assignat a un altre objecte del mateix tipus en aquesta empresa. |
invalid_param_format | invalid_request_error | 422 | Un form request antic va rebutjar la forma d'un valor. Els endpoints migrats reporten el mateix com a parameter_invalid_format o parameter_invalid_integer. |
invalid_param_value | invalid_request_error | 422 | Un form request antic va rebutjar el valor d'un camp. Els endpoints migrats reporten el mateix com a parameter_invalid_enum o parameter_invalid_range. |
invalid_status_transition | invalid_request_error | 422 | L'estat sol·licitat no és assolible des de l'estat en què es troba ara mateix el document. |
length_required | invalid_request_error | 411 | Va arribar una petició amb body en codificació chunked, sense declarar-ne la mida. L'API necessita conèixer la longitud per avançat per rebutjar payloads excessius abans de carregar-los a memòria. |
metadata_too_many_keys | invalid_request_error | 422 | L'objecte metadata supera el límit de 50 claus per recurs. |
metadata_value_too_long | invalid_request_error | 422 | Un valor de metadata supera els 500 caràcters un cop serialitzat a text. |
method_not_allowed | invalid_request_error | 405 | La ruta existeix però no accepta el verb HTTP utilitzat. |
missing_required_param | invalid_request_error | 422 | Un form request antic va detectar que faltava un camp obligatori. Els endpoints ja migrats als parsers canònics reporten el mateix com a parameter_missing. |
parameter_invalid | invalid_request_error | 422 | Un value object construït a partir del payload va rebutjar el valor rebut. error.subcode diu quin: codi d'impost, codi de país, tipus impositiu, etc. |
parameter_invalid_boolean | invalid_request_error | 400 | Un paràmetre que ha de ser booleà va rebre un valor fora de les representacions acceptades (true/false, 1/0). |
parameter_invalid_cursor | invalid_request_error | 400 | El cursor starting_after o ending_before no és un UUID vàlid, així que no pot apuntar a cap fila de la col·lecció. |
parameter_invalid_empty | invalid_request_error | 400 | Un paràmetre va arribar amb el valor buit: un filtre in sense elements, una comparació sense res després de l'operador, o un filtre d'igualtat amb la cadena buida. |
parameter_invalid_enum | invalid_request_error | 400 | El valor queda fora del conjunt tancat que accepta el paràmetre. En els llistats cobreix a més un operador de filtre diferent de eq, gte, lte, gt, lt, in o contains. |
parameter_invalid_format | invalid_request_error | 400 | El valor té el tipus correcte però no la forma que exigeix el paràmetre: una data, un patró d'identificador o una capçalera com Factuarea-Version. |
parameter_invalid_integer | invalid_request_error | 400 | Un paràmetre que ha de ser un nombre enter va rebre alguna cosa que no es pot interpretar com a tal, per exemple limit=abc. |
parameter_invalid_iso8601 | invalid_request_error | 400 | Un filtre de rang (gte, lte, gt, lt) va rebre un valor que no és numèric ni una data ISO 8601. |
parameter_invalid_range | invalid_request_error | 400 | Un paràmetre numèric va quedar fora dels seus límits. El cas habitual és limit, que ha d'estar entre 1 i 100. |
parameter_invalid_string | invalid_request_error | 400 | Un paràmetre que ha de ser text va rebre un array, un objecte o un valor que no es pot llegir com a cadena. |
parameter_invalid_url | invalid_request_error | 400 | Un camp que ha de contenir una URL absoluta va rebre un valor que no ho és, normalment perquè li falta l'esquema o l'amfitrió. |
parameter_invalid_uuid | invalid_request_error | 400 | Un camp d'identificador va rebre un valor que no és un UUID vàlid. Tot id de recurs a v1 és un UUID. |
parameter_invalid_value | invalid_request_error | 422 | El valor és sintàcticament correcte però no admissible per a aquest recurs: fora del catàleg canònic del camp, o incoherent amb la resta del payload. |
parameter_missing | invalid_request_error | 400 | L'endpoint exigeix un paràmetre que la petició no portava. error.param diu quin. |
parameter_unknown | invalid_request_error | 400 | La petició porta un paràmetre que l'endpoint no accepta: un filtre fora de la seva allowlist, un camp de sort no ordenable, o el page de paginació per offset — v1 pagina per cursor. |
payload_too_large | invalid_request_error | 413 | El body de la petició supera la mida admesa: 1 MB amb caràcter general, 6 MB als endpoints que accepten fitxers. |
profile_not_found | not_found_error | 404 | La capçalera X-Active-Profile anomena una empresa que no existeix o que no pertany a l'arbre de gestoria de la clau autenticada. Tots dos casos responen igual perquè l'API mai reveli empreses d'altres tenants. |
resource_already_exists | conflict_error | 409 | Crear l'objecte duplicaria un que ja existeix sota una clau única — NIF, SKU, external id. error.details.existing_resource_id apunta a l'objecte que ja ocupa aquest valor. |
resource_conflict | conflict_error | 409 | L'operació va xocar amb l'estat actual del recurs i no s'aplica cap codi de conflicte més específic. |
resource_immutable | invalid_request_error | 422 | L'objecte està tancat a canvis per a aquesta operació: el seu estat o el seu registre comptable impedeixen modificar-lo. |
resource_locked | conflict_error | 409 | Una altra operació reté el recurs fins que acaba: les escriptures concurrents sobre el mateix objecte se serialitzen en lloc d'entrellaçar-se. |
resource_not_deletable | invalid_request_error | 422 | L'objecte existeix, però el seu estat o els seus dependents bloquegen l'esborrat. En els esborrats massius aquest és el codi per fila de cada entrada que no es va poder eliminar. |
resource_not_found | not_found_error | 404 | L'identificador no resol a res visible per a l'empresa autenticada. Els objectes d'una altra empresa responen exactament igual, a propòsit. |
route_not_found | not_found_error | 404 | La ruta no correspon a cap endpoint de v1. Sol ser una errada, un prefix /v1 absent o una ruta d'una altra àrea de l'API. |
unknown_filter | invalid_request_error | 422 | Un llistat va rebre un filtre que no coneix. Els parsers canònics de v1 reporten això com a parameter_unknown; aquest codi sobreviu per als endpoints encara sense migrar. |
unsupported_api_version | invalid_request_error | 400 | La capçalera Factuarea-Version està ben formada però anomena una versió fora del conjunt suportat. |
unsupported_media_type | invalid_request_error | 415 | Una petició amb body va declarar un Content-Type diferent de application/json. |
Series
| Code | Type | HTTP | Descripció |
|---|---|---|---|
cannot_archive_last_default_series | invalid_request_error | 422 | La sèrie és l'única activa del seu tipus de document. Arxivar-la deixaria l'empresa sense numeració disponible i congelaria aquest tipus de document. |
document_type_required_for_ambiguous_code | invalid_request_error | 422 | Aquest codi de sèrie existeix per a més d'un tipus de document, així que per si sol no identifica una única sèrie. |
invalid_series_code | invalid_request_error | 422 | El codi de la sèrie és buit, massa llarg, o porta caràcters que no corresponen a un prefix fiscal. |
invalid_series_name | invalid_request_error | 422 | El nom de la sèrie és buit o supera la longitud permesa. |
invalid_series_number | invalid_request_error | 422 | El número inicial no és vàlid: no és un enter positiu, o queda a l'últim número ja emès o per sota, cosa que reemetria números ja consumits. |
invalid_series_uuid | invalid_request_error | 400 | L'identificador de sèrie de la ruta o del payload no és un UUID vàlid. |
invalid_series_year | invalid_request_error | 422 | L'exercici no és un any de quatre xifres vàlid per a una sèrie de numeració. |
monthly_requires_month_segmented_format | invalid_request_error | 422 | El comptador es reinicia cada mes però la màscara de numeració no segrega per mes, així que dos mesos arrencarien al mateix correlatiu i produirien números duplicats dins de l'any. |
series_already_archived | invalid_request_error | 422 | La sèrie ja estava arxivada, i l'arxivat no es repeteix: una segona crida indica que el client ha perdut l'estat real. |
series_code_immutable_with_documents | invalid_request_error | 422 | Canviar el prefix d'una sèrie que ja va emetre documents reescriuria retroactivament el seu identificador fiscal, mentre els clients i l'AEAT tenen el número original. |
series_has_documents | invalid_request_error | 422 | La sèrie ja va numerar documents, així que no es pot eliminar: la seqüència correlativa ha de seguir sent auditable. |
series_immutable | invalid_request_error | 405 | Les sèries no són editables ni eliminables via API: la continuïtat legal de la numeració exigeix que el seu prefix, el seu any i el seu comptador es quedin com estan. |
series_initial_number_creates_gap | invalid_request_error | 422 | El número inicial salta més enllà del següent correlatiu natural havent-hi documents de l'any en curs, i aquest buit a la seqüència no és admissible per a l'AEAT. |
series_locked_by_verifactu | invalid_request_error | 422 | Com a mínim una factura de la sèrie té un registre de facturació acceptat per l'AEAT, cosa que congela el prefix, l'any i la base de numeració de la sèrie. |
series_not_found | not_found_error | 404 | L'identificador no resol a cap sèrie de numeració de l'empresa autenticada. |
series_type_invalid | invalid_request_error | 422 | El tipus de document de la sèrie queda fora del catàleg invoice, quote, delivery_note, proforma, purchase_invoice, recurring_invoice. |
series_year_locked | invalid_request_error | 422 | La sèrie ja va emetre documents en el seu any vigent. Moure l'any deixaria aquests documents apuntant a un exercici buit mentre la seva base imposable és en un altre. |
Servidor
| Code | Type | HTTP | Descripció |
|---|---|---|---|
dependency_unavailable | service_unavailable_error | 503 | Un servei extern del qual depèn l'operació no va respondre a temps. |
face_transmission_failed | api_error | 502 | La plataforma FACe —el punt d'entrada de les administracions públiques— era inaccessible o va respondre amb una fallada. El problema és aigües amunt, no a la teva petició. |
facturae_signing_failed | api_error | 500 | No es va poder produir la signatura XAdES del fitxer Facturae, normalment perquè el certificat de signatura no és utilitzable en aquell moment. |
internal_error | api_error | 500 | Alguna cosa s'ha trencat al nostre costat en processar la petició. La condició no la provoca el teu payload. |
maintenance | service_unavailable_error | 503 | La plataforma és en finestra de manteniment i les escriptures es retenen a propòsit. |
pdf_generation_failed | service_unavailable_error | 503 | El servei de renderitzat no va poder produir el PDF. El document i les seves dades són intactes: el que ha fallat és el fitxer. |
register_sealing_failed | api_error | 500 | El segellat criptogràfic del registre no es va completar, així que el tancament va quedar sense signar en lloc de segellat amb una signatura trencada. |
send_failed | api_error | 500 | El document no es va lliurar per correu: el proveïdor de correu va rebutjar el missatge o era inaccessible. |
service_unavailable | service_unavailable_error | 503 | El servei, o una dependència que necessita, no pot respondre temporalment. |
Proveïdors
| Code | Type | HTTP | Descripció |
|---|---|---|---|
supplier_has_documents | invalid_request_error | 422 | El proveïdor està referenciat per factures de compra registrades, i esborrar-lo deixaria aquestes despeses sense la part que les va emetre. |
supplier_not_found | not_found_error | 404 | L'identificador no resol a cap proveïdor de l'empresa autenticada. |
Informes fiscals
| Code | Type | HTTP | Descripció |
|---|---|---|---|
insufficient_data_for_report | invalid_request_error | 422 | El període no té dades a declarar, o a una factura del període li falta un camp obligatori per a aquest model, típicament el NIF del client. |
invalid_period | invalid_request_error | 422 | El període no identifica una declaració: l'any queda fora del rang admès, o falta el trimestre o és fora del rang 1 a 4 en un model trimestral. |
report_format_invalid | invalid_request_error | 422 | El format queda fora del catàleg txt_aeat, pdf, excel. |
tax_report_not_found | not_found_error | 404 | L'identificador no resol a cap declaració de l'empresa autenticada. |
tax_report_type_invalid | invalid_request_error | 422 | El tipus de declaració queda fora del catàleg modelo_303, modelo_347, modelo_130. |
unsupported_format | invalid_request_error | 422 | El format demanat no està disponible per a aquest model: no tota declaració produeix totes les sortides. |
Impostos
| Code | Type | HTTP | Descripció |
|---|---|---|---|
custom_tax_creation_disabled | authorization_error | 403 | La creació d'impostos personalitzats està deshabilitada per a aquesta empresa. |
duplicate_tax_default_for_document_type | invalid_request_error | 422 | Ja hi ha un altre impost del mateix tipus marcat com a default per a aquest tipus de document, i el parell (tipus d'impost, tipus de document) admet un únic default. |
indirect_tax_regime_invalid | invalid_request_error | 422 | El règim indirecte queda fora del catàleg iva, igic, ipsi. |
invalid_aeat_code | invalid_request_error | 422 | El codi d'operació AEAT queda fora del catàleg tancat S1, S2, S3, E1-E6, N1, N2 que fan servir VeriFactu i el SII. |
invalid_country_aeat_zone | invalid_request_error | 422 | La zona territorial AEAT queda fora del catàleg peninsula, canarias, ceuta, melilla. |
invalid_country_code | invalid_request_error | 422 | El codi de país no té exactament dos caràcters, així que no és un codi ISO 3166-1 alfa-2 vàlid. |
invalid_customer_visible_label | invalid_request_error | 422 | L'etiqueta que es mostra al client al document supera la longitud permesa. |
invalid_description | invalid_request_error | 422 | La descripció supera la longitud màxima permesa per al camp. |
invalid_document_type | invalid_request_error | 422 | El tipus de document queda fora del catàleg: invoice, quote, delivery_note, proforma, purchase_invoice, recurring_invoice. |
invalid_rate_for_tax_regime | invalid_request_error | 422 | El tipus no pertany a la graella legal del seu règim: l'IGIC admet 0, 3, 5, 7, 9,5, 15 i 20 %; l'IPSI admet 0, 0,5, 1, 2, 4, 8 i 10 %. |
invalid_tax_code | invalid_request_error | 422 | El codi de l'impost és buit o supera els 50 caràcters. |
invalid_tax_name | invalid_request_error | 422 | El nom de l'impost és buit o supera els 255 caràcters. |
invalid_tax_rate | invalid_request_error | 422 | El tipus impositiu queda fora del rang permès per a la seva classe: IVA 0-27 %, retenció 0-47 %, recàrrec d'equivalència 0-10 %, altres 0-100 %. |
invalid_tax_type_filter | invalid_request_error | 422 | El filtre type del llistat per tipus porta un valor fora de l'enum vat, retention, surcharge, other. |
invalid_validity_window | invalid_request_error | 422 | La finestra de vigència està invertida: valid_until és anterior a valid_from. |
system_tax_default_modification_forbidden | authorization_error | 403 | Els defaults dels impostos del catàleg compartit no es fixen sobre l'impost: el catàleg és global i la preferència és de la teva empresa. |
system_tax_immutable | invalid_request_error | 422 | L'impost pertany al catàleg canònic AEAT que porta el producte. El seu tipus, el seu codi i el seu nom són fixos perquè totes les empreses comparteixin la mateixa referència fiscal. |
system_tax_immutable_field | invalid_request_error | 422 | L'actualització toca un camp congelat en un impost del sistema; error.param diu quin. |
system_tax_undeletable | invalid_request_error | 422 | Els impostos del sistema formen part del catàleg fiscal compartit i no s'eliminen: esborrar-los trencaria els documents que els referencien. |
tax_applies_to_invalid | invalid_request_error | 422 | L'àmbit de l'impost queda fora del catàleg sale, purchase, both. |
tax_code_already_exists | conflict_error | 409 | Un altre impost del catàleg ja fa servir aquest codi, i el codi identifica l'impost sense ambigüitat. |
tax_id_required | invalid_request_error | 422 | L'operació necessita el número d'identificació fiscal (NIF, CIF o NIE) de la part implicada i el registre no en té. |
tax_in_use | invalid_request_error | 422 | L'impost està referenciat per documents, productes o proveïdors. Eliminar-lo deixaria documents històrics sense la seva referència fiscal. |
tax_inactive_cannot_be_default | invalid_request_error | 422 | Un impost desactivat no pot quedar com a default, ni global ni per tipus de document: seria un default ocult que cap formulari pot triar. |
tax_not_found | not_found_error | 404 | L'identificador no correspon a cap impost del catàleg accessible per a aquesta empresa. |
tax_type_invalid | invalid_request_error | 422 | El tipus d'impost queda fora del catàleg vat, retention, surcharge, other. |
VeriFactu
| Code | Type | HTTP | Descripció |
|---|---|---|---|
alta_record_not_found | not_found_error | 404 | La factura no té registre d'alta, així que l'operació que en depèn no té sobre què treballar. |
anulacion_record_already_exists | conflict_error | 409 | La factura ja té un registre d'anul·lació a la cadena, i l'anul·lació es declara una sola vegada. |
certificate_expired | invalid_request_error | 422 | El certificat està fora de la seva finestra de validesa: ha caducat, o encara no és vàlid. |
certificate_nif_mismatch | invalid_request_error | 422 | El NIF del titular del certificat no coincideix amb el de l'empresa. Els registres AEAT es signen en nom de l'empresa, així que tots dos han de ser el mateix. |
certificate_not_found | not_found_error | 404 | L'empresa no té cap certificat FNMT que correspongui a l'identificador, o no en té cap de pujat. |
certificate_too_large | invalid_request_error | 422 | El fitxer supera el límit de 100 KB, quan un certificat FNMT real pesa uns pocs kilobytes. |
clock_drift_exceeded | invalid_request_error | 422 | El rellotge del servidor es va desviar de l'NTP per sobre del marge permès. La marca de temps de generació entra a l'empremta AEAT, així que un rellotge desincronitzat produiria registres que l'AEAT rebutja. |
declaracion_already_exists | conflict_error | 409 | L'empresa ja té presentada la declaració responsable del SIF d'aquest període. |
declaracion_not_found | not_found_error | 404 | L'empresa no té presentada la declaració responsable del SIF del període sol·licitat. |
event_already_processed | invalid_request_error | 422 | Aquest esdeveniment del SIF ja consta a la cadena d'esdeveniments, i cada esdeveniment es processa exactament una vegada. |
invalid_certificate_format | invalid_request_error | 422 | El fitxer no és un contenidor PKCS#12: els seus primers bytes no corresponen a l'estructura ASN.1 que exigeix el format, digui el que digui l'extensió. |
invalid_certificate_password | invalid_request_error | 422 | La contrasenya no obre el fitxer del certificat. |
max_retries_exceeded | invalid_request_error | 422 | El registre va esgotar el pressupost de reintents tècnics de reenviament de l'XML emmagatzemat. Reintentar el mateix contingut tornaria a fallar igual. |
mode_switch_blocked_until_year_end | invalid_request_error | 422 | El mode VeriFactu es va activar en aquest exercici i ja es va emetre com a mínim un registre de facturació. Fer marxa enrere degradaria la integritat d'una cadena ja declarada a l'AEAT. |
record_already_accepted | invalid_request_error | 422 | L'AEAT ja va acceptar el registre. L'acceptació és terminal i el seu contingut queda congelat com a part de la cadena d'empremtes. |
record_immutable | invalid_request_error | 422 | El registre pertany a un ledger de només-addició: un cop escrit, el seu contingut fiscal queda tancat a modificacions i a esborrat. |
record_not_rejected | invalid_request_error | 422 | L'esmena només s'aplica a registres que l'AEAT va rebutjar per dades. Aquest registre està en un altre estat — una fallada tècnica, per exemple, la cobreix el reintent automàtic. |
record_not_subsanable | invalid_request_error | 422 | El registre no es pot esmenar: no és un registre d'alta, o no té factura d'origen des de la qual regenerar-ne el contingut. |
requires_annulment | invalid_request_error | 422 | El contingut regenerat canvia un camp que entra a l'empremta —NIF de l'emissor, sèrie i número, data d'expedició, tipus de factura, quota o import total— i la cadena no es pot reescriure. |
sii_excluded | invalid_request_error | 422 | L'empresa està registrada al SII, i els obligats al SII queden exclosos del reglament VeriFactu. |
verifactu_already_submitted | invalid_request_error | 422 | La factura ja té el seu registre d'alta. Existeix exactament una alta per factura, així que una segona trencaria la idempotència de la cadena. |
verifactu_mode_invalid | invalid_request_error | 422 | El mode queda fora del catàleg verifactu / no_verifactu. |
verifactu_not_eligible | invalid_request_error | 422 | La factura no es pot registrar ara mateix a l'AEAT: l'empresa no està en mode VeriFactu, no té certificat actiu, o el certificat està revocat o emès per a un altre NIF. |
verifactu_record_not_found | not_found_error | 404 | L'identificador no correspon a cap registre de facturació de l'empresa autenticada. |
verifactu_transmission_failed | invalid_request_error | 422 | L'enviament del registre a l'AEAT no es va completar: l'endpoint era inaccessible o va respondre amb una incidència. |
Webhooks
| Code | Type | HTTP | Descripció |
|---|---|---|---|
addon_required | payment_required_error | 402 | Crear endpoints de webhook pertany a l'add-on Developer API, i l'empresa no el té actiu: el nivell gratuït permet zero endpoints. |
api_version_invalid_format | invalid_request_error | 422 | La versió de payload de l'endpoint no és una data YYYY-MM-DD. |
api_version_unsupported | invalid_request_error | 422 | La versió de payload està ben formada però no és entre les que serveix la plataforma. |
custom_header_blocklisted | invalid_request_error | 422 | Una de les capçaleres personalitzades està reservada: la gestiona la capa HTTP (host, content-type, content-length, user-agent), l'envia Factuarea com a part del contracte signat (factuarea-*), o pertany al proxy (x-forwarded-*). |
custom_header_value_too_long | invalid_request_error | 422 | El valor d'una capçalera personalitzada supera els 1024 caràcters. |
replay_delivery_not_retryable | invalid_request_error | 422 | Només es reenvien els lliuraments fallits. Un lliurament que va arribar bé, o un encara en curs, no té res a reenviar. |
replay_event_expired | invalid_request_error | 422 | L'esdeveniment que dona suport al lliurament va ser purgat per la política de retenció de 30 dies, així que ja no queda payload a reenviar. |
timeout_seconds_out_of_range | invalid_request_error | 422 | timeout_seconds queda fora del rang d'1 a 30 segons. |
too_many_custom_headers | invalid_request_error | 422 | L'endpoint declara més de 20 capçaleres personalitzades. |
webhook_delivery_not_found | not_found_error | 404 | L'identificador no correspon a cap intent de lliurament, o el lliurament queda fora de la finestra de retenció de l'històric. |
webhook_endpoint_degraded | invalid_request_error | 422 | L'endpoint està degradat després de fallades repetides de lliurament, així que els pings de prova es rebutgen mentre segueixi en aquest estat. |
webhook_endpoint_not_found | not_found_error | 404 | L'identificador no resol a cap endpoint de webhook de l'empresa autenticada. |
webhook_secret_recently_rotated | rate_limit_error | 429 | El secret de signatura es va rotar fa menys de cinc minuts. La finestra de gràcia permet que el teu receptor accepti tots dos secrets durant el canvi; rotar un altre cop dins d'ella invalidaria signatures encara en vol. |