API - Alfratax (2.0.0)

Download OpenAPI specification:

La API de Alfratax ofrece dos entornos diseñados para cubrir las necesidades de pruebas y operaciones en vivo. A continuación, se describen sus características y consideraciones importantes:

Entorno de Sandbox

Este entorno está diseñado para pruebas y desarrollo. Permite simular interacciones con la API sin afectar datos reales ni generar transacciones permanentes.

Características:

  • Ideal para probar integraciones y validar flujos de trabajo.
  • Los datos utilizados son ficticios y no impactan en el entorno de producción.
  • Algunas funcionalidades no están disponibles en este entorno.

Restricciones:

  • Puede haber límites de uso más estrictos (por ejemplo, en el número de solicitudes permitidas por minuto).
  • Si requieres más timbres de prueba, debes solicitarlos a soporte.
  • Los datos de pruebas se eliminan cada 3 meses.

Para realizar pruebas de integración con la API de Alfratax, se puede utilizar el entorno de pruebas. Para ello, se debe utilizar la siguiente URL (URL_BASE):

Entorno de Producción

Este es el entorno en el que las transacciones y datos tienen efecto real. Es utilizado para operaciones en vivo una vez que la integración ha sido completamente validada.

Nota: Realiza pruebas exhaustivas en el entorno de sandbox y ten en cuenta sus restricciones antes de realizar la migración al entorno de producción. Utiliza las credenciales específicas para cada entorno para garantizar la seguridad y el correcto funcionamiento de tu aplicación.

Para timbrar facturas en el entorno de producción y realizar descargas masivas, se debe utilizar la siguiente URL (URL_BASE):

Autenticación

El token lo puedes obtener de la siguiente manera (siempre y cuando tengas el paquete de API)
1.- Entra a la página de Alfratax (ya sea en sandbox o producción según sea tu caso)
2.- Inicia sesión con tu usuario y contraseña
3.- En el menú superior, selecciona el menú de "Configuración"
4.- Selecciona la opción de api key y genera una nueva api key o utiliza la que ya tienes (debes tener contratado el paquete de API para ver esta opción)
Generar API Key

  • Para generar una nueva api key, selecciona la opción de "Crear nueva api key"


  • Puedes colocar un nombre a la api key o dejar el que se genera por defecto, además puedes seleccionar el tiempo de expiración de la api key, donde el mínimo es de 30 días.

Notas de remisión (sin valor fiscal)

Crear nota de remisión

Con este servicio podrás crear una nota de remisión sin efectos fiscales.

Request Body schema: application/json
required
issurerId
required
string

ID único del contribuyente.

required
object

Datos de la nota de remisión.

Request samples

Content type
application/json
{
  • "issurerId": "1_Z1nmlnn3DkO_11VOora6JRy",
  • "invoice": {
    }
}

Timbrado de Facturas

Con este servicio podrás timbrar un CFDI, para ello es necesario enviar los datos del CFDI en formato JSON.

Crear pre factura

Con este servicio podrás crear una pre-factura (borrador), la cual posteriormente podrás timbrar.
Actualmente este servicio solo esta disponible para un CFDI de tipo Ingreso

Request Body schema: application/json
required
issurerId
required
string

ID único del contribuyente.

required
object

Datos de la factura.

Responses

Request samples

Content type
application/json
{
  • "issurerId": "1_Z1nmlnn3DkO_11VOora6JRy",
  • "invoice": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": [
    ],
  • "success": true
}

Timbrar factura

Con este servicio podrás timbrar una factura.

⚠️ IMPORTANTE: Para timbrar una pre factura, debes enviar el motor_id que se generó al crear la prefactura.

Request Body schema: application/json
required
issurerId
required
string

ID único del contribuyente.

required
object

Datos de la factura.

Responses

Request samples

Content type
application/json
{
  • "issurerId": "1_Z1nmlnn3DkO_11VOora6JRy",
  • "invoice": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": [
    ],
  • "success": true
}

Timbrar nota de crédito

Con este servicio podrás timbrar una nota de crédito.

Request Body schema: application/json
required
issurerId
required
string

ID único del contribuyente.

required
object

Datos de la factura.

Responses

Request samples

Content type
application/json
{
  • "issurerId": "1_Z1nmlnn3DkO_11VOora6JRy",
  • "invoice": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": [
    ],
  • "success": true
}

