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.
// 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.recipientses 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
onDonedeopenBroadcast. 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.
POST https://api.auphere.com/v1/widget-sessions
Authorization: Bearer ak_live_…
Content-Type: application/json
{ "external_client_ref": "3f6c1a2e-9d41-4b7f-8f2a-0c5d9e1b7a44" }{
"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
| Status | Significado |
|---|---|
401 | API key ausente, revocada o malformada. |
403 | El token de sesión no tiene el scope requerido, o la key/el partner fue suspendido. Re-emite el token. |
409 | Conflicto — p. ej. el número de WhatsApp ya está vinculado a otro workspace. |
413 | La audiencia del broadcast supera tu tope por envío. |
422 | Error de validación — el campo detail dice exactamente qué falta o es inválido (placeholder, credencial, parámetros posicionales de plantilla…). |
429 | Límite de tasa excedido para tu cuenta de partner. Espera y reintenta. |