curl --request POST \
--url https://api.example.com/api/transactions \
--header 'Content-Type: application/json' \
--data '
{
"account_id": "<string>",
"date": "<string>",
"description_encrypted": "<string>",
"amount_encrypted": "<string>",
"amount_sign": "<string>",
"subcategory_id": "<string>",
"bank_category_encrypted": "<string>",
"bank_subcategory_encrypted": "<string>",
"description": "<string>",
"amount": 123,
"bank_category": "<string>",
"bank_subcategory": "<string>"
}
'{
"success": true,
"transaction": {
"id": "<string>",
"account_id": "<string>",
"date": "<string>",
"subcategory_id": {},
"description": "<string>",
"amount": 123,
"description_encrypted": "<string>",
"amount_encrypted": "<string>",
"amount_sign": "<string>",
"bank_category": {},
"bank_subcategory": {},
"created_at": "<string>"
},
"error": "<string>"
}Create a new transaction in a user’s account
curl --request POST \
--url https://api.example.com/api/transactions \
--header 'Content-Type: application/json' \
--data '
{
"account_id": "<string>",
"date": "<string>",
"description_encrypted": "<string>",
"amount_encrypted": "<string>",
"amount_sign": "<string>",
"subcategory_id": "<string>",
"bank_category_encrypted": "<string>",
"bank_subcategory_encrypted": "<string>",
"description": "<string>",
"amount": 123,
"bank_category": "<string>",
"bank_subcategory": "<string>"
}
'{
"success": true,
"transaction": {
"id": "<string>",
"account_id": "<string>",
"date": "<string>",
"subcategory_id": {},
"description": "<string>",
"amount": 123,
"description_encrypted": "<string>",
"amount_encrypted": "<string>",
"amount_sign": "<string>",
"bank_category": {},
"bank_subcategory": {},
"created_at": "<string>"
},
"error": "<string>"
}description_encrypted determines which validation schema is used.
Show Allowed values
positive - Income transactionnegative - Expense transactionShow Transaction properties
curl -X POST https://api.example.com/api/transactions \
-H "Content-Type: application/json" \
-H "Cookie: token=your-auth-token" \
-d '{
"account_id": "123e4567-e89b-12d3-a456-426614174000",
"date": "2026-03-01",
"description_encrypted": "U2FsdGVkX1+xxx...",
"amount_encrypted": "U2FsdGVkX1+yyy...",
"amount_sign": "negative",
"subcategory_id": "987fcdeb-51a2-43f1-b789-123456789abc"
}'
{
"success": true,
"transaction": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"account_id": "123e4567-e89b-12d3-a456-426614174000",
"date": "2026-03-01T00:00:00.000Z",
"description_encrypted": "U2FsdGVkX1+xxx...",
"amount_encrypted": "U2FsdGVkX1+yyy...",
"amount_sign": "negative",
"subcategory_id": "987fcdeb-51a2-43f1-b789-123456789abc",
"bank_category_encrypted": null,
"bank_subcategory_encrypted": null,
"created_at": "2026-03-05T10:30:00.000Z"
}
}
curl -X POST https://api.example.com/api/transactions \
-H "Content-Type: application/json" \
-H "Cookie: token=your-auth-token" \
-d '{
"account_id": "123e4567-e89b-12d3-a456-426614174000",
"date": "2026-03-01",
"description": "Grocery shopping at Whole Foods",
"amount": 125.50,
"subcategory_id": "987fcdeb-51a2-43f1-b789-123456789abc"
}'
{
"success": true,
"transaction": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"account_id": "123e4567-e89b-12d3-a456-426614174000",
"date": "2026-03-01T00:00:00.000Z",
"description": "Grocery shopping at Whole Foods",
"amount": 125.50,
"subcategory_id": "987fcdeb-51a2-43f1-b789-123456789abc",
"bank_category": null,
"bank_subcategory": null,
"created_at": "2026-03-05T10:30:00.000Z"
}
}
false for errors{
"success": false,
"error": "account_id debe ser un UUID válido"
}
description field is sanitized before storage to prevent XSS attacksamount_sign field is required for encrypted transactions to enable server-side calculations without decryption