Cómo automatizar los pagos SPEI en tu tienda Shopify en México con apiCEP
El problema que tienen todas las tiendas Shopify en México con SPEI
Shopify es la plataforma de e-commerce más usada en México por marcas que venden en línea. Tiene pasarelas para tarjetas, PayPal, OXXO y transferencias SPEI — pero con una diferencia importante: los pagos con tarjeta y OXXO se confirman automáticamente, y los pagos SPEI no.
Cuando un cliente de tu tienda Shopify elige pagar por transferencia bancaria, Shopify no tiene forma nativa de saber si el pago llegó. El proceso estándar que adoptan la mayoría de los merchants es crear una página de "reportar pago" donde el cliente sube el comprobante manualmente, y alguien del equipo lo revisa antes de procesar el pedido.
Eso funciona, pero introduce fricción para el cliente y trabajo manual para el equipo — y escala mal cuando el volumen de pedidos crece.
apiCEP resuelve ese problema con una integración directa entre Shopify y Banxico: el cliente sube el comprobante, apiCEP lo valida en segundos, y el pedido pasa a procesarse solo.
Por qué Shopify + SPEI es siempre manual sin integración adicional
Shopify gestiona los pagos a través de su sistema de "gateways". Para tarjetas, el gateway confirma la transacción en tiempo real. Para SPEI no existe un gateway nativo que haga eso — la transferencia bancaria es una operación fuera de Shopify que el sistema no puede detectar automáticamente.
Las opciones que usan los merchants hoy:
- Página de "reportar pago" — el cliente hace la transferencia y después regresa al sitio a subir el comprobante. El equipo lo revisa manualmente.
- WhatsApp o correo — el cliente manda el comprobante por mensaje. Alguien del equipo lo confirma antes de procesar el pedido.
- Revisión del banco — el equipo revisa el estado de cuenta periódicamente y libera los pedidos cuando encuentra la transferencia.
Todos esos métodos tienen el mismo problema: dependen de una persona revisando algo. Con apiCEP, esa persona sale de la ecuación.
La arquitectura de la solución para Shopify
La integración con apiCEP en Shopify tiene tres componentes:
- Página de pago SPEI personalizada — donde el cliente sube el comprobante después de hacer su transferencia (puede ser una página Shopify estática o una app custom).
- Webhook o backend — recibe la imagen del comprobante y llama a apiCEP.
- Actualización automática del pedido en Shopify — cuando apiCEP confirma el pago, tu backend usa la API de Shopify para marcar el pedido como pagado y notificar al equipo de preparación.
El flujo completo desde el cliente:
- Agrega productos al carrito y elige "pagar por transferencia SPEI".
- Shopify crea el pedido en estado "pendiente de pago" y muestra tu CLABE y el monto.
- El cliente hace la transferencia y sube el comprobante en la página de pago.
- Tu backend recibe la imagen y llama a apiCEP.
- apiCEP valida contra Banxico en menos de 10 segundos.
- Si el pago es válido: tu backend llama a la API de Shopify para marcar el pedido como pagado.
- Shopify envía automáticamente el correo de confirmación de pedido al cliente.
- El pedido aparece en el panel de administración listo para preparar y enviar.
El código: de comprobante a pedido confirmado en Shopify
Paso 1 — Recibir el comprobante y validar con apiCEP
// POST /api/validar-pago-shopify
app.post('/api/validar-pago-shopify', async (req, res) => {
const { shopifyOrderId, imageUrl } = req.body;
// Obtener detalles del pedido desde Shopify
const order = await shopifyClient.get(`/orders/${shopifyOrderId}.json`);
const total = parseFloat(order.total_price);
// Validar comprobante con apiCEP
const result = await fetch('https://api.apicep.cloud/validate-transfer', {
method: 'POST',
headers: { 'Authorization': `Bearer ${process.env.APICEP_API_KEY}` },
body: JSON.stringify({
imageUrl,
beneficiary: {
clabe: process.env.TU_CLABE,
bank: process.env.TU_BANCO,
name: process.env.TU_NOMBRE
}
})
}).then(r => r.json());
const pagoValido =
result.status === 'valid' &&
result.validation?.banxicoConfirmed === true &&
result.extracted?.amount >= total;
if (pagoValido) {
await confirmarPedidoShopify(shopifyOrderId, result);
res.json({ success: true, message: 'Pago confirmado. Tu pedido está siendo procesado.' });
} else if (result.status === 'pending') {
res.json({ success: false, pending: true, message: 'Tu transferencia está en proceso. Intenta en unos minutos.' });
} else {
res.json({ success: false, message: 'No pudimos confirmar tu pago. Verifica el comprobante e intenta de nuevo.' });
}
});
Paso 2 — Marcar el pedido como pagado en Shopify
async function confirmarPedidoShopify(orderId, apiCEPResult) {
// Crear transacción de pago en Shopify
await shopifyClient.post(`/orders/${orderId}/transactions.json`, {
transaction: {
kind: 'capture',
status: 'success',
amount: apiCEPResult.extracted.amount,
gateway: 'SPEI — Verificado por Banxico',
source: 'external',
message: `CEP validado. Clave rastreo: ${apiCEPResult.cepDetails?.trackingKey}`
}
});
// Guardar CEP como nota interna del pedido
await shopifyClient.put(`/orders/${orderId}.json`, {
order: {
note: `Pago SPEI verificado por Banxico. CEP PDF: ${apiCEPResult.downloads?.cepPdf}`
}
});
}
Verificación del monto: crítico en tiendas con productos de alto ticket
Para tiendas que venden productos premium — parrillas cerámicas, grills de acero, equipos de cocina al aire libre, electrónica, joyería — el monto del comprobante debe coincidir exactamente con el total del pedido.
Un cliente puede enviar un comprobante real de $500 pesos para un pedido de $45,000. La API de apiCEP devuelve el monto extraído del comprobante, así que tu lógica puede verificarlo antes de confirmar:
// Verificación estricta de monto — recomendada para alto ticket
const montoValido = result.extracted?.amount >= order.total_price;
const diferencia = Math.abs(result.extracted?.amount - order.total_price);
const tolerancia = 1.00; // MXN — margen para diferencias de redondeo
if (!montoValido && diferencia > tolerancia) {
return {
error: true,
message: `El comprobante muestra $${result.extracted.amount} MXN pero tu pedido es de $${order.total_price} MXN.`
};
}
Caso de uso: tiendas con productos de alto valor unitario
Para una tienda que vende artículos con ticket promedio de $5,000 a $80,000 MXN, la transferencia SPEI es el método de pago preferido de muchos compradores — especialmente para artículos donde el cliente quiere evitar comisiones de tarjeta o no tiene límite de crédito suficiente.
Esos pedidos de alto ticket son exactamente donde un comprobante falso tiene mayor impacto. Con apiCEP:
- El comprobante se verifica contra Banxico — no solo visualmente
- El monto se cruza con el total del pedido — sin importar lo que diga la imagen
- El pedido solo se confirma si ambas condiciones se cumplen — monto correcto + Banxico confirma
Integración por WhatsApp para tiendas que venden por ese canal
Muchas tiendas en México con presencia fuerte en redes sociales reciben pedidos y comprobantes por WhatsApp, no solo por el sitio. Con un bot de WhatsApp conectado a apiCEP (usando YCloud u otra API de WhatsApp Business), el mismo flujo de validación funciona para ese canal:
- El cliente hace el pedido por WhatsApp.
- El bot le indica la CLABE y el monto.
- El cliente manda el comprobante por el chat.
- El bot pasa la imagen a apiCEP.
- Si el pago es válido, el pedido entra al sistema y el cliente recibe confirmación.
Una sola integración con apiCEP cubre tanto el canal de Shopify como el de WhatsApp.
CEP oficial como respaldo en la nota del pedido
Cada validación exitosa genera el CEP oficial de Banxico en XML y PDF. Para una tienda Shopify, guárdalos como nota interna del pedido — disponibles en el panel de administración junto a cada orden.
Utilidad concreta:
- Devoluciones: el CEP acredita que el pago llegó y por cuánto, sin depender del banco del cliente.
- Disputas: si el cliente alega que no recibió su pedido y pide devolución, tienes el documento oficial del pago.
- Contabilidad: el XML del CEP es el comprobante bancario oficial para cada ingreso registrado en Shopify.
Comparativa: proceso manual vs. automatizado con apiCEP
| Aspecto | Proceso manual | Con apiCEP |
|---|---|---|
| Cliente sube comprobante | En página externa | En la misma pantalla de pago |
| Confirmación del pedido | Horas (revisión manual) | Menos de 15 segundos |
| Pedidos del fin de semana | Procesados el lunes | En tiempo real, 24/7 |
| Riesgo de comprobante falso | Alto | Eliminado (Banxico confirma) |
| Verificación del monto | Visual, aproximada | Exacta, contra total del pedido |
| Pedido marcado pagado en Shopify | Manual | Automático vía API |
| Respaldo oficial por cobro | No | CEP en XML y PDF en la nota del pedido |
Planes sin contratos ni mensualidades forzosas
| Plan | Precio | Validaciones | Vigencia |
|---|---|---|---|
| Bienvenida | Gratis | 50 | 30 días |
| Básico | $100 MXN | 200 | 30 días |
| Premium | $200 MXN | 800 | 30 días |
| Business | $400 MXN | 1,600 | 30 días |
Una tienda Shopify con 100 pedidos SPEI al mes opera con el plan Básico a $0.50 MXN por validación. Para tiendas de alto ticket donde un solo pedido vale $20,000+ MXN, ese costo es despreciable frente al riesgo que elimina.
Empieza con 50 validaciones gratuitas
Si tu tienda Shopify hoy tiene un proceso de "reportar pago" manual para SPEI, apiCEP puede automatizarlo desde hoy.
Crea tu cuenta en apicep.cloud — las primeras 50 validaciones son sin costo. Revisa la documentación técnica completa en apicep.cloud/documentacion y prueba la integración con tus pedidos reales.