Durante años, muchos programadores creyeron que Visual Basic 6 estaba condenado a quedarse aislado del mundo moderno. Sin embargo, la realidad es muy distinta.
Hoy es posible conectar un sistema desarrollado en VB6 con una API REST, enviar datos en formato JSON y sincronizar información con la nube sin necesidad de reescribir todo el software.
Si tienes un sistema legacy (Sistema antiguo) funcionando en empresas reales, esta puede ser la forma más inteligente de modernizarlo sin destruir lo que ya funciona.
¿Por qué conectar VB6 con una API?
Muchas empresas todavía usan software desarrollado en VB6 para:
- Facturación
- Inventarios
- Cartera
- Nómina
- Gestión administrativa
El problema no es que el sistema funcione mal.
El problema es que está aislado.
Al conectarlo a una API puedes:
- Sincronizar datos con la web
- Generar reportes online
- Implementar facturación electrónica
- Integrar pagos en línea
- Crear aplicaciones móviles conectadas al sistema existente
Y todo sin reescribir el núcleo del software.
Arquitectura recomendada
La arquitectura más práctica es esta:
VB6 (cliente local)
⬇
API REST (PHP / Lumen / CodeIgniter / Node)
⬇
Base de datos central en la nube
El software VB6 sigue funcionando localmente, pero ahora puede enviar y recibir información a través de HTTP.
¿Qué necesitas para hacerlo funcionar?
-
Un servidor con una API REST
-
Un endpoint que reciba datos en JSON
-
Código en VB6 capaz de hacer peticiones HTTP
-
Un formato estructurado para enviar la información
Enviando datos JSON desde VB6
En VB6 puedes usar:
-
MSXML2.XMLHTTP
-
WinHttp.WinHttpRequest
-
Librerías externas para HTTP
Ejemplo básico usando MSXML2:
Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")
Dim url As String
url = "https://tuservidor.com/api/ventas"
Dim json As String
json = "{""cliente"":""Juan Perez"",""total"":150000}"
http.Open "POST", url, False
http.setRequestHeader "Content-Type", "application/json"
http.Send json
MsgBox http.responseText
Con esto ya estás enviando datos desde VB6 hacia una API moderna.
En el lado del servidor (API)
Tu API puede recibir esos datos así (ejemplo en PHP):
$data = json_decode(file_get_contents("php://input"), true);
$cliente = $data['cliente'];
$total = $data['total'];
Desde allí puedes:
- Guardar en base de datos
- Validar información
- Generar documentos electrónicos
- Responder con confirmación
Seguridad: lo que muchos olvidan
No basta con enviar datos.
Debes proteger:
- Autenticación (tokens JWT o API Key)
- Validación de estructura
- Encriptación HTTPS obligatoria
- Control de errores
Un sistema legacy conectado a internet sin seguridad es una puerta abierta.
✅ Proyecto de ejemplo: VB6 conectándose a una API en PHP (GET + POST)
Texto:
Para que esto no se quede solo en teoría, te dejo un proyecto mínimo funcional.
Con este ejemplo podrás comprobar dos cosas:
GET: verificar que la API está viva (prueba rápida)
POST: enviar datos (nombre y email) en JSON y recibir respuesta del servidor
Bloque CTA (tu link a MediaFire / descarga):
📦 Descargar proyecto completo (VB6 + API PHP):
👉 [Descargar aquí] (PONES TU LINK)
✅ Incluye: Formulario VB6 + código + archivo
api.php+ instrucciones.
Así se ve el formulario del ejemplo (VB6): dos campos, dos botones y la respuesta de la API.

Requisitos
🧰 Requisitos para probar el ejemplo
Lista:
-
Visual Basic 6 (IDE)
-
XAMPP (Apache + PHP)
-
Windows 10/11 (sirve igual)
-
Internet NO es obligatorio (funciona en localhost)
4) Sección: “Instalación rápida”
H2:
⚙️ Instalación rápida (5 minutos)
Pasos (texto listo):
Paso 1: Copiar la API en XAMPP
-
Abre esta carpeta:
C:\\xampp\\htdocs\\ -
Crea una carpeta llamada:
api_vb6 -
Dentro pega el archivo:
api.php
✅ Debe quedar así:C:\\xampp\\htdocs\\api_vb6\\api.php
Paso 2: Iniciar Apache
Abre XAMPP y enciende Apache.
Paso 3: Probar la API en el navegador (GET)
Abre esta URL:
http://localhost/api_vb6/api.php
segunda api:
http://localhost/api_vb6/api_v2.php
api remota:
https://programaresfacil.co/api_prueba/api.php
https://programaresfacil.co/api_prueba/api_v2.php
Si todo está bien, verás algo como:
{"estado":"ok","mensaje":"API funcionando correctamente"}
Código PHP API básica que responde JSON a VB6

