Skip to main content
GET
/
api
/
metodos-pago
Métodos de Pago
curl --request GET \
  --url https://api.example.com/api/metodos-pago \
  --header 'Content-Type: application/json' \
  --data '
{
  "nombre": "<string>",
  "es_efectivo": true,
  "id_banco": 123,
  "id_cuenta": 123,
  "activo": true,
  "id_metodo_pago": 123,
  "habilitado": true,
  "comision": 123,
  "limite_minimo": 123,
  "limite_maximo": 123,
  "requiere_comprobante": true,
  "requiere_referencia": true
}
'
{
  "404": {},
  "422": {},
  "500": {},
  "success": true,
  "data": [
    {
      "id_metodo_pago": 123,
      "nombre": "<string>",
      "es_efectivo": true,
      "id_banco": 123,
      "id_cuenta": 123,
      "activo": true,
      "banco": {},
      "cuentaBancaria": {
        "id_cuenta": 123,
        "numero_cuenta": "<string>",
        "tipo_cuenta": "<string>",
        "moneda": "<string>",
        "banco": {}
      }
    }
  ]
}

Autenticación

Los endpoints de métodos de pago requieren autenticación mediante token Bearer.

Listar Métodos de Pago

GET /api/metodos-pago Retorna todos los métodos de pago activos con información de banco y cuenta asociada.

Respuesta

success
boolean
Indica si la operación fue exitosa
data
array
Lista de métodos de pago activos ordenados por nombre

Ejemplo de Respuesta

{
  "success": true,
  "data": [
    {
      "id_metodo_pago": 1,
      "nombre": "Efectivo",
      "es_efectivo": true,
      "id_banco": null,
      "id_cuenta": null,
      "activo": true,
      "banco": null,
      "cuentaBancaria": null
    },
    {
      "id_metodo_pago": 2,
      "nombre": "Transferencia BCP",
      "es_efectivo": false,
      "id_banco": 1,
      "id_cuenta": 5,
      "activo": true,
      "banco": {
        "id_banco": 1,
        "nombre": "Banco de Crédito del Perú",
        "codigo_sunat": "002"
      },
      "cuentaBancaria": {
        "id_cuenta": 5,
        "numero_cuenta": "19412345678901",
        "tipo_cuenta": "Corriente",
        "moneda": "PEN",
        "banco": {
          "id_banco": 1,
          "nombre": "Banco de Crédito del Perú"
        }
      }
    },
    {
      "id_metodo_pago": 3,
      "nombre": "Tarjeta Visa",
      "es_efectivo": false,
      "id_banco": null,
      "id_cuenta": null,
      "activo": true,
      "banco": null,
      "cuentaBancaria": null
    }
  ]
}

Crear Método de Pago

POST /api/metodos-pago - Requiere permiso finanzas.create

Parámetros del Body

nombre
string
required
Nombre descriptivo del método de pago
es_efectivo
boolean
required
Indica si es efectivo (true) o electrónico (false)
id_banco
integer
ID del banco (requerido si es_efectivo = false y tiene cuenta bancaria)
id_cuenta
integer
ID de la cuenta bancaria asociada (requerido si es_efectivo = false y se quiere vincular a cuenta)
activo
boolean
Estado del método (por defecto: true)

Ejemplo de Solicitud - Efectivo

curl -X POST \
  https://tudominio.com/api/metodos-pago \
  -H 'Authorization: Bearer TU_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "nombre": "Efectivo",
    "es_efectivo": true,
    "activo": true
  }'

Ejemplo de Solicitud - Transferencia Bancaria

curl -X POST \
  https://tudominio.com/api/metodos-pago \
  -H 'Authorization: Bearer TU_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "nombre": "Transferencia BCP",
    "es_efectivo": false,
    "id_banco": 1,
    "id_cuenta": 5,
    "activo": true
  }'

Lógica Automática

Si es_efectivo = true, el sistema automáticamente establece:
$data['id_banco'] = null;
$data['id_cuenta'] = null;
Esto garantiza que los métodos de efectivo no tengan referencias bancarias.

Actualizar Método de Pago

PUT /api/metodos-pago/{id} - Requiere permiso finanzas.edit La misma lógica de creación aplica para actualización.

Eliminar Método de Pago

DELETE /api/metodos-pago/{id} - Requiere permiso finanzas.delete

Configuración por Empresa

Obtener Configuración

GET /api/metodos-pago/empresa/configuracion Retorna la configuración de métodos de pago para la empresa del usuario autenticado.
{
  "success": true,
  "data": [
    {
      "id_configuracion": 1,
      "id_empresa": 1,
      "id_metodo_pago": 2,
      "habilitado": true,
      "comision": 2.5,
      "limite_minimo": 10.00,
      "limite_maximo": 50000.00,
      "requiere_comprobante": true,
      "requiere_referencia": true,
      "metodo": {
        "id_metodo_pago": 2,
        "nombre": "Transferencia BCP"
      }
    }
  ]
}

Guardar Configuración

POST /api/metodos-pago/empresa/configuracion - Requiere permiso finanzas.edit Configura o actualiza la configuración de un método de pago para la empresa.

Parámetros del Body

id_metodo_pago
integer
required
ID del método de pago a configurar
habilitado
boolean
Indica si el método está habilitado para la empresa
comision
decimal
Porcentaje de comisión (debe ser mayor o igual a 0)
limite_minimo
decimal
Monto mínimo para usar este método (debe ser mayor o igual a 0)
limite_maximo
decimal
Monto máximo para usar este método (debe ser mayor o igual a 0)
requiere_comprobante
boolean
Indica si se debe adjuntar comprobante de pago
requiere_referencia
boolean
Indica si se debe ingresar número de referencia/operación

Ejemplo de Solicitud

curl -X POST \
  https://tudominio.com/api/metodos-pago/empresa/configuracion \
  -H 'Authorization: Bearer TU_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "id_metodo_pago": 2,
    "habilitado": true,
    "comision": 2.5,
    "limite_minimo": 10.00,
    "limite_maximo": 50000.00,
    "requiere_comprobante": true,
    "requiere_referencia": true
  }'
El sistema usa updateOrCreate, por lo que crea o actualiza según exista la configuración.

Tipos de Métodos de Pago Comunes

Efectivo

  • es_efectivo = true
  • Sin banco ni cuenta asociada
  • Se registra en la caja directamente

Transferencia Bancaria

  • es_efectivo = false
  • Requiere id_banco y id_cuenta
  • Registra movimiento en cuenta bancaria

Tarjeta de Crédito/Débito

  • es_efectivo = false
  • Puede o no tener cuenta asociada según si se usa procesador de pagos
  • Generalmente requiere referencia (número de autorización)

Yape/Plin/Billeteras Digitales

  • es_efectivo = false
  • Puede vincularse a cuenta bancaria de empresa
  • Requiere número de operación

Relación con Otros Módulos

  • Ventas - Cada venta tiene un id_tipo_pago que referencia a metodos_pago
  • Cajas - Las cajas tienen métodos de pago asociados mediante la tabla caja_metodos_pago
  • Dashboard - El endpoint /api/dashboard/metodos-pago agrupa ventas por método de pago

Códigos de Error

404
object
Método de pago no encontrado
{
  "success": false,
  "message": "Método de pago no encontrado"
}
422
object
Error de validación
{
  "success": false,
  "message": "Error de validación",
  "errors": {
    "id_metodo_pago": ["El campo id metodo pago es obligatorio"]
  }
}
500
object
Error interno del servidor
{
  "success": false,
  "message": "Error al obtener métodos de pago: [mensaje específico]"
}

Build docs developers (and LLMs) love