Tutorial: Flujo de checkout headless
Implementa un checkout personalizado usando la API de OmniBuy.
Flujo completo
Carrito → Checkout → Pago → Confirmación
1. Crear/actualizar el carrito
# El carrito se gestiona del lado del cliente (cookie o localStorage)
# Para checkout headless, crea una orden directamente:
curl -X POST https://app.omnibuy.net/api/v1/orders \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: $TENANT" \
-H "Content-Type: application/json" \
-d '{
"customer_email": "cliente@email.com",
"line_items": [
{
"variant_id": "<variant-id>",
"quantity": 2,
"price": 4900
}
],
"shipping_address": {
"first_name": "Juan",
"last_name": "García",
"address1": "Av. Javier Prado 1234",
"city": "Lima",
"country_code": "PE",
"zip": "15036"
}
}'
2. Procesar el pago (Stripe)
ORDER_ID="<id-del-paso-1>"
curl -X POST https://app.omnibuy.net/api/v1/payments \
-H "Authorization: Bearer $TOKEN" \
-H "X-Tenant-ID: $TENANT" \
-H "Content-Type: application/json" \
-d '{
"order_id": "'$ORDER_ID'",
"gateway": "stripe",
"amount": 9800,
"currency": "PEN",
"payment_method_id": "pm_xxxx"
}'
3. Confirmar la orden
Cuando el pago se confirme vía webhook, la orden pasa a estado paid automáticamente.
Ver Webhooks → para suscribirte al evento payments.payment.captured.