← Catálogo
SAT1 tokenPOST

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

POSThttps://api.datosnonstop.com/v1/sat/opinion-cumplimiento

Parámetros

json
{
  "rfc": "AAAA010123AB1",
  "ciec": "12345678"
}
ParámetroTipoRequeridoDescripción
rfcstringRFC del contribuyente (12 caracteres para personas morales, 13 para personas físicas).
ciecstringContraseñ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
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)

JSON
202 Accepted
{
  "id": "64821d23824123766beac2be",
  "status": "pending",
  "rfc": "AAAA010123AB1"
}

Opción 1 — Consultar por id (polling)

GEThttps://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:

json
{
  "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

JSON
200 OK
{
  "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

JSON
400 Bad Request
[
  {
    "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

CampoTipoDescripción
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

CampoTipoDescripción
idstringIdentificador de la consulta. Úsalo para consultar el resultado por polling o para correlacionar el callback.
statusstringEstado de la consulta. Ver catálogo Status.
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.

ValorDescripción
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

POSThttps://sandbox.api.datosnonstop.com/v1/sat/opinion-cumplimiento

Para llamar al sandbox necesitas una API key de sandbox que puedes generar en el dashboard.

curl
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.

CasoCamporfc
Caso exitoso — EncontradorfcAAAA010123AB1
Caso exitoso — No encontradorfcABD131110A27
Sin tokensrfcCCCC010101C03
Error internorfcDDDD010101D04
Unavailable servicerfcEEEE010101E05