curl --request GET \
--url https://api.finsync.ar/api/mesas/{id}/report \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.finsync.ar/api/mesas/{id}/report', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.finsync.ar/api/mesas/{id}/report', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.finsync.ar/api/mesas/{id}/report"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"mesa": {
"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
},
"period": {
"id": 5,
"mesa_id": 1,
"status": "open",
"opened_at": "2026-03-01T00:00:00.000Z",
"closed_at": null,
"opening_local": 1000000,
"opening_fx": 1200,
"closing_local": null,
"closing_avg_fx": null,
"pnl_local": null,
"pnl_quote": null,
"closing_report": null,
"opened_by": null,
"closed_by": null,
"created_at": "2026-03-01T00:00:00.000Z",
"updated_at": "2026-03-01T00:00:00.000Z"
},
"report": {
"method": "fifo",
"totals": {
"pnlLocal": 15000,
"pnlQuote": 12.4,
"tradeCount": 3
},
"position": {
"openLongLocal": 250000,
"averageCostFx": 1210
},
"perTrade": []
},
"trades": [],
"pagination": {
"page": 1,
"pageSize": 25,
"total": 0,
"totalPages": 0
},
"readOnly": false
}Mesa report for the open period or a closed snapshot
Same query as the dashboard (page, pageSize, search, side, status, inclusion, sortKey, sortDir), plus optional period_id. Omit period_id for the live open day (409 NO_OPEN_PERIOD when none is open). Pass a closed period_id to serve the frozen closing_report blotter (two columns, WAC, leftover, P&L, lines) with readOnly=true — not a live replay. Reopen that day (POST .../periods/{periodId}/reopen) to make it editable again. 409 SNAPSHOT_MISSING when that closed day has no usable snapshot. Aggregates and blotter are full-period; report.perTrade and trades are the current page.
curl --request GET \
--url https://api.finsync.ar/api/mesas/{id}/report \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.finsync.ar/api/mesas/{id}/report', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.finsync.ar/api/mesas/{id}/report', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.finsync.ar/api/mesas/{id}/report"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"mesa": {
"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
},
"period": {
"id": 5,
"mesa_id": 1,
"status": "open",
"opened_at": "2026-03-01T00:00:00.000Z",
"closed_at": null,
"opening_local": 1000000,
"opening_fx": 1200,
"closing_local": null,
"closing_avg_fx": null,
"pnl_local": null,
"pnl_quote": null,
"closing_report": null,
"opened_by": null,
"closed_by": null,
"created_at": "2026-03-01T00:00:00.000Z",
"updated_at": "2026-03-01T00:00:00.000Z"
},
"report": {
"method": "fifo",
"totals": {
"pnlLocal": 15000,
"pnlQuote": 12.4,
"tradeCount": 3
},
"position": {
"openLongLocal": 250000,
"averageCostFx": 1210
},
"perTrade": []
},
"trades": [],
"pagination": {
"page": 1,
"pageSize": 25,
"total": 0,
"totalPages": 0
},
"readOnly": false
}Authorizations
API Key for authentication
Path Parameters
Mesa ID
Query Parameters
Closed (or open) period to load. Omit for the current open day.
Filter trades by description / operation type text
all, buy, sell all, open, matched all, auto, manual date, localAmount, fx, pnlQuote asc, desc Response
Live open-period report or frozen closed-period snapshot
FX trading desk. created_by is null for x-api-key creates. account_ids are internal (Client.type=0) accounts unique to one mesa.
Show child attributes
Show child attributes
{
"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
}
Trading session. opened_by / closed_by are null for x-api-key callers.
Show child attributes
Show child attributes
{
"id": 5,
"mesa_id": 1,
"status": "open",
"opened_at": "2026-03-01T00:00:00.000Z",
"closed_at": null,
"opening_local": 1000000,
"opening_fx": 1200,
"closing_local": null,
"closing_avg_fx": null,
"pnl_local": null,
"pnl_quote": null,
"closing_report": null,
"opened_by": null,
"closed_by": null,
"created_at": "2026-03-01T00:00:00.000Z",
"updated_at": "2026-03-01T00:00:00.000Z"
}