Calcular comisiones para una orden BYMA
Calcula las comisiones de Allaria y de BYMA para una orden de mercado antes de su ejecución, a partir de un monto o cantidad de la orden y un símbolo.
POST
/v1/broker/fees/calculateRequest
Headers
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
Authorization | string | Sí | Token de acceso en formato Bearer ACCESS_TOKEN |
Content-Type | string | Sí | Debe ser application/json |
No aplica: Path Parameters, Query Parameters.
Body
amount es efectivamente requeridoAunque amount es un campo opcional del payload compartido de órdenes, este endpoint lo requiere para calcular las comisiones: si se omite amount (incluso cuando quantity está presente), la solicitud falla con un 400 Bad Request — ver Códigos de error más abajo.
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
quantity | number | No | Cantidad de valores nominales a operar. Si no se especifica, se estima a partir de amount. |
amount | number | No | Monto monetario a operar. Requerido en la práctica para este endpoint (ver nota arriba); si se proporciona, la cantidad de nominales se estima automáticamente. |
symbol | string | Sí | Símbolo (ticker) del instrumento negociable. |
side | string | Sí | Lado de la orden. Valores posibles: BUY, SELL. |
settled_period | string | Sí | Período de liquidación. Valores posibles: T0 (liquidación inmediata / Contado Inmediato), T1 (liquidación a 24hs). |
account_number | integer | Sí | Número de cuenta asociado a la cuenta de Allaria. |
price | number | No | Precio de referencia mostrado al usuario. Solo relevante para órdenes de mercado de tipo repo (caución). |
tag | object | No | Metadatos opcionales en formato clave-valor asociados a la orden. |
Response
2XX Éxito
| Campo | Tipo | Descripción |
|---|---|---|
symbol | string | Símbolo (ticker) del instrumento negociable. |
side | string | Lado de la orden. Valores posibles: BUY, SELL. |
received_amount | number | Monto neto de la orden antes de aplicar comisiones. |
allaria_fee | number | Monto de la comisión cobrada por Allaria para esta orden. |
byma_fee | number | Monto de la comisión cobrada por BYMA (el mercado) para esta orden. |
allaria_fee_percentage | number | Porcentaje de comisión aplicado por Allaria sobre el monto de la orden (decimal, por ejemplo 0.0015 = 0.15%). |
allaria_min_fee | number | Monto mínimo de comisión configurado para Allaria, aplicado cuando la comisión calculada por porcentaje resulta menor. |
total_fees | number | Suma de allaria_fee y byma_fee. |
total_amount_with_fees | number | Monto total resultante de sumar total_fees a received_amount. |
Códigos de error
| Status | Descripción |
|---|---|
400 | Bad Request — no se proporcionó amount |
401 | Unauthorized — token de acceso inválido o faltante |
403 | Forbidden — el token no tiene permiso para acceder a este recurso |
500 | Internal Server Error |
Formato del cuerpo de la respuesta
400Esta validación en particular no pasa por el manejador de errores estándar, por lo que el cuerpo de la respuesta es un mensaje de texto simple en lugar de la estructura code/description que se muestra a continuación:
Amount must be provided
Estructura del error (401, 403, 500):
{
"code": "INTERNAL_ERROR",
"description": "An unexpected error occurred"
}
Ejemplo de código
- cURL
- JavaScript
- Python
- Node.js
curl -X POST "https://b2b.allaria.dev/v1/broker/fees/calculate" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"symbol": "AL30D",
"side": "SELL",
"amount": 184.75,
"settled_period": "T0",
"account_number": 5050
}'
const response = await fetch('https://b2b.allaria.dev/v1/broker/fees/calculate', {
method: 'POST',
headers: {
'Authorization': 'Bearer ACCESS_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
symbol: 'AL30D',
side: 'SELL',
amount: 184.75,
settled_period: 'T0',
account_number: 5050,
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.post(
'https://b2b.allaria.dev/v1/broker/fees/calculate',
headers={
'Authorization': 'Bearer ACCESS_TOKEN',
'Content-Type': 'application/json',
},
json={
'symbol': 'AL30D',
'side': 'SELL',
'amount': 184.75,
'settled_period': 'T0',
'account_number': 5050,
}
)
data = response.json()
print(data)
const axios = require('axios');
const response = await axios.post(
'https://b2b.allaria.dev/v1/broker/fees/calculate',
{
symbol: 'AL30D',
side: 'SELL',
amount: 184.75,
settled_period: 'T0',
account_number: 5050,
},
{
headers: {
Authorization: 'Bearer ACCESS_TOKEN',
'Content-Type': 'application/json',
},
}
);
console.log(response.data);
2XX Éxito
{
"symbol": "AL30D",
"side": "SELL",
"received_amount": 184.75,
"allaria_fee": 0.27,
"byma_fee": 0.003,
"allaria_fee_percentage": 0.0015,
"allaria_min_fee": 0.00,
"total_fees": 0.273,
"total_amount_with_fees": 185.023
}