Documentación Técnica de QuartUp API-1

Integración con QuartUp ERP mediante REST/JSON API


1. Introducción

QuartUp API permite interactuar programáticamente con QuartUp ERP mediante peticiones REST a:

https://erp.quartup.net/api

2. Autenticación

Endpoint:

GET https://erp.quartup.net/api/auth

Requisitos:

Respuestas:

Uso del token: Incluirlo en el header de peticiones posteriores:

Authorization: Bearer TOKEN_ACCESO

3. Estructura de Peticiones

Base URL:

https://erp.quartup.net/api/{empresa}/{esquema}/{tabla}[/{registro}][?parametros]

Métodos HTTP y Acciones

Método Acción Ejemplo de URL
GET Consultar datos /api/demo/test/clientes (todos) o /.../clientes/430100308 (uno)
POST Insertar /api/demo/test/clientes (envía JSON en body)
PUT Actualizar /api/demo/test/clientes (envía JSON en body)
PATCH Insertar/Actualizar /api/demo/test/clientes (envía JSON en body)
DELETE Eliminar /api/demo/test/clientes/430100308

NOTA: Estos son las relaciones entre métodos y acciones estándar, pero si es necesario pueden personalizarse y cambiar el método en las acciones inserción/modificación


4. Operaciones Detalladas

4.1. Lectura (GET)

Parámetros Query:

Parámetro Descripción Ejemplo
select Columnas a retornar (si no se especifica, se retornan todas). ?select=nombre,cif
init Filtros por igualdad de valor. ?init=precio:50,cantidad:20
filter Filtros con sintaxis QuartUp ERP (ver tabla abajo). ?filter=precio:50..100,cantidad:15..
order Ordenamiento con lista de columnas y asc/desc. ?order=nombre:asc,direccion:desc
limit Límite de registros (se ignora si se usan los dos siguientes parámetros). ?limit=50
page-size Registros por página (paginación). ?page-size=20&page-number=2
page-number Número de página (paginación). ?page-size=20&page-number=2
include Permite añadir registros de tablas relacionadas. ?include=direcciones,personas

Sistema de Filtros (parámetro filter)

Soporta condiciones avanzadas con sintaxis especial (los carácteres especiales hay que "escaparlos" para evitar que interfieran con los parámetros de la URI):

Para campos numéricos:

Para fechas:

Para texto:

Ejemplo combinado:

GET /api/demo/test/pedidos?filter=total:100..500,fecha:today..,cliente:QUARTUP*&select=id,total

4.2. Inserción/Actualización (POST/PUT/PATCH)

Mecanismo de Operación

Las operaciones de creación y modificación de registros utilizan los métodos POST (creación incondicional), PUT (modificación incondicional), o PATCH (creación o modificación según si existe clave primaria o no):

Para INSERT (creación):

Para UPDATE (actualización):

Respuestas

Operaciones Masivas

El body puede contener un array de registros para operaciones batch:

[
    {
      // INSERT
      "nombre": "Cliente 1", "cif": "A11111111"
    },
    {
      // UPDATE
      "id": "430000002",
      "nombre": "Cliente 2 Modificado"
    }
]

Respuesta batch:

{
  "data": [
    {
      "type": "/test/clientes",
      "id": "430000123",  // Nuevo ID generado
      "attributes": { "nombre": "Cliente 1", "cif": "A11111111" }
    },
    {
      "type": "/test/clientes",
      "id": "430000002",
      "attributes": { "nombre": "Cliente 2 Modificado" }
    }
  ]
}

Reglas Clave

  1. Clave primaria vacía/cero → INSERT.
  2. Clave primaria con valor → UPDATE.
  3. Operaciones batch: Máximo rendimiento para cargas masivas.
  4. Respuestas: Siempre incluyen el estado final del registro.

4.3. Eliminación (DELETE)

Endpoint:

DELETE /api/{empresa}/{esquema}/{tabla}/{registro}

5. Ejemplos de Respuestas

Lectura (GET):

{
  "jsonapi": { "version": "1.0" },
  "links": { "self":"/api/demo/test/clientes?filter=nombre:xxx" },
  "meta": { "total": 2, "found_rows": 2 },
  "data": [
    {
      "type": "/test/clientes",
      "id": "430000002",
      "attributes": { "nombre": "TEX LINE SPAIN, S.L", "cif": "B63728828" }
    }
    {
      "type": "/test/clientes",
      "id": "430000003",
      "attributes": { "nombre": "TEX LINE BELGIUM, S.L", "cif": "X63728828" }
    }
  ]
}

Error (400 Bad Request):

{
  "status": 400,
  "message": "Filtro no válido: formato de fecha incorrecto"
}

6. Consideraciones Técnicas