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
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