Ir al contenido

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.
ArgumentoTipoObligatorioUso
idstringSíID de FactuCat del documento, en formato UUID. No es el UUID fiscal.
inputInvoiceCancelInputSíObjeto con los campos indicados abajo.
optionsRequestOptionsNosignal 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.

CampoTipoObligatorioDescripción
reason"01" | "02" | "03" | "04"SíClave del motivo de cancelación que corresponde a la operación.
replacementInvoiceIdstringNoID de FactuCat de la factura sustituta emitida.Formato: uuid

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)

Resuelve una Promise<InvoiceCancelOutput>. El valor recibido es directamente data, sin el envoltorio HTTP ni sus metadatos.

CampoTipoObligatorioDescripción
status"cancelled" | "not_confirmed"SíEstado del recurso o resultado de la cancelación; consulta las notas del método.
evidenceunknownSíEvidencia de la cancelación sin estructura tipada. Valídala antes de acceder a sus propiedades.
invoiceunknownNoInformació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.