Integracion Wompi · Produccion I-ME

Pagina tecnica para dar de alta el comercio y validar el intercambio API

Esta ruta publica concentra lo que Wompi espera del comercio segun su checkout web y la referencia operativa de WooCommerce: URL de eventos, redirects, endpoint de checkout, payloads y checklist de activacion.

Checkout Web Webhook firmado IVA y retenciones server-side Supabase Edge Functions

Datos para copiar

URLs operativas del comercio

URL pública de alta

https://i-me.com.co/pagoswompi

Landing técnica pública para validación operativa y referencia del comercio.

URL de eventos Wompi

https://nnfbucwiasuggyfoyydo.supabase.co/functions/v1/webhook-wompi

Endpoint para pegar en Mi cuenta > URL de eventos, siguiendo el flujo recomendado por Wompi y su plugin de WooCommerce.

API de checkout

https://nnfbucwiasuggyfoyydo.supabase.co/functions/v1/crear-pago

Edge Function que recalcula pedido, firma la integridad y devuelve el checkout hospedado.

Redirect éxito

https://i-me.com.co/es/pago/exito?ref={pedido_id}

Pantalla pública de retorno tras el checkout; la aprobación final la define el webhook server-side.

Redirect fallo

https://i-me.com.co/es/pago/fallo?ref={pedido_id}

Ruta pública de contingencia para cancelación o rechazo visible al usuario.

Flujo operativo

Como se mueve la informacion entre I-ME y Wompi

1. Alta del comercio

Crear la cuenta Wompi, habilitar producción o sandbox y registrar la URL de eventos del comercio, igual que en la referencia oficial del plugin de WooCommerce.

2. Orquestación del checkout

El frontend o el carrito llaman a crear-pago. El servidor recalcula stock, precios, IVA y retenciones antes de generar la referencia del pedido.

3. Firma y apertura

La capa de pagos genera amount_in_cents, reference y signature.integrity para Wompi Web Checkout. El usuario es redirigido al checkout hospedado.

4. Confirmación asincrónica

Wompi envía transaction.updated al webhook del comercio. El servidor valida checksum SHA-256, consulta el estado real y actualiza el pedido.

5. Post-pago

Si el estado final es APPROVED, I-ME marca el pedido como pagado, conserva la referencia y dispara el fulfillment definido para los productos aplicables.

Alta tecnica

Checklist minima antes de activar cobro real

Lo que pide Wompi

  • Cuenta Wompi creada para el comercio.
  • URL de eventos registrada en el dashboard.
  • Ambiente sandbox y produccion separados.
  • Llaves y secretos disponibles para la integracion tecnica.

Lo que ya resuelve I-ME

  • Recalculo server-side antes de abrir checkout.
  • Referencia unica de pedido y persistencia de checkout_url.
  • Validacion de webhook por checksum y reconsulta del estado real.
  • Compatibilidad con flujo fiscal colombiano para factura e impuestos.

Checklist de activacion

  1. Cuenta Wompi del comercio creada y verificada.
  2. Llaves del ambiente objetivo disponibles: pública, privada, secreto de integridad y secreto de eventos.
  3. URL de eventos pegada en el dashboard de Wompi.
  4. SITE_URL y entorno Supabase activos para redirects y Edge Functions.
  5. Prueba sandbox de transacción y confirmación por webhook completadas antes de activar dinero real.

Payloads reales

Intercambio API esperado

1. Solicitud de checkout

POST https://nnfbucwiasuggyfoyydo.supabase.co/functions/v1/crear-pago
Content-Type: application/json

{
  "items": [
    { "slug": "consumible-ejemplo", "cantidad": 1 }
  ],
  "cliente": {
    "nombre": "Laura",
    "apellido": "Gomez",
    "email": "compras@clinica-ejemplo.com",
    "telefono": "3001234567",
    "institucion": "Clinica Ejemplo"
  },
  "mercado": "CO",
  "consentimiento_datos": true,
  "locale": "es",
  "fiscal": {
    "solicitar_factura_electronica": true,
    "tipo_documento": "NIT",
    "numero_documento": "900123456",
    "tipo_persona": "juridica",
    "razon_social": "Clinica Ejemplo SAS"
  }
}

2. Respuesta del servidor

{
  "ok": true,
  "checkout_url": "https://checkout.wompi.co/p/?public-key=...&reference=...&signature:integrity=...",
  "referencia": "pedido_uuid"
}

3. Evento que debe llegar al webhook

POST https://nnfbucwiasuggyfoyydo.supabase.co/functions/v1/webhook-wompi

{
  "event": "transaction.updated",
  "data": {
    "transaction": {
      "id": "123456-1712345678-99999",
      "reference": "pedido_uuid",
      "status": "APPROVED",
      "amount_in_cents": 11900000
    }
  },
  "signature": {
    "properties": [
      "transaction.id",
      "transaction.status",
      "transaction.amount_in_cents"
    ],
    "checksum": "sha256_calculado_por_wompi"
  },
  "timestamp": 1712345678
}

Nota operativa

Esta pagina no expone llaves privadas ni secretos. El sitio solo publica rutas y contratos de integracion. La firma de integridad, la validacion del webhook y la actualizacion del pedido ocurren exclusivamente del lado servidor.