Saltar al contenido principal

API de facturas del punto de venta

Esta referencia describe las llamadas disponibles para crear, consultar, emitir, actualizar y anular facturas desde sistemas externos.

Autenticación​

Todas las llamadas requieren estos encabezados:

-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "X-User-Email: usuario@zauru.com" \
-H "X-User-Token: TOKEN_DEL_USUARIO"

Reemplazar el correo y el token por las credenciales del usuario de Zauru. En los ejemplos, 1 representa el identificador de una factura.

Crear una factura​

POST /pos/invoices.json

curl -X POST \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "X-User-Email: usuario@zauru.com" \
-H "X-User-Token: TOKEN_DEL_USUARIO" \
-d '{
"invoice": {
"reference": "Venta mostrador",
"taxable": "1",
"payment_term_id": "1",
"payee_id": "1",
"seller_id": "1",
"invoice_details_attributes": {
"0": {
"item_id": "1",
"quantity": "1",
"unit_price": "650"
}
}
}
}' \
https://app.zauru.com/pos/invoices.json

La respuesta incluye la factura creada y sus detalles. Los campos principales son id, order_number, invoice_number, total, issued, paid e invoice_details.

Listar facturas​

POST /pos/invoices/datatables.json

curl -X POST \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "X-User-Email: usuario@zauru.com" \
-H "X-User-Token: TOKEN_DEL_USUARIO" \
-d '{
"start": "0",
"length": "40",
"search": {"value": "", "regex": "false"}
}' \
https://app.zauru.com/pos/invoices/datatables.json

La respuesta tiene el formato de DataTables: draw, recordsTotal, recordsFiltered y data.

Consultar una factura​

GET /pos/invoices/:id.json

curl -H "Accept: application/json" \
-H "X-User-Email: usuario@zauru.com" \
-H "X-User-Token: TOKEN_DEL_USUARIO" \
https://app.zauru.com/pos/invoices/1.json

La respuesta incluye los datos de la factura, el cliente (payee), los detalles (invoice_details), los asientos contables (entries) y los pagos (payment_details).

Obtener datos para una factura nueva​

GET /pos/invoices/new.json

Devuelve los valores iniciales de una factura y los identificadores disponibles para productos, paquetes, categorías, precios y existencias.

Actualizar una factura no emitida​

PUT /pos/invoices/:id.json

curl -X PUT \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "X-User-Email: usuario@zauru.com" \
-H "X-User-Token: TOKEN_DEL_USUARIO" \
-d '{
"invoice": {
"reference": "Venta corregida",
"invoice_details_attributes": {
"0": {"id": "1", "quantity": "2"}
}
}
}' \
https://app.zauru.com/pos/invoices/1.json

Solo se pueden actualizar facturas en estado de orden. Si la factura ya fue emitida, la respuesta indica No Editable.

Emitir una orden rápidamente​

GET /pos/invoices/:id/issue_fast.json

Convierte una orden de venta en factura y conserva sus productos, cantidades y precios. La respuesta incluye la factura emitida.

Consultar datos superficiales​

GET /pos/invoices/:id/shallow_edit.json

Devuelve los datos que se pueden modificar sin cambiar productos ni montos: número, referencia, fecha, vendedor, memo, etiquetas e imagen.

Actualizar datos superficiales​

PATCH /pos/invoices/:id/shallow_update.json

curl -X PATCH \
-H "Accept: application/json" \
-H "Content-type: application/json" \
-H "X-User-Email: usuario@zauru.com" \
-H "X-User-Token: TOKEN_DEL_USUARIO" \
-d '{
"invoice": {
"reference": "Referencia actualizada",
"memo": "Nota actualizada",
"created_at": "2026-05-25"
}
}' \
https://app.zauru.com/pos/invoices/1/shallow_update.json

Esta llamada actualiza los campos superficiales sin ejecutar los callbacks normales de la factura. También acepta invoice_number, date, seller_id, tag_ids, invoice_image y created_at.

Anular una factura​

DELETE /pos/invoices/:id.json

Anula la factura y devuelve una respuesta vacía cuando la operación es correcta.

Anular una factura sin pagos​

DELETE /pos/invoices/:id/no_payments_void.json

Usar esta llamada cuando la factura no tiene pagos asociados y el saldo pendiente es cero. Si no cumple ambas condiciones, la API devuelve un error de validación.

Obtener productos y existencias​

GET /pos/invoices/get_categories_items_bundles_prices_stocks_images.json

Devuelve los datos necesarios para construir la pantalla de factura: productos, paquetes, categorías, precios, existencias, tarjetas de regalo, marcas y las opciones visuales configuradas para el punto de venta.

Para consultar el precio y la existencia de un producto o paquete específico, usar:

GET /pos/invoices/item_bundle_info?item_id=1&bundle_id=2&agency_id=3&payee_id=4

Los parámetros item_id y bundle_id son alternativos. agency_id determina la existencia y payee_id permite aplicar la lista de precios del cliente.

¿Le fue útil esta guía?