Base URL https://api.afer.pro aferapp.com
Facturación y ventas

Crear recurrente

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

Crea una plantilla de facturación recurrente anual para un cliente: una suscripción que Afer facturará automáticamente.

Da de alta una facturación recurrente con periodicidad anual (365 días). El cliente se resuelve por CIF como en el resto de endpoints de venta.

Si una línea referencia un artículo (articulo_fk) y no envías importe_unitario, la línea toma automáticamente el PVP, el IVA y la descripción del artículo del catálogo — ideal para suscripciones a productos con tarifa mantenida en Afer.

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.

clienteobject
obligatorio
Cliente de facturación. Mismos campos que en crearFactura; deduplicación por CIF.
pedidoobject
obligatorio
Cabecera de la recurrencia.
obrastring
obligatorio
Descripción de la recurrencia (p. ej. "Suscripción anual Plan Pro").
detallesarray
obligatorio
Líneas de la recurrencia.
cantidadnumber
obligatorio
Unidades.
articulo_fkint
opcional
Artículo del catálogo. Si se envía sin importe_unitario, la línea hereda PVP, IVA y descripción del artículo.
descripcionstring
opcional
Descripción de la línea. Obligatoria si no hay artículo.
importe_unitarionumber
opcional
Precio unitario sin IVA. Si se omite, se toma del artículo.
ivanumber
opcional
Tipo de IVA. Si se omite, se toma del artículo.

Ejemplo de petición

curl -X POST 'https://api.afer.pro/crearRecurrente' \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: afer_tk_TU_TOKEN' \
  -H 'X-API-SECRET: afer_sk_TU_SECRET' \
  -d '{
    "cliente": {
        "nombre_fiscal": "Talleres Martorell SL",
        "cif": "B07123456",
        "email": "admin@talleresmartorell.com"
    },
    "pedido": {
        "obra": "Suscripción anual mantenimiento"
    },
    "detalles": [
        {
            "cantidad": 1,
            "articulo_fk": 4521
        }
    ]
}'
<?php

$data = [
  'cliente' => [
    'nombre_fiscal' => 'Talleres Martorell SL',
    'cif' => 'B07123456',
    'email' => 'admin@talleresmartorell.com',
  ],
  'pedido' => [
    'obra' => 'Suscripción anual mantenimiento',
  ],
  'detalles' => [
    0 => [
      'cantidad' => 1,
      'articulo_fk' => 4521,
    ],
  ],
];

$ch = curl_init('https://api.afer.pro/crearRecurrente');
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/crearRecurrente', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-KEY': 'afer_tk_TU_TOKEN',
    'X-API-SECRET': 'afer_sk_TU_SECRET'
  },
  body: JSON.stringify({
      "cliente": {
          "nombre_fiscal": "Talleres Martorell SL",
          "cif": "B07123456",
          "email": "admin@talleresmartorell.com"
      },
      "pedido": {
          "obra": "Suscripción anual mantenimiento"
      },
      "detalles": [
          {
              "cantidad": 1,
              "articulo_fk": 4521
          }
      ]
  })
});

const resultado = await respuesta.json();

Respuesta

Devuelve el identificador cifrado de la recurrente creada.

200 · application/json
{
    "errorCode": 200,
    "errorMsg": "",
    "data": "aBc123XyZ456…"
}
Notas
  • La periodicidad se fija en 365 días. Para otras periodicidades, edita la recurrente desde Afer tras crearla.