Factuarea APIDevelopers

Anul·lar una factura

Retira una factura emesa amb un motiu documentat.

  • Aquí reason és obligatori (3–500 caràcters); aquesta és l'única diferència amb POST /v1/invoices/{id}/void, que fa exactament la mateixa operació i persisteix un text de farciment quan l'omets.

  • Prefereix aquest endpoint sempre que el motiu hagi de ser traçable: el text que envies es conserva al rastre d'auditoria de la factura i, quan l'empresa està acollida a VeriFactu, passa a ser el motivo del registre d'anul·lació davant l'AEAT.

  • La factura passa a annulled i voided_at comença a informar de quan va passar.

  • L'estat és terminal i l'operació és irreversible: no hi ha tornada a sent ni a draft, i el número correlatiu de la sèrie ni s'allibera ni es reutilitza.

  • Efecte a l'AEAT. Amb VeriFactu actiu, anul·lar encua un registre d'anul·lació a l'AEAT de manera asíncrona: un 200 significa que la factura està anul·lada a Factuarea, no que l'AEAT ja ho hagi processat — consulta la factura per veure'n l'estat VeriFactu.

  • El registre d'alta original no s'esborra ni es reescriu; l'AEAT conserva els dos apunts, l'emissió i la seva anul·lació.

  • Amb VeriFactu inactiu l'anul·lació és purament interna i no es transmet res.

  • Anul·lar o rectificar? L'anul·lació retira el document sencer i només funciona abans del cobrament; no produeix cap document rectificatiu, així que mai no reexpressa cap import.

  • Una factura rectificativa (POST /v1/invoices/{id}/corrective) crea una nova factura que corregeix l'original i és l'únic camí per a una factura que ja està paid o que només està malament en part.

  • Límits: només es pot anul·lar una factura en sent o overdue.

  • Un draft no s'anul·la, s'esborra; paid, cancelled i annulled retornen 422. Una factura que és rectificativa no es pot anul·lar mai — emet en el seu lloc una nova rectificativa de l'original.

  • Fes servir GET /v1/invoices/{id}/can-annul per comprovar l'elegibilitat, i si es crearà un registre d'anul·lació VeriFactu, abans de cridar aquí.

POST
/invoices/{invoice}/annul
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