Ir al contenido
Todos los artículos

Confianza y cumplimiento

¿Qué es un secreto de firma de webhook? (Stripe, Shopify, WooCommerce)

Qué es un secreto de firma de webhook, por qué Provedly solo marca una compra como verificada cuando la firma es correcta y cómo conectar Stripe o Shopify de forma segura.

Equipo de Provedly··6 min de lectura

Un secreto de firma de webhook es una clave compartida que permite a Provedly confirmar que un evento de compra vino realmente de Stripe o de Shopify y no se alteró por el camino. Es la razón por la que Provedly puede poner una marca de "Compra verificada" en una notificación: la marca significa que la firma era correcta. Este artículo explica qué es un webhook, qué hace la firma, cómo conectar cada plataforma y qué puede y qué no puede hacer el secreto si se filtra.

Los webhooks en un párrafo. Cuando pasa algo en tu plataforma de pagos, como un pedido completado, la plataforma puede enviar una solicitud HTTP a una URL que tú indiques, con los detalles en el cuerpo. Esa solicitud es un webhook. Es la plataforma enviando novedades a Provedly, en lugar de que Provedly pregunte una y otra vez. En Shopify, el evento relevante es orders/create. En Stripe, suele ser checkout.session.completed o payment_intent.succeeded.

El problema de cualquier URL que acepte un POST es que cualquiera puede enviarle un POST. Sin una comprobación, alguien podría enviarle a Provedly un "pedido" falso y hacer que se mostrara como real. La firma es esa comprobación.

Qué hace la firma

Tanto Stripe como Shopify firman cada webhook con HMAC-SHA256. La plataforma toma el cuerpo de la solicitud tal cual, calcula un hash con un secreto que solo conocen ella y tú, y envía el hash en una cabecera. Provedly vuelve a calcular el hash con el mismo secreto y los compara. Si coinciden, quedan establecidas dos cosas a la vez: la solicitud vino de alguien que tiene el secreto, y el cuerpo no se modificó en tránsito.

Si no coinciden, la solicitud se descarta. No se muestra, no se guarda como compra y no se cuenta. No existe un cajón de "compras no verificadas". Hay compras verificadas, que pasaron por esta comprobación, y hay registros que el comerciante añadió de otra forma, que siempre van etiquetados: "Sample" para las filas añadidas a mano, "Imported" para las filas de un CSV o de la API de registros. No hay nada en medio.

Esa es toda la base de la marca de "Compra verificada", y es la razón por la que podemos indicar en la página de verificación pública qué fuentes están conectadas y cuándo llegó la última compra verificada. /es/blog/reading-the-verification-page explica cómo lee un comprador esa página.

Conectar Shopify

Si instalaste Provedly desde la Shopify App Store, no tienes que manejar el secreto en absoluto. Shopify registra los webhooks al instalar la app y los firma con un secreto ligado a la app. Provedly los verifica automáticamente. La configuración se explica en /es/blog/shopify-setup-guide.

Algo que conviene saber: por el programa Protected Customer Data de Shopify, los primeros webhooks pueden llegar sin el nombre del comprador. Siguen firmados y siguen verificados; el aviso simplemente dice "Alguien" hasta que se aprueba el acceso. /es/blog/shopify-someone-protected-customer-data tiene los detalles.

Conectar Stripe

Para sitios fuera de Shopify, creas un endpoint de webhook en tu panel de Stripe que apunte a la URL que te da Provedly, seleccionas los eventos, y Stripe te muestra un secreto de firma para ese endpoint. Empieza por whsec_. Lo pegas una vez en los ajustes de la fuente en Provedly.

Algunos puntos para hacerlo bien.

  • Usa un endpoint dedicado. Crea un endpoint nuevo para Provedly en lugar de reutilizar uno que escuche tu propia aplicación. Cada endpoint tiene su propio secreto, así que un problema con uno no afecta al otro.
  • Selecciona solo los eventos que necesitas. Provedly necesita los pagos completados. No necesita actualizaciones de clientes, disputas ni transferencias.
  • Modo live, no modo de prueba. Los eventos del modo de prueba se firman con otro secreto y describen pagos que no ocurrieron. Conecta un endpoint en modo live a tu sitio de producción para que los pagos de prueba nunca se presenten como reales.
  • Pégalo una vez. Después de guardar, considera el secreto almacenado. Si le pierdes la pista, rótalo en Stripe y pega el nuevo.

