cancelInvoice()
Solicita la cancelación de una factura emitida de la cuenta y devuelve el resultado de confirmación.
Permiso: invoice:cancel
cancelInvoice( id: string, input: InvoiceCancelInput, options?: RequestOptions): Promise<InvoiceCancelOutput>Referencia HTTP: POST /invoices/{id}/cancel
- Un HTTP 200 no garantiza la cancelación. Solo status cancelled confirma ese resultado; not_confirmed exige conservar la evidencia y verificar el estado.
- reason debe corresponder al caso fiscal. Para el motivo 01, el servidor exige la factura sustituta emitida; replacementInvoiceId es el ID de FactuCat, no su UUID fiscal.
- evidence e invoice son unknown: valida su estructura antes de leer propiedades. No tienen un esquema estable de detalle en el SDK.
Parámetros
Sección titulada «Parámetros»| Argumento | Tipo | Obligatorio | Uso |
|---|---|---|---|
id | string | Sí | ID de FactuCat del documento, en formato UUID. No es el UUID fiscal. |
input | InvoiceCancelInput | Sí | Objeto con los campos indicados abajo. |
options | RequestOptions | No | signal e idempotencyKey; consulta las opciones por solicitud. |
Opciones por solicitud: signal e idempotencyKey.
Los campos siguientes corresponden a input en TypeScript. Un campo opcional se puede omitir; null solo se admite cuando aparece en su tipo. Las validaciones de negocio se ejecutan en el servidor.
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
reason | "01" | "02" | "03" | "04" | Sí | Clave del motivo de cancelación que corresponde a la operación. |
replacementInvoiceId | string | No | ID de FactuCat de la factura sustituta emitida.Formato: uuid |
Ejemplo
Sección titulada «Ejemplo»Usa el cliente factucat de Instala y conecta. Los IDs y datos fiscales de este ejemplo son ilustrativos: reemplázalos por los registros de tu cuenta y ambiente.
const resultado = await factucat.cancelInvoice( "00112233-4455-4677-8899-aabbccddeeff", { "reason": "02" }, { "idempotencyKey": "pedido-1001-cancelar" },)console.log(resultado)Respuesta
Sección titulada «Respuesta»Resuelve una Promise<InvoiceCancelOutput>. El valor recibido es directamente data, sin el envoltorio HTTP ni sus metadatos.
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
status | "cancelled" | "not_confirmed" | Sí | Estado del recurso o resultado de la cancelación; consulta las notas del método. |
evidence | unknown | Sí | Evidencia de la cancelación sin estructura tipada. Valídala antes de acceder a sus propiedades. |
invoice | unknown | No | Información adicional de la factura sin estructura tipada en esta respuesta. |
Ejemplo de respuesta
{ "status": "not_confirmed", "evidence": null}Las fechas se entregan como cadenas ISO 8601. Un campo opcional puede estar ausente. Tipos, paginación y archivos.
La promesa se rechaza si la API devuelve un error, falla la conexión o los datos no cumplen el contrato. Cómo manejar los errores.