Facturación México
Taxo Facturación México te permite administrar desde tu aplicación las cuentas de facturación electrónica de tus clientes: los planes que ofreces, la cuenta de cada cliente con sus datos fiscales, sus suscripciones y los folios que tiene disponibles para timbrar CFDI.
El API es REST: todas las operaciones reciben y responden JSON, incluso los errores.
URL base
Todas las rutas de esta sección son relativas a:
https://invoice.taxo.ws/mx/partners
Una operación se arma combinando el verbo HTTP, la URL base y la ruta de la referencia. Por ejemplo, para consultar tus clientes:
Ambientes
Producción y sandbox comparten la URL base. El ambiente se elige en cada petición con
la cabecera F-Sandbox-Mode:
| Cabecera | Ambiente | Uso |
|---|---|---|
F-Sandbox-Mode: true | Sandbox | Pruebas de tu integración. |
Sin cabecera, o false | Producción | Cuentas, suscripciones y folios reales. |
Recursos
| Recurso | Ruta | Para qué sirve |
|---|---|---|
| Planes | /v1/products | El catálogo de planes que ofreces: folios, vigencia, precio y servicios incluidos. |
| Clientes | /v1/clients | La cuenta de cada cliente y sus datos fiscales (RFC, régimen, uso de CFDI). |
| Suscripciones | /v1/subscriptions | El plan contratado por cada cliente: vigencia, renovación, suspensión. |
| Folios | /v1/subscriptions | Los comprobantes que cada cliente puede timbrar: agregar y retirar folios. |
Flujo típico
- Obtén un token con tus credenciales de cliente. El detalle está en Autenticación.
- Elige un plan: consulta el catálogo
o crea un plan. Del plan necesitas su
uuidy eluuidde la vigencia que vas a asignar. - Da de alta al cliente, enviando sus datos generales, sus datos fiscales y el plan.
- Administra su suscripción: renuévala, agrega o retira folios, o suspéndela y reactívala según lo necesites.
Errores
Cuando una operación falla, la respuesta trae el código HTTP correspondiente y un cuerpo con esta forma:
{
"status": "error",
"message": "<descripción del error>",
"code": "<código del error>"
}
Los errores de validación (422) agregan un objeto errors con los mensajes de cada
campo:
{
"status": "error",
"message": "<descripción del error>",
"errors": {
"<campo>": ["<mensaje>"]
},
"code": "<código del error>"
}
| Código | Significado |
|---|---|
401 | Falta el token, expiró o no es válido. |
404 | El plan, cliente o suscripción no existe, o la ruta no existe. |
422 | Los datos enviados no son válidos. Revisa el objeto errors. |
502 | El servicio de facturación no está disponible. Reintenta más tarde. |