Desarrolladores
De cero a la primera respuesta de la API en cinco pasos.
¿Quieres conectar ChatGPT, Claude u otro asistente sin programar? Empieza por Conecta tu IA.
El acceso a la API lo activa BMC para cada empresa. Mientras no esté activo, el área de cliente no muestra la sección Desarrolladores. Si no la ves, escribe a plataforma@bm.consulting indicando la empresa.
Crear, editar, rotar y revocar tokens lo pueden hacer el titular (OWNER) o un administrador (ADMIN) de la empresa. El resto de usuarios ve la lista, pero no puede cambiarla.
bmc_live_…: solo se muestra una vez. Confirma con Ya lo he guardado.Guarda el token en un gestor de secretos o en una variable de entorno. No lo escribas en el código ni lo subas a un repositorio. El mismo token vale para la API REST y para el servidor MCP.
En la lista de Credenciales, cada token tiene un interruptor para desactivarlo y volver a activarlo, y las acciones Editar, Rotar (cambia el secreto al momento; el anterior deja de valer) y Revocar (definitivo). El consumo del mes está en la pestaña Uso de la API.
Esta llamada lista tus contactos. Exige el permiso contacts:contacts.read, así que el token debe tener
al menos el nivel Leer en el recurso Contactos.
export BMC_TOKEN="bmc_live_…" curl -X GET "https://app.bm.consulting/api/v1/contacts?limit=50" \
-H "Authorization: Bearer $BMC_TOKEN" const res = await fetch("https://app.bm.consulting/api/v1/contacts?limit=50", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.BMC_TOKEN}`,
},
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); import os
import requests
res = requests.get(
"https://app.bm.consulting/api/v1/contacts?limit=50",
headers={"Authorization": f"Bearer {os.environ['BMC_TOKEN']}"},
timeout=30,
)
res.raise_for_status()
data = res.json()
Una respuesta correcta devuelve 200 y un JSON. En esta ruta, la lista viene en contacts
junto con los campos de paginación. Si el token no puede ver datos personales, el NIF, el teléfono y el resto de
datos personales salen enmascarados.
{
"contacts": [
{
"id": "…",
"firstName": "Ana",
"lastName": "García",
"fullName": "Ana García",
"email": "ana@example.com",
"nif": "A******21",
"isActive": true
}
],
"total": 1,
"page": 1,
"limit": 50,
"pages": 1
}
Si recibes 401, el token no es válido, ha caducado o se ha revocado. Si recibes 403,
el token no tiene el permiso de la ruta o la llamada sale de una IP no permitida.
Consulta Errores.
Las rutas de contabilidad llevan la empresa en la ruta (/books/{companyId}/…). El
companyId es el identificador de la empresa en BMC. Para saber cuáles alcanza tu token, llama a
GET /auth/whoami, que no exige ningún permiso:
curl "https://app.bm.consulting/api/v1/auth/whoami" \
-H "Authorization: Bearer $BMC_TOKEN" {
"token": { "id": "…", "prefix": "bmc_live_…", "name": "Informe mensual de tesorería", "kind": "API" },
"accountId": "cm…a1",
"accountIds": ["cm…a1", "cm…b2", "cm…c3"],
"audience": "client",
"scopes": ["…"],
"permissions": ["…"],
"piiAccess": false,
"expiresAt": null,
"groupIds": ["cm…b2"]
} accountId: la cuenta principal del token (cuota y límites).accountIds: todas las empresas que alcanza hoy, la principal primero, con las filiales de los grupos ya incluidas. Cualquiera de ellas vale como companyId.groupIds: los grupos elegidos enteros.
Un companyId fuera de esa lista recibe 403 o 404, sin datos de otra empresa.
URL base: https://app.bm.consulting/api/v1