API de Partners de Auphere · Guías
/ v0.1
Conectar WhatsApp
Vincula el número de WhatsApp Business de cada cliente con su agente, desde tu propio producto, usando Meta Embedded Signup.
Cada cliente tuyo envía desde su propio número de WhatsApp Business, no desde uno compartido. Vincular ese número es el único paso de todo el flujo que necesita a un humano: alguien con acceso al Meta Business del cliente tiene que autorizarlo.
Qué necesita el cliente
- Una cuenta de Meta Business a la que pueda entrar (o un admin delegado que pueda).
- Un número para WhatsApp Business — nuevo, o uno que ya use en la app de WhatsApp Business.
- El número no puede estar vinculado a otro espacio de trabajo de Auphere.
1. Obtén los identificadores de Meta
El popup corre bajo nuestra app de Meta, así que tu frontend necesita nuestros identificadores públicos. Léelos en tiempo de ejecución en vez de hardcodearlos: pueden cambiar sin aviso.
GET https://api.auphere.com/v1/partners/whatsapp/signup-config
Authorization: Bearer ak_live_…
{
"app_id": "957213733862330",
"coexistence_config_id": "…",
"cloud_api_config_id": "…",
"graph_api_version": "v23.0"
}2. Abre el popup de Meta
Carga el JS SDK de Facebook en la página y llama a FB.login con el config id. Meta devuelve un code de un solo uso — mándalo a tu backend, nunca a nosotros desde el navegador.
// Your settings/onboarding page. The identifiers come from
// GET /v1/partners/whatsapp/signup-config — never hardcode them.
FB.login(
(response) => {
const code = response.authResponse?.code;
if (!code) return; // user closed the popup
// Hand the code to YOUR backend; it finishes the flow.
fetch("/api/auphere/whatsapp-connected", {
method: "POST",
body: JSON.stringify({ clientId, code }),
});
},
{
config_id: coexistenceConfigId,
response_type: "code",
override_default_response_type: true,
},
);3. Ciérralo desde tu backend
Una llamada cierra el círculo: intercambiamos el code, registramos el número, suscribimos nuestro webhook, guardamos las credenciales cifradas y enganchamos el canal al agente de ese cliente.
POST https://api.auphere.com/v1/partners/clients/{external_client_ref}/whatsapp/signup
Authorization: Bearer ak_live_…
Content-Type: application/json
{
"code": "<single-use code from Meta>",
"waba_id": "<waba id from the signup event>",
"mode": "coexistence"
}{
"status": "connected",
"waba_id": "…",
"phone_number_id": "…",
"display_phone_number": "+584241234567",
"mode": "coexistence",
"tenant_status": "active",
"tenant_activated": true,
"activation_blocked_reason": null
}Leer el resultado de la activación
Una conexión exitosa normalmente también deja al cliente operativo. Cuando no ocurre, activation_blocked_reason dice por qué:
| tenant_status | activation_blocked_reason | Qué significa |
|---|---|---|
active | null | Listo — el agente ya responde en ese número. |
provisioning | no_agent | El cliente todavía no tiene agente. Revisa que la provisión haya salido bien. |
provisioning | operator_review | Tu blueprint no auto-activa; lo revisa y activa un operador de Auphere. |