Primeros pasos
Tu primera llamada a la Transactions API v2, acá mismo y sin instalar nada
Actualizado el 2026-08-16Para: Principiantes · Desarrolladores
Los tres pasos de arriba hacen la llamada de verdad, contra el país y el entorno que elijas en la barra. Lo que sigue es lo mismo desde tu terminal, para cuando lo lleves a tu código.
Pedir el access token
La credencial es una API key con su secret, que se crean en la sección
Desarrolladores de BistroWeb. $BISTRO_HOST es el host de tu país y entorno; el
/oauth repetido no es un error de tipeo: el primero elige el servicio en el
gateway y el segundo es la ruta del servicio.
curl -X POST "https://$BISTRO_HOST/oauth/oauth/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data grant_type=client_credentials \
--data client_id=tu-api-key \
--data client_secret=tu-secret \
--data scope=transactions.read
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 3600,
"scope": "transactions.read"
}
El token dura una hora. Reusalo hasta que venza en vez de pedir uno por llamada: el endpoint tiene límite de tasa.
Consultar las ventas
El token viaja en el header Authorization, con el prefijo Bearer y un
espacio.
curl -G "https://$BISTRO_HOST_OAUTH/transactions/sales" \
-H "Authorization: Bearer $BISTRO_TOKEN" \
--data-urlencode "ShopCode=1001" \
--data-urlencode "From=2026-07-01T00:00:00Z" \
--data-urlencode "To=2026-08-01T00:00:00Z" \
--data-urlencode "Limit=50"
Dos detalles que importan más de lo que parecen:
Fromes inclusivo yToes exclusivo. Para pedir todo julio, elToes el 1 de agosto a las 00:00, no el 31 de julio.ShopCodese puede repetir para pedir varios locales en la misma llamada.
Para recorrer todas las páginas: mientras has_more sea true, repetí la
llamada pasando el next_page que vino, en el parámetro Page.
Si algo falla
401al pedir el token: la API key o el secret no son correctos, o la key está dada de baja.400coninvalid_scope: pediste un scope que la credencial no tiene.403en una consulta: al token le falta el scope que el endpoint exige —transactions.readpara estas rutas— o el local no está entre los habilitados para la credencial.
Si todavía usás la Transactions API v1
Está discontinuada, pero sigue funcionando. Se autentica con el usuario y la contraseña de BistroWeb, y el token dura dos días sin endpoint de refresh:
curl -X POST "https://$BISTRO_HOST/bistroapi/api/v1.0/Token" \
-H "Content-Type: application/json" \
-d '{
"username": "tu-usuario@empresa.com",
"password": "tu-contraseña"
}'
curl -G "https://$BISTRO_HOST/bistroapi/api/v1.0/sales" \
-H "Authorization: Bearer $BISTRO_TOKEN" \
--data-urlencode "ShopCode=1001" \
--data-urlencode "From=2026-07-01T00:00:00Z" \
--data-urlencode "To=2026-08-01T00:00:00Z"
Ahí los errores son otros: 401 es usuario o contraseña incorrectos, 403 al
pedir el token es que al usuario le falta el rol ApiUser, y 403 en una
consulta es un local que no está entre los habilitados para ese usuario.