Descripción General
Los endpoints de Gestión de Pagos proporcionan las operaciones fundamentales para administrar los pagos de facturas del restaurante. Estos endpoints manejan el registro, consulta, actualización y eliminación de pagos, incluyendo información de formas de pago, importes y transacciones financieras.
🎯 Características de la Gestión de Pagos
- Identificación compuesta: Cada pago se identifica por tipo, serie, factura y relación
- Múltiples formas de pago: Efectivo, tarjeta, transferencia, etc.
- Pagos parciales: Soporte para múltiples pagos por factura
- Transacciones seguras: Uso de contexto de base de datos
- Resultados estructurados: ServiceResult para manejo de errores
- Retorno de datos: Tuplas con estado y objeto modificado
- Validación de datos: Verificación de integridad de la información
- Integración externa: Compatible con POS y apps móviles
Endpoints Disponibles
GET
/WorkingData/InvoicePay/{tipoDocumento}/{serie}/{factura}
Obtiene todos los pagos de una factura específica por su tipo de documento, serie y número. Este endpoint permite recuperar la información completa de todos los pagos realizados para una factura.
Parámetros de ruta:
- tipoDocumento (string, requerido): Tipo de documento (ej: "FACTURA", "TICKET")
- serie (string, requerido): Serie del documento
- factura (double, requerido): Número de factura
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 de factura devueltos exitosamente
[
{
"tipoDocumento": "FACTURA",
"serie": "A",
"factura": 1001,
"relacion": 1,
"importe": 25.00,
"formaPago": "EFECTIVO",
"fechaPago": "2024-01-15T14:30:00Z",
"referencia": "",
"observaciones": "Pago en efectivo",
"usuario": "CAJERO01"
},
{
"tipoDocumento": "FACTURA",
"serie": "A",
"factura": 1001,
"relacion": 2,
"importe": 15.00,
"formaPago": "TARJETA",
"fechaPago": "2024-01-15T14:31:00Z",
"referencia": "TXN123456",
"observaciones": "Pago con tarjeta Visa",
"usuario": "CAJERO01"
}
]
400 Bad Request
Error en la solicitud o factura no encontrada
{
"isSuccess": false,
"error": "Factura no encontrada",
"data": null
}
POST
/WorkingData/InvoicePay
Agrega un nuevo pago a una factura existente. Este endpoint permite añadir pagos a una factura ya creada, retornando tanto el estado de la operación como el objeto de pago insertado con campos autogenerados.
Body (JSON):
{
"tipoDocumento": "FACTURA",
"serie": "A",
"factura": 1001,
"importe": 40.00,
"formaPago": "TARJETA",
"referencia": "TXN789012",
"observaciones": "Pago con tarjeta Mastercard",
"usuario": "CAJERO01"
}
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
Pago agregado exitosamente
{
"added": true,
"payment": {
"tipoDocumento": "FACTURA",
"serie": "A",
"factura": 1001,
"relacion": 3,
"importe": 40.00,
"formaPago": "TARJETA",
"fechaPago": "2024-01-15T15:00:00Z",
"referencia": "TXN789012",
"observaciones": "Pago con tarjeta Mastercard",
"usuario": "CAJERO01"
}
}
400 Bad Request
Error al agregar el pago
{
"isSuccess": false,
"error": "Error al agregar pago: Importe excede el total de la factura",
"data": null
}
PUT
/WorkingData/InvoicePay
Actualiza un pago existente de una factura. Este endpoint permite modificar la información de un pago ya registrado, retornando tanto el estado de la operación como el objeto de pago actualizado.
Body (JSON):
{
"tipoDocumento": "FACTURA",
"serie": "A",
"factura": 1001,
"relacion": 2,
"importe": 20.00,
"formaPago": "TARJETA",
"referencia": "TXN123456",
"observaciones": "Pago con tarjeta Visa actualizado",
"usuario": "CAJERO01"
}
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
Pago actualizado exitosamente
{
"updated": true,
"payment": {
"tipoDocumento": "FACTURA",
"serie": "A",
"factura": 1001,
"relacion": 2,
"importe": 20.00,
"formaPago": "TARJETA",
"fechaPago": "2024-01-15T14:31:00Z",
"referencia": "TXN123456",
"observaciones": "Pago con tarjeta Visa actualizado",
"usuario": "CAJERO01"
}
}
400 Bad Request
Error al actualizar el pago
{
"isSuccess": false,
"error": "Error al actualizar pago: Pago no encontrado",
"data": null
}
DELETE
/WorkingData/InvoicePay/{tipoDocumento}/{serie}/{factura}/{linea}
Elimina un pago específico de una factura. Este endpoint permite remover un pago de una factura, útil para corregir errores o cancelar pagos incorrectos.
Parámetros de ruta:
- tipoDocumento (string, requerido): Tipo de documento
- serie (string, requerido): Serie del documento
- factura (double, requerido): Número de factura
- linea (int, requerido): Número de línea de pago a eliminar
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
Pago eliminado exitosamente
{
"isSuccess": true,
"error": null,
"data": true
}
400 Bad Request
Error al eliminar el pago
{
"isSuccess": false,
"error": "Error al eliminar pago: No se puede eliminar pago de factura cerrada",
"data": false
}
Servicio Utilizado
IInvoicePayService - Servicio principal para la gestión de pagos de facturas
- GetInvoicePayments(): Obtiene todos los pagos de una factura
- AddInvoicePayment(): Agrega un nuevo pago a una factura
- UpdateInvoicePayment(): Actualiza un pago existente
- DeleteInvoicePayment(): Elimina un pago específico