---
title: "Marcar factura como pagada"
method: POST
path: "/invoices/{id}/changeToPaid"
tags: ["Facturas"]
---

# Marcar factura como pagada

`POST /invoices/{id}/changeToPaid`

## Request

- Base URL: `https://api.pirpos.com`
- URL: `https://api.pirpos.com/invoices/{id}/changeToPaid`
- Auth: HTTP bearer

Cambia el estado de una factura de "Facturada" a "Pagada" y registra los métodos de pago utilizados.

**Autenticación requerida:** Este endpoint requiere autenticación Bearer Token.
Usar el campo `tokenCurrent` obtenido del servicio de login (/login) en el header:
`Authorization: Bearer {tokenCurrent}`

**Requisitos:**
- La factura debe estar en estado "Facturada"
- Requiere caja registradora activa
- El usuario debe tener permisos para crear facturas

**Proceso:**
- Actualiza el estado de la factura a "Pagada"
- Registra métodos de pago con timestamp
- Actualiza estado de órdenes asociadas
- Envía a integraciones contables (Siigo, Loggro)
- Registra propinas y costos de entrega

## Ejemplos de Uso

### 1. Pago en efectivo
```json
{
  "_id": "507f1f77bcf86cd799439020",
  "paymentMethodValue": [
    {
      "paymentMethod": "507f1f77bcf86cd799439018",
      "value": 45000
    }
  ],
  "tip": 5000
}
```

### 2. Pago mixto (efectivo + tarjeta)
```json
{
  "_id": "507f1f77bcf86cd799439021",
  "paymentMethodValue": [
    {
      "paymentMethod": "507f1f77bcf86cd799439018",
      "value": 20000
    },
    {
      "paymentMethod": "507f1f77bcf86cd799439019",
      "value": 25000
    }
  ]
}
```

### 3. Actualizar información del cliente
```json
{
  "_id": "507f1f77bcf86cd799439022",
  "paymentMethodValue": [
    {
      "paymentMethod": "507f1f77bcf86cd799439018",
      "value": 30000
    }
  ],
  "client": {
    "name": "Juan Pérez Actualizado",
    "phone": "+57 300 123 4567",
    "email": "juan.nuevo@email.com"
  }
}
```

## Path parameters

- `id` string, required

## Request body

- object
  - `_id` string, required: ID de la factura (debe coincidir con el parámetro de la URL)
  - `paymentMethodValue` object[], required: Métodos de pago utilizados
    - `paymentMethod` string, required: ID del método de pago
    - `value` number, required: Valor pagado con este método
  - `tip` number: Propina otorgada (opcional)
  - `client` object: Información actualizada del cliente (opcional)
    - `name` string: Nombre del cliente
    - `phone` string: Teléfono del cliente
    - `email` string: Email del cliente
    - `idType` 'CC' | 'CE' | 'NIT' | 'PAS': Tipo de identificación
    - `idNumber` string: Número de identificación

## Response `200`

Factura marcada como pagada exitosamente

- Invoice
  - `_id` string: ID único de la factura
  - `businessId` string: ID del negocio al que pertenece la factura
  - `business` object: Información del negocio
    - `name` string: Nombre del negocio
    - `nit` string: NIT del negocio
    - `address` string: Dirección del negocio
  - `number` string: Número de la factura
  - `invoicePrefix` string: Prefijo de la factura
  - `seq` number: Número secuencial de la factura
  - `products` object[]: Lista de productos en la factura
    - `idInternal` string: ID del producto
    - `name` string: Nombre del producto
    - `quantity` number: Cantidad
    - `price` number: Precio unitario
  - `total` number: Total de la factura
  - `totalPaid` number: Total pagado
  - `status` 'Pendiente' | 'Pagada' | 'Anulada': Estado de la factura
  - `type` 'Normal' | 'FacturaElectronica': Tipo de factura
  - `table` object: Información de la mesa
    - `idInternal` string: ID de la mesa
    - `name` string: Nombre de la mesa
  - `client` object: Información del cliente
    - `idInternal` string: ID del cliente
    - `name` string: Nombre del cliente
    - `phone` string: Teléfono del cliente
  - `cashier` object: Información del cajero
    - `idInternal` string: ID del cajero
    - `name` string: Nombre del cajero
  - `paid` object: Información de pago
    - `paymentMethodValue` object
      - `paymentMethod` string: Método de pago utilizado
  - `delivery` object: Información de entrega
    - `isDelivery` boolean: Si es una entrega a domicilio
    - `deliveryProvider` string: Proveedor de entrega
    - `deliveryGuy` object
      - `internalId` string: ID del repartidor
      - `name` string: Nombre del repartidor
  - `deliveryCost` number: Costo de entrega
  - `eInvoice` object: Información de facturación electrónica
    - `DIAN` object
      - `dianState` string: Estado en DIAN
  - `externalIntegration` object: Integraciones externas
    - `siigo` object
      - `statusCode` number: Código de estado en Siigo
    - `loggro` object
      - `statusCode` number: Código de estado en Loggro
  - `credit` object: Información de crédito
    - `dueDate` string, date-time: Fecha de vencimiento del crédito
  - `createdOn` string, date-time: Fecha de creación
  - `modifiedOn` string, date-time: Fecha de última modificación
  - `deletedInfo` object: Información de eliminación
    - `isDeleted` boolean: Si la factura está eliminada

## Other responses

- `400`: Datos de entrada inválidos o factura no válida
- `401`: No autorizado
- `403`: Sin permisos para marcar facturas como pagadas
- `404`: Factura no encontrada
- `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)
