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

Obtener presupuesto

GET https://api.afer.pro/api/v1/estimates/{id}
Alias en castellano (v0, sigue operativo): POST https://api.afer.pro/obtenerPresupuesto

Un presupuesto por su identificador, con su cliente y todas sus líneas.

Misma forma que obtenerFactura: cabecera, contraparte y array de lineas con cantidad, precio unitario, descuento e IVA de cada una. La base_imponible es la suma de los importes de línea.

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.

presupuestoIdstring
obligatorio
Identificador del presupuesto. Viaja en la ruta. Acepta el id cifrado de consultarPresupuestos o el numérico legacy.

Ejemplo de petición

curl -X GET 'https://api.afer.pro/api/v1/estimates/aBc123XyZ?presupuestoId=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/estimates/aBc123XyZ?presupuestoId=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/estimates/aBc123XyZ?presupuestoId=aBc123XyZ', {
  method: 'GET',
  headers: {
    'X-API-KEY': 'afer_tk_TU_TOKEN',
    'X-API-SECRET': 'afer_sk_TU_SECRET'
  }
});

const resultado = await respuesta.json();

Respuesta

200 · application/json
{
    "errorCode": 200,
    "errorMsg": "",
    "data": {
        "tipo": "presupuesto",
        "presupuestoId": "aBc123XyZ…",
        "numero": "PRE-2026-014",
        "fecha": "2026-03-11",
        "concepto": "Reforma integral local Palma",
        "contraparte": {
            "clienteId": "dEf456…",
            "nombre_fiscal": "ACME OBRAS SL",
            "cif": "B07123456",
            "email": "admin@acmeobras.com"
        },
        "base_imponible": 18400.5,
        "num_lineas": 2,
        "lineas": [
            {
                "lineaId": "lIn001…",
                "descripcion": "Demolición y retirada de escombros",
                "cantidad": 1,
                "importe_unitario": 3400.5,
                "descuento": 0,
                "iva": 21,
                "importe": 3400.5,
                "articuloId": null
            }
        ]
    }
}
Notas
  • Los adjuntos del presupuesto están en obtenerAdjuntos (GET /api/v1/estimates/{id}/attachments).