Skip to content

Instantly share code, notes, and snippets.

@cdiaz
Last active June 6, 2024 02:28
Show Gist options
  • Save cdiaz/a48dc7cbb4fb3dbfa555e016a5aae1dd to your computer and use it in GitHub Desktop.
Save cdiaz/a48dc7cbb4fb3dbfa555e016a5aae1dd to your computer and use it in GitHub Desktop.
Consulta NIT en el Registro Único Empresarial y Social (RUES)
var request = require('request');
// Digite el NIT sin puntos ni guiones, el dígito de Verificación no es requerido.
request.post(
'http://www.rues.org.co/RUES_Web/Consultas/ConsultaNIT_json',
{ form: {strNIT: '891190346' } },
function (error, response, result) {
if (!error && response.statusCode == 200) {
console.log(result)
}
}
);
@gtuxyco
Copy link

gtuxyco commented May 4, 2016

¿Como funciona?
En mi aplicativo registro las empresas con los numero de NIT y quiero hacer que este tenga un hipervínculo que mande al registro mercantil en la pagina de RUES.

@fabersenior
Copy link

@cdiaz Hola, Cordial Saludo.
nos puedes mostrar algun ejemplo de funcionamiento de dicho consumo de la API, actualmente la probé y no arroja resultado.

@miguelgarces123
Copy link

Hola si aún necesitan realizar la consulta a RUES, cree un paquete en laravel para realizar dicha consulta de forma sencilla, puedo crear uno en nodeJs si lo requieren.

Paquete Laravel Consultar Rues

@cdiaz
Copy link
Author

cdiaz commented May 15, 2021

@miguelgarces123 Sería genial que lo hicieras para nodejs y pudieras compartirlo

@miguelgarces123
Copy link

@cdiaz Claro no hay problema!, pronto publicaré el paquete

@alexramdesigner
Copy link

alexramdesigner commented Jun 17, 2022

@miguelgarces123 intente instalar el paquete pero me sale el siguiente error:

`Problem 1
- Root composer.json requires miguelgarces/consultas-rues ^1.0 -> satisfiable by miguelgarces/consultas-rues[v1.0.0].
- miguelgarces/consultas-rues v1.0.0 requires illuminate/support ^5.5|^6|^7|^8 -> found illuminate/support[v5.5.0, ..., 5.8.x-dev, v6.0.0, ..., 6.x-dev, v7.0.0, ..., 7.x-dev, v8.0.0, ..., 8.x-dev] but these were not loaded, likely because it conflicts with another require.

You can also try re-running composer require with an explicit version constraint, e.g. "composer require miguelgarces/consultas-rues:*" to figure out if any version is installable, or "composer require miguelgarces/consultas-rues:^2.1" if you know which you need.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.`

@miguelgarces123
Copy link

Hola @alexramdesigner , segun veo el error el conflicto es con illuminate/support el cual es el que utilizo para determinar la versión compatible de Laravel.

Que versión de Laravel estas usando ?

@aldairbarahona
Copy link

Ya no funciona no se encuentra la ruta http://www.rues.org.co/RUES_Web/Consultas/ConsultaNIT_json :(

@cdiaz
Copy link
Author

cdiaz commented Jun 6, 2024

Update:
@aldairbarahona la url para consulta para el portal antiguo ahora está disponible aquí: https://www.rues.org.co/Home/ConsultaNIT_json

Y para el portal nuevo, primero se debe solicitar un token enviando una petición POST a la siguiente url: https://ruesapi.rues.org.co/WEB2/api/Token/ObtenerToken

Ejemplo con CURL

curl -i -X POST -H "Content-Type: application/json" -H "Content-Length: 0" https://ruesapi.rues.org.co/WEB2/api/Token/ObtenerToken

Tras ejecutar dicha petición se recibirá una respuesta tipo:

{
	"registros": [],
	"cantidad_registros": 0,
	"fecha_respuesta": "6/6/2024",
	"hora_respuesta": "2:6:29",
	"error": {
		"codigo": "200",
		"mensaje": "¡Ok!"
	}
}

Pero el token que se necesita no está en el body sino en el Header Response:

