curl --request GET \
--url https://api.finsync.ar/api/whatsapp/tools \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.finsync.ar/api/whatsapp/tools', 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/whatsapp/tools', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.finsync.ar/api/whatsapp/tools"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)[
{
"id": 123,
"company_id": 123,
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"enabled": true,
"company_operation_type_id": 123,
"mode": "standard",
"fixed_config": {
"toolKind": "up_down",
"operationTypeId": 123
},
"parameter_schema": {
"parameters": [
{}
]
},
"created_by": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z"
}
]List company WhatsApp tools
Lists WhatsAppOperationTool rows for the API-key company (deleted_at IS NULL), including disabled tools. Same records as Configuración > WhatsApp > Tools. Dashboard employee route is /api/kapso/tools; this public path uses x-api-key.
curl --request GET \
--url https://api.finsync.ar/api/whatsapp/tools \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.finsync.ar/api/whatsapp/tools', 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/whatsapp/tools', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.finsync.ar/api/whatsapp/tools"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)[
{
"id": 123,
"company_id": 123,
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"enabled": true,
"company_operation_type_id": 123,
"mode": "standard",
"fixed_config": {
"toolKind": "up_down",
"operationTypeId": 123
},
"parameter_schema": {
"parameters": [
{}
]
},
"created_by": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z"
}
]Authorizations
API Key for authentication
Response
Company tools ordered by created_at descending
100Copied from fixed_config.operationTypeId
Legacy UP/DOWN column. OTHER, EXCHANGE, and BUDGET store standard here; real settings live in fixed_config.
standard, internal_transfer, third_party Same discriminated fixed_config stored on WhatsAppOperationTool and sent by Configuración > WhatsApp > Tools. Validated with whatsAppToolFixedConfigSchema. operationTypeId must be a CompanyOperationTypes id of this company and must match toolKind (up/down → up_down, other → other, exchange → exchange, budget → budget). Budget config uses costCenter/paymentSourceMode/internalAccount/payerClient/amount/description; it does not require up_down mode/source/destination. Direction defaults to expense. paymentSourceMode defaults to internal (caja). Expense+external credits a type=1 CC (payerClientId) and does not debit caja. If internalAccountId is omitted on internal, confirm uses the cost center default caja.
Show child attributes
Show child attributes
Dynamic fields the bot asks for (parameter_schema). Same shape as the dashboard form: { parameters: [...] }. Omit or send { parameters: [] } when every field is fixed.
Show child attributes
Show child attributes