Overview
Journal entries follow a multi-step approval workflow before being posted to the General Ledger. This page covers all workflow-related actions.
Workflow Actions
Submit for Approval Move from Draft to Pending Approval
Approve Approve the entry (may require multiple levels)
Reject Reject and close the entry
Request Change Return to Draft for modifications
Place on Hold Temporarily hold the entry
Remove from Hold Resume the approval process
Submit for Approval
POST /service/general-ledger/journal-entries/{journal_entry_id}/submit-for-approval
Submits a Draft journal entry for approval. The required approval level is automatically determined based on amount thresholds configured in approval rules.
curl -X POST https://kube.acho.io/service/general-ledger/journal-entries/JE-2024-002/submit-for-approval \
-H "Authorization: jwt YOUR_TOKEN"
{
"journal_entry_id" : "JE-2024-002" ,
"status" : "Pending Approval" ,
"required_approval_level" : 1 ,
"submitted_at" : "2024-01-16T10:30:00Z" ,
"submitted_by" : "user_123"
}
Approve
POST /service/general-ledger/journal-entries/{journal_entry_id}/approve
Approve a journal entry. Multi-level approval is supported based on IAM permissions and amount thresholds.
Optional. Prevents duplicate approvals if the request is retried.
Body Parameters
Optional approval comments
curl -X POST https://kube.acho.io/service/general-ledger/journal-entries/JE-2024-002/approve \
-H "Authorization: jwt YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "X-Idempotency-Key: unique-key-123" \
-d '{
"comments": "Approved - amounts verified"
}'
200 OK (Final Approval)
200 OK (Pending Next Level)
{
"journal_entry_id" : "JE-2024-002" ,
"status" : "Posted" ,
"posted" : true ,
"level" : 1 ,
"message" : "Entry approved and posted to GL" ,
"approved_at" : "2024-01-16T11:00:00Z" ,
"approved_by" : "user_456"
}
Reject
POST /service/general-ledger/journal-entries/{journal_entry_id}/reject
Reject a journal entry. A reason is required.
Body Parameters
curl -X POST https://kube.acho.io/service/general-ledger/journal-entries/JE-2024-002/reject \
-H "Authorization: jwt YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"reason": "Incorrect account coding - please review expense classification"
}'
{
"journal_entry_id" : "JE-2024-002" ,
"status" : "Rejected" ,
"reason" : "Incorrect account coding - please review expense classification" ,
"rejected_at" : "2024-01-16T11:00:00Z" ,
"rejected_by" : "user_456"
}
Request Change
POST /service/general-ledger/journal-entries/{journal_entry_id}/request-change
Request changes and return the entry to Draft status for modification.
Body Parameters
Description of requested changes
curl -X POST https://kube.acho.io/service/general-ledger/journal-entries/JE-2024-002/request-change \
-H "Authorization: jwt YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"comments": "Please split the office supplies line into separate categories"
}'
{
"journal_entry_id" : "JE-2024-002" ,
"status" : "Draft" ,
"comments" : "Please split the office supplies line into separate categories" ,
"returned_at" : "2024-01-16T11:00:00Z" ,
"returned_by" : "user_456"
}
Place on Hold
POST /service/general-ledger/journal-entries/{journal_entry_id}/hold
Place the entry on hold pending additional information.
Body Parameters
Reason for placing on hold
curl -X POST https://kube.acho.io/service/general-ledger/journal-entries/JE-2024-002/hold \
-H "Authorization: jwt YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"reason": "Pending additional documentation from vendor"
}'
{
"journal_entry_id" : "JE-2024-002" ,
"status" : "On Hold" ,
"reason" : "Pending additional documentation from vendor" ,
"held_at" : "2024-01-16T11:00:00Z" ,
"held_by" : "user_456"
}
Remove from Hold
POST /service/general-ledger/journal-entries/{journal_entry_id}/unhold
Remove the entry from hold and return to Pending Approval.
curl -X POST https://kube.acho.io/service/general-ledger/journal-entries/JE-2024-002/unhold \
-H "Authorization: jwt YOUR_TOKEN"
{
"journal_entry_id" : "JE-2024-002" ,
"status" : "Pending Approval" ,
"unheld_at" : "2024-01-17T09:00:00Z" ,
"unheld_by" : "user_123"
}
Get Pending Approvals
GET /service/general-ledger/journal-entries/pending-approvals
Returns all journal entries pending approval for the current user based on their IAM permissions.
curl -X GET https://kube.acho.io/service/general-ledger/journal-entries/pending-approvals \
-H "Authorization: jwt YOUR_TOKEN"
{
"data" : [
{
"journal_entry_id" : "JE-2024-002" ,
"tran_date" : "2024-01-16" ,
"memo" : "Office supplies purchase" ,
"total_debit" : 500 ,
"required_approval_level" : 1 ,
"current_approval_level" : 0 ,
"submitted_at" : "2024-01-16T10:30:00Z" ,
"submitted_by" : "user_123"
}
],
"total" : 1
}
Get Audit Trail
GET /service/general-ledger/journal-entries/{journal_entry_id}/audit-trail
Returns the complete audit trail for the journal entry.
curl -X GET https://kube.acho.io/service/general-ledger/journal-entries/JE-2024-002/audit-trail \
-H "Authorization: jwt YOUR_TOKEN"
{
"journal_entry_id" : "JE-2024-002" ,
"audit_trail" : [
{
"action" : "Created" ,
"performed_by" : "user_123" ,
"performed_at" : "2024-01-16T10:00:00Z" ,
"details" : { "status" : "Draft" }
},
{
"action" : "Submit for Approval" ,
"performed_by" : "user_123" ,
"performed_at" : "2024-01-16T10:30:00Z" ,
"details" : { "status" : "Pending Approval" , "required_level" : 1 }
},
{
"action" : "Approve" ,
"performed_by" : "user_456" ,
"performed_at" : "2024-01-16T11:00:00Z" ,
"details" : { "level" : 1 , "comments" : "Approved - amounts verified" }
},
{
"action" : "Post to GL" ,
"performed_by" : "system" ,
"performed_at" : "2024-01-16T11:00:00Z" ,
"details" : { "status" : "Posted" }
}
]
}