Pipeline del CRM
https://api.afer.pro/consultarOportunidades
Las oportunidades abiertas por funnel y etapa (número y valor) y, con un rango de fechas, las creadas, ganadas y perdidas con su win rate.
El embudo comercial para el panel: cuántas oportunidades hay abiertas (ni ganadas ni perdidas) y qué valor suman, desglosado por funnel y etapa.
Si envías fecha_inicio y fecha_fin, añade la actividad del período: oportunidades creadas (por fecha de creación) y ganadas/perdidas (por fecha de cierre), con el win_rate_pct = ganadas / cerradas.
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 →
Este endpoint requiere autenticación con API key: sin credenciales responde 401.
Parámetros del cuerpo
El cuerpo de la petición es un objeto JSON con Content-Type: application/json.
funnel_fkintopcional | Limita la consulta a un funnel concreto. |
fecha_iniciodateopcional | Con fecha_fin, añade las estadísticas del período. |
fecha_findateopcional | Fin del período (YYYY-MM-DD), incluido. |
Ejemplo de petición
curl -X POST 'https://api.afer.pro/consultarOportunidades' \
-H 'Content-Type: application/json' \
-H 'X-API-KEY: afer_tk_TU_TOKEN' \
-H 'X-API-SECRET: afer_sk_TU_SECRET' \
-d '{
"fecha_inicio": "2026-08-01",
"fecha_fin": "2026-08-18"
}'
<?php
$data = [
'fecha_inicio' => '2026-08-01',
'fecha_fin' => '2026-08-18',
];
$ch = curl_init('https://api.afer.pro/consultarOportunidades');
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/consultarOportunidades', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-KEY': 'afer_tk_TU_TOKEN',
'X-API-SECRET': 'afer_sk_TU_SECRET'
},
body: JSON.stringify({
"fecha_inicio": "2026-08-01",
"fecha_fin": "2026-08-18"
})
});
const resultado = await respuesta.json();
Respuesta
{
"errorCode": 200,
"errorMsg": "",
"data": {
"abiertas": {
"num": 12,
"valor": 86000
},
"pipeline": [
{
"funnel_fk": 39,
"funnel": "Ventas web",
"num": 12,
"valor": 86000,
"por_etapa": [
{
"etapa_fk": 219,
"etapa": "Contactado",
"num": 8,
"valor": 36000
},
{
"etapa_fk": 220,
"etapa": "Propuesta enviada",
"num": 4,
"valor": 50000
}
]
}
],
"periodo": {
"fecha_inicio": "2026-08-01",
"fecha_fin": "2026-08-18",
"creadas": {
"num": 10,
"valor": 20000
},
"ganadas": {
"num": 3,
"valor": 12500
},
"perdidas": {
"num": 1,
"valor": 4000
},
"win_rate_pct": 75
}
}
}
- El valor de cada oportunidad es su valor de cierre configurado en el CRM; las oportunidades sin valor cuentan como 0.
win_rate_pctlleganullsi no se cerró ninguna oportunidad en el período.