Skip to main content
GET
/
api
/
cuentas-por-pagar
Cuentas por Pagar
curl --request GET \
  --url https://api.example.com/api/cuentas-por-pagar \
  --header 'Content-Type: application/json' \
  --data '
{
  "fecha_pago": "<string>"
}
'
{
  "400": {},
  "404": {},
  "422": {},
  "500": {},
  "success": true,
  "data": [
    {
      "dias_compra_id": 123,
      "id_compra": 123,
      "documento": "<string>",
      "proveedor": "<string>",
      "proveedor_ruc": "<string>",
      "fecha_emision": "<string>",
      "fecha_vencimiento": "<string>",
      "monto": 123,
      "estado": "<string>",
      "fecha_pago": "<string>"
    }
  ],
  "resumen": {
    "total_pendiente": 123,
    "total_vencido": 123,
    "proximas_vencer": 123,
    "total_pagado_mes": 123
  }
}

Autenticación

Este endpoint requiere autenticación mediante token Bearer y el permiso cuentas-pagar.view.

Listar Cuentas por Pagar

GET /api/cuentas-por-pagar Retorna todas las cuotas de compras a crédito con información del proveedor y resumen financiero.

Parámetros de Query

estado
string
Filtrar por estado: ‘1’ (Pendiente), ‘0’ (Pagada), ‘V’ (Vencida)
fecha_desde
date
Fecha de vencimiento desde (formato: Y-m-d)
fecha_hasta
date
Fecha de vencimiento hasta (formato: Y-m-d)
proveedor
string
Buscar por razón social o RUC del proveedor (búsqueda parcial)

Respuesta

success
boolean
Indica si la operación fue exitosa
data
array
Lista de cuotas pendientes de pago
resumen
object
Resumen financiero de las cuentas por pagar

Ejemplo de Respuesta

{
  "success": true,
  "data": [
    {
      "dias_compra_id": 8,
      "id_compra": 45,
      "documento": "F001-00000123",
      "proveedor": "DISTRIBUIDORA LIMA S.A.C.",
      "proveedor_ruc": "20123456789",
      "fecha_emision": "2024-02-10",
      "fecha_vencimiento": "2024-03-10",
      "monto": "8500.00",
      "estado": "1",
      "fecha_pago": null
    },
    {
      "dias_compra_id": 12,
      "id_compra": 48,
      "documento": "F001-00000156",
      "proveedor": "IMPORTACIONES PERU E.I.R.L.",
      "proveedor_ruc": "20987654321",
      "fecha_emision": "2024-01-15",
      "fecha_vencimiento": "2024-02-28",
      "monto": "12400.00",
      "estado": "1",
      "fecha_pago": null
    },
    {
      "dias_compra_id": 5,
      "id_compra": 42,
      "documento": "F001-00000098",
      "proveedor": "COMERCIAL ANDINA S.A.",
      "proveedor_ruc": "20555666777",
      "fecha_emision": "2024-02-01",
      "fecha_vencimiento": "2024-03-01",
      "monto": "5600.00",
      "estado": "0",
      "fecha_pago": "2024-02-28"
    }
  ],
  "resumen": {
    "total_pendiente": "65430.50",
    "total_vencido": "15200.00",
    "proximas_vencer": 8,
    "total_pagado_mes": "28540.00"
  }
}

Registrar Pago de Cuota

POST /api/cuentas-por-pagar/{id}/pagar - Requiere permiso cuentas-pagar.edit Registra el pago completo de una cuota.

Parámetros del Body

fecha_pago
date
required
Fecha en que se realizó el pago (formato: Y-m-d)

Ejemplo de Solicitud

curl -X POST \
  https://tudominio.com/api/cuentas-por-pagar/8/pagar \
  -H 'Authorization: Bearer TU_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "fecha_pago": "2024-03-05"
  }'

Respuesta

{
  "success": true,
  "message": "Pago registrado exitosamente"
}

Lógica de Pago

Cuando se registra un pago:
  1. Se verifica que el estado sea ‘1’ (Pendiente)
  2. Se cambia el estado a ‘0’ (Pagada)
  3. Se registra la fecha_pago
Importante: A diferencia de las cuentas por cobrar, las cuentas por pagar no soportan pagos parciales. Cada cuota se paga completa o permanece pendiente.

Diferencias con Cuentas por Cobrar

CaracterísticaCuentas por CobrarCuentas por Pagar
Tabla BDdias_ventasdias_compras
Estado pendiente’P''1’
Estado pagado’C''0’
Estado vencido’V''V’
Pagos parcialesSí (con monto_pagado y saldo)No (solo pago completo)
Campos de pagomonto_cuota, monto_pagado, saldomonto (total)

Estados de Cuotas

  • ‘1’ (Pendiente) - Cuota no pagada
  • ‘0’ (Pagada) - Cuota totalmente pagada
  • ‘V’ (Vencida) - Cuota pendiente con fecha de vencimiento pasada (filtro, no estado en BD)
Los estados se determinan usando scopes del modelo DiaCompra:
  • pendientes() - Cuotas con estado ‘1’
  • pagadas() - Cuotas con estado ‘0’
  • vencidas() - Cuotas pendientes con fecha < hoy
  • proximasVencer(7) - Cuotas que vencen en los próximos 7 días

Exportar a Excel

GET /api/cuentas-por-pagar/exportar-excel - Requiere permiso cuentas-pagar.view Genera un archivo Excel con todas las cuentas por pagar filtradas.

Relación con Compras

Las cuentas por pagar se generan automáticamente cuando se crea una compra a crédito:
  1. Al crear una compra con forma_pago = ‘Credito’
  2. El sistema crea registros en la tabla dias_compras según el plan de cuotas
  3. Cada cuota tiene: monto, fecha (vencimiento), estado inicial ‘1’
  4. Solo las compras con estado = '1' (activas) se consideran para cuentas por pagar

Códigos de Error

400
object
Cuota ya pagada
{
  "success": false,
  "message": "Esta cuota ya está pagada"
}
404
object
Cuota no encontrada
{
  "success": false,
  "message": "Cuota no encontrada"
}
422
object
Error de validación
{
  "success": false,
  "message": "Error de validación",
  "errors": {
    "fecha_pago": ["El campo fecha pago es obligatorio"]
  }
}
500
object
Error interno del servidor
{
  "success": false,
  "message": "Error al registrar pago: [mensaje específico]"
}

Build docs developers (and LLMs) love