Ir al contenido

GET /api/emisores/emisor/validar-nit/

GET /api/emisores/emisor/validar-nit/

Valida un NIT contra el RUES y devuelve sus datos para autocompletar.

GET /api/emisores/emisor/validar-nit/?nit=900123456

Respuestas:

  • 200 {"existe": true, ...datos...} si el NIT está en el RUES.
  • 200 {"existe": false} si no se encuentra.
  • 400 si falta el parámetro nit.
  • 503 si el servicio RUES no está disponible.

operationId: emisores_emisor_validar_nit_retrieve

Cualquiera de estas credenciales:

  • LlaveApi — Llave de API de una integración. El valor completo es Api-Key <prefijo>.<secreto>, tal como lo imprime manage.py crear_llave_api. La llave alcanza exactamente los mismos emisores que la persona a cuyo nombre se creó.
Ventana de terminal
curl "https://api.rededoc.uk/api/emisores/emisor/validar-nit/" \
-H "Authorization: <llaveapi>"
CódigoDescripción
200
401Error
429Error
CampoTipoDescripción
idintegerSolo lectura.
usuariointegerUsuario dueño del emisor. Solo lectura.
razon_socialstring
tipo_identificacioninteger
numero_identificacionstringNIT sin puntos, sin guiones y sin dígito de verificación.
digito_verificacionstring
tipo_organizacioninteger
responsabilidadesarray<string>
paisstring
departamentostring
municipiostring
direccionstring
codigo_postalstringcbc:PostalZone de las direcciones del XML.
correo_copiastringCopia de las notificaciones al adquiriente. Varios correos separados por punto y coma. Vacío = no se envía copia.
telefonostring
correoany
activoboolean
habilitado_facturacionbooleanSolo lectura.
habilitado_nominabooleanSolo lectura.
habilitado_documento_equivalentebooleanSolo lectura.
ambiente_facturacionanyContra qué servidor de la DIAN salen las facturas, notas y documentos soporte de este emisor. Es por emisor y no del despliegue: unos pueden seguir en habilitación mientras otros ya están en producción. * 1 - Producción * 2 - Habilitación
ambiente_nominaanyLo mismo para la nómina, que la DIAN habilita aparte: el mismo emisor puede estar en producción para factura y todavía en habilitación para nómina. * 1 - Producción * 2 - Habilitación
ambiente_documento_equivalenteanyY lo mismo para el documento equivalente P.O.S., que tiene su propia habilitación (Res. 000165/2023, numeral 4). Son tres ambientes independientes, no uno del despliegue. * 1 - Producción * 2 - Habilitación
certificado_activobooleanSi el emisor tiene un .p12 cargado. No dice que esté vigente: eso lo responde certificado_vence, porque una bandera que dependiera de la fecha quedaría mintiendo el día que el certificado venza, sin que nadie haya escrito nada. Solo lectura.
certificado_vencestring (date)Fin de la vigencia del .p12 cargado, tal y como viene dentro del propio certificado. Nulo si no hay certificado. Solo lectura. Admite null.
resolucionesarray<Resolucion>Solo lectura.
{
"id": 1,
"usuario": 1,
"razon_social": "texto",
"tipo_identificacion": 1,
"numero_identificacion": "texto",
"digito_verificacion": "texto",
"tipo_organizacion": 1,
"responsabilidades": [
"texto"
],
"pais": "texto",
"departamento": "texto",
"municipio": "texto",
"direccion": "texto",
"codigo_postal": "texto",
"correo_copia": "texto",
"telefono": "texto",
"correo": null,
"activo": true,
"habilitado_facturacion": true,
"habilitado_nomina": true,
"habilitado_documento_equivalente": true,
"ambiente_facturacion": null,
"ambiente_nomina": null,
"ambiente_documento_equivalente": null,
"certificado_activo": true,
"certificado_vence": "2026-01-31",
"resoluciones": [
{
"id": 1,
"emisor": 1,
"tipo_factura": 1,
"numero_resolucion": "texto",
"fecha_resolucion": "2026-01-31",
"prefijo": "texto",
"rango_desde": 0,
"rango_hasta": 0,
"vigente_desde": "2026-01-31",
"vigente_hasta": "2026-01-31",
"activa": true
}
]
}
CampoTipoDescripción
detailstringMensaje para mostrar a la persona.
erroresarray<object>Nunca vacía. Cada error trae codigo, que es lo que el cliente mapea —los de DRF tal cual (required, invalid, does_not_exist, not_found…) y los propios en español (campo_desconocido, solicitud_invalida…)—, y mensaje, para la persona. Si el error es de un campo, su ruta va delante del mensaje: detalles[0].impuestos[0].tributo: Este campo es obligatorio.
{
"detail": "texto",
"errores": [
{
"codigo": "texto",
"mensaje": "texto"
}
]
}
CampoTipoDescripción
detailstringMensaje para mostrar a la persona.
erroresarray<object>Nunca vacía. Cada error trae codigo, que es lo que el cliente mapea —los de DRF tal cual (required, invalid, does_not_exist, not_found…) y los propios en español (campo_desconocido, solicitud_invalida…)—, y mensaje, para la persona. Si el error es de un campo, su ruta va delante del mensaje: detalles[0].impuestos[0].tributo: Este campo es obligatorio.
{
"detail": "texto",
"errores": [
{
"codigo": "texto",
"mensaje": "texto"
}
]
}

RedEDoc es un servicio de Semántica Digital S.A.S.