Update a recurring transaction
Updates the mutable fields of a recurring transaction template. Only amount, tr_type,
note, frequency and run_once can be changed; employee_id, type, sub_type,
absence_type_id and pbx_id are fixed at creation. Changing frequency recomputes the
next run. Server-to-server only (PBX API key).
HTTP:
PbxApiKey
PBX API key, used by the customer's PBX server (e.g. for roaming login/logout)
- HTTP Authorization Scheme
bearer- Bearer format
Bearer <pbx_api_key>
id
path · string · uuid
*
accept
header · string
example:
application/jsonRequest body
Request schema
amountnumber · float
Greater than zero.
tr_typestring
enum:
credit debitnotestring | null
length: 0–65535
frequencystring
enum:
monthly_start yearly_startrun_onceboolean
Responses
Response schema
idstring · uuid
Unique recurring transaction template identifier.
example:
550e8400-e29b-41d4-a716-446655440000pbx_idstring · uuid
PBX tenant the template belongs to.
example:
550e8400-e29b-41d4-a716-446655440001employee_idstring · uuid
Tempus employee the materialised transactions are booked against.
example:
550e8400-e29b-41d4-a716-446655440002typestring
Transaction type key.
example:
bonussub_typestring | null
Optional sub-type key.
example:
annualabsence_type_idstring | null · uuid
Linked absence type, when the transaction credits or debits an absence balance.
amountnumber · float
Amount applied on each run. Always greater than zero.
example:
8tr_typestring
Whether each run credits or debits the balance.
enum:
credit debitexample:
creditnotestring | null
Free-text note carried onto each materialised transaction.
example:
Monthly meal allowancefrequencystring
When the template materialises a transaction.
enum:
monthly_start yearly_startexample:
monthly_startrun_onceboolean
When true the template runs a single time and then completes.
example:
statusstring
Lifecycle status of the template.
enum:
active paused completed failedexample:
activefailure_reasonstring | null
Populated when the last run failed.
next_run_atstring | null · date-time
Next scheduled materialisation, in ISO 8601.
example:
2026-07-01T00:00:00+00:00last_run_atstring | null · date-time
Last materialisation timestamp, in ISO 8601.
last_transaction_idstring | null
Identifier of the most recently materialised Tempus transaction.
created_by_user_idstring | null
User who created the template. Always null when created through the API key flow.
created_atstring | null · date-time
example:
2026-06-01T08:29:07+00:00updated_atstring | null · date-time
example:
2026-06-01T08:29:07+00:00Authorization Token Missing. This error is returned when the authorization token is missing.
Response schema
errorstring
Error message
example:
Authorization Token is missingThe authenticated principal is not allowed to manage recurring transactions.
Response schema
messagestring
Data Not Found. This error is returned when the requested data is not found.
Response schema
messagearray<string>
[]string
Unprocessable Parameters. This error is returned when a parameter is not valid.
Response schema
messagestring
example:
The given data was invalid.errorsobject
filterarray<string>
[]string
sortarray<string>
[]string
pagearray<string>
[]string
per_pagearray<string>
[]string
Server error. An unexpected condition was encountered on the server and the
request could not be completed. The body is a generic JSON envelope with a
`message` field. The response is logged on the server side; quote the
request URL + timestamp when reporting an issue.
Response schema
messagestring
exceptionstring
Only present in non-production environments.
filestring
Only present in non-production environments.
lineinteger
Only present in non-production environments.
patch
https://cockpit.voxbi.com/api/v1/recurring-transactions/{id}
Base URL
Request sample
curl -X PATCH 'https://cockpit.voxbi.com/api/v1/recurring-transactions/{id}' \
-H 'Authorization: Bearer YOUR_TOKEN' \
-H 'Content-Type: application/json' \
--data '{"amount":10,"note":"Updated allowance"}'
const response = await fetch('https://cockpit.voxbi.com/api/v1/recurring-transactions/{id}', {
method: 'PATCH',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${YOUR_TOKEN}`,
},
body: JSON.stringify({
"amount": 10,
"note": "Updated allowance"
}),
});
const data = await response.json();
console.log(data);
import requests
response = requests.patch('https://cockpit.voxbi.com/api/v1/recurring-transactions/{id}',
headers={'Authorization': f'Bearer {YOUR_TOKEN}'},
json={
"amount": 10,
"note": "Updated allowance"
}
)
response.raise_for_status()
data = response.json()
print(data)
<?php
$context = stream_context_create([
'http' => [
'method' => 'PATCH',
'header' => "Content-Type: application/json\r\nAuthorization: Bearer YOUR_TOKEN",
'content' => '{
\"amount\": 10,
\"note\": \"Updated allowance\"
}',
],
]);
$response = file_get_contents('https://cockpit.voxbi.com/api/v1/recurring-transactions/{id}', false, $context);
$data = json_decode($response, true);
print_r($data);
Sample request
{ … }
"amount": 10,
"note": "Updated allowance"
}
No example for this status.
{ … }
"error": "Authorization Token is missing"
}
Cache-Control
string
example:
private, must-revalidate
Connection
string
example:
keep-alive
Content-Type
string
example:
application/json
Vary
string
example:
Origin
X-RateLimit-Limit
integer
Max requests allowed in the current rate-limit window.
example:
60
X-RateLimit-Remaining
integer
Requests remaining in the current rate-limit window.
example:
57{ … }
"message": "You are not authorised to manage recurring transactions."
}
{ … }
"message": [ … ]
"Data not found"
]
}
Cache-Control
string
example:
private, must-revalidate
Connection
string
example:
keep-alive
Content-Type
string
example:
application/json
Vary
string
example:
Origin
X-RateLimit-Limit
integer
Max requests allowed in the current rate-limit window.
example:
60
X-RateLimit-Remaining
integer
Requests remaining in the current rate-limit window.
example:
57{ … }
"errors": { … }
"filter": [ … ],
"The filter field must be an array."
],
"sort": [ … ],
"The sort field must be a string."
],
"page": [ … ],
"The page field must be an integer."
],
"per_page": [ … ]
"The per page field must be an integer."
]
}
}
Cache-Control
string
example:
private, must-revalidate
Connection
string
example:
keep-alive
Content-Type
string
example:
application/json
Vary
string
example:
Origin
X-RateLimit-Limit
integer
Max requests allowed in the current rate-limit window.
example:
60
X-RateLimit-Remaining
integer
Requests remaining in the current rate-limit window.
example:
57{ … }
"message": "Server Error"
}