VipterCentro de Ayuda
Desarrolladores

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>
ParteFormato
Slug de la ofertaLetras 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 ofertaofr_ seguido de letras y números, como ofr_a3454b7c008d455fbc5c3fc436c1879d. Funciona incluso cuando la oferta tiene slug.
Hostpay.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:

reasonCausa
not_foundEl 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_disabledEl enlace de pago de la oferta está desactivado.
offer_archivedLa oferta se archivó.
no_pricesLa oferta no tiene precio.
no_settleable_priceNingún precio está en una moneda que la tienda pueda recibir.
project_unavailableLa tienda no está vendiendo en este momento.
pack_unavailableEl 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ámetroFormato aceptadoSi el valor es inválidoEjemplo
packEntero 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
codeCupó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
vCó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
langExactamente 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
currencyCó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
emailTexto. Completa el correo del comprador, que puede corregirlo.No se valida al abrir: el formulario lo valida al enviarlo.email=ana%40example.com
nameTexto. Completa el nombre del comprador.No se valida al abrir.name=Ana%20Souza
utm_source, utm_medium, utm_campaign, utm_content, utm_term, utm_idTexto, 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, sckTexto, hasta 500 caracteres. Misma regla que las UTMs.Vacío se ignora.src=bio
fbclid, gclid, gbraid, wbraid, ttclid, epik, tblci, ob_click_id, msclkidIDs 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_idValores 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, sck y 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 utm del evento checkout.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=pt

En 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

En esta página