Auphere
Menú de documentación

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.

Petición
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"
}

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.

Tu frontend
// 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.

Petición
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"
}
Respuesta
{
  "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_statusactivation_blocked_reasonQué significa
activenullListo — el agente ya responde en ese número.
provisioningno_agentEl cliente todavía no tiene agente. Revisa que la provisión haya salido bien.
provisioningoperator_reviewTu blueprint no auto-activa; lo revisa y activa un operador de Auphere.