Esta API responde JSON.
Si es GET, solo confirma que está funcionando.
Si es POST, recibe JSON desde VB6 y responde los datos recibidos.
Código VB6: GET y POST
' -----------------------------------------------
' BOTON CONSULTAR (GET)
' Solo verifica que la API este funcionando
' -----------------------------------------------
Private Sub btnConsultar_Click()
On Error GoTo ErrorHandler
Dim http As Object
lblEstado.Caption = "Consultando API..."
DoEvents
' Crear objeto HTTP
Set http = CreateObject("MSXML2.XMLHTTP.6.0")
' Peticion GET (solo consulta, no envia datos)
http.Open "GET", txtUrlApi.Text, False
http.send
' Mostrar respuesta
txtRespuesta.Text = "Estado HTTP: " & http.Status & vbCrLf & vbCrLf & http.responseText
lblEstado.Caption = "Consulta completada - Estado: " & http.Status
Set http = Nothing
Exit Sub
ErrorHandler:
txtRespuesta.Text = "ERROR: " & Err.Description & vbCrLf & vbCrLf & _
"Verifique que:" & vbCrLf & _
"1. Apache (XAMPP) este iniciado" & vbCrLf & _
"2. La URL sea correcta"
lblEstado.Caption = "Error en la consulta"
End Sub
' -----------------------------------------------
' BOTON ENVIAR (POST)
' Envia nombre y email como JSON a la API
' Tal como se explica en el blog:
' json = "{""nombre"":""Juan"",""email"":""juan@mail.com""}"
' -----------------------------------------------
Private Sub btnEnviar_Click()
On Error GoTo ErrorHandler
' Validar campos
If Trim(txtNombre.Text) = "" Or Trim(txtEmail.Text) = "" Then
MsgBox "Debe ingresar nombre y email.", vbExclamation, "Campos requeridos"
txtNombre.SetFocus
Exit Sub
End If
Dim http As Object
Dim json As String
lblEstado.Caption = "Enviando datos a la API..."
DoEvents
' Crear objeto HTTP
Set http = CreateObject("MSXML2.XMLHTTP.6.0")
' Armar el JSON con los datos del formulario
json = "{""nombre"":""" & txtNombre.Text & """,""email"":""" & txtEmail.Text & """}"
' Peticion POST con JSON
http.Open "POST", txtUrlApi.Text, False
http.setRequestHeader "Content-Type", "application/json"
http.send json
' Mostrar respuesta
txtRespuesta.Text = "JSON Enviado:" & vbCrLf & json & vbCrLf & vbCrLf & _
"Estado HTTP: " & http.Status & vbCrLf & vbCrLf & _
"Respuesta:" & vbCrLf & http.responseText
lblEstado.Caption = "Envio completado - Estado: " & http.Status
Set http = Nothing
Exit Sub
ErrorHandler:
txtRespuesta.Text = "ERROR: " & Err.Description & vbCrLf & vbCrLf & _
"Verifique que:" & vbCrLf & _
"1. Apache (XAMPP) este iniciado" & vbCrLf & _
"2. La URL sea correcta"
lblEstado.Caption = "Error al enviar datos"
End Sub
¿Qué está pasando detrás del botón?
Texto simple:
Cuando presionas Consultar (GET) VB6 hace esto:
-
Envía una petición a la URL
-
La API responde un JSON de confirmación
Cuando presionas Enviar (POST) VB6 hace esto:
-
Construye un JSON:
{"nombre":"Juan","email":"juan@mail.com"}
-
Lo envía al servidor
-
La API responde con JSON confirmando que recibió los datos
✅ Eso es una API: VB6 hablando con un servidor mediante HTTP + JSON.
Errores comunes (y solución rápida)
-
Error 404 / No encuentra la API
✅ Verifica que existe:C:\\xampp\\htdocs\\api_vb6\\api.php -
No responde / Status 0
✅ Apache apagado. Enciende Apache en XAMPP. -
No muestra JSON
✅ Abre primero en navegador:http://localhost/api_vb6/api.php -
Tu Windows bloquea
✅ Ejecuta XAMPP como administrador.
Descarga el ejemplo Api básica con vb6 y PHP (22 descargas )
🚀 Próximo paso
En este ejemplo usamos
localhost, pero el verdadero poder es cuando tu VB6 se conecta a una API en un servidor real (con base de datos, login y seguridad).
En el próximo artículo lo haremos paso a paso.
¿Es necesario migrar todo el sistema?
No.
Y aquí está el punto clave.
La modernización inteligente no destruye lo que funciona.
Puedes:
- Mantener VB6 como frontend local
- Mover lógica crítica a la API
- Crear módulos nuevos en tecnologías modernas
- Migrar por etapas
Eso reduce riesgo, tiempo y costos.
Ventajas de esta estrategia
✔ No pierdes estabilidad
✔ No detienes operación de la empresa
✔ Reduces costos de reescritura total
✔ Puedes vender el sistema como “híbrido moderno”
¿Vale la pena hacerlo?
Si tu software:
- Ya tiene clientes
- Ya genera ingresos
- Ya está probado
Entonces sí.
Modernizar por integración es mucho más rentable que empezar desde cero.
Reflexión final
Muchos programadores creen que VB6 está muerto.
La realidad es que lo que está muerto es el aislamiento tecnológico.
Un sistema legacy puede seguir generando valor durante años si se conecta correctamente al ecosistema moderno.
La pregunta no es si debes migrar todo.
La pregunta es:
¿Estás dispuesto a modernizar estratégicamente lo que ya tienes?
🔜 ¿Qué sigue?
Conectar VB6 a una API REST es solo el primer paso.
En el próximo artículo veremos cómo:
-
Implementar autenticación segura con tokens
-
Proteger tu API contra accesos no autorizados
-
Manejar errores correctamente desde VB6
-
Validar respuestas del servidor
-
Preparar tu sistema para producción real
Porque enviar datos es fácil.
Lo importante es hacerlo de forma profesional y segura.
Si tienes un sistema en VB6 funcionando en empresas reales, esta serie te ayudará a modernizarlo sin reescribirlo desde cero.

