Create a new transaction
const url = 'http://localhost:8000/api/v1/transactions';const form = new FormData();form.append('client_id', '245cb3df-df3a-428b-a908-e5f74b8d58a3:245cb3df-df3a-428b-a908-e5f74b8d58a4');form.append('amount', '1');form.append('type', 'income');form.append('intent', 'regular');form.append('description', 'example');form.append('datetime', '2026-04-15T12:00:00Z');form.append('created_at', '2026-04-15T12:00:00Z');form.append('party_id', '1');form.append('wallet_id', '1');form.append('group_id', '1');form.append('is_recurring', 'true');form.append('recurrence_period', 'daily');form.append('recurrence_interval', '1');form.append('recurrence_ends_at', '2026-04-15T12:00:00Z');form.append('categories', '1');form.append('files[]', 'file');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://localhost:8000/api/v1/transactions \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: multipart/form-data' \ --form client_id=245cb3df-df3a-428b-a908-e5f74b8d58a3:245cb3df-df3a-428b-a908-e5f74b8d58a4 \ --form amount=1 \ --form type=income \ --form intent=regular \ --form description=example \ --form datetime=2026-04-15T12:00:00Z \ --form created_at=2026-04-15T12:00:00Z \ --form party_id=1 \ --form wallet_id=1 \ --form group_id=1 \ --form is_recurring=true \ --form recurrence_period=daily \ --form recurrence_interval=1 \ --form recurrence_ends_at=2026-04-15T12:00:00Z \ --form categories=1 \ --form 'files[]=@file'Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”object
Unique identifier for your local client
Example
245cb3df-df3a-428b-a908-e5f74b8d58a3:245cb3df-df3a-428b-a908-e5f74b8d58a4Set the transaction as a recurring transaction
Set how often the transaction should repeat
Set how often the transaction should repeat
When the transaction stops repeating
Files to attach (jpg, jpeg, png, pdf; max 1.2MB each)
Responses
Section titled “ Responses ”Transaction created successfully
object
ID of the transaction
Type of the transaction (income or expense)
Amount of the transaction
Description of the transaction
Date and time of the transaction
List of categories of the transaction
Set the transaction as a recurring transaction
ID of the user who created the transaction
Transaction amount converted to the currency of the budget
ID of the associated transfer, if any
Client-generated ID of the associated wallet
Client-generated ID of the associated party
Files attached to the transaction
object
ID of the file
Path or content of the file
URL to access the file
Type of file (image, icon, emoji, pdf)
Related model name
ID of the related model
object
ID of the transaction
ID of the transaction
Set how often the transaction should repeat
Set how often the transaction should repeat
When the transaction stops repeating
When next the transaction should happen
Example
{ "type": "income", "files": [ { "type": "image" } ]}Invalid input
Resource does not belong to user