Factuarea APIDevelopers

Generar factura rectificativa

Emet una factura rectificativa (RD 1619/2012 art. 15) que corregeix una factura ja emesa.

  • Retorna 201 amb la nova factura: is_corrective: true, corrective apuntant a l'original i un número derivat del d'aquesta a la mateixa sèrie (F-2026-0042-REC1, -REC2… per a rectificatives successives).

  • Flux: l'original ha d'estar ja emesa (sent o paid) → la rectificativa neix ja emesa, mai com a esborrany → quan VeriFactu està actiu la seva alta es transmet a l'AEAT de manera asíncrona, així que un 201 no significa que l'AEAT ja l'hagi acceptada.

  • L'original no es modifica mai: conserva el seu número, el seu estat i el seu propi registre VeriFactu.

  • Una rectificativa és un document addicional, no una edició.

  • Total o parcial. correction_type: full és una substitució (naturalesa VeriFactu S): les lines que envies són els imports finals correctes, i ometre lines del tot la converteix en una anul·lació total, on cada línia original es copia negada i amb el prefix [ANULACION].

  • correction_type: partial és una rectificació per diferències (naturalesa I): lines és obligatori i cadascuna és un delta — típicament negatiu — amb el prefix [AJUSTE].

  • En una rectificació parcial una línia només mou stock si declara el seu propi product_id; en una substitució el producte s'hereta de la línia original del mateix índex.

  • Codi R de l'AEAT. Per defecte es deriva de correction_reason: error_fundado → R1, concurso → R2, incobrable → R3, la resta → R4; una rectificativa d'una factura simplificada (F2) neix sempre R5 sigui quin sigui el motiu.

  • correction_code sobreescriu aquesta derivació, però es valida contra la matriu legal — original F2 → només R5; original F1/F3 → només R1R4.

  • Qualsevol altra combinació retorna 422 amb els allowed_values legals.

  • Límits: les originals en draft, overdue, cancelled i annulled retornen 422 (una factura overdue s'ha de cobrar o anul·lar abans); una rectificativa no es pot rectificar al seu torn — emet en el seu lloc una nova rectificativa de l'original.

  • Llista totes les rectificatives d'una factura amb GET /v1/invoices/{id}/correctives.

POST
/invoices/{invoice}/corrective
AuthorizationBearer <token>

A: header

Paràmetres de ruta

invoice*string

Headers

Idempotency-Key*string

Clau opaca generada pel client (fins a 255 caràcters; es recomana UUID v7) que permet reintents segurs: la primera resposta s'emmagatzema i es reprodueix en les repeticions sense tornar a executar la mutació. Reutilitzar una clau amb un cos diferent retorna 409 idempotency_key_reused. Consulta la guia d'idempotència. Obligatòria en aquesta operació: repetir-la produeix un efecte irreversible (un correu enviat, un fitxer generat, una crida a un tercer o un càrrec), per la qual cosa una petició sense aquesta capçalera es rebutja amb 422 idempotency_key_required abans d'executar lògica de negoci.

Longitud1 <= length <= 255
Factuarea-Version?string

Fixa la versió de l'API (YYYY-MM-DD, versionat per data estil Stripe) per a aquesta petició; omet-lo per usar la versió fixada de la clau, o l'última si no n'hi ha cap. Versió no suportada → 400 unsupported_api_version; mal formada → 400 parameter_invalid_format. La versió efectiva es reflecteix a la capçalera de resposta Factuarea-Version. Consulta la guia de Versioning.

Formatdate
X-Active-Profile?string

Opera en nom d'una empresa filla (API key mestra de gestoria): passa el seu id públic (UUID v7) i la petició s'executa contra les dades d'aquella filla sense canviar l'scope, el tier ni l'environment de la clau (omet-lo per usar la pròpia empresa de la clau). UUID no vàlid → 400 parameter_invalid_uuid; id desconegut o no propi → 404 profile_not_found. Consulta la guia d'Acting on behalf.

Formatuuid

Cos de la petició

application/json

Definicions de TypeScript

Usa el tipus request body a TypeScript.

Cos de la resposta

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json