Form page · /f/<id>
Petty cash claim
2-column grid · own header and theme · Its own page: share the link or open it on a tablet
Finance package
A themed petty cash claim form with a cost-centre lookup and receipt link, float and limit rules, budget-holder approval and a ledger.
About this package
Petty cash claims takes the cash tin and the paper slips online. People fill in the Petty cash claim form: they find the cost centre in the Petty cash cost centres table (the budget holder and GL account fill in), pick the budget holder as approver, enter the amount, date and category and paste a link to the receipt. Its Submit claim button starts the Petty cash claim workflow with the form values as inputs and shows a success screen with the run reference.
The workflow reads the cost centre, adds up what was paid from its float this month in the Petty cash ledger and applies the Petty cash limits decision table: claims over NZD 250 or without a receipt over NZD 20 are declined with the reason, up to NZD 50 with a receipt is paid straight away, and the rest (or anything taking the cost centre over its float) goes to the budget holder.
The budget holder gets an Approve / Reject task with the receipt, the float used and the GL account, with a reminder and escalation. Every claim is in the ledger with its decision rule and payment date, and the claimant is emailed. Everything is built in.
Starts from a form page: share the Petty cash claim form (/f/<id>); each submitted claim starts the Petty cash claim workflow.
Someone fills in a form to start it: the workflow start form (Run dialog in the app, or your own portal posting to the API) or a standalone form page (/f/<id>) whose Form submitted trigger starts the workflow. People complete User Task forms along the way.
The flow
Claim
The form looks up the cost centre (budget holder and GL fill in), takes the amount, receipt link and approver.
Submit
The Submit claim button starts the workflow (a Start workflow action mapping the fields to its inputs) and shows a success screen with the reference.
Check the rules
The month's float used is added up from the ledger and the Petty cash limits decision table picks the route.
Approve
Mid-sized claims, or claims over the float, go to the budget holder with Approve / Reject buttons.
Ledger and email
Each claim is recorded as Paid or Rejected in the ledger and the claimant is emailed.
Forms
People start it from a form page (/f/<id>) with its own header, theme and buttons; submitting it starts the workflow. User Tasks show their fields and outcome buttons to the assignee.
Form page · /f/<id>
2-column grid · own header and theme · Its own page: share the link or open it on a tablet
User Task
Approve petty cash: NZD {{amount}} for {{claimant_name}} ({{cost_centre}}) · 2-column grid · own header and theme
From your code
Every workflow can be started over REST, MCP or the CLI, whatever its trigger, with the sample input below. Runs start straight away on the published version; replace <workflow id> with the id the install created.
REST
curl -X POST "$USERTASKS_URL/api/v1/workflows/start" \
-H "Authorization: Bearer $USERTASKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"workflow_id":"<workflow id>","variables":{"claimant_name":"Ivy Chen","claimant_email":"ivy.chen@example.com","cost_centre":"CC-410","approver":"$owner","amount":120,"category":"Staff welfare","spent_on":"2026-10-26","description":"Cake and fruit for the team wellbeing morning tea","receipt_url":"https://files.example.com/receipts/morning-tea.jpg"}}'CLI
usertasks workflows inputs <workflow id> # the start form: keys, types, required
usertasks workflows run <workflow id> --input claimant_name="Ivy Chen" --input claimant_email=ivy.chen@example.com --input cost_centre=CC-410 --input approver=$owner … --waitInbound webhook
usertasks webhooks create <workflow id> # prints the hook slug and secret once
curl -X POST "$USERTASKS_URL/api/webhooks/inbound?hook=<slug>" \
-H "Authorization: Bearer <webhook secret>" -H "Content-Type: application/json" \
-d '{"claimant_name":"Ivy Chen","claimant_email":"ivy.chen@example.com","cost_centre":"CC-410","approver":"$owner","amount":120,"category":"Staff welfare","spent_on":"2026-10-26","description":"Cake and fruit for the team wellbeing morning tea","receipt_url":"https://files.example.com/receipts/morning-tea.jpg"}'What's included
| Type | Name | Details |
|---|---|---|
| Email template | Petty cash approved | Sent to the claimant when the claim is approved. |
| Email template | Petty cash declined | Sent to the claimant when the claim is rejected. |
| Data table | Petty cash cost centres | Cost centres that hold a petty cash float: the budget holder approves claims, and the monthly float caps what is paid out. |
| Data table | Petty cash ledger | Every claim with its decision and payment: the month-end reconciliation of the cash tin and the GL journal start here. |
| Decision table | Petty cash limits | 5 rules — How a claim is handled, by amount, receipt and the month's float. First matching rule wins. |
| forms | Petty cash claim | Claim back small purchases (up to NZD 250) paid from your own pocket. Attach a link to the receipt. |
| Workflow | Petty cash claim | 20 steps — Started by the claim form's Submit button: checks the cost centre's float, applies the Petty cash limits decision table, asks the budget holder when needed and records the claim in the ledger. |
Petty cash cost centres · 6 sample rows
CodeCost centreBudget holderBudget holder emailMonthly float (NZD)GL accountActive
Petty cash ledger · 2 sample rows
ClaimClaimedMonthClaimantClaimant emailCost centreGL accountCategoryDate of purchaseWhat forAmount (NZD)ReceiptDecision ruleStatusApprover commentPaid
Requirements
Credentials never travel in a package. The install wizard asks for what your environment must provide, or installs it incomplete until you finish setup.
Nothing: it installs complete.
Install
Works on UserTasks cloud and on any self-hosted instance. Installing creates the assets above; nothing runs until you complete setup and start it.
curl -fLO https://usertasks.com/gallery/petty-cash-1.0.0.utpkg
usertasks packages inspect petty-cash-1.0.0.utpkg # offline: checksum, hashes, signature
usertasks packages install petty-cash-1.0.0.utpkg --dry-run
usertasks packages install petty-cash-1.0.0.utpkg # prompts for each requirement
usertasks packages install petty-cash-1.0.0.utpkg --keep-incomplete --yes # in CI; finish with:
usertasks packages complete petty-cash -f values.yamlVerify the download
shasum -a 256 petty-cash-1.0.0.utpkg should print the file SHA-256. How gallery packages are signed.
Versions
Installing a newer version upgrades in place: local credentials and requirement values are kept, and changes you made are flagged first. How packages work
More packages
Finance Official
Employees submit a claim from a form; category limits and an approval policy route it, and approved claims are queued for reimbursement.
Needs:REST APIAssigneesEmail
Finance Official
Requesters submit a requisition; the purchasing policy sets approvals and quotes, and approved requests become a purchase order sent to the supplier.
Needs:REST APIAssigneesEmail
Finance Official
A themed form requests a supplier bank change; SAP data is compared, finance reviews, the supplier is called back, treasury approves and SAP is updated.
Needs:REST APIAssignees