Integración con la API del SAT en México
Conecte datos fiscales del SAT a su producto vía CIEC: endpoints clave, respuestas JSON, monitoreo continuo y FAQ técnico — todo en un solo hub.
Recursos para desarrolladores
Cinco recursos, cinco propósitos. Elija el que coincida con dónde está en su integración.
SAT Integration Hub
Empieza aquí: qué expone la API del SAT, cómo CRiskCo abstrae SOAP/CIEC, y FAQ técnico.
Guía de Integración API
Walkthrough end-to-end: autenticación, modelos de integración (Approve / White-label / Webhook) y catálogo completo de endpoints.
Ir a la páginaEjemplos de Código
Snippets copy-paste en Python, Node.js y cURL para cada flujo común.
Ir a la páginaTutoriales
Guías paso a paso para principiantes: primer request, autenticación y monitoreo.
Ir a la páginaAPI Docs
Referencia técnica completa: todos los endpoints, parámetros, esquemas de respuesta y códigos de error.
Abrir docsQué expone la API del SAT
El SAT (Servicio de Administración Tributaria de México) ofrece servicios SOAP autenticados para acceder a datos fiscales del contribuyente. Estos incluyen CFDI emitidos y recibidos, opinión de cumplimiento 32-D, constancia de situación fiscal, regímenes y obligaciones fiscales, lista 69-B (EFOS/EDOS) y validación de RFC. La integración directa requiere manejo de credenciales, parsing de XML/SOAP, gestión de tokens de sesión y manejo de las ventanas de mantenimiento del SAT.
CRiskCo abstrae toda esta complejidad detrás de una API REST/JSON moderna con autenticación apiId/apiKey, webhooks, retries automáticos y monitoreo continuo. Es la forma estándar utilizada por bancos, SOFOMs, fintechs y firmas contables en México para conectar datos del SAT a sus sistemas.
Métodos de autorización del SAT: CIEC y e.firma
El SAT permite dos formas de autorizar el acceso a datos fiscales. Aquí explicamos ambas y cuál utiliza CRiskCo hoy.
CRiskCo opera el onboarding al SAT con CIEC
Hoy aceptamos únicamente la contraseña CIEC del contribuyente. No requerimos ni almacenamos archivos .cer/.key de e.firma. La CIEC es suficiente para todos los servicios que ofrecemos: extracción de CFDI, validación de RFC, opinión de cumplimiento 32-D, constancia fiscal, FinScore y monitoreo continuo.
| Atributo | CIEC | e.firma |
|---|---|---|
| Qué es | Contraseña SAT alfanumérica (8 caracteres) | Certificado digital (.cer + .key + contraseña) |
| Vigencia | Indefinida (hasta que el contribuyente la cambie) | 4 años, renovable |
| Permite firmar documentos | No | Sí (firma electrónica avanzada) |
| Lectura de datos fiscales | Sí (CFDI, RFC, regímenes, opinión 32-D, constancia) | Sí (mismos datos) |
| Soportado por CRiskCo hoy | Sí | No |
Flujo de onboarding (CIEC)
- 1Recolectar RFC, contraseña CIEC, email y aceptación de términos del contribuyente.
- 2Llamar POST /OnboardingSatIntegration con el payload {IsAgreeTerms, DateAgreeTerms, VersionAgreeTerms, Email, User, Password, RefApplicantId}.
- 3Hacer polling cada 5–10 segundos a GET /get-applicants?taxId=RFC&onboardingStatus=true hasta status='Available'.
- 4Llamar los endpoints de datos: /applicantinfo, /GetCompanyTaxStatus, /GetCompanyFiscalDetails, /GetHistoricalFinscore.
- 5Registrar webhook con POST /Subscriptions para recibir actualizaciones automáticas.
Snippets ejecutables en Ejemplos de Código.
Endpoints clave con respuestas JSON
Base URL: https://service.criskco.com/apiservice.svc. Headers obligatorios en cada llamada: apiId, apiKey, Content-Type: application/json.
OnboardingSatIntegration
Onboarding del aplicante con su contraseña CIEC.
POST /apiservice.svc/OnboardingSatIntegration
Headers: apiId, apiKey, Content-Type: application/json
{
"IsAgreeTerms": true,
"DateAgreeTerms": "2026-04-16",
"VersionAgreeTerms": "1",
"Email": "contact@empresa.com",
"User": "GAPXXXXXXXXX",
"Password": "CIEC_PASSWORD",
"RefApplicantId": "loan-app-00482"
}
{
"success": true,
"applicantId": "1000143693",
"RefApplicantId": "loan-app-00482",
"message": "Applicant onboarding initiated"
}
GET /get-applicants
Lista aplicantes y su estado de onboarding (polling después de OnboardingSatIntegration).
GET /apiservice.svc/get-applicants?taxId=GAPXXXXXXXXX&onboardingStatus=true
Query params: refApplicantId · taxId · onboardingStatus · fullResponse
{
"responseDetails": "Data retrieved successfully",
"success": true,
"ApiApplicantData": {
"applicantId": "1000143693",
"taxId": "GAPXXXXXXXXX",
"onboardingStatus": "Available"
}
}
// Use fullResponse=true for the complete dataset (financials, blackLists).
// See full schema at api-docs.criskco.com.
GET /ValidateRFC
Valida un RFC contra el SAT (existencia, estatus y coincidencia de nombre).
GET /apiservice.svc/ValidateRFC?rfc=GAPXXXXXXXXX&name=GAP&postal=06600
{
"Success": true,
"message": "RFC valid and active",
"rfc": "GAPXXXXXXXXX"
}
POST /ValidateRFCBulk
Validación masiva: hasta 5,000 RFCs en una sola llamada (texto plano, un RFC por línea).
POST /apiservice.svc/ValidateRFCBulk
Headers: apiId, apiKey
Content-Type: multipart/form-data
file=@rfcs.txt // one RFC per line, or RFC|Name|Postal pipe-separated
// Returns plain-text results, one line per RFC.
// See API Docs for the exact format and runnable snippets in Code Samples.
GET /GetCompanyTaxStatus
Opinión de Cumplimiento (32-D). Devuelve PayingTax (POSITIVO/NEGATIVO) y obligaciones pendientes.
GET /apiservice.svc/GetCompanyTaxStatus?taxId=GAPXXXXXXXXX
{
"CompanyTaxStatus": [
{
"taxId": "GAPXXXXXXXXX",
"PayingTax": "NEGATIVO",
"RetrievedAt": "2026-04-15T08:30:00Z",
"CompanyObligationsList": [
{ "Obligation": "ISR Mensual", "Month": 2, "Year": 2026 },
{ "Obligation": "IVA Mensual", "Month": 2, "Year": 2026 }
]
}
]
}
GET /GetCompanyFiscalDetails
Constancia de Situación Fiscal: razón social, regímenes, obligaciones y domicilio fiscal.
GET /apiservice.svc/GetCompanyFiscalDetails?taxId=GAPXXXXXXXXX
// Shape varies. See full reference at api-docs.criskco.com.
// Includes: legalName, regimes[], obligations[], fiscalAddress, registrationDate.
GET /GetHistoricalFinscore
Histórico mensual del FinScore (modelo de crédito propietario de CRiskCo).
GET /apiservice.svc/GetHistoricalFinscore?taxId=GAPXXXXXXXXX
// Returns a HistoricalFinscores array with monthly entries
// (Year, Month, FinScore). See full schema at api-docs.criskco.com.
POST /Subscriptions
Registra un webhook para recibir actualizaciones del aplicante (FileType: JSON o JSON_LINK).
POST /apiservice.svc/Subscriptions
Headers: apiId, apiKey, Content-Type: application/json
{ "CallbackUrl": "https://yourdomain.com/webhooks/criskco" }
// CRiskCo issues a GET to CallbackUrl for validation —
// your server must reply HTTP 200 within 2 seconds.
{
"success": true,
"responseDetails": "Subscription 1 created successfully",
"ApiSubscriptionData": [
{
"Active": true,
"CallbackUrl": "https://yourdomain.com/webhooks/criskco",
"ReferrerId": "your_referrer_id",
"SubscriptionId": 1
}
]
}
Catálogo completo de endpoints en la Guía de Integración API y referencia detallada en api-docs.criskco.com.
Preguntas frecuentes
Respuestas técnicas a las preguntas más comunes sobre la integración con la API del SAT.
Listo para integrar la API del SAT
Obtenga credenciales sandbox gratuitas y empiece a probar en minutos. Sin tarjeta de crédito.