Cómo crear facturas, albaranes, pedidos y presupuestos desde API
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 factura de proveedor
Para crear facturas de compra simplemente hay que usar el endpoint crearFacturaProveedor y proporcionar un codproveedor en lugar del codcliente.
Crear albaranes
Hay que hacer una petición POST al endpoint crearAlbaranCliente o crearAlbaranProveedor y le pasaremos obligatoriamente los campos codcliente o codproveedor y lineas. Adicionalmente le podemos pasar cualquier otro campo del albarán, como cifnif, fecha, hora, codpago, codserie, direccion, ciudad, provincia ...
ejemplo:
- Petición: POST
- URL: http://localhost:8000/api/3/crearAlbaranCliente
- Cabeceras:
- Token: XXXXXX
- Valores del formulario:
- codcliente: 5
- lineas: ``
[{"referencia": "producto1", "cantidad": 2}, {"descripcion": "Mano de obra", "cantidad": 1, "pvpunitario": 5.43}]``

Crear pedidos
Para crear pedidos hay que hacer una petición POST al endpoint crearPedidoCliente o crearPedidoProveedor. Será necesario pasarle obligatoriamente los campos codcliente o codproveedor y lineas a través de un formulario, además se pueden añadir otros campos al pedido como hora, codpago, codserie, direccion, ciudad, provincia ...
ejemplo:
- Petición: POST
- URL: http://localhost:8000/api/3/crearPedidoCliente
- Cabeceras:
- Token: XXXXXX
- Valores del formulario:
- codcliente: 5
- lineas: ``
[{"referencia": "producto1", "cantidad": 2}, {"descripcion": "Mano de obra", "cantidad": 1, "pvpunitario": 5.43}]``

Crear presupuestos
Si queremos crear un presupuesto usando la API de FacturaScripts tenemos que hacer una petición POST al endpoint crearPresupuestoCliente o crearPresupuestoProveedor. Se le pasará obligatoriamente los campos codcliente o codproveedor y lineas, además se pueden añadir otros campos a los presupuestos como hora, codpago, codserie, direccion, ciudad, provincia ...
ejemplo:
- Petición: POST
- URL: http://localhost:8000/api/3/crearPresupuestoCliente
- Cabeceras:
- Token: XXXXXX
- Valores del formulario:
- codcliente: 5
- lineas: ``
[{"referencia": "producto1", "cantidad": 2}, {"descripcion": "Mano de obra", "cantidad": 1, "pvpunitario": 5.43}]``

Marcar la factura como pagada
Al crear una factura, si además envías el campo pagada con valor 1, se marcarán como pagados sus recibos en la misma operación (como en el ejemplo de la factura de cliente).
Qué devuelve la API
Si el documento se crea correctamente, la API responde con código HTTP 200 y un objeto JSON con el documento ya recalculado y sus líneas:
{
"doc": { "...": "campos del documento" },
"lines": [ "...líneas del documento..." ]
}
Es importante leer el contenido de doc, ya que ahí aparecen los valores definitivos del documento, como el número, el código y los totales calculados.
Si algo falla, la respuesta incluye la clave status con el valor error y un message con el detalle. Los códigos más habituales son:
400si falta elcodcliente/codproveedoro el campolineas.404si el cliente, el proveedor o el almacén no existen.422si no se puede guardar el documento o recalcular los totales.
{
"status": "error",
"message": "codcliente field is required"
}