Skip to main content

Overview

Bills follow an approval workflow similar to journal entries. This page covers all workflow-related actions for bills.

Workflow Actions

Submit for Approval

Move from Draft to Pending Approval

Approve

Approve the bill

Reject

Reject the bill

Request Change

Return to Draft for modifications

Place on Hold

Temporarily hold the bill

Remove from Hold

Resume the approval process

Submit for Approval

POST /service/general-ledger/bills/{bill_id}/submit-for-approval
Submits a Draft bill for approval.
curl -X POST https://kube.acho.io/service/general-ledger/bills/BILL-2024-001/submit-for-approval \
  -H "Authorization: jwt YOUR_TOKEN"
{
  "bill_id": "BILL-2024-001",
  "status": "Pending Approval",
  "submitted_at": "2024-01-15T11:00:00Z"
}

Approve Bill

POST /service/general-ledger/bills/{bill_id}/approve
Approve a bill. Supports multi-level approval.

Headers

X-Idempotency-Key
string
Optional. Prevents duplicate approvals.

Body Parameters

comments
string
Optional approval comments
curl -X POST https://kube.acho.io/service/general-ledger/bills/BILL-2024-001/approve \
  -H "Authorization: jwt YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -H "X-Idempotency-Key: unique-key-123" \
  -d '{
    "comments": "Approved - invoice verified against PO"
  }'
{
  "bill_id": "BILL-2024-001",
  "status": "Posted",
  "posted": true,
  "approved_at": "2024-01-15T14:00:00Z"
}

Reject Bill

POST /service/general-ledger/bills/{bill_id}/reject
Reject a bill. Reason is required.

Body Parameters

reason
string
required
Reason for rejection
curl -X POST https://kube.acho.io/service/general-ledger/bills/BILL-2024-001/reject \
  -H "Authorization: jwt YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "Invoice does not match PO - incorrect quantities"
  }'
{
  "bill_id": "BILL-2024-001",
  "status": "Rejected",
  "reason": "Invoice does not match PO - incorrect quantities",
  "rejected_at": "2024-01-15T14:00:00Z"
}

Request Change

POST /service/general-ledger/bills/{bill_id}/request-change
Request changes and return the bill to Draft status.

Body Parameters

comments
string
required
Description of requested changes
curl -X POST https://kube.acho.io/service/general-ledger/bills/BILL-2024-001/request-change \
  -H "Authorization: jwt YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "comments": "Please correct the line item amounts and add missing expense category"
  }'
{
  "bill_id": "BILL-2024-001",
  "status": "Draft",
  "comments": "Please correct the line item amounts and add missing expense category"
}

Place on Hold

POST /service/general-ledger/bills/{bill_id}/hold
Place the bill on hold.

Body Parameters

reason
string
required
Reason for placing on hold
curl -X POST https://kube.acho.io/service/general-ledger/bills/BILL-2024-001/hold \
  -H "Authorization: jwt YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "Pending vendor confirmation on pricing"
  }'
{
  "bill_id": "BILL-2024-001",
  "status": "On Hold",
  "reason": "Pending vendor confirmation on pricing"
}

Remove from Hold

POST /service/general-ledger/bills/{bill_id}/unhold
Remove the bill from hold and return to Pending Approval.
curl -X POST https://kube.acho.io/service/general-ledger/bills/BILL-2024-001/unhold \
  -H "Authorization: jwt YOUR_TOKEN"
{
  "bill_id": "BILL-2024-001",
  "status": "Pending Approval"
}

Get Audit Trail

GET /service/general-ledger/bills/{bill_id}/audit-trail
Returns the complete audit trail for the bill.
curl -X GET https://kube.acho.io/service/general-ledger/bills/BILL-2024-001/audit-trail \
  -H "Authorization: jwt YOUR_TOKEN"
{
  "bill_id": "BILL-2024-001",
  "audit_trail": [
    {
      "action": "Created",
      "performed_by": "user_123",
      "performed_at": "2024-01-15T10:00:00Z"
    },
    {
      "action": "Submit for Approval",
      "performed_by": "user_123",
      "performed_at": "2024-01-15T11:00:00Z"
    },
    {
      "action": "Approve",
      "performed_by": "user_456",
      "performed_at": "2024-01-15T14:00:00Z",
      "comments": "Approved - invoice verified against PO"
    }
  ]
}