Opinión de Cumplimiento
Consulta la Opinión de Cumplimiento de obligaciones fiscales (artículo 32-D) de una persona física o moral ante el SAT, a partir del RFC y la CIEC. Devuelve el sentido de la opinión (Positiva/Negativa), el folio, los créditos fiscales y las obligaciones pendientes. Es una consulta asíncrona.
Endpoint
https://api.datosnonstop.com/v1/sat/opinion-cumplimientoParámetros
{
"rfc": "AAAA010123AB1",
"ciec": "12345678"
}rfcstringSíRFC del contribuyente (12 caracteres para personas morales, 13 para personas físicas).ciecstringSíContraseña CIEC del contribuyente registrada ante el SAT.Ejemplo rápido
Coloca tu API key en el header x-api-key y agrega el header Content-Type: application/json para enviar el body como JSON.
curl -X POST https://api.datosnonstop.com/v1/sat/opinion-cumplimiento \
-H "x-api-key: tu_api_key" \
-H "Content-Type: application/json" \
-d '{"rfc":"AAAA010123AB1","ciec":"12345678"}'Tip
¿Sabías que al pegar un cURL en Postman te crea automáticamente la llamada con todos los elementos?
Token
Cada consulta consume tokens. Lo que no uses, lo conservas — tu saldo se acumula sin fecha de vencimiento ni reinicios. Puedes consultarlo en cualquier momento desde el dashboard o directamente en el header de cada respuesta x-tokens-remaining.
Consulta asíncrona
Esta consulta es asíncrona: el POST no devuelve el resultado de inmediato, sino un acuse 202 Accepted con un id y status: "pending". El resultado final llega después; puedes obtenerlo de dos formas.
Respuesta inicial (202)
{
"id": "64821d23824123766beac2be",
"status": "pending",
"rfc": "AAAA010123AB1"
}Opción 1 — Consultar por id (polling)
https://api.datosnonstop.com/v1/sat/opinion-cumplimiento/{id}Consulta este endpoint con el id que te devolvió el POST. Mientras el resultado no está listo responde status: "pending"; cuando termina, devuelve el resultado final (ver Respuesta).
Opción 2 — Callback
Envía el header x-callback-url en tu POST con la URL donde quieres recibir el resultado (opcionalmente x-callback-token para verificar el origen del aviso). Cuando el resultado esté listo, Datos Non Stop hará un POST a esa URL con el resultado final:
{
"id": "64821d23824123766beac2be",
"status": "found",
"rfc": "AAAA010123AB1",
"folio": "24AA00000000000000",
"nombre": "NOMBRE DE ALGUIEN",
"resultado": "Positivo",
"respuesta": "La opinión del cumplimiento de obligaciones fiscales es positiva.",
"creditosFiscales": [],
"obligaciones": []
}Resultado final
{
"id": "64821d23824123766beac2be",
"status": "found",
"rfc": "AAAA010123AB1",
"folio": "24AA00000000000000",
"nombre": "NOMBRE DE ALGUIEN",
"resultado": "Positivo",
"respuesta": "La opinión del cumplimiento de obligaciones fiscales es positiva.",
"creditosFiscales": [],
"obligaciones": [
{
"obligacion": "Declaración anual de ISR. Personas Físicas.",
"periodos": [
{ "tipo": "Anual", "anio": "2024", "mes": "" }
]
}
]
}Respuestas en error
[
{
"type": "format",
"message": "El formato del campo es inválido",
"field": "rfc"
},
{
"type": "required",
"message": "El campo es requerido",
"field": "ciec"
}
]Campos
Campos de entrada
rfcstringRFC del contribuyente. 12 caracteres para personas morales, 13 para personas físicas.ciecstringContraseña CIEC del contribuyente registrada ante el SAT.Campos de respuesta
idstringIdentificador de la consulta. Úsalo para consultar el resultado por polling o para correlacionar el callback.rfcstringRFC consultado.foliostringFolio de la opinión de cumplimiento emitida por el SAT. Solo cuando status es found.nombrestringNombre o razón social del contribuyente. Solo cuando status es found.resultadostringSentido de la opinión (Positivo / Negativo). Solo cuando status es found.respuestastringTexto descriptivo de la opinión emitida por el SAT. Solo cuando status es found.creditosFiscalesarrayCréditos fiscales pendientes del contribuyente. Vacío cuando no hay. Solo cuando status es found.obligacionesarrayObligaciones fiscales pendientes. Solo cuando status es found.obligaciones[].obligacionstringDescripción de la obligación pendiente.obligaciones[].periodosarrayPeriodos pendientes de la obligación.obligaciones[].periodos[].tipostringTipo de periodo (Anual, Mensual, etc.).obligaciones[].periodos[].aniostringAño del periodo pendiente.obligaciones[].periodos[].messtringMes del periodo pendiente. Vacío para periodos anuales.messagestringDetalle del motivo cuando status es not_found. Solo en respuestas not_found.Catálogos
Tablas de referencia para los valores de los campos enumerados en la sección anterior.
Status
Valores posibles del campo status.
pendingLa consulta se recibió y está en proceso. Vuelve a consultar por id o espera el callback.foundSe obtuvo la opinión de cumplimiento. La respuesta incluye folio, resultado, respuesta, créditos fiscales y obligaciones.not_foundNo se pudo obtener la opinión con los datos enviados. La respuesta incluye el campo message.Sandbox
Endpoint
https://sandbox.api.datosnonstop.com/v1/sat/opinion-cumplimientoPara llamar al sandbox necesitas una API key de sandbox que puedes generar en el dashboard.
curl -X POST https://sandbox.api.datosnonstop.com/v1/sat/opinion-cumplimiento \
-H "x-api-key: tu_api_key_sandbox" \
-H "Content-Type: application/json" \
-d '{"rfc":"AAAA010123AB1","ciec":"12345678"}'Casos de prueba
Si envías un valor que no esté en la lista, el sandbox devuelve automáticamente una respuesta exitosa con la misma estructura que la de AAAA010123AB1.
rfcAAAA010123AB1rfcABD131110A27rfcCCCC010101C03rfcDDDD010101D04rfcEEEE010101E05