API de consulta RNC
Integra la validación de contribuyentes dominicanos en tu sistema en minutos. Autenticación por API Key, respuestas JSON estructuradas, rate limiting por plan.
{
"success": true,
"message": "Consulta procesada correctamente.",
"error_code": null,
"data": {
"rnc": "130999991",
"name": "EMPRESA DEMO SRL",
"status": "ACTIVO",
"regime": "NORMAL",
"economic_activity": "SERVICIOS DE SOFTWARE",
"operations_start_date": "2010-03-15"
},
"meta": {
"requested_at": "2026-03-31T10:00:00",
"monthly_quota": {
"type": "limited",
"limit": 1000,
"used": 45,
"remaining": 955
}
}
}
Autenticación
Cada solicitud debe incluir tu API Key en el header X-API-Key.
La clave se genera desde tu panel de cliente después de elegir un plan.
X-API-Key: TU_API_KEY
Endpoint
https://api.tommypos.com/api/v1/rnc/130999991
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
rnc |
string | Sí | RNC del contribuyente a consultar. Ej: 130999991 |
Ejemplos de integración
curl -X GET "https://api.tommypos.com/api/v1/rnc/130999991" \
-H "Accept: application/json" \
-H "X-API-Key: TU_API_KEY"
fetch("https://api.tommypos.com/api/v1/rnc/130999991", {
method: "GET",
headers: {
"Accept": "application/json",
"X-API-Key": "TU_API_KEY"
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
<?php
$ch = curl_init("https://api.tommypos.com/api/v1/rnc/130999991");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"X-API-Key: TU_API_KEY",
],
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
import requests
url = "https://api.tommypos.com/api/v1/rnc/130999991"
headers = {
"Accept": "application/json",
"X-API-Key": "TU_API_KEY"
}
response = requests.get(url, headers=headers)
print(response.json())
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text.Json;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-API-Key", "TU_API_KEY");
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json")
);
var response = await client.GetAsync("https://api.tommypos.com/api/v1/rnc/130999991");
var json = await response.Content.ReadAsStringAsync();
Console.WriteLine(json);
// Program.cs — usando HttpClient con IHttpClientFactory
builder.Services.AddHttpClient("DgiiApi", client =>
{
client.BaseAddress = new Uri("https://api.tommypos.com/api/v1/");
client.DefaultRequestHeaders.Add("X-API-Key", "TU_API_KEY");
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json")
);
});
// En tu Controller o Service:
public class RncService
{
private readonly IHttpClientFactory _factory;
public RncService(IHttpClientFactory factory)
=> _factory = factory;
public async Task<string> ConsultarRncAsync(string rnc)
{
var client = _factory.CreateClient("DgiiApi");
var response = await client.GetAsync($"rnc/{rnc}");
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
}
}
Estructura de respuesta
Todas las respuestas siguen una estructura JSON consistente con los campos
success, message, error_code, data y meta.
✓ RNC encontrado — 200
{
"success": true,
"message": "Consulta procesada correctamente.",
"error_code": null,
"data": {
"rnc": "130999991",
"name": "EMPRESA DEMO SRL",
"status": "ACTIVO",
"regime": "NORMAL",
"economic_activity": "SERVICIOS DE SOFTWARE",
"operations_start_date": "2010-03-15"
},
"meta": {
"requested_at": "2026-03-31T10:00:00",
"monthly_quota": {
"type": "limited",
"limit": 1000,
"used": 45,
"remaining": 955
}
}
}
✕ RNC no encontrado — 404
{
"success": false,
"message": "RNC no encontrado.",
"error_code": "RNC_NOT_FOUND",
"data": null
}
| Campo | Tipo | Descripción |
|---|---|---|
rnc | string | RNC consultado |
name | string | Razón social del contribuyente |
status | string | Estado fiscal (ACTIVO, SUSPENDIDO, etc.) |
regime | string | Régimen de pago |
economic_activity | string | Actividad económica declarada |
operations_start_date | string | Fecha de inicio de operaciones |
Códigos de error
| HTTP | error_code | Descripción |
|---|---|---|
| 401 | UNAUTHORIZED | API Key ausente o inválida |
| 401 | API_AUTH_RATE_LIMIT_EXCEEDED | Demasiados intentos de autenticación fallidos |
| 403 | SUBSCRIPTION_NOT_USABLE | Sin suscripción activa |
| 403 | MONTHLY_QUOTA_EXCEEDED | Cuota mensual agotada |
| 404 | RNC_NOT_FOUND | RNC no existe en la base de datos |
| 429 | RATE_LIMIT_EXCEEDED | Límite de requests por minuto excedido |
Planes disponibles
Cada plan define tu cuota mensual de consultas y el límite de requests por minuto.