Base URL https://api.afer.pro Referencia aferapp.com Reservar demo

Obtener adjuntos

GET https://api.afer.pro/api/v1/invoices/{id}/attachments
También disponible en: 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
Alias en castellano (v0, sigue operativo): 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.

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 →

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.

documentoIdstring
obligatorio
Identificador cifrado del documento. En la ruta REST va como {id}.
tipostring
opcional
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.

200 · application/json
{
    "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

CasoResultado
Sin credenciales de API key errorCode 401.
tipo no reconocido errorCode 400.
El documento no existe o no es de tu cuenta errorCode 404.