Recurrentes creados
https://api.afer.pro/consultarRecurrentesCreados
Devuelve los servicios recurrentes dados de alta entre dos fechas, agrupados por periodicidad: semanales, mensuales, anuales…
Mide la captación de negocio recurrente de un período: cada servicio recurrente (cuota, mantenimiento, suscripción) creado en el rango, con su importe por ciclo y su cliente.
Los resultados llegan agrupados por periodicidad — semanal (7 días), quincenal (14), mensual (30), bimensual (60), trimestral (90), semestral (180) y anual (365) — con el número de altas y el importe total de cada grupo. Los grupos sin altas no aparecen.
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.
fecha_iniciodateobligatorio | Inicio del período de alta (YYYY-MM-DD), incluido. |
fecha_findateobligatorio | Fin del período de alta (YYYY-MM-DD), incluido. |
Ejemplo de petición
curl -X POST 'https://api.afer.pro/consultarRecurrentesCreados' \
-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-01-01",
"fecha_fin": "2026-03-31"
}'
<?php
$data = [
'fecha_inicio' => '2026-01-01',
'fecha_fin' => '2026-03-31',
];
$ch = curl_init('https://api.afer.pro/consultarRecurrentesCreados');
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/consultarRecurrentesCreados', {
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-01-01",
"fecha_fin": "2026-03-31"
})
});
const resultado = await respuesta.json();
Respuesta
importe es el importe por ciclo del recurrente (base sin IVA): lo que factura cada vez que se renueva, no lo anualizado. fecha_creacion es la fecha de alta; fecha_inicio y fecha_caducidad delimitan su vigencia (null = sin límite).
{
"errorCode": 200,
"errorMsg": "",
"data": {
"fecha_inicio": "2026-01-01",
"fecha_fin": "2026-03-31",
"num_recurrentes": 3,
"importe_total": 1350,
"por_periodicidad": {
"mensual": {
"periodicidad_dias": 30,
"num": 2,
"importe_total": 150,
"recurrentes": [
{
"recurrenteId": "aBc123XyZ…",
"descripcion": "Cuota mantenimiento web",
"importe": 100,
"fecha_creacion": "2026-02-10",
"fecha_inicio": null,
"fecha_caducidad": null,
"cliente": {
"clienteId": "dEf456…",
"nombre_fiscal": "FERRER INTERIORS SL"
}
}
]
},
"anual": {
"periodicidad_dias": 365,
"num": 1,
"importe_total": 1200,
"recurrentes": []
}
}
}
}
Errores
| Caso | Resultado |
|---|---|
| Sin credenciales de API key | errorCode 401, errorMsg "Error on service call: API key authentication required". |
fecha_inicio o fecha_fin ausentes o mal formadas |
errorCode 400 indicando el parámetro. |
- Para saber cuánto facturan estos servicios en un período, usa consultarRecurrentesRenovaciones (un mensual renueva 12 veces al año; su importe por ciclo no es comparable al de un anual sin multiplicar).