Base URL https://api.afer.pro aferapp.com
Portal del cliente

Acceso al portal del cliente

POST https://api.afer.pro/getCustomerPortalURI

Localiza a un cliente final por su número de móvil y devuelve una URL de acceso directo a su portal del cliente, con login incluido.

Pensado para canales conversacionales (WhatsApp, chatbots): el cliente final escribe desde su móvil, y con ese número obtienes un enlace de acceso con sesión a su área privada en el portal del cliente de tu cuenta (clientes.aferapp.com).

El número se normaliza para la búsqueda: se compara ignorando espacios y símbolos, y también sin el prefijo de país (los dos primeros dígitos), para tolerar los formatos de WhatsApp.

La URL devuelta incluye un loginToken cifrado que identifica al cliente y le abre sesión directamente.

Autenticación

Envía tus claves API en las cabeceras X-API-KEY y X-API-SECRET. La cuenta sobre la que se opera se resuelve automáticamente a partir de la clave. Cómo obtener tus claves →

Parámetros del cuerpo

El cuerpo de la petición es un objeto JSON con Content-Type: application/json.

movilstring
obligatorio
Móvil del cliente final, con o sin prefijo de país (p. ej. 34600111222).

Ejemplo de petición

curl -X POST 'https://api.afer.pro/getCustomerPortalURI' \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: afer_tk_TU_TOKEN' \
  -H 'X-API-SECRET: afer_sk_TU_SECRET' \
  -d '{
    "movil": "34600111222"
}'
<?php

$data = [
  'movil' => '34600111222',
];

$ch = curl_init('https://api.afer.pro/getCustomerPortalURI');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'X-API-KEY: afer_tk_TU_TOKEN',
    'X-API-SECRET: afer_sk_TU_SECRET',
]);

$respuesta = json_decode(curl_exec($ch), true);
curl_close($ch);
const respuesta = await fetch('https://api.afer.pro/getCustomerPortalURI', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-KEY': 'afer_tk_TU_TOKEN',
    'X-API-SECRET': 'afer_sk_TU_SECRET'
  },
  body: JSON.stringify({
      "movil": "34600111222"
  })
});

const resultado = await respuesta.json();

Respuesta

Devuelve la URL de acceso directo al portal, o false si ningún cliente de tu cuenta tiene ese móvil.

200 · application/json
{
    "errorCode": 200,
    "errorMsg": "",
    "data": {
        "url": "https://clientes.aferapp.com/mi-empresa/?loginToken=aBc123XyZ…"
    }
}

Errores

CasoResultado
movil vacío errorMsg "Error on service call: Mobile number is empty."
Móvil no encontrado data = false.
Notas
  • La URL da acceso directo al área privada del cliente: entrégala solo al titular del móvil y por un canal privado.