Obtener factura
https://api.afer.pro/api/v1/invoices/{id}
POST https://api.afer.pro/obtenerFactura
Devuelve un factura de venta concreto por su identificador, con su cabecera, su contraparte y todas sus líneas.
El detalle completo de un documento: lo que no cabe en los listados. Devuelve la cabecera,
el cliente o proveedor, y el array de lineas con cantidad, precio, descuento, IVA
e importe ya calculado de cada una, más la base_imponible del documento.
El documento se comprueba siempre contra tu cuenta: si el identificador no es tuyo, responde
404 sin revelar si existe.
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.
facturaIdstringobligatorio | Identificador cifrado del documento (el que devuelven los listados y los endpoints de creación). En la ruta REST va como {id}. |
Ejemplo de petición
curl -X GET 'https://api.afer.pro/api/v1/invoices/aBc123XyZ' \
-H 'X-API-KEY: afer_tk_TU_TOKEN' \
-H 'X-API-SECRET: afer_sk_TU_SECRET'
<?php
$ch = curl_init('https://api.afer.pro/api/v1/invoices/aBc123XyZ');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'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/api/v1/invoices/aBc123XyZ', {
method: 'GET',
headers: {
'X-API-KEY': 'afer_tk_TU_TOKEN',
'X-API-SECRET': 'afer_sk_TU_SECRET'
}
});
const resultado = await respuesta.json();
Respuesta
{
"errorCode": 200,
"errorMsg": "",
"data": {
"tipo": "invoices",
"facturaId": "aBc123XyZ…",
"numero": "2026/0412",
"concepto": "Pedido web 006520",
"contraparte": {
"clienteId": "dEf456…",
"nombre_fiscal": "FERRER INTERIORS SL",
"nombre_comercial": "Ferrer Interiors",
"cif": "B07123456",
"email": "admin@ferrerinteriors.com",
"telefono": "971123456",
"movil": "600123456",
"rgpd": {
"comunicaciones_email": true,
"comunicaciones_whatsapp": false,
"comunicaciones_sms": null,
"tratamiento_imagenes": null
}
},
"base_imponible": 1250,
"num_lineas": 2,
"lineas": [
{
"lineaId": "gHi789…",
"descripcion": "Mantenimiento anual",
"cantidad": 1,
"importe_unitario": 1130.58,
"descuento": 0,
"iva": 21,
"importe": 1130.58,
"articuloId": "jKl012…"
}
]
}
}
Errores
| Caso | Resultado |
|---|---|
| Sin credenciales de API key | errorCode 401. |
| Identificador inválido | errorCode 400. |
| El documento no existe o no es de tu cuenta | errorCode 404. |
- Incluye
serie,saldo, si estácobrada, si eses_borradory si quedóverifactu_bloqueada. - Las líneas de alquiler (con período) incluyen
fecha_inicioyfecha_fin. - Sus ficheros adjuntos se piden aparte, en obtener adjuntos.