Cómo crear facturas desde API
A partir de la versión 2024.3 de FacturaScripts podemos crear facturas de venta con una sola petición POST a la API al endpoint crearFacturaCliente
. Una forma sencilla de comprobar si tu API lo permite es consultar la lista de recursos. Si aparece crearFacturaCliente, entonces puedes usarlo.
Crear factura de cliente
Haremos una petición POST al endpoint crearFacturaCliente
y le pasaremos obligatoriamente los campos codcliente
y lineas
. Adicionalmente le podemos pasar cualquier otro campo de la factura, como fecha
, hora
, codpago
, codserie
, direccion
, ciudad
, provincia
...
En este caso lineas
debe ser un json con las líneas de las facturas, que deberán tener los campos referencia
o descripcion
, y opcionalmente el resto de campos que puede tener una línea: cantidad
, pvpunitario
, dtopor
, dtopor2
, codimpuesto
, irpf
...
Datos del ejemplo:
- Petición: POST
- URL: http://localhost:8083/api/3/crearFacturaCliente
- Cabeceras:
- Token: XXXXXX
- Valores del formulario:
- codcliente: 1
- lineas:
[{"referencia": "producto1", "cantidad": 2}, {"descripcion": "Mano de obra", "cantidad": 1, "pvpunitario": 5.43}]
- pagada: 1
Cómo pasar los valores
Aunque la API responde siempre con JSON, para enviar los datos debemos hacerlo como lo haríamos a un formulario, es decir, mediante form URL encoded:
Crear facturas con versiones anteriores
Si estás usando una versión anterior a la 2024.3, entonces para crear facturas deberás enviar una petición POST al endpoint facturaclientes, posteriormente añadir las líneas con peticiones POST al endpoint lineafacturaclientes y finalmente actualizando los totales de la factura con una petición PUT a facturaclientes. Tienes un vídeo demostrativo en nuestro canal de youtube.
Es importante tener en cuenta que cuando creamos facturas desde la API, no se ejecutan las mismas clases y funciones auxiliares que nos permiten crear facturas con muy poco código, sino que le tenemos que enviar todo a la API. Por tanto tendremos que indicar el cliente de la factura, pero también su nombre, cifnif, dirección etc.
Paso 1: crear la cabecera
Hacemos una petición POST
a /api/3/facturaclientes
pasando por formulario el codcliente, nombre y cifnif del cliente.
Paso 2: añadir las líneas
Hacemos una petición POST
por cada línea al endopint /api/3/lineafacturaclientes
pasando por formulario el idfactura que hemos recibido en el paso 1 y la referencia, descripción, cantidad y pvpunitario (precio) de la línea.
Paso 3: actualizar los totales
Hacemos una petición PUT
al endpoint de la factura, en este ejemplo es /api/2/facturaclientes/2
pasando por formulario los campos neto, netosindto (neto antes de aplicar descuentos globales), totaliva (la suma de los IVAs) y total.