Acceso al portal del cliente
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.
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.
movilstringobligatorio | 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.
{
"errorCode": 200,
"errorMsg": "",
"data": {
"url": "https://clientes.aferapp.com/mi-empresa/?loginToken=aBc123XyZ…"
}
}
Errores
| Caso | Resultado |
|---|---|
movil vacío |
errorMsg "Error on service call: Mobile number is empty." |
| Móvil no encontrado | data = false. |
- La URL da acceso directo al área privada del cliente: entrégala solo al titular del móvil y por un canal privado.