Documentación API B2B

Guía completa para integrar la validación de reportes volumétricos en tu sistema.

Documentación SAT

Para utilizar nuestra API de validación, es necesario cumplir con las reglas establecidas por el SAT para reportes volumétricos, para ello Le recomendamos revisar la documentacion oficial del SAT:

  • Los archivos deben seguir el formato JSON o XML especificado
  • Cumplir con los lineamientos de la Resolución Miscelánea Fiscal vigente
  • Incluir todos los campos obligatorios en cada registro
  • Validar la integridad de los datos antes del envío

En los siguientes enlaces puedes encontraar, guias y documentacion oficial para la generacion de reportes volumétricos:

Autenticación con API Key

Obtener API Key

La autenticación se realiza mediante una API Key única que debes incluir en el header de cada petición:

Headers: x-api-key : <tu-api-key>

Mantén tu API Key segura y no la compartas públicamente. Si sospechas que ha sido comprometida, puedes regenerarla desde tu panel de control.

Endpoints

POST/validate/report

Validación completa de reportes volumétricos. Retorna datos del reporte, estatus, errores y sugerencias de corrección.

Body:
ValueTypeExample
reportFile<archivo JSON | XML | ZIP>
docTypestringJSON | XML | ZIP
Respuesta Correcta (ejemplos):
{
    "success": true,
    "message": "Report validated successfully",
    "data": {
      "id": 1,
      "user_id": null,
      "api_client_id": 1,
      "ip_address": null,
      "file_type": "XML" || "JSON",
      "detail_level": "completa",
      "tokens_used": 0,
      "is_valid": false,
      "errors": {
        "errors": [
          {
            "type": "number.base",
            "message": "Raíz > NumeroPozos: debe ser número entero."
          },
          ...
        ],
        "suggestions": ["","", ...] ||  []
      },
      "updatedAt": "2026-03-03T03:14:41.919Z",
      "createdAt": "2026-03-03T03:14:41.919Z"
    }
  }
{
    "success": true,
    "message": "Report validated successfully",
    "data": {
      "id": 1,
      "user_id": null,
      "api_client_id": 1,
      "ip_address": null,
      "file_type": "XML" || "JSON",
      "detail_level": "completa",
      "tokens_used": 0,
      "is_valid": true,
      "errors": {
        "errors": [],
        "suggestions": ["","", ...] ||  []
      },
      "updatedAt": "2026-03-03T03:14:41.919Z",
      "createdAt": "2026-03-03T03:14:41.919Z"
    }
  }
Respuesta Incorrecta (ejemplos):
{
    "success": false,
    "message": "API key inválida"
    }
{
    "success": false,
    "message": "API key con limite de validaciones alcanzado, 100 de 100"
    }
{
    "success": false,
    "message": "Suscripción expirada el 2026-03-27T21:25:19.680Z"
    }
POST/validate/history

Muestra un historial de registros de validación

Body:
ValueTypeExample
nullnullnull
Respuesta Correcta (ejemplos):
{
    "success": true,
    "message": "Validation history retrieved successfully",
    "data": [
	{
         "id": 1,
        "user_id": null,
        "api_client_id": 1,
        "ip_address": null,
        "file_type": "XML" || "JSON",
        "detail_level": "completa" || "básica",
	"tokens_used": 0,
        "is_valid": true || false,
            "errors": {
                "errors": [{},...] ||  [],
                "suggestions": ["",...] ||  []
            },
            "updatedAt": "2026-03-03T03:14:41.919Z",
            "createdAt": "2026-03-03T03:14:41.919Z"
        },
	...
       ] ||  []
    }
Respuesta Incorrecta (ejemplos):
{
    "success": false,
    "message": "API key inválida"
    }
{
    "success": false,
    "message": "No se proporcionó API key"
    }