Nuestra API te permite extender la funcionalidad de Quentli para desarrollar integraciones con sistemas externos, como CRMs, ERPs y otras aplicaciones web.
Esta es la documentación de nuestra API REST, que se encuentra en estado beta. También puedes consumir la API GraphQL, que es estable.

Endpoint

El endpoint base de la API REST de Quentli es el siguiente:
https://api.quentli.com

Colección de Postman

Postman es una herramienta popular que facilita las pruebas y el desarrollo de API. Para que la integración de la API de Quentli sea más sencilla, creamos una colección con los endpoints soportados que incluye ejemplos. Colección de Postman

Caso de uso: programar pagos a un cliente

En el siguiente diagrama puedes ver un caso de uso muy común para la API de Quentli: crear un cliente de una fuente externa, agregarle una suscripción y generar un link de pago. Diagrama de caso de uso

Autenticación

Todas las consultas de la API en Quentli requieren un API token válido. Para obtener un token, por favor ponte en contacto con nosotros a través de soporte@quentli.com. Debes incluir tu token en el encabezado Authorization para todas las solicitudes subscuentes de esta forma: Authorization: Bearer TOKEN

Ejemplos

Crear un cliente

Ejemplo de cómo crear un cliente a través de la API REST.
POST https://api.quentli.com/v1/customers
{
    "input": {
        "name": "Alicia Pérez",
        "username": "12873",
        "email": "alicia1@ejemplo.com",
        "phoneNumber": "+528444191046"
    }
}
Toma en cuenta que los identificadores (username), correo electrónico y número de teléfono deben ser únicos. No pueden repetirse en otros clientes.

Crear una solicitud de pago

Puedes hacer la siguiente solicitud para crear una solicitud de pago a un cliente. Para ello, deberás primero crear un concepto de pago y un cliente previamente.
POST https://api.quentli.com/v1/invoices
{
    "input": {
        "customerId": "cm4k6bzfx0019rtqttpbgg0ea",
        "dueDate": "2025-01-10T06:00:00.000Z",
        "collectionMethod": "AUTOMATIC",
        "items": [
            {
                "concept": {
                    "displayName": "Licencia POS",
                    "amount": 40000,
                    "currency": "MXN"
                },
                "quantity": 1
            }
        ]
    }
}

Paginación

Los endpoints que obtienen listas de recursos en Quentli máximo pueden devolver 100 registros a la vez. Para obtener la lista completa, soportamos paginación basada en offset. La paginación en Quentli se maneja usando dos parámetros: take y skip . Ambos parámetros son opcionales.
  • take : indica cuántos items deseas obtener en tu solicitud. Por default, este valor es 20. El valor máximo de take es 100.
  • skip : indica cuántos items deseas “saltar”. Por default, este valor es 0.
Paginación de la API Por ejemplo, si deseas obtener los primeros 10 invoices y después obtener los siguientes 10 harías las siguientes llamadas:
GET /invoices?take=10&skip=0
GET /invoices?take=10&skip=10

Formatos y convenciones

  • Los montos en la API están en centavos de peso. Es decir, si deseas generar un un pago pendiente por $150 pesos mexicanos, el valor al crear el concepto de pago debe ser 15000
  • En la API de Quentli, las fechas se admiten y devuelven en el formato ISO 8601 con la zona horaria UTC. Por ejemplo: 2025-01-09T06:00:00.000Z indica el inicio del 9 de enero de 2025 en hora Ciudad de México.
  • El formato de los números de celular es E.164, que incluye el código de país y a continuación el número local. Por ejemplo: +525512345678
  • El formato de las monedas internacionales es ISO 4217, que utiliza un código de 3 letras. Por ejemplo, el peso mexicano es MXN y el dólar estadounidense es USD

GraphQL

Quentli también cuenta con una API GraphQL que tiene una cobertura más amplia de las funcionalidades de la plataforma. Con ella puedes hacer consultas más complejas y hacer consultas con justo los datos que necesitas. Conoce más sobre la API GraphQL

Restricciones (rate limits)

La API REST de Quentli actualmente está limitada a 1000 solicitudes por minuto. En caso de excederlo, recibirás un código 429 junto con un header Retry-After que te indica el número de segundos que debes esperar antes de volver a intentar tu solicitud.