Finance package

Petty cash claims

A themed petty cash claim form with a cost-centre lookup and receipt link, float and limit rules, budget-holder approval and a ledger.

OfficialNo integrations neededStarts from a formStarter~10 min setupv1.0.0

About this package

What it does

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

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

Step by step

  1. 1

    Claim

    The form looks up the cost centre (budget holder and GL fill in), takes the amount, receipt link and approver.

  2. 2

    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.

  3. 3

    Check the rules

    The month's float used is added up from the ledger and the Petty cash limits decision table picks the route.

  4. 4

    Approve

    Mid-sized claims, or claims over the float, go to the budget holder with Approve / Reject buttons.

  5. 5

    Ledger and email

    Each claim is recorded as Paid or Rejected in the ledger and the claimant is emailed.

Petty cash claim — 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. The same canvas you get in the designer after installing.

Forms

The start form and the task 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>

Petty cash claim

2-column grid · own header and theme · Its own page: share the link or open it on a tablet

Your name * claimant_name · text
Work email * claimant_email · emailname@company.com
Cost centre * cost_centre · lookup
Budget holder budget_holder_name · text
GL account gl_code · text
Approver * approver · user
Amount * amount · currency
Date of purchase * spent_on · dateYYYY-MM-DD
Category * category · choice
Office suppliesKitchen & hospitalityPostage & courierTaxi & parkingSmall equipmentStaff welfare+1
What did you buy and why? * description · textarea
Receipt receipt_url · urlhttps://…
Submit claim

User Task

Budget holder approval

Approve petty cash: NZD {{amount}} for {{claimant_name}} ({{cost_centre}}) · 2-column grid · own header and theme

Receipt checked and matches the amount * receipt_ok · boolean
GL account gl_code · textPrefilled: {{cost_centre_row.gl_code}}
Comment for the claimant comment · textarea
ApproveReject

From your code

Start a run over the API

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

shell
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

shell
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 … --wait

Inbound webhook

shell
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

7 assets, ready to adapt

TypeNameDetails
Email templatePetty cash approvedSent to the claimant when the claim is approved.
Email templatePetty cash declinedSent to the claimant when the claim is rejected.
Data tablePetty cash cost centresCost centres that hold a petty cash float: the budget holder approves claims, and the monthly float caps what is paid out.
Data tablePetty cash ledgerEvery claim with its decision and payment: the month-end reconciliation of the cash tin and the GL journal start here.
Decision tablePetty cash limits5 rules — How a claim is handled, by amount, receipt and the month's float. First matching rule wins.
formsPetty cash claimClaim back small purchases (up to NZD 250) paid from your own pocket. Attach a link to the receipt.
WorkflowPetty cash claim20 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

What you connect it to

Credentials never travel in a package. The install wizard asks for what your environment must provide, or installs it incomplete until you finish setup.

Needs

  • Email (optional) — Email delivery configured for the instance (EMAIL_PROVIDER), used for notifications.

After installing

  1. Nothing to configure: install it and share the Petty cash claim form from Forms.
  2. Replace the sample rows in Petty cash cost centres with yours (code, budget holder, monthly float, GL account).
  3. Adjust the Petty cash limits decision table if your limits differ from NZD 20 (receipt), 50 (no approval) and 250 (maximum).
  4. Optional: set EMAIL_PROVIDER so claimants receive the approval and decline emails.

Asked for on install

Nothing: it installs complete.

Install

Install it in your workspace

Works on UserTasks cloud and on any self-hosted instance. Installing creates the assets above; nothing runs until you complete setup and start it.

In the app

  1. Download petty-cash-1.0.0.utpkg.
  2. Open Automations → Packages and drag the file onto the page (or choose Import package). Browse gallery there lists every gallery package without downloading by hand.
  3. Pick the file. The wizard verifies the checksum, every file hash and the signature, and shows the readme.
  4. Review the changes (what is created) and the data rows.
  5. Fill in the requirements, or tick Keep incomplete and finish later with Complete setup.
  6. Done: the workflow is published and active once setup is complete.

With the CLI

shell
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.yaml

Verify the download

File SHA-256
eebeda6f82ba4d71808befc1f5562e4521215bed0bd1cb0e987a719292eb540d
Package checksum (what is signed)
sha256:e03972daa8fc8106c7d6540bc2597ed1339b83c75c5c3684ad9bcfeb700219d3
Signer
Unsigned preview build — compare the SHA-256 above

shasum -a 256 petty-cash-1.0.0.utpkg should print the file SHA-256. How gallery packages are signed.

Versions

Version 1.0.0

  1. v1.0.02026-10-28First release.

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

Related

Browse the whole gallery