Ir al contenido

Invalidar un documento o un evento

POST
/dte/{codigo}/invalidar
curl --request POST \
--url https://openfactura.co/api/v1/dte/example/invalidar \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "tipoAnulacion": 1, "motivoAnulacion": "example", "codigoGeneracionReemplazo": "example", "solicitante": { "nombre": "example", "tipoDocumento": "example", "numDocumento": "example" }, "responsable": { "nombre": "example", "tipoDocumento": "example", "numDocumento": "example" } }'

Irreversible. tipoAnulacion: 1 error en la información (requiere codigoGeneracionReemplazo), 2 rescindir la operación, 3 otro (requiere motivo y reemplazo). :codigo también puede ser un evento de retorno u operaciones especiales: entonces responde { invalidado, tipo, codigoGeneracion }. Un DTE con un retorno vigente responde 409 retorno_vigente.

Permiso: dte:invalidate.

codigo
required
string

Código de generación (UUID) o id interno.

Media typeapplication/json
object
tipoAnulacion
required
Any of:
number
Allowed value: 1
motivoAnulacion
Any of:
string
<= 250 characters
codigoGeneracionReemplazo
Any of:
string
<= 36 characters
solicitante
object
nombre
required
string
>= 1 characters <= 100 characters
tipoDocumento
required
string
>= 2 characters <= 2 characters
numDocumento
required
string
>= 1 characters <= 20 characters
responsable
object
nombre
required
string
>= 1 characters <= 100 characters
tipoDocumento
required
string
>= 2 characters <= 2 characters
numDocumento
required
string
>= 1 characters <= 20 characters

Documento invalidado, o el evento invalidado.

Media typeapplication/json
One of:
object
id
required
string
codigoGeneracion
required

UUID en mayúsculas.

string
numeroControl
required
string
tipoDte
required
string
Allowed values: 11 14 01 03 04 05 06 07
ambiente
required
string
Allowed values: 00 01
estado
required
string
Allowed values: pendiente procesado rechazado contingencia invalidado
fechaEmision
string format: date
horaEmision
string
receptorNombre
string | null
receptorDocumento
string | null
total
required
number
selloRecibido
string | null
origen
string
error
string | null
creado

Milisegundos desde 1970.

integer
urlConsulta

Consulta pública en el portal del MH.

string | null
dte

Estructura del DTE tal como se firmó.

object
key
additional properties
any
respuestaMh

Última respuesta del MH.

object | null
eventos
Array<object>
object
key
additional properties
any

Example

{
"numeroControl": "DTE-01-M001P001-000000000000001",
"tipoDte": "11",
"ambiente": "00",
"estado": "pendiente",
"horaEmision": "01:38:12",
"origen": "panel"
}
RateLimit-Limit
integer

Peticiones permitidas por minuto (sólo con clave de API).

RateLimit-Remaining
integer

Peticiones restantes en la ventana actual (sólo con clave de API).

RateLimit-Reset
integer

Segundos hasta que se reinicia la ventana (sólo con clave de API).

Idempotent-Replayed
string
Allowed values: true

true cuando la respuesta es la guardada de un intento anterior.

Cuerpo o parámetros inválidos (details = [{ ruta, mensaje }]), o el DTE no cumple el esquema del MH (details.problemas). Códigos: datos_invalidos, dte_invalido.

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: datos_invalidos dte_invalido no_autenticado sin_permiso origen_no_permitido no_encontrado sin_organizacion sin_organizacion_activa nit_bloqueado emisor_no_configurado credenciales_incompletas sin_punto_venta estado_invalido ambiente_distinto retorno_excedido retorno_vigente idempotencia_distinta idempotencia_en_curso cliente_repetido producto_repetido codigo_repetido sin_archivo limite_webhooks simulador_inactivo dte_rechazado invalidacion_rechazada contingencia_rechazada evento_rechazado limite_excedido error_interno mh_credenciales_rechazadas mh_no_disponible emision_fallida emision_incierta
message
required
string
details

Detalle según el código; puede faltar.

Example

{
"error": {
"code": "datos_invalidos"
}
}

Falta sesión, o la clave de API no es válida, fue revocada o expiró. Códigos: no_autenticado.

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: datos_invalidos dte_invalido no_autenticado sin_permiso origen_no_permitido no_encontrado sin_organizacion sin_organizacion_activa nit_bloqueado emisor_no_configurado credenciales_incompletas sin_punto_venta estado_invalido ambiente_distinto retorno_excedido retorno_vigente idempotencia_distinta idempotencia_en_curso cliente_repetido producto_repetido codigo_repetido sin_archivo limite_webhooks simulador_inactivo dte_rechazado invalidacion_rechazada contingencia_rechazada evento_rechazado limite_excedido error_interno mh_credenciales_rechazadas mh_no_disponible emision_fallida emision_incierta
message
required
string
details

Detalle según el código; puede faltar.

Example

{
"error": {
"code": "datos_invalidos"
}
}

Falta un permiso (details.permiso) o el origen de la petición con cookie no está permitido. Códigos: sin_permiso, origen_no_permitido.

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: datos_invalidos dte_invalido no_autenticado sin_permiso origen_no_permitido no_encontrado sin_organizacion sin_organizacion_activa nit_bloqueado emisor_no_configurado credenciales_incompletas sin_punto_venta estado_invalido ambiente_distinto retorno_excedido retorno_vigente idempotencia_distinta idempotencia_en_curso cliente_repetido producto_repetido codigo_repetido sin_archivo limite_webhooks simulador_inactivo dte_rechazado invalidacion_rechazada contingencia_rechazada evento_rechazado limite_excedido error_interno mh_credenciales_rechazadas mh_no_disponible emision_fallida emision_incierta
message
required
string
details

