Cambios en el año 2026

Octubre 2026
  • API v2

    Endpoint de conciliación de pedidos

    Se agregó GET /salesOrder/{salesOrderId}/reconciliation, que devuelve en una sola llamada el estado de conciliación de un pedido: las entregas asociadas con los cobros que se les aplicaron y, cuando el pedido es una venta en ruta, si tiene cobros asociados y si ya está pagado totalmente.

    La respuesta trae cuatro bloques: salesOrder, deliveries, routeSale (es null si el pedido no es venta en ruta) y summary, que resume el veredicto en hasDelivery, hasPayment, fullyPaid y pendingBalance.

    Puntos a tener en cuenta al consumirlo:

    • Para decidir si está pagado usa summary.fullyPaid o routeSale.pendingBalance, no paymentStatus: en ventas en ruta a crédito anteriores al motor de cobros ese campo puede venir en null.
    • Las entregas canceladas se incluyen con deleted en true para poder revertir el asiento; los contadores de summary ya las excluyen.
    • Una entrega con consolidated en true lleva varios pedidos, y entonces sus montos corresponden a toda la entrega y no solo al pedido consultado.
    • creditNotesApplied es el monto cubierto con notas de crédito: una entrega o venta puede quedar pagada sin un solo cobro.

    Fecha de creación del pedido en los cobros de /paymentLog

    En la respuesta de GET /paymentLog y GET /paymentLog/{id} se agregó la fecha de creación del pedido a los cobros aplicados:

    • En salesOrderPayments[], dentro de salesOrder: dateCreated y mobileDateCreated.
    • En deliveryPayments[], dentro de delivery: el arreglo salesOrdersInfo con { id, dateCreated, mobileDateCreated } por cada pedido de la entrega.

    delivery.salesOrders no cambia: sigue siendo la lista de identificadores.

Septiembre 2026
  • API v2

    Más información de promociones y descuentos por producto

    Promociones (/promotion):

    • Se agregaron los campos status (active, paused o finished) y rangeType (regular o dynamic).
    • Nuevo endpoint GET /promotion/{id} para obtener una sola promoción.

    Descuentos por producto (/productDiscount):

    • Se agregaron los campos customerZones y customerCategories con el id y la description de cada zona y categoría. Los campos customerZonesIds y customerCategoriesIds se conservan.
    • Se documentaron GET /productDiscount/{id}, GET /product/{code}/productDiscount y los atributos zones, categories, showDatesRanges, startDateValid y endDateValid para crear y actualizar.
Julio 2026
  • API v2

    Endpoints para crear, editar y deshabilitar pagos

    Se agregaron tres endpoints sobre /paymentLog para administrar cobranzas:

    • POST /paymentLog — crea un pago. Valida el type (cash por default, check, wire_transfer, debit_card, credit_card) y bloquea con 422 los pagos que excedan el saldo del cliente cuando la compañía no permite sobrepago.
    • PUT /paymentLog/{id} — edita un pago. Igual que en la web, deshabilita el pago original y crea uno nuevo con editedFrom apuntando al original; la respuesta es el pago nuevo.
    • POST /paymentLog/disable/{id} — deshabilita un pago (operación de una sola vía, idempotente).
Junio 2026
  • API v2

    Endpoints para Motivos de devolución

    Se agregaron los endpoints GET, POST, PUT y DELETE sobre /returnReason para administrar los motivos de devolución y merma (returnType: return o ullage).

  • API v2

    Endpoint de distancia recorrida por usuario

    Se agregó un nuevo endpoint GET /user/{userId}/distanceTravelled que regresa la distancia total recorrida por un usuario en un rango de fechas, expresada en kilómetros. El rango máximo permitido es de 7 días.

Mayo 2026
Abril 2026
  • API v2

    Validación de parámetros en /salesOrder

    En el listado de pedidos (GET /salesOrder, GET /customer/{code}/salesOrder, GET /priceList/{code}/salesOrder, GET /user/{id}/salesOrder):

    • Los parámetros sort, filterWithDate, salesType y order ahora validan sus valores y regresan 400 Bad Request cuando reciben un valor no soportado. Consulta cada parámetro para los valores aceptados.
    • Cuando no se especifica sort, el campo usado para ordenar por defecto cambió de dateCreated a mobileDateCreated.
  • API v2

    Campo companyID

    Todas las respuestas de los JSON, continen el companyID para especificar la compañía a la que pertenece

  • API v2

    Actualizar inventario /inventory/update

    Se agregó un nuevo endpoint para actualizar las cantidades de los productos enviados por la nueva cantidad establecida.

Marzo 2026
  • API v2

    Actualizar inventario /inventory/adjustment

    Se agregó un nuevo endpoint para crear movimientos de inventario para poder incrementar(IN) o diminuir(OUT) ciertas cantidades de producto.

  • API v2

    Filtro por lastUpdated en /delivery/balance y /calendarEvent

    Se agregó soporte para el parámetro filterWithDate=lastUpdated en el endpoint /delivery/balance. Ahora puedes filtrar por lastUpdated además de deliveredDate (default). También se agregó el campo lastUpdated en la respuesta JSON.

    Adicionalemente, se optimizó el rendimiento del filtro filterWithDate=lastUpdated en /calendarEvent.

Febrero 2026