Tarifas de venta
https://api.afer.pro/api/v1/price-lists
POST https://api.afer.pro/consultarTarifas
Qué tarifas de precio existen en tu cuenta, cuántos clientes usa cada una y el precio de un artículo en todas.
En Afer una tarifa no es una tabla de precios aparte: son las columnas de precio del propio artículo (pvp1, pvp2, pvp3…) y cada cliente apunta a una de ellas. Al facturar, el precio que se aplica es el de la columna de la tarifa del cliente.
Este endpoint te dice qué columnas existen realmente en tu cuenta —se crean bajo demanda, así que no todos los tenants tienen las mismas— y cuántos clientes tiene asignada cada tarifa. La tarifa 1 es la de por defecto: cuentan también los clientes que no tienen ninguna asignada.
Si envías articuloId, la respuesta añade el bloque articulo con el precio de ese artículo en todas las tarifas, que es la forma rápida de construir un comparador de precios.
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.
articuloIdstringopcional | Devuelve además el precio de este artículo en cada tarifa. |
Ejemplo de petición
curl -X GET 'https://api.afer.pro/api/v1/price-lists?articuloId=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/price-lists?articuloId=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/price-lists?articuloId=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": {
"total_tarifas": 2,
"tarifas": [
{
"tarifa": 1,
"por_defecto": true,
"campo_precio": "pvp1",
"campo_precio_con_iva": "pvp_iva1",
"num_clientes": 214
},
{
"tarifa": 2,
"por_defecto": false,
"campo_precio": "pvp2",
"campo_precio_con_iva": "pvp_iva2",
"num_clientes": 18
}
],
"articulo": {
"articuloId": "aBc123XyZ…",
"descripcion": "CANNONDALE SYNAPSE CARBON",
"precios": [
{
"tarifa": 1,
"precio": 2399,
"precio_con_iva": 2902.79
},
{
"tarifa": 2,
"precio": 2199,
"precio_con_iva": 2660.79
}
]
}
}
}
campo_precioes el nombre real de la columna: te sirve para entender de dónde sale cada importe, no hace falta que lo uses.- El listado de clientes con su tarifa está en listarClientes.