Capítulo 1 - "Consulta de Facturación SAT"
Requisitos previos
Antes de comenzar, asegúrate de contar con los siguientes elementos:
- Un RFC válido del contribuyente.
- Credenciales de acceso a la API de Moffin (clientId y clientSecret).
Objetivo de la Misión
Automatizar la consulta de facturación de un RFC a través de la API de Moffin Solutions, obteniendo la información fiscal de manera segura y eficiente.
Introducción
Antes de poder realizar consultas de facturación al SAT, es necesario crear un perfil SAT del contribuyente utilizando su RFC y CIEC. Luego, se podrá obtener la información de facturación correspondiente al periodo solicitado.
Paso 1: Obtener el token de autenticación
Para poder realizar consultas, primero necesitamos autenticarnos en la API de Moffin y obtener un token de acceso.
Llamada a la API:
- Servidor de producción
https://solutions-api.moffin.mx/api/oauth/token
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://solutions-api.moffin.mx/api/oauth/token \
-H 'Content-Type: application/json' \
-d '{
"grantType": "client_credentials",
"clientId": "MOFFIN_cccccccc-aaaa-5555-aa33-11111111111",
"clientSecret": "eeeee111-aa221-2313-1111-a15aa15c15aa"
}'{ "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "tokenType": "Bearer", "accessTokenExpiresAt": 1737686951, "refreshTokenExpiresAt": 1738205351 }
Paso 2: Crear el perfil SAT
- Antes de realizar consultas, debes registrar un perfil utilizando el RFC y la CIEC del contribuyente.
- Guarda el
rfcque recibirás en la respuesta, ya que será necesario para futuras consultas.
Ejemplo de solicitud API:
- Servidor de producción
https://solutions-api.moffin.mx/api/query/sat/profile
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://solutions-api.moffin.mx/api/query/sat/profile \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"rfc": "MOCKRFC123456",
"ciec": "12345678"
}'{ "message": "Perfil creado satisfactoriamente", "rfc": "MOCKRFC123456", "profileId": 27287 }
Ejemplo de respuesta de la API:
{
"message": "Perfil creado satisfactoriamente",
"rfc": "MOCKRFC123456",
"profileId": 27287
}Paso 3: Solicitar la facturación del RFC
- Con el perfil SAT creado, ahora puedes consultar la facturación enviando el RFC y el periodo de consulta.
- Períodos válidos:
1M,3M,6M,1Y,2Y,3Y.
Ejemplo de solicitud API:
- Servidor de producción
https://solutions-api.moffin.mx/api/query/sat/invoice
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://solutions-api.moffin.mx/api/query/sat/invoice \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"rfc": "MOCKRFC123456",
"period": "1Y"
}'{ "_id": "1234567890abcdef12345678", "service": "invoices", "status": "SUCCESS", "authentication": "MOCK_AUTH", "metadata": { "clientType": "PM", "query": { … } }, "query": { "rfc": "ABC123456T89" }, "response": { "periodo": "2025-01", "totalEmitidas": "$100,000.00", "totalRecibidas": "$50,000.00", "totalDiferencia": "$50,000.00", "facturasEmitidas": [ … ], "facturasRecibidas": [ … ], "codigoValidacion": "mock123456789", "message": null }, "state": { "invoices": { … } }, "organizationId": 99, "organizationSlug": "mock-organization", "profileId": 55555, "createdAt": "2025-01-23T10:00:00.000Z", "updatedAt": "2025-01-23T10:05:00.000Z" }
Ejemplo de respuesta inicial de la API:
{
"message": "Solicitud de facturación procesada exitosamente",
"queryId": "6791b216ddf6a1c971a08624"
}Paso 4: Recepción de los datos de facturación vía Webhook
- Una vez que la consulta ha sido procesada, recibirás los resultados en tu webhook configurado.
- La respuesta incluirá detalles de facturas emitidas y recibidas, junto con los montos totales.
Ejemplo de respuesta Webhook:
{
"_id": "6791b216ddf6a1c971a08624",
"service": "invoices",
"status": "SUCCESS",
"authentication": "MOFFIN",
"metadata": {
"clientType": "PM",
"query": {
"rfc": "MOCKRFC123456"
}
},
"query": {
"rfc": "MOCKRFC123456"
},
"response": {
"periodo": "2025-01",
"totalEmitidas": "$100,000.00",
"totalRecibidas": "$50,000.00",
"totalDiferencia": "$50,000.00",
"facturasEmitidas": [
{
"folio": "MOCK1234-5678-ABCD-EFGH",
"rfcEmisor": "MOCKRFC123456",
"razonSocialEmisor": "EMPRESA MOCK",
"monto": "$10,000.00",
"estado": "Vigente"
}
]
},
"createdAt": "2025-01-23T10:00:00.000Z",
"updatedAt": "2025-01-23T10:05:00.000Z"
}Paso 5: Manejo de errores comunes
- La API puede devolver errores en caso de datos incorrectos o perfiles inexistentes.
- Asegúrate de validar las respuestas para manejar posibles errores de manera efectiva.
Ejemplo de error 400:
{
"message": "El perfil no existe. Primero debe crear un perfil con CIEC utilizando el endpoint POST /api/query/sat/profile"
}Ejemplo de error 403:
{
"message": "CIEC y/o RFC inválidos",
"rfc": null,
"profileId": null
}Resultado esperado
Después de completar estos pasos, podrás obtener la facturación de un RFC de manera automatizada y segura, utilizando la API de Moffin Solutions para optimizar la gestión fiscal de tus clientes.