Obtener adjuntos
https://api.afer.pro/api/v1/invoices/{id}/attachments
GET /api/v1/delivery-notes/{id}/attachments
GET /api/v1/orders/{id}/attachments
GET /api/v1/recurring-invoices/{id}/attachments
GET /api/v1/purchase-delivery-notes/{id}/attachments
GET /api/v1/purchase-orders/{id}/attachments
GET /api/v1/purchase-invoices/{id}/attachments
GET /api/v1/estimates/{id}/attachments
POST https://api.afer.pro/obtenerAdjuntos
Los ficheros adjuntos de un documento de venta o de compra, con su URL de descarga.
Devuelve todo lo que se ha subido a un documento — el PDF firmado, la foto del parte, el justificante — con una URL pública descargable por adjunto.
En la API REST cada tipo tiene su propia ruta (/invoices/{id}/attachments,
/delivery-notes/{id}/attachments…) y el tipo se deduce de ella; con el alias en
castellano se indica con el parámetro tipo.
El documento se valida antes contra tu cuenta: si no es tuyo, 404 y no se listan sus ficheros.
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.
documentoIdstringobligatorio | Identificador cifrado del documento. En la ruta REST va como {id}. |
tipostringopcional | Tipo de documento: factura (por defecto), albaran, pedido, recurrente, presupuesto, facturaCompra, albaranCompra o pedidoCompra. En las rutas REST lo fija la propia ruta. |
Ejemplo de petición
curl -X GET 'https://api.afer.pro/api/v1/invoices/aBc123XyZ/attachments?tipo=factura' \
-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/attachments?tipo=factura');
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/attachments?tipo=factura', {
method: 'GET',
headers: {
'X-API-KEY': 'afer_tk_TU_TOKEN',
'X-API-SECRET': 'afer_sk_TU_SECRET'
}
});
const resultado = await respuesta.json();
Respuesta
tipo_adjunto distingue imágenes (img) de documentos (doc); de_linea indica si el fichero cuelga de una línea concreta en vez del documento.
{
"errorCode": 200,
"errorMsg": "",
"data": {
"tipo": "factura",
"facturaId": "aBc123XyZ…",
"num_adjuntos": 1,
"adjuntos": [
{
"adjuntoId": "dEf456…",
"fichero": "albaran-firmado.pdf",
"url": "https://prosuite.aferapp.com/attachments/public/upload/customers/108/albaran-firmado.pdf",
"tipo_adjunto": "doc",
"clasificacion": "acta",
"nota": "Firmado por el cliente",
"de_linea": false,
"fecha_hora": "2026-08-12 10:24:00"
}
]
}
}
Errores
| Caso | Resultado |
|---|---|
| Sin credenciales de API key | errorCode 401. |
tipo no reconocido |
errorCode 400. |
| El documento no existe o no es de tu cuenta | errorCode 404. |