diff --git a/controlador/procesarVenta.php b/controlador/procesarVenta.php
new file mode 100644
index 0000000..778355d
--- /dev/null
+++ b/controlador/procesarVenta.php
@@ -0,0 +1,62 @@
+<?php
+require_once '../modelo/BaseDatos.php';
+require_once '../modelo/Venta.php';
+require_once '../modelo/Boleto.php';
+require_once '../modelo/Sala.php';
+
+error_reporting(E_ALL);
+ini_set('display_errors', 1);
+
+// Configuración de la base de datos
+$host = 'localhost';
+$usuario = 'root';
+$password = 'password';
+$nombreBD = 'boletos_db';
+$bd = new BaseDatos($host, $usuario, $password, $nombreBD);
+
+// Verificar que los datos fueron recibidos correctamente
+if ($_SERVER['REQUEST_METHOD'] === 'POST') {
+    $nombreCliente = $_POST['nombre_cliente'] ?? '';
+    $asientosSeleccionados = $_POST['asientos'] ?? [];
+    $idSala = 1; // Asegúrate de que el ID de la sala está definido
+
+    if (empty($nombreCliente) || empty($asientosSeleccionados) || !$idSala) {
+        echo json_encode(['success' => false, 'message' => 'Datos incompletos']);
+        exit;
+    }
+
+    // Cargar la sala desde la base de datos
+    $sala = $bd->cargarSala($idSala);
+    if (!$sala) {
+        echo json_encode(['success' => false, 'message' => 'Sala no encontrada']);
+        exit;
+    }
+
+    // Obtener los boletos seleccionados
+    $boletosDisponibles = $sala->obtenerBoletosPorId($asientosSeleccionados);
+    if (count($boletosDisponibles) !== count($asientosSeleccionados)) {
+        echo json_encode(['success' => false, 'message' => 'Uno o más boletos no están disponibles']);
+        exit;
+    }
+
+    // Calcular el total de la venta
+    $total = array_reduce($boletosDisponibles, function($sum, $boleto) {
+        return $sum + $boleto->getPrecio();
+    }, 0);
+
+    // Crear una nueva venta
+    $venta = new Venta($nombreCliente);
+    $venta->agregarBoletos($boletosDisponibles);
+
+    // Guardar la venta en la base de datos
+    if ($bd->guardarVenta($venta)) {
+        echo json_encode(['success' => true, 'message' => 'Venta realizada con éxito', 'total' => $total]);
+    } else {
+        echo json_encode(['success' => false, 'message' => 'Error al registrar la venta']);
+    }
+} else {
+    echo json_encode(['success' => false, 'message' => 'Método no permitido']);
+}
+
+$bd->cerrarConexion();
+?>
\ No newline at end of file