Skip to main content

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

journal_entry_id
string
required
The journal entry ID
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

journal_entry_id
string
required
The journal entry ID
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.

Headers

X-Idempotency-Key
string
Optional. Prevents duplicate approvals if the request is retried.

Body Parameters

comments
string
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"
  }'
{
  "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

journal_entry_id
string
required
The journal entry ID
POST /service/general-ledger/journal-entries/{journal_entry_id}/reject
Reject a journal entry. A reason is required.

Body Parameters

reason
string
required
Reason for rejection
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

journal_entry_id
string
required
The journal entry ID
POST /service/general-ledger/journal-entries/{journal_entry_id}/request-change
Request changes and return the entry to Draft status for modification.

Body Parameters

comments
string
required
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

journal_entry_id
string
required
The journal entry ID
POST /service/general-ledger/journal-entries/{journal_entry_id}/hold
Place the entry on hold pending additional information.

Body Parameters

reason
string
required
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

journal_entry_id
string
required
The journal entry ID
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

journal_entry_id
string
required
The journal entry ID
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" }
    }
  ]
}