Anul·lar una factura
Retira una factura emesa.
-
La factura passa a
annulled,voided_atcomença a informar de quan va passar i l'estat és terminal: anul·lar és irreversible i no hi ha tornada asentni adraft. -
Anul·lar o rectificar? Anul·la quan el document sencer no hauria d'haver existit mai i no s'ha cobrat — la factura es retira en bloc i no es produeix cap document rectificatiu.
-
Emet una rectificativa (
POST /v1/invoices/{id}/corrective) quan la factura ja estava cobrada, o quan només està malament en part (import, destinatari, devolució parcial): una facturapaidno es pot anul·lar mai, i anul·lar no corregeix mai cap xifra. -
El que anul·lar no fa: el número correlatiu de la sèrie ni s'allibera ni es reutilitza (el comptador de la sèrie només avança), la factura original no s'esborra i el seu registre d'alta a VeriFactu no es retira.
-
Quan l'empresa està acollida a VeriFactu, s'encua un registre d'anul·lació davant l'AEAT de manera asíncrona amb el teu
reasoncom amotivo— un200significa que la factura està anul·lada al nostre costat, no que l'AEAT ja hagi processat l'anul·lació. -
Amb VeriFactu inactiu l'anul·lació és purament interna.
-
Límits: només es pot anul·lar una factura en
sentooverdue. -
Un
draftno és anul·lable (esborra'l en lloc d'això), ipaid,cancellediannulledretornen 422. Una factura que és rectificativa no es pot anul·lar mai — per desfer una rectificativa equivocada, emet una nova rectificativa de l'original. -
Fixa't que l'invers sí que s'admet: tenir rectificatives no impedeix anul·lar l'original.
-
Crida abans
GET /v1/invoices/{id}/can-annulsi necessites comprovar l'elegibilitat sense intentar el canvi. -
Aquí
reasonés opcional i es persisteix un text de farciment quan l'omets. -
POST /v1/invoices/{id}/annulés exactament la mateixa operació ambreasonobligatori — prefereix-la sempre que el motiu hagi de quedar documentat.
A: header
Paràmetres de ruta
Headers
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.
1 <= length <= 255Fixa 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.
dateOpera 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.
uuidCos 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