Detalle según el código; puede faltar.

Example

{
"error": {
"code": "datos_invalidos"
}
}

El recurso no existe en esta organización. Códigos: no_encontrado.

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: datos_invalidos dte_invalido no_autenticado sin_permiso origen_no_permitido no_encontrado sin_organizacion sin_organizacion_activa nit_bloqueado emisor_no_configurado credenciales_incompletas sin_punto_venta estado_invalido ambiente_distinto retorno_excedido retorno_vigente idempotencia_distinta idempotencia_en_curso cliente_repetido producto_repetido codigo_repetido sin_archivo limite_webhooks simulador_inactivo dte_rechazado invalidacion_rechazada contingencia_rechazada evento_rechazado limite_excedido error_interno mh_credenciales_rechazadas mh_no_disponible emision_fallida emision_incierta
message
required
string
details

Detalle según el código; puede faltar.

Example

{
"error": {
"code": "datos_invalidos"
}
}

Falta configurar algo o hay un conflicto. Códigos: sin_organizacion, sin_organizacion_activa, nit_bloqueado, emisor_no_configurado, credenciales_incompletas, sin_punto_venta, estado_invalido, ambiente_distinto, retorno_excedido, retorno_vigente, idempotencia_distinta, idempotencia_en_curso, cliente_repetido, producto_repetido, codigo_repetido, sin_archivo, limite_webhooks, simulador_inactivo.

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: datos_invalidos dte_invalido no_autenticado sin_permiso origen_no_permitido no_encontrado sin_organizacion sin_organizacion_activa nit_bloqueado emisor_no_configurado credenciales_incompletas sin_punto_venta estado_invalido ambiente_distinto retorno_excedido retorno_vigente idempotencia_distinta idempotencia_en_curso cliente_repetido producto_repetido codigo_repetido sin_archivo limite_webhooks simulador_inactivo dte_rechazado invalidacion_rechazada contingencia_rechazada evento_rechazado limite_excedido error_interno mh_credenciales_rechazadas mh_no_disponible emision_fallida emision_incierta
message
required
string
details

Detalle según el código; puede faltar.

Example

{
"error": {
"code": "datos_invalidos"
}
}

El MH rechazó el documento o el evento; details.mh = { codigo, mensaje, observaciones[] }. Códigos: dte_rechazado, invalidacion_rechazada, contingencia_rechazada, evento_rechazado.

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: datos_invalidos dte_invalido no_autenticado sin_permiso origen_no_permitido no_encontrado sin_organizacion sin_organizacion_activa nit_bloqueado emisor_no_configurado credenciales_incompletas sin_punto_venta estado_invalido ambiente_distinto retorno_excedido retorno_vigente idempotencia_distinta idempotencia_en_curso cliente_repetido producto_repetido codigo_repetido sin_archivo limite_webhooks simulador_inactivo dte_rechazado invalidacion_rechazada contingencia_rechazada evento_rechazado limite_excedido error_interno mh_credenciales_rechazadas mh_no_disponible emision_fallida emision_incierta
message
required
string
details

Detalle según el código; puede faltar.

Example

{
"error": {
"code": "datos_invalidos"
}
}

Límite de peticiones excedido; Retry-After indica cuántos segundos esperar. Códigos: limite_excedido.

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: datos_invalidos dte_invalido no_autenticado sin_permiso origen_no_permitido no_encontrado sin_organizacion sin_organizacion_activa nit_bloqueado emisor_no_configurado credenciales_incompletas sin_punto_venta estado_invalido ambiente_distinto retorno_excedido retorno_vigente idempotencia_distinta idempotencia_en_curso cliente_repetido producto_repetido codigo_repetido sin_archivo limite_webhooks simulador_inactivo dte_rechazado invalidacion_rechazada contingencia_rechazada evento_rechazado limite_excedido error_interno mh_credenciales_rechazadas mh_no_disponible emision_fallida emision_incierta
message
required
string
details

Detalle según el código; puede faltar.

Example

{
"error": {
"code": "datos_invalidos"
}
}
Retry-After
integer

Segundos que hay que esperar.

Problema hablando con el MH o al firmar. Con emision_incierta consulte details.codigoGeneracion antes de reintentar. Códigos: mh_credenciales_rechazadas, mh_no_disponible, emision_fallida, emision_incierta.

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: datos_invalidos dte_invalido no_autenticado sin_permiso origen_no_permitido no_encontrado sin_organizacion sin_organizacion_activa nit_bloqueado emisor_no_configurado credenciales_incompletas sin_punto_venta estado_invalido ambiente_distinto retorno_excedido retorno_vigente idempotencia_distinta idempotencia_en_curso cliente_repetido producto_repetido codigo_repetido sin_archivo limite_webhooks simulador_inactivo dte_rechazado invalidacion_rechazada contingencia_rechazada evento_rechazado limite_excedido error_interno mh_credenciales_rechazadas mh_no_disponible emision_fallida emision_incierta
message
required
string
details

Detalle según el código; puede faltar.

Example

{
"error": {
"code": "datos_invalidos"
}
}