curl --request POST \
--url https://api.finsync.ar/api/mesas \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "ARS/USD desk",
"local_currency": "ARS",
"quote_currency": "USD",
"costing_method": "fifo",
"account_ids": [
10,
11
]
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'ARS/USD desk',
local_currency: 'ARS',
quote_currency: 'USD',
costing_method: 'fifo',
account_ids: [10, 11]
})
};
fetch('https://api.finsync.ar/api/mesas', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'ARS/USD desk',
local_currency: 'ARS',
quote_currency: 'USD',
costing_method: 'fifo',
account_ids: [10, 11]
})
};
fetch('https://api.finsync.ar/api/mesas', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.finsync.ar/api/mesas"
payload = {
"name": "ARS/USD desk",
"local_currency": "ARS",
"quote_currency": "USD",
"costing_method": "fifo",
"account_ids": [10, 11]
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": 1,
"company_id": 42,
"name": "ARS/USD desk",
"local_currency": "ARS",
"quote_currency": "USD",
"costing_method": "fifo",
"account_ids": [
10,
11
],
"created_by": null,
"created_at": "2026-03-01T00:00:00.000Z",
"updated_at": "2026-03-01T00:00:00.000Z",
"deleted_at": null
}{
"error": "Mesas module not enabled for this company",
"code": "MESAS_DISABLED"
}Create a mesa
Creates a desk. account_ids must be internal (Client.type=0) company accounts, unique to one mesa. local_currency and quote_currency must differ. created_by is null for API-key creates.
curl --request POST \
--url https://api.finsync.ar/api/mesas \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "ARS/USD desk",
"local_currency": "ARS",
"quote_currency": "USD",
"costing_method": "fifo",
"account_ids": [
10,
11
]
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'ARS/USD desk',
local_currency: 'ARS',
quote_currency: 'USD',
costing_method: 'fifo',
account_ids: [10, 11]
})
};
fetch('https://api.finsync.ar/api/mesas', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'ARS/USD desk',
local_currency: 'ARS',
quote_currency: 'USD',
costing_method: 'fifo',
account_ids: [10, 11]
})
};
fetch('https://api.finsync.ar/api/mesas', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.finsync.ar/api/mesas"
payload = {
"name": "ARS/USD desk",
"local_currency": "ARS",
"quote_currency": "USD",
"costing_method": "fifo",
"account_ids": [10, 11]
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": 1,
"company_id": 42,
"name": "ARS/USD desk",
"local_currency": "ARS",
"quote_currency": "USD",
"costing_method": "fifo",
"account_ids": [
10,
11
],
"created_by": null,
"created_at": "2026-03-01T00:00:00.000Z",
"updated_at": "2026-03-01T00:00:00.000Z",
"deleted_at": null
}{
"error": "Mesas module not enabled for this company",
"code": "MESAS_DISABLED"
}Authorizations
API Key for authentication
Body
"ARS/USD desk"
"ARS"
"USD"
fifo, wac "fifo"
1[10, 11]
Defaults to false (completed-only).
false
Response
Mesa created
FX trading desk. created_by is null for x-api-key creates. account_ids are internal (Client.type=0) accounts unique to one mesa.
1
42
"ARS/USD desk"
"ARS"
"USD"
fifo, wac "wac"
quote: Compra = quote in = engine sell. New desks default to quote.
local, quote "quote"
manual: blotter starts empty (user confirms lines). auto: apply high-confidence Sugerir matches (exact / fx_close) as blotter lines; links never write operations. New desks default to manual.
auto, manual "manual"
Off (default): Sugerir / auto-feed / infer only count completed legs. On: pending legs count too. Cancel drops the blotter line; approve keeps the same link.
false
[10, 11]
null