date: Thu, 06 Jun 2024 02:04:43 GMT
content-type: application/json; charset=utf-8
server: Microsoft-IIS/10.0
tokenruesapi: gAWiyDwC7sc0L3WWAJ88yCnZseKzMnIrSzUZPHD3iaH9XOGjB6D1dHS3IQMTPnH6Ddomksqy2F4DKKmjtH2glvkJbZUVGh5HYFv0V_iYqvls2Y8A2FPyeIrgbAKQyLMoiRRMGt6Ijgb93sNFpGusEH602uYWCWkzr3cVZPBCkCrgUqg3C1FdnTZqiTmJ5AKUAqzdP6kZFNn7qDefzsUBwQWD1Qq2fF7GfIc1_l7OgyemxGCOw0i_fF1iX6ZEfLT7qLnDDsnAsDHxGudWwTm3Vzv8XlnjpzF4rQuiG7my5WrUZ6qtIyvQCuY0xrBI0IW3TXOyVQuPaP3D3p2kBrlRWpN3CvYiTVxJseoKodXY6WE5AvHnKJmxcKUp394tceTmVy15422ODIyMVS5hFAi8uJRlxFvA0cycRh_2z3QXmhltiJM-2acFtZRNfB3iDowGQFUMBMIwrh150GOJIs3ipLlzfO4ECKh9pXdyo3KyYS9U2-ChD4pc5SnArn_eUtgV3nRmW7VcxIqSnrt1Oqu7nbPkY3eK0yTy-hL3yUyOlnO3iEdMTwplLPMQYGUww9bP
x-powered-by: ASP.NET

De allí se obtiene el valor de tokenruesapi y se utilizará en otra petición Post a la siguiente url: https://ruesapi.rues.org.co/api/ConsultasRUES/BusquedaAvanzadaRM

El cuerpo de la petición deberá contener este JSON:

{
	"Razon": null,
	"Nit": null,
	"Dpto": null,
	"Cod_Camara": null,
	"Matricula": null
} 

y el encabezado de autenticación debe llevar la palabra Bearer seguido del token obtenido en el paso anterior:

Ejemplo con CURL:

curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer gAWiyDwC7sc0L3WWAJ88yCnZseKzMnIrSzUZPHD3iaH9XOGjB6D1dHS3IQMTPnH6Ddomksqy2F4DKKmjtH2glvkJbZUVGh5HYFv0V_iYqvls2Y8A2FPyeIrgbAKQyLMoiRRMGt6Ijgb93sNFpGusEH602uYWCWkzr3cVZPBCkCrgUqg3C1FdnTZqiTmJ5AKUAqzdP6kZFNn7qDefzsUBwQWD1Qq2fF7GfIc1_l7OgyemxGCOw0i_fF1iX6ZEfLT7qLnDDsnAsDHxGudWwTm3Vzv8XlnjpzF4rQuiG7my5WrUZ6qtIyvQCuY0xrBI0IW3TXOyVQuPaP3D3p2kBrlRWpN3CvYiTVxJseoKodXY6WE5AvHnKJmxcKUp394tceTmVy15422ODIyMVS5hFAi8uJRlxFvA0cycRh_2z3QXmhltiJM-2acFtZRNfB3iDowGQFUMBMIwrh150GOJIs3ipLlzfO4ECKh9pXdyo3KyYS9U2-ChD4pc5SnArn_eUtgV3nRmW7VcxIqSnrt1Oqu7nbPkY3eK0yTy-hL3yUyOlnO3iEdMTwplLPMQYGUww9bP" -d '{"Razon": null, "Nit": 901332568, "Dpto": null, "Cod_Camara": null, "Matricula": null}' https://ruesapi.rues.org.co/api/ConsultasRUES/BusquedaAvanzadaRM

La respuesta obtenida es:

{
	"registros": [
		{
			"tipo_documento": "NIT",
			"nit": "901332568",
			"dv": "4",
			"id_rm": "410000112236",
			"razon_social": "QUANTUX S.A.S",
			"cod_camara": "41",
			"nom_camara": "FLORENCIA PARA EL CAQUETA",
			"matricula": "112236",
			"organizacion_juridica": "SOCIEDADES POR ACCIONES SIMPLIFICADAS SAS",
			"estado_matricula": "ACTIVA",
			"ultimo_ano_renovado": "2024",
			"categoria": "SOCIEDAD ó PERSONA JURIDICA PRINCIPAL ó ESAL"
		}
	],
	"cant_registros": 1,
	"fecha_respuesta": "6/5/2024",
	"hora_respuesta": "9:20 PM",
	"error": {
		"code": "0000",
		"message": "OK"
	}
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment