---
title: "Crear o actualizar un pago de factura de inventario"
method: POST
path: "/inventoryInvoicePayments"
tags: ["Pagos de Facturas de Inventario"]
---

# Crear o actualizar un pago de factura de inventario

`POST /inventoryInvoicePayments`

## Request

- Base URL: `https://api.pirpos.com`
- URL: `https://api.pirpos.com/inventoryInvoicePayments`
- Auth: HTTP bearer

Registra un pago sobre una factura de inventario. Si el cuerpo contiene `_id`,
se actualiza el pago existente; de lo contrario, se crea uno nuevo.

**Requisitos:**
- El negocio debe tener un **cuadre de caja abierto** al momento de realizar la operación.
- Si el cuadre de caja asociado al pago existente está cerrado (`isClosed: true`), la actualización será rechazada.
- El sistema valida automáticamente si la factura queda totalmente pagada y actualiza el campo `invoice.isPaid` del movimiento de inventario.

**Permiso requerido:** `IY_POST`

## Request body

- InventoryInvoicePaymentInput: Datos para crear o actualizar un pago de factura de inventario
  - `_id` string: ID del pago. Si se envía, se actualiza el registro existente; si no se envía, se crea uno nuevo.
  - `inventory` string: ID del movimiento de inventario (factura de compra). Requerido al crear un nuevo pago.
  - `description` string: Descripción o concepto del pago
  - `total` number: Monto total del pago. Requerido al crear un nuevo pago.
  - `invoice` object: Información de la factura. Requerido al actualizar un pago existente.
    - `totalPaid` number: Total pagado que se usará para actualizar el registro
  - `subtractCashRegister` boolean: Indica si el pago debe descontarse del cuadre de caja

## Response `200`

Pago registrado o actualizado exitosamente

- union
  - object: Respuesta al crear un nuevo pago
    - `message` string
    - `isPaid` boolean: Indica si la factura del inventario quedó totalmente pagada
  - InventoryInvoicePayment: Pago de una factura de compra de inventario
    - `_id` string: ID único del pago
    - `business` string: ID del negocio al que pertenece el pago (asignado automáticamente desde el token)
    - `cashBox` string: ID del cuadre de caja activo al momento de registrar el pago (asignado automáticamente)
    - `inventory` string: ID del movimiento de inventario (factura de compra) al que corresponde el pago
    - `description` string: Descripción o concepto del pago
    - `total` number: Monto total del pago
    - `subtractCashRegister` boolean: Indica si el pago debe descontarse del cuadre de caja (afecta el cierre de caja)
    - `createdBy` string: ID del usuario que registró el pago (asignado automáticamente desde el token)
    - `deleted` boolean: Indica si el pago fue eliminado lógicamente (soft delete)
    - `modifiedOn` string, date-time: Fecha de última modificación (actualizada automáticamente al guardar)
    - `createdOn` string, date-time: Fecha de creación del pago

## Other responses

- `401`: No autorizado. Puede deberse a: - Token inválido o permiso `IY_POST` no asignado al rol. - El cuadre de caja asociado al pago está cerrado.
- `500`: Error interno del servidor

---

[API](https://skmtc.dev/loggro/apis/restobar-servicios-del-m-dulo-de-restobar.md) - [All operations](https://skmtc.dev/loggro/apis/restobar-servicios-del-m-dulo-de-restobar/llms.txt) - [OpenAPI document](https://skmtc.dev/loggro/apis/restobar-servicios-del-m-dulo-de-restobar/revisions/9d4431a3cddc?raw)
