← Volver a InvoiceController

💰 Gestión de Pagos

Endpoints para la gestión completa de pagos y cobros de facturas

Descripción General

Los endpoints de Gestión de Pagos proporcionan las operaciones fundamentales para administrar los pagos y cobros de facturas en el sistema RestMaster. Estos endpoints permiten consultar todos los pagos, filtrar por factura específica y agregar nuevos pagos, incluyendo el manejo especial de propinas.

🎯 Características de la Gestión de Pagos

  • Consulta completa: Obtener todos los pagos del sistema
  • Filtrado por factura: Pagos específicos de una factura
  • Agregar pagos: Incluir nuevos pagos a facturas existentes
  • Manejo de propinas: Gestión especial de propinas que pueden exceder el total
  • Validación de totales: Verificación de que los pagos no excedan el total de la factura
  • Múltiples formas de pago: Soporte para diferentes métodos de pago

Endpoints Disponibles

GET /WorkingData/Invoice/payments/all

Obtiene todos los pagos de facturas. Este endpoint recupera todos los pagos de facturas registrados en la base de datos, independientemente de la serie, número o fecha. Útil para propósitos administrativos o recuperación masiva de datos.
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
200 OK
Pagos obtenidos exitosamente
[ { "tipoDocumento": "F", "serie": "A", "factura": 123, "importe": 25.50, "formaPago": "Efectivo", "fecha": "2024-01-15T10:30:00Z" }, { "tipoDocumento": "F", "serie": "A", "factura": 124, "importe": 20.00, "formaPago": "Tarjeta", "fecha": "2024-01-15T11:00:00Z" } ]
400 Bad Request
Error de validación
500 Internal Server Error
Error interno del servidor

GET /WorkingData/Invoice/payments/by-serie-factura

Obtiene pagos por serie y número de factura. Este endpoint recupera todos los pagos asociados a una factura específica, identificada por su serie y número. Útil para verificar el estado de pagos de una factura particular.
Parámetros de consulta:
  • serie (string, requerido): Serie de la factura
  • factura (double, requerido): Número de la factura
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
200 OK
Pagos obtenidos exitosamente

[
  {
    "tipoDocumento": "F",
    "serie": "A",
    "factura": 123,
    "importe": 25.50,
    "formaPago": "Efectivo",
    "fecha": "2024-01-15T10:30:00Z"
  },
  {
    "tipoDocumento": "F",
    "serie": "A",
    "factura": 123,
    "importe": 20.00,
    "formaPago": "Tarjeta",
    "fecha": "2024-01-15T10:35:00Z"
  }
]
400 Bad Request
Error de validación
500 Internal Server Error
Error interno del servidor

POST /WorkingData/Invoice/add-payment

Agrega un pago a una factura existente. Este endpoint permite agregar una línea de pago a una factura específica. Si el parámetro tip es false (por defecto), la suma de todos los pagos no puede exceder el total de la factura. Si tip es true, el pago se trata como propina y puede exceder el total.
Body (JSON - FacturasCobro):

{
  "tipoDocumento": "F",
  "serie": "A",
  "factura": 123,
  "importe": 10.00,
  "formaPago": "Efectivo"
}
Parámetros de consulta:
  • initialCatalog (string, requerido): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos
  • tip (bool, opcional): Si es true, trata el pago como propina (por defecto: false)
200 OK
Pago agregado exitosamente
true
400 Bad Request
La suma de pagos excede el total de la factura (y no es propina), la factura no existe, o error de validación
{ "message": "La suma de pagos excede el total de la factura", "code": "PAYMENT_EXCEEDS_TOTAL" }
500 Internal Server Error
Error interno del servidor

Modelo de Datos - FacturasCobro

Propiedades del modelo FacturasCobro:
  • TipoDocumento (string): Tipo de documento (F=Factura, T=Ticket, etc.)
  • Serie (string): Serie de la factura
  • Factura (double): Número de la factura
  • Importe (decimal): Importe del pago
  • FormaPago (string): Forma de pago (Efectivo, Tarjeta, etc.)
  • Fecha (DateTime): Fecha del pago
  • Observaciones (string, opcional): Observaciones adicionales

Servicio Utilizado

IInvoiceService - Servicio principal para la gestión de facturas
  • GetAllInvoicePayments(): Obtiene todos los pagos
  • GetInvoicePaymentsBySerieAndNumber(): Obtiene pagos por serie y factura
  • AddPaymentToInvoice(): Agrega un pago a una factura

Ejemplos de Uso

Ejemplo 1: Obtener Todos los Pagos

Petición
GET /WorkingData/Invoice/payments/all?initialCatalog=ELSIFON
Respuesta
[
  {
    "tipoDocumento": "F",
    "serie": "A",
    "factura": 123,
    "importe": 25.50,
    "formaPago": "Efectivo",
    "fecha": "2024-01-15T10:30:00Z"
  }
]

Ejemplo 2: Obtener Pagos de una Factura Específica

Petición
GET /WorkingData/Invoice/payments/by-serie-factura?serie=A&factura=123&initialCatalog=ELSIFON
Respuesta
[
  {
    "tipoDocumento": "F",
    "serie": "A",
    "factura": 123,
    "importe": 25.50,
    "formaPago": "Efectivo",
    "fecha": "2024-01-15T10:30:00Z"
  }
]

Ejemplo 3: Agregar Pago Regular

Petición
POST /WorkingData/Invoice/add-payment?initialCatalog=ELSIFON&tip=false
Content-Type: application/json

{
  "tipoDocumento": "F",
  "serie": "A",
  "factura": 123,
  "importe": 10.00,
  "formaPago": "Efectivo"
}
Respuesta
true

Ejemplo 4: Agregar Propina

Petición
POST /WorkingData/Invoice/add-payment?initialCatalog=ELSIFON&tip=true
Content-Type: application/json

{
  "tipoDocumento": "F",
  "serie": "A",
  "factura": 123,
  "importe": 5.00,
  "formaPago": "Efectivo"
}
Respuesta
true

Notas Importantes

ℹ️ Consideraciones sobre Pagos

  • Validación de totales: Los pagos regulares no pueden exceder el total de la factura
  • Propinas: Las propinas pueden exceder el total y se registran en el campo Propina de la cabecera
  • Múltiples formas de pago: Se pueden combinar diferentes métodos de pago en una misma factura
  • Auditoría: Todos los pagos se registran con fecha y hora para auditoría
  • Integridad: Se valida que la factura exista antes de agregar pagos