Timbrar complemento de pago

Con este servicio podrás timbrar un complemento de pago.

Request Body schema: application/json
required
issurerId
required
string

ID único del contribuyente.

required
object

Datos de la factura.

Responses

Request samples

Content type
application/json
{
  • "issurerId": "1_Z1nmlnn3DkO_11VOora6JRy",
  • "invoice": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": [
    ],
  • "success": true
}

Timbrar factura público en general

Con este servicio podrás timbrar una factura para el público en general.

Request Body schema: application/json
required
issurerId
required
string

ID único del contribuyente.

required
object

Datos de la factura.

Responses

Request samples

Content type
application/json
{
  • "issurerId": "1_Z1nmlnn3DkO_11VOora6JRy",
  • "invoice": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": [
    ],
  • "success": true
}

Cancelación de Facturas

Endpoints para la cancelación de cualquier tipo de factura emitida.

Cancelar una factura

Cancelar una factura emitida

path Parameters
invoice_id
required
string

Id de la factura

motive
required
string
Enum: "01" "02" "03" "04"
Example: 02

Motivo de cancelación

query Parameters
uuid
string
Example: uuid=12345678-1234-1234-1234-123456789012

UUID de la factura a cancelar

Responses

Response samples

Content type
application/json
{
  • "data": [ ],
  • "message": [
    ],
  • "success": true
}

Información de tus CFDI's

Endpoints para la consulta de información de tus CFDI's

Obtener Facturas

Con este método puedes obtener todas las facturas emitidas, de cualquier tipo, así como las notas de remisión.
Los resultados se devuelven paginados; puedes especificar el número de registros por página y la página que deseas consultar, con un máximo de 100 registros por página.

query Parameters
per_page
integer <= 100
Default: 10
Example: per_page=10

Este parámetro es el número de registros que deseas obtener por página (máximo 100).

page
integer
Default: 1
Example: page=1

Este parámetro es el número de página que deseas obtener.

object

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": [ ],
  • "success": true
}

Buscar CFDI's de tipo PPD

Con este método puedes buscar CFDI's PPD.

path Parameters
issuer_rfc
required
string
Example: XXXXXXXXXXXXX

RFC del emisor.

query Parameters
search
string
Example: search=17

Buscamos por uuid o por folio.

page
integer
Example: page=1

Número de la página.

per_page
integer
Example: per_page=10

Número de registros por página (máximo 100).

Responses

Response samples

Content type
application/json
{
  • "current_page": 1,
  • "data": [
    ],
  • "from": 1,
  • "last_page": 1,
  • "links": [
    ],
  • "next_page_url": null,
  • "per_page": 10,
  • "prev_page_url": null,
  • "to": 1,
  • "total": 1
}

Obtener factura

Con este método puedes obtener todos los datos de una factura específica.

query Parameters
motor_id
required
any

ID de la factura que deseas obtener.

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": [ ],
  • "success": true
}

Descargar PDF

Con este método puedes descargar el PDF de una factura o nota de remisión específica.

query Parameters
motor_id
required
any

ID de la factura o nota de remisión que deseas descargar.

Responses

Response samples

Content type
application/json
{}

Descargar XML

Con este método puedes descargar el XML de una factura específica.
Nota: Servicio no válido para notas de remisión.

query Parameters
motor_id
required
any

ID de la factura que deseas descargar.

Responses

Response samples

Content type
application/json
{}

Verificar estado de CFDI en SAT

Con este método puedes verificar el estado de un CFDI directamente en el SAT si se encuentra activo, cancelado o en espera de cancelación.
Cada 5 consultas consume un timbre.

query Parameters
UUID
required
any
Example: UUID=12345678-1234-1234-1234-123456789012

UUID del CFDI que deseas verificar.

Request Body schema: application/json
required
issurerId
required
string

ID único del contribuyente.

issuerRFC
required
string

RFC del emisor.

receiverRFC
required
string

RFC del receptor.

total
required
number

Total de la factura.

Responses

Request samples

Content type
application/json
{
  • "issurerId": "1_Z1nmlnn3DkO_11VOora6JRy",
  • "issuerRFC": "XAXX010101000",
  • "receiverRFC": "XAXX010101000",
  • "total": 100
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "message": [ ],
  • "success": true
}

Contribuyentes

