Reference
Petty Cash
Requisition, approval, disbursement, and retirement workflow with auto GL posting.
Petty cash in Finora Business follows a formal workflow: an employee requests, a manager approves, the cashier disburses (cash leaves the float), then the employee retires (submits receipts). Each step posts the right journal entry — no manual GL.
List petty cash requests
/v1/petty-cashPaginated list, newest first.
Query parameters
| Field | Type | Required | Notes |
|---|---|---|---|
businessId | string | yes | |
status | string | no | pending, approved, disbursed, retired, rejected. |
requesterId | string | no | |
limit | integer | no | Default 50, max 100. |
Create a request
/v1/petty-cashOpens a petty cash request. Starts in `pending` status.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
amount | number | yes | Naira. |
purpose | string | yes | Why the money is needed. |
requesterName | string | yes | |
requesterId | string | no | Employee ID if available. |
neededByDate | ISO 8601 | no | |
notes | string | no |
Approve
/v1/petty-cash/{id}/approveManager approval. Does not move money — use disburse next.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
approverId | string | no | |
approverName | string | yes | Shown on the request. |
notes | string | no |
Disburse
/v1/petty-cash/{id}/disburseRecords the cash leaving the float. Posts DR Petty Cash Advance, CR Cash/Bank.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
disbursedById | string | no | |
disbursedByName | string | yes | |
disbursedDate | ISO 8601 | no | Defaults to today. |
notes | string | no |
Retire
/v1/petty-cash/{id}/retireSubmit receipts for an disbursed request. Posts DR Expense Account, CR Petty Cash Advance.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
expenses | array | yes | Each has amount, accountId, description. |
returnedAmount | number | no | Unused money returned to the float. Posts DR Cash/Bank, CR Petty Cash Advance. |
retiredById | string | no | |
retiredByName | string | yes | |
notes | string | no |
Example — retire with leftover returned
curl -X POST "https://api.finorabusiness.com/v1/petty-cash/pc_abc/retire?businessId=$BID" \
-H "Authorization: Bearer $FINORA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"retiredByName": "Funke Oladele",
"expenses": [
{ "amount": 4500, "accountId": "5031", "description": "Office refreshments" },
{ "amount": 2000, "accountId": "5032", "description": "Delivery fee" }
],
"returnedAmount": 500
}'Total disbursed must equal expenses + returnedAmount. Mismatches return
400 VALIDATION_ERROR.
Related endpoints
- Expenses — for one-off spend without the workflow
- Journal Entries — inspect the per-step GL entries
Reference index
Back to all modules