Planes

Consulta, crea y administra el catálogo de planes que ofreces a tus clientes en Taxo Facturación México.

Un plan define lo que contrata un cliente: los folios que incluye, cuánto dura, su precio y los servicios que trae. Cada plan tiene una o varias vigencias (por ejemplo, mensual y anual), y al dar de alta un cliente le asignas un plan y una de sus vigencias.

Todas las peticiones de esta página llevan Authorization: Bearer <token> (ver Autenticación). Agrega F-Sandbox-Mode: true para trabajar en sandbox.

Consultar planes

GEThttps://invoice.taxo.ws/mx/partners/v1/products

Ver en la referencia

Devuelve tu catálogo de planes, paginado.

ParámetroTipoDescripción
pageenteroPágina a consultar.
searchtextoFiltra los planes por texto.
cURL
curl "https://invoice.taxo.ws/mx/partners/v1/products?page=1" \
-H "Authorization: Bearer <token>" \
-H "F-Sandbox-Mode: true"

La respuesta trae los planes en data.products y la paginación en data.pagination. Los valores son de ejemplo:

{
  "response": "success",
  "data": {
    "products": [
      {
        "uuid": "a1e2019fe2b542af96caf6f9320781bd",
        "name": "Plan especial",
        "status": "<estatus>",
        "sales": 3,
        "expiration_type": 1,
        "services": {
          "api": true,
          "smtp_mail": false,
          "custom_email": false,
          "pdf_templates": [],
          "invoices_migrator": false,
          "auto_invoice": false,
          "extra_rfc": 0,
          "extra_user": 0
        },
        "vigencies": [
          {
            "uuid": "<uuid-de-la-vigencia>",
            "folios": 100,
            "price": "299.00",
            "expiration_period": "<periodo>"
          }
        ],
        "pdf_templates": []
      }
    ],
    "pagination": {
      "currentPage": 1,
      "lastPage": 1,
      "perPage": 15,
      "total": 1
    }
  }
}

El objeto plan

CampoTipoDescripción
uuidtextoIdentificador del plan. Lo usas al dar de alta un cliente o renovar.
nametextoNombre del plan.
statustextoEstatus del plan. Ver Activar o desactivar un plan.
salesenteroVentas del plan.
expiration_typeenteroTipo de expiración del plan.
servicesobjetoServicios incluidos. Ver Servicios.
vigenciesarregloVigencias del plan: uuid, folios, price y expiration_period.
pdf_templatesarregloPlantillas de PDF del plan.

Del plan que vas a asignar necesitas dos identificadores: el uuid del plan y el uuid de la vigencia, dentro de vigencies.

Crear un plan

POSThttps://invoice.taxo.ws/mx/partners/v1/products

Ver en la referencia

CampoTipoRequeridoDescripción
nametextoSíNombre del plan.
vigenciesarregloSíUna o varias vigencias. Ver Vigencias.
servicesobjetoSíServicios incluidos. Ver Servicios.
cURL
curl https://invoice.taxo.ws/mx/partners/v1/products \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-H "F-Sandbox-Mode: true" \
-d '{
  "name": "Plan especial",
  "vigencies": [
    { "folios": 100, "vigency": "Mensual", "price": 299 },
    { "folios": 1200, "vigency": "Anual", "price": 2990 }
  ],
  "services": {
    "api": true,
    "smtp_mail": false,
    "custom_email": false,
    "pdf_templates": [],
    "invoices_migrator": false,
    "auto_invoice": false,
    "extra_rfc": 0,
    "extra_user": 0
  }
}'

Si el plan se crea, la respuesta trae el objeto plan en data, con los uuid que se asignaron al plan y a cada vigencia. Si algún campo no es válido responde 422 con el detalle en errors.

Vigencias

Cada elemento de vigencies tiene:

CampoTipoDescripción
foliosenteroFolios que incluye la vigencia.
vigencytextoPeriodo de validez. Uno de los valores de abajo.
pricenúmeroPrecio de la vigencia.
Valor de vigencyPeriodo
MensualUn mes.
TrimestralTres meses.
SemestralSeis meses.
AnualUn año.
SPSin periodicidad.

Servicios

CampoTipoDescripción
apibooleanoIncluye acceso por API.
smtp_mailbooleanoIncluye envío de correos por SMTP.
custom_emailbooleanoIncluye correo personalizado.
pdf_templatesarregloPlantillas de PDF disponibles en el plan.
invoices_migratorbooleanoIncluye el migrador de facturas.
auto_invoicebooleanoIncluye autofacturación.
extra_rfcenteroRFC adicionales incluidos.
extra_userenteroUsuarios adicionales incluidos.

Ver un plan

GEThttps://invoice.taxo.ws/mx/partners/v1/products/{uuid}

Ver en la referencia

Devuelve el objeto plan en data, o 404 si el plan no existe.

cURL
curl https://invoice.taxo.ws/mx/partners/v1/products/<uuid-del-plan> \
-H "Authorization: Bearer <token>" \
-H "F-Sandbox-Mode: true"

Actualizar un plan

PATCHhttps://invoice.taxo.ws/mx/partners/v1/products/{uuid}

Ver en la referencia

El cuerpo es el mismo que al crear un plan, con sus tres campos requeridos: envía el plan completo, no solo lo que cambia. Responde con el plan actualizado en data, o 404 si el plan no existe.

cURL
curl -X PATCH https://invoice.taxo.ws/mx/partners/v1/products/<uuid-del-plan> \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-H "F-Sandbox-Mode: true" \
-d '{
  "name": "Plan especial",
  "vigencies": [
    { "folios": 150, "vigency": "Mensual", "price": 349 },
    { "folios": 1200, "vigency": "Anual", "price": 2990 }
  ],
  "services": {
    "api": true,
    "smtp_mail": false,
    "custom_email": false,
    "pdf_templates": [],
    "invoices_migrator": false,
    "auto_invoice": false,
    "extra_rfc": 0,
    "extra_user": 0
  }
}'

Activar o desactivar un plan

POSThttps://invoice.taxo.ws/mx/partners/v1/products/{uuid}/change-status

Ver en la referencia

No lleva cuerpo. Activa o desactiva el plan, y responde con el plan y su status actualizado en data.

cURL
curl -X POST https://invoice.taxo.ws/mx/partners/v1/products/<uuid-del-plan>/change-status \
-H "Authorization: Bearer <token>" \
-H "F-Sandbox-Mode: true"

Borrar planes

DELETEhttps://invoice.taxo.ws/mx/partners/v1/products

Ver en la referencia

Borra uno o varios planes a la vez. Envía sus identificadores en uuids. Responde 404 si alguno no existe.

cURL
curl -X DELETE https://invoice.taxo.ws/mx/partners/v1/products \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-H "F-Sandbox-Mode: true" \
-d '{ "uuids": ["a1e2019fe2b542af96caf6f9320781bd"] }'