Skip to main content
El SDK de embed monta el widget de pago de TapiPay dentro de tu sitio. A diferencia de un iframe manual, ajusta su alto solo, muestra un skeleton mientras carga y te avisa por eventos qué está haciendo el usuario. Es el mismo SDK que usa la gestión de adhesiones: cambia una sola opción (view) para montar una vista u otra.

Instalación

Los tipos de TypeScript vienen incluidos en el paquete. No necesitas instalar nada aparte.

Entrypoints

<TapipayWidget /> es el camino recomendado en React: se encarga de cargar el SDK, montar el widget y limpiarlo al desmontar. useTapipay() es el hook de bajo nivel, para cuando necesitas controlar initialize() y destroy() a mano. Si no usas bundler, no hace falta instalar nada: carga el script y trabaja con window.tapipay.

Identifica tu empresa

Pasa una de estas dos opciones, no las dos:
string
El slug o alias de tu empresa (por ejemplo, acme-corp). Corresponde al campo Alias en Configuración → Organización del dashboard. En data-attrs: data-organization.
string
El código de empresa configurado para tu organización en TapiPay (por ejemplo, MX-S-12345). El formato varía entre integraciones: si no sabes cuál es el tuyo, confírmalo con tu contacto de TapiPay. En data-attrs: data-company-code.
Si manejas muchas empresas o sub-billers, usa companyCode: no necesitas conocer ni administrar el slug de cada una. Si pasas las dos opciones, companyCode gana.
Todos los ejemplos de esta página funcionan igual si reemplazas organization: "acme-corp" por companyCode: "MX-S-12345".

Uso rápido

Sin bundler. El script deja window.tapipay disponible al cargar.

Opciones

initialize(options)

Si faltan container, identifier o los dos identificadores de empresa, el SDK no monta nada y avisa por consola.

destroy(container)

Desmonta el widget: quita el iframe, el skeleton y los listeners internos.
Llamarlo es importante en una SPA, al desmontar el componente que contiene el widget. <TapipayWidget /> ya lo hace por ti. Si vuelves a llamar initialize() sobre un contenedor que ya tiene un widget, el SDK lo destruye y lo vuelve a montar.

loadTapipay(options)

Es idempotente por entorno: llamarlo varias veces devuelve la misma promesa y no inyecta el script dos veces. Es compatible con React Strict Mode.

Eventos

paymentSubmitted significa enviado, no confirmado. Su status es siempre "pending": el usuario completó el formulario, pero el pago todavía no está acreditado. Nunca marques una deuda como pagada con este evento. El estado real llega por la notificación de pago a tu backend.

Payloads

En React

Los eventos se pasan como props. Ojo con el nombre del tercero: el evento se llama paymentCancelled, pero la prop es onCancelled. <TapipayWidget /> acepta además todas las opciones de initialize() (menos container), más environment, className y style para el contenedor.

Otros frameworks

El widget es un componente de cliente: necesita "use client".

Entorno de homologación

Qué monta el SDK

Saber qué URL construye el SDK ayuda a depurar: si el widget queda en blanco, abre esa URL directo en el navegador y vas a ver el error real. externalRequestId y selectionStrategy se agregan como query params. Por ejemplo, initialize() con organization: "acme-corp", identifier: "CLI-00042" y externalRequestId: "INV-2026-001" monta: