Auphere
Menú de documentación

Auphere Embed · Referencia

/ v0.1

Referencia de API

Todas las opciones, métodos y endpoints de @auphere/embed y su API REST.

createAuphere(config)

Crea el cliente del SDK. Lanza un error síncrono si falta fetchSession o partnerSlug.

fetchSession() => Promise<WidgetSession>Requerido
Se invoca cada vez que el SDK necesita un token de sesión: al abrir, y de nuevo cuando un token está por expirar. Debe poder re-invocarse sin interacción del usuario. Se aceptan tanto la respuesta camelCase como la snake_case cruda del mint (ver abajo).
partnerSlugstringRequerido
Tu slug de partner, asignado en el alta. Se usa para resolver la política de seguridad del iframe antes de que exista un token.
appearanceAppearance
Ajustes visuales aplicados dentro del modal: colorPrimary (color CSS), radius (p. ej. "8px"), theme ("light" | "dark", por defecto el esquema de la página).
localestring
Tag BCP-47, p. ej. "es". Por defecto, el idioma de la página.
embedOriginstring
Sobrescribe el origen del embed. Solo staging/desarrollo.
Formas aceptadas de retorno de fetchSession
// Either shape is accepted by fetchSession:
{ sessionToken: string, expiresIn?: number, whatsapp?: { status, displayPhoneNumber } }
{ session_token: string, expires_in?: number, whatsapp?: { status, display_phone_number } }

El cliente Auphere

getStatus()() => ConnectionStatus
Último estado conocido de conexión de WhatsApp: "connected" | "not_connected" | "unknown". Empieza en "unknown" hasta el primer mint de sesión.
refreshStatus()() => Promise<ConnectionStatus>
Re-emite una sesión (vía fetchSession) y devuelve el estado refrescado.
onStatusChange(listener)(s: ConnectionStatus) => void
Se suscribe a los cambios de estado. Devuelve una función para desuscribirse.
openBroadcast(options)(o: OpenBroadcastOptions) => Promise<void>
Abre el modal de campañas como overlay de iframe a pantalla completa. options.recipients es la audiencia (ver Campañas); onDone({ broadcastId, accepted }) se dispara cuando el broadcast es aceptado; onExit() al cerrar el modal. La promesa se rechaza si el modal no logra inicializar (p. ej. falla el mint del token).
connectWhatsApp(options?)(o?: ConnectWhatsAppOptions) => Promise<void>
Abre el flujo de Embedded Signup de WhatsApp. onConnected({ displayPhoneNumber }) se dispara al conectar; onExit() al cerrar el modal.
destroy()() => void
Cierra cualquier overlay abierto y elimina todos los listeners. Llámalo cuando tu página o componente se desmonte.

React — AuphereBroadcastButton

Se importa desde @auphere/embed/react. Renderiza un botón solo cuando el WhatsApp del cliente está conectado; al hacer click abre el modal de campañas.

auphereAuphereRequerido
El cliente creado con createAuphere.
recipientsBroadcastRecipient[]Requerido
La audiencia, construida desde tus datos.
onDonefunction
Misma semántica que el onDone de openBroadcast.
classNamestring
Clase para el botón renderizado — estilízalo como cualquier botón tuyo.
childrenReactNode
Texto del botón.

API REST

Base URL https://api.auphere.com, autenticada con Authorization: Bearer ak_live_… únicamente desde tu backend. Dos endpoints:

POST /v1/widget-sessions

Intercambia tu API key por un token de sesión efímero (15 minutos) limitado a un cliente. La respuesta incluye además el estado de WhatsApp del cliente, para que tu backend decida qué UI renderizar.

Request
POST https://api.auphere.com/v1/widget-sessions
Authorization: Bearer ak_live_…
Content-Type: application/json

{ "external_client_ref": "3f6c1a2e-9d41-4b7f-8f2a-0c5d9e1b7a44" }
Response
{
  "session_token": "eyJhbGciOiJIUzI1NiIs…",
  "expires_in": 900,
  "whatsapp": { "status": "connected", "display_phone_number": "+58 424-1234567" }
}

POST /v1/partners/clients

Provisiona (o actualiza) el workspace de un cliente. Idempotente sobre external_client_ref. Request y response completos en Provisionar clientes.

Respuestas de error

StatusSignificado
401API key ausente, revocada o malformada.
403El token de sesión no tiene el scope requerido, o la key/el partner fue suspendido. Re-emite el token.
409Conflicto — p. ej. el número de WhatsApp ya está vinculado a otro workspace.
413La audiencia del broadcast supera tu tope por envío.
422Error de validación — el campo detail dice exactamente qué falta o es inválido (placeholder, credencial, parámetros posicionales de plantilla…).
429Límite de tasa excedido para tu cuenta de partner. Espera y reintenta.