De qué protege el secreto

Amenaza ¿La firma lo impide?
Alguien que envía un POST con un pedido falso a tu URL de Provedly Sí
Un proxy que altera el importe o el producto en tránsito Sí
Reenviar un evento antiguo auténtico En gran medida; ambas plataformas incluyen marcas de tiempo e identificadores de evento, que permiten al receptor rechazar eventos antiguos o duplicados
Alguien con acceso a tu panel de Stripe que crea reembolsos o pagos reales No; eso es seguridad de la cuenta, no del webhook

La última fila importa. El secreto de firma verifica que los eventos vinieron de la plataforma. No hace que la propia plataforma sea de fiar, y no sustituye a la autenticación en dos pasos en tu cuenta de Stripe o de Shopify.

Si el secreto se filtra

Un secreto de firma de Stripe filtrado permite a alguien falsificar eventos de webhook hacia el endpoint al que pertenece. En el caso de Provedly, eso significaría compras verificadas falsas, que es exactamente lo que todo el sistema existe para evitar. La solución es rápida: en Stripe, rota el secreto de ese endpoint, lo que invalida el antiguo de inmediato, y pega el nuevo valor en Provedly.

El secreto no se puede usar para cobrar tarjetas, leer datos de clientes ni iniciar sesión en Stripe. Su alcance se limita a firmar eventos de un endpoint. Por eso es seguro que lo maneje el dueño de una tienda, y por eso lo pedimos a él y no un acceso más amplio a la API.

En Shopify, el secreto de la app lo tienen Provedly y Shopify, no el comerciante, así que no hay nada que el comerciante pueda filtrar ni rotar.

Por qué esto importa para el sector

La mayoría de las herramientas de esta categoría, a octubre de 2026 y según sus fichas, aceptan datos escritos por el comerciante para las notificaciones y los conteos de visitantes y no los distinguen visualmente de los datos que llegan de la plataforma. Algunas sí verifican webhooks, pero luego muestran las filas importadas de un CSV con el mismo estilo. La firma solo sirve si el producto la trata como una frontera: firmado de un lado, etiquetado Imported o Sample del otro, y ninguna forma de pasar una fila de un lado a otro.

Esa frontera es lo que la norma de la FTC sobre testimonios falsos, en vigor desde finales de 2024, pide implícitamente que los comerciantes puedan demostrar. Un webhook firmado es lo más parecido a un recibo que puede llevar una notificación de prueba social.

Preguntas frecuentes

¿Puedo conectar Shopify y Stripe a un mismo sitio?

Sí. Una tienda Shopify que también vende mediante un checkout con Stripe fuera de Shopify puede conectar ambos. La página de verificación lista los dos como fuentes, y las compras de cada uno se verifican de forma independiente.

¿El webhook contiene números de tarjeta?

No. Ni Stripe ni Shopify incluyen datos de tarjeta en los webhooks de pedidos o pagos. Lo que Provedly necesita para una notificación es el producto, un nombre de pila cuando se proporciona, una ubicación aproximada y la hora.

¿Y si mi cuenta de Stripe está en modo de prueba mientras construyo el sitio?

Mantén los eventos del modo de prueba lejos de tu sitio de producción. Cuando pases a producción, crea un endpoint en modo live en Stripe y conecta ese, para que solo los pagos reales puedan convertirse en compras verificadas.

Conecta hoy una fuente firmada y deja que la marca de "Compra verificada" haga su trabajo; los planes están en /es/pricing.

webhooksstripeshopifyseguridad

Recibe los nuevos artículos por email

Prueba social honesta, compras verificadas y lo que de verdad mueve la conversión. Como mucho unos pocos emails al mes; date de baja con un clic.

Te enviamos un email para confirmar. Tu dirección solo se usa para este boletín; consulta la política de privacidad (en inglés).

Muestra pruebas que puedas respaldar.

Plan gratis, un sitio, 2,000 impresiones al mes y compras verificadas incluidas. En el plan gratis, la insignia enlaza a tu página de verificación, y de eso se trata.