Parámetros de URL del checkout
Referencia técnica de cada parámetro que acepta el enlace de checkout, con formato, validación, qué pasa con un valor inválido y cómo armar los enlaces en tu código.
Esta es la referencia para quien genera enlaces de checkout en el código, por ejemplo en una página de ventas, en un correo transaccional o en un CRM. Lo que hace cada parámetro para el comprador, con ejemplos para el dueño de la tienda, está en Enlace de pago y parámetros de URL.
La dirección base
https://pay.vipter.com/<slug-o-id-de-la-oferta>| Parte | Formato |
|---|---|
| Slug de la oferta | Letras minúsculas, números y guiones, de 3 a 61 caracteres, empezando con letra o número: ^[a-z0-9][a-z0-9-]{2,60}$. |
| ID de la oferta | ofr_ seguido de letras y números, como ofr_a3454b7c008d455fbc5c3fc436c1879d. Funciona incluso cuando la oferta tiene slug. |
| Host | pay.vipter.com o el dominio propio activo de la tienda, con la misma ruta. El dominio propio solo abre ofertas de su tienda. |
Cuando el enlace no puede abrirse, el checkout redirige a /unavailable?reason=<motivo>. El motivo queda en la dirección para diagnóstico:
reason | Causa |
|---|---|
not_found | El slug o el ID no existe, la oferta es de una tienda distinta a la del dominio, o el slug tiene una letra mayúscula. |
link_disabled | El enlace de pago de la oferta está desactivado. |
offer_archived | La oferta se archivó. |
no_prices | La oferta no tiene precio. |
no_settleable_price | Ningún precio está en una moneda que la tienda pueda recibir. |
project_unavailable | La tienda no está vendiendo en este momento. |
pack_unavailable | El pack no es un paquete de la oferta, o la oferta es una suscripción. |
Parámetros
Todos son opcionales y el orden no importa. Un parámetro repetido vale por el primer valor. Los parámetros desconocidos se ignoran.
| Parámetro | Formato aceptado | Si el valor es inválido | Ejemplo |
|---|---|---|---|
pack | Entero de 1 a 999, solo dígitos. Tiene que ser la cantidad de un paquete de la oferta. | La página de enlace no disponible, con pack_unavailable. Vacío (pack=) se ignora. | pack=3 |
code | Cupón: hasta 40 caracteres, solo letras, números, - y _. | Un formato inválido se ignora. Un cupón que no vale para el pedido aparece en el resumen con el motivo, y la compra sigue sin descuento. | code=BLACK10 |
v | Código de vendedor: de 2 a 31 caracteres, letras minúsculas, números y guiones, empezando con letra o número. Las mayúsculas y los espacios en los extremos se normalizan. | Un código mal formado, inexistente o de un vendedor inactivo no atribuye la venta a nadie. | v=ana |
lang | Exactamente uno de pt, en, es, fr, de, it, ja, ko, ru, zh, en minúsculas. | Se ignora: el idioma sale de la elección anterior del comprador, del navegador o del país. | lang=en |
currency | Código ISO 4217 de tres letras. Mayúsculas o minúsculas. | Sin precio en esa moneda, el checkout se abre en la moneda de la tienda, en el precio predeterminado o en el primer precio de la oferta, en ese orden. | currency=USD |
email | Texto. Completa el correo del comprador, que puede corregirlo. | No se valida al abrir: el formulario lo valida al enviarlo. | email=ana%40example.com |
name | Texto. Completa el nombre del comprador. | No se valida al abrir. | name=Ana%20Souza |
utm_source, utm_medium, utm_campaign, utm_content, utm_term, utm_id | Texto, hasta 500 caracteres. Los espacios en los extremos se quitan y el resto se corta en 500. | Vacío se ignora. | utm_source=instagram |
src, sck | Texto, hasta 500 caracteres. Misma regla que las UTMs. | Vacío se ignora. | src=bio |
fbclid, gclid, gbraid, wbraid, ttclid, epik, tblci, ob_click_id, msclkid | IDs de clic, texto de hasta 500 caracteres. Las plataformas de anuncios los agregan solas. | Vacío se ignora. | gclid=Cj0KCQ… |
fbp, fbc, ttp, ga_client_id | Valores de las cookies _fbp, _fbc, _ttp y del ID de cliente de la _ga de tu página. El script t.js los agrega solo. | Vacío se ignora. | fbp=fb.1.1790600000000.123456789 |
Reservados: rec es el token del enlace de recuperación de checkout abandonado, que viene listo en el recovery_url del evento checkout.abandoned. ctx es de uso interno de Vipter. No armes enlaces con ellos.
El checkout no acepta teléfono, documento ni dirección por URL.
Reglas de cada parámetro
pack
Solo las ofertas de pago único tienen paquetes. En una oferta de suscripción, cualquier pack lleva a la página de enlace no disponible. Sin el parámetro, el enlace vende 1 unidad al precio de la oferta. El checkout no tiene selector de paquete: un enlace por paquete.
lang
El idioma del enlace prevalece sobre la regla de la tienda que vende a un solo país, que oculta el selector y usa el idioma de ese país. El checkout guarda la elección en la cookie pay_locale durante un año, y las visitas siguientes sin lang usan esa cookie. En una tienda de un solo país, la cookie no se usa: solo el lang del propio enlace cambia el idioma.
Origen de la campaña: UTMs, src y sck
Valen como primer toque: el primer enlace que trajo utm_*, src o sck a ese navegador en los últimos 30 días define todos esos valores juntos. Un enlace posterior con otra campaña no cambia ninguno de ellos. El checkout guarda estos datos en el localStorage del dominio del checkout, en la clave vpt_attr, y el plazo de 30 días cuenta desde la primera vez que se guardó algo.
IDs de clic, cookies y v
Valen por el último valor recibido: un clic nuevo en un anuncio cambia el gclid guardado, y el último enlace de vendedor abierto define el v. Cuando llega un fbclid sin fbc, el checkout arma el fbc en el formato fb.1.<milisegundos>.<fbclid>. El código v se comprueba cuando el checkout crea la sesión de pago: vale el vendedor activo en ese momento.
email y name
La dirección de entrada que Vipter guarda con la venta se guarda sin email, name, phone, rec y ctx. Aun así, estos datos quedan en el historial del navegador y en los logs de quien sirve la página anterior. Usa email y name solo en enlaces individuales, como en un correo para un cliente, nunca en anuncios ni en páginas públicas.
Adónde van los datos
- El vendedor (
v) queda en el pedido y entra en las comisiones. - Las UTMs,
src,scky los IDs de clic quedan en la venta, alimentan el origen de las ventas y el envío de conversiones a las plataformas de anuncios. - Las UTMs van en el campo
utmdel eventocheckout.abandoned. Los eventos de pedido no traen UTMs ni vendedor.
Armar enlaces en el código
Codifica cada valor. Un + sin codificar, común en correos como ana+loja@example.com, se convierte en espacio. Usa las funciones del lenguaje en lugar de concatenar texto:
function checkoutLink(base, params) {
const url = new URL(base);
for (const [key, value] of Object.entries(params)) {
if (value !== undefined && value !== null && value !== '') url.searchParams.set(key, String(value));
}
return url.toString();
}
checkoutLink('https://pay.vipter.com/kit-cha', { pack: 3, code: 'BLACK10', v: 'ana', utm_source: 'instagram', utm_campaign: 'black-friday' });
// https://pay.vipter.com/kit-cha?pack=3&code=BLACK10&v=ana&utm_source=instagram&utm_campaign=black-friday
checkoutLink('https://pay.vipter.com/curso-fotografia', { email: 'ana+teste@example.com', name: 'Ana Souza', lang: 'pt' });
// https://pay.vipter.com/curso-fotografia?email=ana%2Bteste%40example.com&name=Ana+Souza&lang=ptEn Python, urllib.parse.urlencode genera la misma query:
from urllib.parse import urlencode
"https://pay.vipter.com/curso-fotografia?" + urlencode({"email": "ana+teste@example.com", "name": "Ana Souza", "lang": "pt"})
# https://pay.vipter.com/curso-fotografia?email=ana%2Bteste%40example.com&name=Ana+Souza&lang=pt+ y %20 valen como espacio en el checkout. Si tu página de ventas ya tiene UTMs en la dirección, el script t.js lleva esos valores hasta el enlace sin código.
Qué hacer después
- Consulta cómo ve el comprador el checkout.
- Lleva las UTMs de la página de ventas hasta el checkout con el script t.js.
Reintentos, desactivación y reenvío
Cuándo Vipter vuelve a intentar una entrega que falló, cuándo desactiva el endpoint por sí solo, qué pasa con los eventos mientras está desactivado y cómo usar el evento de prueba y el reenvío del panel.
Script de seguimiento t.js
Lo que hace el script https://pay.vipter.com/t.js en tu página de ventas, paso a paso, el atributo data-hosts, lo que guarda y agrega a los enlaces, cómo instalarlo con y sin gestor de etiquetas y qué permitir en la CSP.