Guía de Integración API

    Onboarding, extracción de datos SAT, reportes financieros y webhooks. Todo lo que necesita para integrar CRiskCo.

    Cómo funciona la API

    Los requisitos de acceso dependen del servicio. Verify permite determinadas validaciones a partir del RFC sin CIEC. Inteligencia Financiera requiere el alta del solicitante y su autorización para acceder a datos del SAT. Consulta la documentación de cada endpoint para conocer los identificadores, credenciales y permisos requeridos.

    Tres conceptos clave:

    • Credit Provider — tu plataforma, llamando a la API usando apiId y apiKey.
    • Applicant — el negocio aplicando a crédito. Autorizan acceso de CRiskCo a sus datos del SAT.
    • Customer — un negocio que es cliente del Aplicante (usado para análisis de contraparte).

    Los tres niveles de la API

    Los endpoints están organizados en los mismos niveles que la plataforma. Puedes empezar en el Nivel 1 con solo el RFC y avanzar cuando necesites profundidad o monitoreo.

    • Nivel 1 — Verify — validaciones a partir del RFC, sin CIEC: resolución RFC ↔ razón social, ValidateRFC (individual y masivo), certificados de e.firma, publicaciones PSM (Secretaría de Economía), registro REPSE (STPS), accionistas (SIGER/RUG) y SatHealthCheck (disponible en cualquier nivel).
    • Nivel 2 — Inteligencia Financiera — onboarding con CIEC y profundidad total: situación fiscal, regímenes y Constancia de Situación Fiscal (requieren un onboarding SAT/CIEC completado), CFDI de cobros y pagos, estados financieros (CFSS), nómina (detalle y resumen mensual) y FinScore.
    • Nivel 3 — Monitoreo y Alertas — suscripciones de callback y payloads asíncronos cuando los datos cambian.

    Consulta cada endpoint por nivel en el Explorador de API.

    Nivel 1 — Endpoints Verify (solo RFC)

    RFC ↔ Razón Social

    Si tu formulario sólo captura el nombre de la empresa, resuelve primero el RFC. Ambas llamadas devuelven razonSocial, rfc y zipcode — el zipcode se puede usar directamente como el parámetro postal de ValidateRFC.

    POST /apiservice.svc/GetRfcByRazonSocial
    { "RazonSocial": "Demo Company" }
    
    POST /apiservice.svc/GetRazonSocialByRfc
    { "Rfc": "XXXX000000X00" }
    
    // Response (both)
    { "razonSocial": "Demo Company", "rfc": "XXXX000000X00", "zipcode": "1234567" }

    Publicaciones PSM (Secretaría de Economía)

    Recupera todas las publicaciones de la empresa en el registro de Publicaciones de Sociedades Mercantiles: estructura accionaria, convocatorias, cambios de capital, fusiones, escisiones, disoluciones, liquidaciones y concurso mercantil, con folio, fecha y enlace al PDF oficial. La variante en lote procesa varios RFC en una sola petición; cada fila falla de forma independiente y se reporta en summary (completedItems, noRecordsItems, errorItems, totalItems) y en rowNumber.

    POST /apiservice.svc/PsmPublications
    { "Rfc": "XXXX000000X00", "TransactionId": "txn-001" }
    
    POST /apiservice.svc/PsmPublicationsBatch
    {
      "BatchId": "batch-2026-001",
      "Items": [
        { "TransactionId": "txn-101", "Rfc": "XXXX000000X00" },
        { "TransactionId": "txn-102", "Rfc": "XXXX000000X01" }
      ]
    }
    
    // Single response (envelope shared with e.firma verification)
    {
      "success": true,
      "requestId": "req-abc123",
      "transactionId": "txn-001",
      "service": "GetPsmPublications",
      "status": "COMPLETED",
      "error": null,
      "result": {
        "companyName": "Demo Company",
        "rfc": "XXXX000000X00",
        "found": true,
        "matchedCount": 1,
        "publications": [
          {
            "publicationType": "Concurso Mercantil",
            "publicationName": "Demo Company",
            "publicationNumber": "1234567",
            "publicationDate": "2024-03-10",
            "pdfUrl": "https://psm.economia.gob.mx/PSM/ServletMain?id_pub=11111112"
          }
        ]
      }
    }

    Registro REPSE (STPS)

    Confirma que un proveedor de servicios u obras especializadas está inscrito en el REPSE y que su registro sigue vigente: folio, fechas de registro y vencimiento, ubicación y actividades registradas. Usa el mismo envelope (success, message, transactionId, timestamp, status, error, result).

    POST /apiservice.svc/RepseRegistration
    { "Rfc": "XXXX000000X00", "TransactionId": "txn-001" }
    
    // Response
    {
      "success": true,
      "status": "COMPLETED",
      "result": {
        "rfc": "XXXX000000X00",
        "registration": {
          "repseFolio": 111111,
          "companyName": "Demo Company",
          "state": "Tabasco",
          "registrationDate": "2025-05-14 16:14:15",
          "registrationExpiryDate": "2028-05-14 00:00:00"
        },
        "activities": [
          { "description": "Servicio de mudanzas", "activityFolio": "f6eaf73f-..." }
        ]
      }
    }

    Certificados de e.firma

    Verifica los certificados de e.firma de un RFC de forma síncrona, asíncrona (webhook) o en lote de hasta 100 elementos. Deja CertificateSerialNumber vacío para consultar todos los certificados del RFC.

    POST /apiservice.svc/VerifyEFirmaCertificates
    { "TransactionId": "", "Rfc": "XXXX000000X00", "CertificateSerialNumber": "" }
    
    POST /apiservice.svc/VerifyEFirmaCertificatesWebhook
    { "TransactionId": "", "Rfc": "XXXX000000X00", "CertificateSerialNumber": "", "WebhookSubscriptionId": 1 }
    
    POST /apiservice.svc/VerifyEFirmaCertificatesBatchWebhook
    {
      "WebhookSubscriptionId": 1,
      "Items": [
        { "TransactionId": "", "Rfc": "XXXX000000X00", "CertificateSerialNumber": "" },
        { "TransactionId": "", "Rfc": "XXXX11111X11", "CertificateSerialNumber": "" }
      ]
    }

    Accionistas (SIGER/RUG)

    Flujo de dos pasos: solicita los accionistas y luego los documentos del registro usando el uuid devuelto en el callback.

    GET /apiservice.svc/siger-webhook?taxId=XXXX000000X00&subscriptionId=1&querySocios=true
    
    GET /apiservice.svc/siger-pdf-webhook?taxId=XXXX000000X00&subscriptionId=1&uuid=YOUR_UUID

    Autenticación

    Todas las solicitudes requieren estos headers en cada llamada:

    apiId: YOUR_API_ID
    apiKey: YOUR_API_KEY
    Content-Type: application/json

    apiId y apiKey son emitidos por CRiskCo al registrarte. Las llaves de prueba retornan datos sandbox y no generan costo. No hay cambio de entorno — usa la llave correcta para el modo correcto.

    Obtén tus credenciales de sandbox: Regístrate en api-docs.criskco.com → recibe apiId + apiKey por email.

    Modelos de Integración

    CRiskCo soporta tres modelos de integración. Elige según cuánto control necesites sobre la experiencia de onboarding.

    ModeloOnboarding gestionado porUso APIMejor para
    Approve APIPartner (tu UI)Completo — registro, obtención de datosBancos y fintechs que quieren control total de UX
    White-LabelCRiskCo (página hosted)Mínimo — estado + obtención de datosDespliegue rápido, mínimo trabajo frontend
    WebhookBasado en eventosGestión de /SubscriptionsAutomatización en tiempo real, underwriting automatizado

    Modelo A — Approve API (Control Total)

    Recoges las credenciales RFC y CIEC del aplicante en tu propia UI y las envías a CRiskCo vía API.

    Flujo:

    1. Tu app recopila RFC + CIEC del aplicante.
    2. POST /OnboardingSatIntegration para registrar al aplicante y conectar al SAT.
    3. GET /get-applicants para verificar onboardingStatus: "Available".
    4. POST /applicantinfo u otros endpoints para obtener datos.

    Paso 1 — Onboarding vía API

    POST https://service.criskco.com/apiservice.svc/OnboardingSatIntegration
    Headers: apiId, apiKey, Content-Type: application/json
    
    {
      "IsAgreeTerms": true,
      "DateAgreeTerms": "2026-03-24",
      "VersionAgreeTerms": "1",
      "Email": "contact@empresa.com",
      "User": "GAPXXXXXXXXX",
      "Password": "CIEC_PASSWORD",
      "RefApplicantId": "your-internal-ref-123"
    }
    CampoRequeridoDescripción
    IsAgreeTerms✅El aplicante aceptó los términos de CRiskCo
    DateAgreeTerms✅Fecha de aceptación (ISO 8601)
    VersionAgreeTerms✅Versión de términos
    Email✅Email del aplicante
    User✅RFC del aplicante
    Password✅CIEC del aplicante (contraseña SAT)
    RefApplicantId❌Tu referencia interna

    Modelo B — Fintech Solution (Página Hosted)

    Rediriges al aplicante a la página de onboarding de CRiskCo. CRiskCo maneja la conexión y validación SAT. Obtienes datos vía API una vez que el estado es Available.

    Opción 1 — Página de onboarding general (sin configuración white-label)

    Dirige a tus aplicantes a la página estándar de onboarding de CRiskCo y pídeles que ingresen tu código de referencia registrado cuando se les solicite:

    https://app.criskco.com/onboarding/#!/app/referrer-es

    El aplicante ingresa tu código de referencia durante el flujo. CRiskCo asocia el onboarding completado con ese código, que puedes usar para consultar el estado.

    Opción 2 — Página de onboarding white-label (requiere configuración con CRiskCo)

    Si CRiskCo ha provisionado una instancia white-label para tu marca, tu URL dedicada será:

    https://yourbrand.criskco.com/onboarding/#!/app/

    Reemplaza yourbrand con el subdominio asignado por CRiskCo.

    En ambos casos, una vez completado el onboarding, consulta el aplicante usando tu código de referencia:

    GET /get-applicants?refApplicantId=YOUR_SUBSCRIPTION_ID

    No requiere desarrollo frontend. CRiskCo gestiona la integración SAT y el manejo de credenciales.

    Modelo C — Webhook (Basado en Eventos)

    En lugar de hacer polling por estado, CRiskCo envía actualizaciones a tu servidor en el momento en que están listas. Este es el modelo recomendado para plataformas de underwriting automatizado.

    POST https://service.criskco.com/apiservice.svc/Subscriptions
    Headers: apiId, apiKey, Content-Type: application/json
    
    { "CallbackUrl": "https://yourdomain.com/webhooks/criskco" }

    Validación: Después de recibir tu solicitud de suscripción, CRiskCo envía inmediatamente un GET a tu CallbackUrl. Tu servidor debe responder con HTTP 200 OK en 2 segundos.

    Respuesta exitosa de registro:

    {
      "success": true,
      "responseDetails": "Subscription 1 created successfully",
      "ApiSubscriptionData": [
    	{
    		"Active": true,
    		"CallbackUrl": "https://yourdomain.com/path/webhook",
    		"ReferrerId": "your_referrer_id",
    		"SubscriptionId": 1
        }
      ]
    }

    Payload del Webhook — JSON Inline

    Cuando fileResponse es false, CRiskCo envía el payload directamente en el cuerpo del webhook:

    {
      "SubscriptionId": 1,
      "ReferrerId": "criskco_partner",
      "WebhookUrl": "https://yourdomain.com/path/webhook",
      "ApiServiceName": "GetApplicants",
      "FileType": "JSON",
      "DownloadUrlList": null,
      "applicantId": "123456",
      "refApplicantId": "abc-def",
      "APIResponse": "{ "applicantId": "123456", "onboardingStatus": "Available", ... }"
    }

    Payload del Webhook — Link Descargable

    Cuando fileResponse es true, CRiskCo almacena el JSON y envía una URL de descarga en su lugar:

    {
      "SubscriptionId": 1,
      "ReferrerId": "criskco_partner",
      "WebhookUrl": "https://yourdomain.com/path/webhook",
      "ApiServiceName": "GetApplicants",
      "FileType": "JSON_LINK",
      "DownloadUrlList": [
        "https://criskco-files.s3.amazonaws.com/..."
      ],
      "applicantId": "123456",
      "refApplicantId": "abc-def",
      "APIResponse": null
    }

    La forma del payload es idéntica en ambos modos. FileType te dice si parsear APIResponse directamente o descargar de DownloadUrlList.

    Gestionar Suscripciones

    Listar todas las suscripciones activas:

    GET https://service.criskco.com/apiservice.svc/Subscriptions
    Headers: apiId, apiKey

    Eliminar una suscripción:

    POST https://service.criskco.com/apiservice.svc/Subscriptions?id=YOUR_SUBSCRIPTION_ID
    Headers: apiId, apiKey

    Obtener Aplicantes y Verificar Estado

    Sin importar qué modelo de integración uses, obtén el applicantId aquí. Es requerido para todos los endpoints de datos financieros.

    GET https://service.criskco.com/apiservice.svc/get-applicants
    Headers: apiId, apiKey
    ParámetroDescripción
    taxIdFiltrar por RFC
    refApplicantIdFiltrar por tu referencia interna
    onboardingStatusIncluir estado de onboarding (true/false)
    fullResponseDataset completo incluyendo financieros y blacklists (true/false). Usar solo cuando sea necesario — agrega latencia.

    Respuesta de Ejemplo

    {
      "responseDetails": "Data retrieved successfully",
      "success": true,
      "ApiApplicantData": {
        "applicantId": "1000143693",
        "taxId": "GAPXXXXXXXXX",
        "dateConnected": "2026-03-24T09:15:00Z",
        "onboardingStatus": "Available",
        "financials": { ... },
        "blackLists": ["SAT", "OFAC"]
      }
    }

    Estados de Onboarding

    EstadoSignificado
    AvailableConectado y datos procesados — listo para consultar
    ProcessingConectado pero datos aún en procesamiento
    Not ConnectedEl aplicante aún no ha completado el onboarding

    blackLists: Retornado cuando fullResponse=true. Lista las fuentes de blacklist donde el aplicante tiene una bandera (e.g. "SAT" = EFOS/EDOS, "OFAC" = sanciones de EE.UU.).

    Validación de RFC

    RFC Individual

    GET /ValidateRFC?rfc=GAPXXXXXXXXX&name=GAP&postal=12345
    
    Params: rfc (required) · name (optional) · postal (optional)
    
    Response:
    {
      "Success": true,
      "ValidParameters": [
        { "Property": "ValidRFC", "Valid": true },
        { "Property": "ValidName", "Valid": true },
        { "Property": "ValidPostal", "Valid": true }
      ],
      "message": "RFC válido, y susceptible de recibir facturas"
    }

    Validación Masiva (hasta 5,000)

    Envía un archivo de texto con un RFC por línea, o RFC|Nombre|CP separados por pipe.

    POST /ValidateRFCBulk
    Body: plain-text file
    
    RFC only:
    ABCYYYYYYYYYY
    DEFZZZZZZZZZZ
    
    RFC + Name + Postal (pipe-separated):
    ABCYYYYYYYYYY|EMPRESA ABC|98765
    DEFZZZZZZZZZZ|EMPRESA DEF|12345

    Endpoints de Cumplimiento SAT

    Estos endpoints consultan por taxId (RFC) — no se requiere applicantId.

    Estado Fiscal (Opinión de Cumplimiento)

    GET /GetCompanyTaxStatus?taxId=GAPXXXXXXXXX
    
    Returns POSITIVO or NEGATIVO plus outstanding obligations (populated only when NEGATIVO).
    CampoTipoDescripción
    RFCstringTax ID
    PayingTaxstring"POSITIVO" or "NEGATIVO"
    CompanyObligationsListarrayObligaciones pendientes si NEGATIVO
    ReportUpdateDatedateFecha del reporte

    Regímenes Fiscales

    GET /GetCompanyTaxRegimes?taxId=GAPXXXXXXXXX
    
    Returns: RFC, Regime, ReportUpdateDate, PayingTax

    Constancia De Fiscal

    GET /GetCompanyFiscalDetails?taxId=GAPXXXXXXXXX
    
    Returns: RFC, Name, FirstSurname, SecondSurname, CompanyName, CapitalRegime,
    CommercialName, OperationStartDate, FiscalStatus, LastStatusChangeDate,
    FiscalRegisteredAddress

    FinScore Histórico

    GET /GetHistoricalFinscore?taxId=GAPXXXXXXXXX
    
    {
      "HistoricalFinscores": [
        { "Year": 2025, "Month": 10, "FinScore": 68.2 },
        { "Year": 2025, "Month": 11, "FinScore": 70.4 },
        { "Year": 2026, "Month": 1, "FinScore": 74.0 }
      ]
    }

    Datos Financieros del Aplicante

    Todos los endpoints financieros son POST con { "applicantId": "..." }. Parámetros opcionales fromDate/toDate filtran por fecha (ISO 8601).

    Información del Aplicante (Resumen)

    POST /applicantinfo
    
    { "applicantId": "1000143693" }
    
    Returns verified business info, blacklist status, and summarized financials.

    Clientes y Transacciones AR

    MethodEndpointDescripción
    POST/customersLista de clientes + financieros
    POST/ar-transactions/invoicesFacturas de venta
    POST/ar-transactions/invoices-itemsRenglones (items) de cada factura AR
    POST/ar-transactions/invoices-by-uuidFacturas AR por UUID (header + items)
    POST/ar-transactions/paymentsPagos recibidos
    POST/ar-transactions/creditmemosNotas de crédito emitidas
    POST/grouping/customersTodos los datos AR en una llamada

    Proveedores y Transacciones AP

    MethodEndpointDescripción
    POST/suppliersLista de proveedores + financieros
    POST/ap-transactions/invoicesFacturas de proveedores
    POST/ap-transactions/invoices-itemsRenglones (items) de cada factura AP
    POST/ap-transactions/invoices-by-uuidFacturas AP por UUID (header + items)
    POST/ap-transactions/paymentsPagos a proveedores
    POST/ap-transactions/creditmemosNotas de crédito de proveedores
    POST/ap-transactions/expensesGastos no facturados
    POST/grouping/suppliersTodos los datos AP en una llamada

    Reportes Financieros

    Reportes raw — como aparecen en el ERP del aplicante:

    POST /financialreports/rowdata/balancesheet
    POST /financialreports/rowdata/profitandloss
    POST /financialreports/rowdata/bankstatement
    
    { "applicantId": "1000143693" }

    Reportes estandarizados — normalizados por CRiskCo:

    POST /financialreports/standard/balancesheet
    POST /financialreports/standard/profitandloss
    
    { "applicantId": "1000143693", "financialYear": "Current" }
    
    financialYear options:
      Current · FinancialYearEnd · PreviousFinancialYearEnd ·
      SecondPreviousFinancialYearEnd · ThirdPreviousFinancialYearEnd

    Estado financiero consolidado directo del SAT (declaraciones anuales presentadas):

    GET /financialStatement?taxId=GAPXXXXXXXXX
    
    // Returns annual income, expenses, assets and liabilities as reported to SAT.
    // Useful as a third-party-validated cross-check against ERP-sourced reports.

    Todos los Financieros en Una Llamada

    POST /grouping/applicant-financials
    
    { "applicantId": "1000143693", "csvInJson": false }
    
    Returns raw data, standardized reports, documents, analytics, and summaries.
    Recommended for initial data pulls.

    Documentos

    POST /Documents
    
    { "applicantId": "1000143693", "csvInJson": false }
    report_typeDescripción
    SAT_FINANCIAL_DECLARATIONDeclaraciones anuales presentadas al SAT
    SAT_CONTRIBUYENTEOpinión de Contribuyente del SAT
    SAT_ANALYTICSReporte resumido de empresa por CRiskCo
    APPLICANT_FILESArchivos subidos durante el onboarding
    MONTHLY_GENERATED_REPORTReporte mensual por CRiskCo

    Cada documento incluye un link de descarga HTTP directo.

    Endpoints SAT Adicionales

    Estructura de Propiedad

    GET /GetCompanyStructure?taxId=GAPXXXXXXXXX
    
    Returns: owner names, RFC, country, participation % (with/without vote),
    tenure periods, loans, capital movements.

    Detalles de Nómina

    GET /GetPayrollDetails?taxId=GAPXXXXXXXXX

    Resumen de Nómina (mensual)

    Una fila por mes con plantilla, altas, bajas, nómina total y razones. payrollToRevenueRatio (0–1) muestra qué parte de los ingresos del mes se va en nómina; revenuePerEmployee ayuda a medir productividad.

    GET /GetPayrollOverview?taxId=GAPXXXXXXXXX
    
    {
      "Data": [
        {
          "year": 2026, "month": 4,
          "employeeCount": 52, "newHires": 1, "departures": 0,
          "totalPayroll": 1846000.00, "avgSalaryPerEmployee": 35500.00,
          "payrollToRevenueRatio": 0.300847, "revenuePerEmployee": 118000.00
        }
      ],
      "ErrorCode": null, "ErrorMessage": null, "Message": null, "Success": true
    }

    Detalles de Empleados

    GET /GetEmployeesDetails?taxId=GAPXXXXXXXXX
    
    Returns: name, RFC, CURP, position, start date, total work months,
    payment frequency, days paid, gross salary.

    Antecedentes Judiciales

    GET /GetInformationReport?taxId=GAPXXXXXXXXX
    
    Returns AntecedentesJudiciales grouped by state, with case numbers,
    dates, and court references.

    Salud del SAT

    GET /SatHealthCheck?serviceName=Declarations&systemType=SAT&unitType=Hours&unitAmount=24
    
    Returns avg/max response times, failure rates, and HTTP status codes per check.
    Use before making SAT-dependent calls to diagnose upstream issues.

    Gestión del Ciclo de Vida

    Actualizar Estado del Aplicante

    POST /applicant-status
    
    { "applicantId": "1000143693", "status": "Approved" }
    
    Statuses: New | UnderEvaluation | Approved | Denied | CancelByApplicant | CompanyDefaulted | Completed

    Los estados de desconexión detienen la sincronización de datos SAT. Volver a un estado conectado dispara un intento de reconexión.

    Disparar Actualización de Monitoreo

    POST /RequestMonitoring
    
    { "applicantId": "1000143693", "Source": "API" }
    
    Forces a fresh SAT data pull for an applicant already in your system.

    Mejores Prácticas

    • Siempre usa HTTPS. Nunca expongas tu apiKey del lado del cliente.
    • Valida las llamadas webhook entrantes para prevenir spoofing — verifica que las solicitudes provengan de las IPs de CRiskCo.
    • Implementa lógica de reintento con backoff exponencial.
    • Almacena applicantId localmente en tu LOS — lo usarás en cada llamada subsecuente.
    • Usa fullResponse=true solo cuando sea necesario — agrega latencia.
    • Verifica onboardingStatus Available antes de consultar endpoints financieros — consultar mientras está Processing retorna datos incompletos.
    • Para pipelines automatizados, usa el modelo Webhook en lugar de polling.

    Referencia Completa de Endpoints

    MethodEndpointDescription
    GET/get-applicantsListar aplicantes, obtener applicantId y estado
    POST/OnboardingSatIntegrationOnboarding de aplicante (Modelo A)
    POST/applicantinfoDatos financieros y de negocio
    GET/ValidateRFCValidar un RFC contra el SAT
    POST/ValidateRFCBulkValidar hasta 5,000 RFCs
    GET/GetCompanyTaxStatusOpinión de Cumplimiento
    GET/GetCompanyTaxRegimesRegímenes fiscales
    GET/GetCompanyFiscalDetailsConstancia De Fiscal
    GET/GetHistoricalFinscoreHistorial de FinScore
    GET/GetCompanyStructureEstructura de propiedad
    GET/GetPayrollDetailsRegistros de nómina
    GET/GetPayrollOverviewResumen mensual de nómina
    POST/RepseRegistrationRegistro REPSE (STPS)
    GET/GetEmployeesDetailsLista de empleados
    GET/GetInformationReportAntecedentes judiciales
    GET/SatHealthCheckDisponibilidad y latencia del SAT
    POST/GET/SubscriptionsGestionar webhooks
    POST/customersLista de clientes + financieros
    POST/ar-transactions/invoicesFacturas de venta (AR)
    POST/ar-transactions/invoices-itemsRenglones (items) de facturas AR
    POST/ar-transactions/invoices-by-uuidFacturas AR por UUID (header + items)
    POST/ar-transactions/paymentsPagos recibidos (AR)
    POST/ar-transactions/creditmemosNotas de crédito emitidas (AR)
    POST/grouping/customersTodos los datos AR en una llamada
    POST/suppliersLista de proveedores + financieros
    POST/ap-transactions/invoicesFacturas de proveedores (AP)
    POST/ap-transactions/invoices-itemsRenglones (items) de facturas AP
    POST/ap-transactions/invoices-by-uuidFacturas AP por UUID (header + items)
    POST/ap-transactions/paymentsPagos a proveedores (AP)
    POST/ap-transactions/creditmemosNotas de crédito de proveedores (AP)
    POST/ap-transactions/expensesGastos no facturados
    POST/grouping/suppliersTodos los datos AP en una llamada
    POST/financialreports/rowdata/balancesheetBalance general (raw)
    POST/financialreports/rowdata/profitandlossEstado de resultados (raw)
    POST/financialreports/rowdata/bankstatementEstado de cuenta bancario
    POST/financialreports/standard/balancesheetBalance general estandarizado
    POST/financialreports/standard/profitandlossEstado de resultados estandarizado
    GET/financialStatementEstado financiero consolidado desde el SAT
    POST/DocumentsDocumentos (declaraciones, reportes)
    POST/grouping/applicant-financialsTodos los datos financieros en una llamada
    POST/applicant-statusActualizar estado del aplicante
    POST/RequestMonitoringForzar actualización de datos SAT (alias: Monitoring Company)