Endpoints para gestión de contribuyentes los cuales van a timbrar

Obtener información de los contribuyentes

Obten la información de los contribuyente registrados en el sistema

query Parameters
issurer_id
any

Id's de los contribuyentes que se desea obtener la información (si no se envía ninguno se obtienen todos). Para esta sección se manda en URL como un array, ejemplo: issurer_id=["A","B","C"] (este campo no es obligatorio)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "message": [ ],
  • "success": true
}

Clientes

Endpoints para gestión de clientes a los que se les emitió CFDI's

Obtiene la información de tus clientes

Obtiene la información de un cliente buscando por razón social, RFC o alias

path Parameters
issuer_id
required
string
Example: 12345XXXX012

ID del contribuyente del cual se desea obtener la información de sus clientes

query Parameters
search
required
string
Example: search=PAMP9302021Q2

texto a buscar

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "message": [ ],
  • "success": true
}

Descarga masiva CFDI's SAT

La descarga masiva de CFDI's es una funcionalidad que permite descargar todos los CFDI's que se encuentran en el portal del SAT (emitidos y recibidos)

⚠️ IMPORTANTE: Por normativa del SAT solamente puedes consultar 1 vez un CFDI en xml con el uuid, pero las veces que quieras con metadata. En caso de que ya no puedas consultar ese UUID en xml, puedes consultar por un rango de fechas que abarque dicho CFDI y podrás obtener nuevamente el xml, junto con los CFDIs que se encuentren en ese rango de fechas.

Petición al SAT para obtener el XML o metadata de los CFDI's

Esta consulta consume 1 timbre por cada CFDI solicitado

path Parameters
document_type
required
string
Enum: "xml" "metadata"
Example: xml

Tipo de documento

type
required
string
Enum: "received" "issued"
Example: received

Tipo de CFDI

issuer_id
required
string
Example: 12345678-1234-1234-1234-123456789012

ID de la emisión

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "message": [ ],
  • "success": true
}

Petición para descargar los CFDI's solicitados

En esta ruta se puede descargar el archivo en formato JSON, ZIP o XML de los CFDI's solicitados en la petición anterior Petición al SAT para obtener el XML o metadata de los CFDI's

path Parameters
sat_request_id
required
string
Example: 646c8902-845b-49db-b8db-bf402b97d6e5

ID de la petición al SAT

customer_id
required
string
Example: 12345678-1234-1234-1234-123456789012

ID del cliente

download_type
required
string
Enum: "xml" "zip" "json"
Example: xml

Tipo de descarga (si tu petición fué metadata, no podrás descargar el archivo en formato XML)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Catálogos del SAT

Endpoints para la gestión de catálogos

Uso del CFDI

Con este método puedes obtener el catálogo de usos del CFDI del SAT.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "message": [ ],
  • "success": true
}

Formas de pago

Con este método puedes obtener el catálogo de formas de pago del SAT.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "message": [ ],
  • "success": true
}

Claves de unidad

Con este método puedes obtener el catálogo de claves de unidad del SAT, buscando por la descripción o la clave de unidad.

Ejemplo de URL:
https://api.alfratax.com/api/v2/catalogs/unit-key?value=Unidad de servicio
https://api.alfratax.com/api/v2/catalogs/unit-key?value=E48

query Parameters
value
required
any
Example: value=Unidad

Valor de la clave de unidad.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "message": [ ],
  • "success": true
}

Claves de producto

Con este método puedes obtener el catálogo de claves de producto del SAT, buscando por la descripción o la clave de producto.

Ejemplo de URL:
https://api.alfratax.com/api/v2/catalogs/product-key?value=Software
https://api.alfratax.com/api/v2/catalogs/product-key?value=43231500

query Parameters
value
required
any
Example: value=Software

Valor de la clave de producto.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "message": [ ],
  • "success": true
}

Régimen fiscal

Con este método puedes obtener el catálogo de regímenes fiscales del SAT.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "message": [ ],
  • "success": true
}

🚧 Solicitudes de cancelación por parte de tus receptores

Endpoints para la gestión de solicitudes de cancelación de CFDI's que tus clientes han realizado para las facturas que les emitiste

🚧 Envío de CFDI's

Endpoints para el envío de CFDI's a clientes

🚧 Funciones extras de facturación

Endpoints para funciones adicionales relacionadas con la facturación