curl --request POST \
--url https://api.finsync.ar/api/operations/{id}/revert \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"description": "Reload as budget operation"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({description: 'Reload as budget operation'})
};
fetch('https://api.finsync.ar/api/operations/{id}/revert', 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({description: 'Reload as budget operation'})
};
fetch('https://api.finsync.ar/api/operations/{id}/revert', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.finsync.ar/api/operations/{id}/revert"
payload = { "description": "Reload as budget operation" }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"operation_id": 123,
"counterpart_operation_id": 123,
"counterpart_transaction_ids": [
456,
457
],
"adjusted_transaction_ids": [
10,
11
],
"adjusted_transactions": 2,
"message": "Operation reverted successfully"
}Revert a completed operation (contraasiento)
Creates dashboard contraasientos for every completed transaction in the operation. The original operation and transaction amounts, accounts, and legs stay in history; originals become adjusted and inverse transactions are inserted on the same operation (the same helper as dashboard Revertir operación). Completed operations are immutable: this is not an unapprove or completed→pending flip. Cheque-linked operations are rejected, matching the dashboard. Optional body: { "description": "reason" }.
curl --request POST \
--url https://api.finsync.ar/api/operations/{id}/revert \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"description": "Reload as budget operation"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({description: 'Reload as budget operation'})
};
fetch('https://api.finsync.ar/api/operations/{id}/revert', 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({description: 'Reload as budget operation'})
};
fetch('https://api.finsync.ar/api/operations/{id}/revert', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.finsync.ar/api/operations/{id}/revert"
payload = { "description": "Reload as budget operation" }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"operation_id": 123,
"counterpart_operation_id": 123,
"counterpart_transaction_ids": [
456,
457
],
"adjusted_transaction_ids": [
10,
11
],
"adjusted_transactions": 2,
"message": "Operation reverted successfully"
}Authorizations
API Key for authentication
Path Parameters
Completed operation ID to revert
Body
Optional extra text appended to each contraasiento description
Response
Operation reverted with counterpart transactions
Original operation ID (unchanged)
Operation that holds the inverse legs. Dashboard contraasiento posts those legs on the same operation, so this equals operation_id.
IDs of the newly inserted inverse transactions
Original transaction IDs now marked adjusted
Number of original transactions marked adjusted