Reimbursement Form template
Collect an expense claim that finance can approve without chasing a receipt later. Copy the accessible markup, adjust the fields, and publish it with Core Forms.
What your visitor sees
Plain semantic HTML rendered through the same default form theme Core Forms applies on the front-end. Try it — this demo confirms inline and sends nothing.
Demo only. On your site, the same markup wires into the normal Core Forms action loop — email, Slack, Google Sheets, webhook, whatever you configure.
The HTML behind it
Copy this block, paste into Core Forms → Add New Form → Fields tab, save. Field names map to merge tags automatically in your action templates.
<p><label for="reimb-name">Full name</label><input id="reimb-name" name="NAME" type="text" autocomplete="name" required aria-required="true"></p>
<p><label for="reimb-email">Email</label><input id="reimb-email" name="EMAIL" type="email" autocomplete="email" required aria-required="true"></p>
<p><label for="reimb-dept">Department <span>(optional)</span></label><input id="reimb-dept" name="DEPARTMENT" type="text"></p>
<p><label for="reimb-date">Expense date</label><input id="reimb-date" name="EXPENSE_DATE" type="date" required aria-required="true"></p>
<p><label for="reimb-type">Expense type</label><select id="reimb-type" name="EXPENSE_TYPE" required aria-required="true"><option value="">Choose one</option><option>Travel</option><option>Meals</option><option>Software</option><option>Supplies</option><option>Other</option></select></p>
<p><label for="reimb-amount">Amount (USD)</label><input id="reimb-amount" name="AMOUNT" type="number" min="0.01" step="0.01" required aria-required="true"></p>
<p><label for="reimb-desc">What was this for?</label><textarea id="reimb-desc" name="DESCRIPTION" rows="4" required aria-required="true"></textarea></p>
<p><label for="reimb-file">Receipt (PDF or image)</label><input id="reimb-file" name="RECEIPT" type="file" accept="application/pdf,image/jpeg,image/png" required aria-required="true"></p>
<p><button type="submit">Submit claim</button></p>
What this reimbursement form template is for
Use this for staff or contractor expense claims. Capture who spent, what it was, the amount, the date, and the receipt in one submission.
This version asks only for information needed to complete that job. Do not accept card numbers. The receipt file is the proof. State the allowed file types and a size limit the reviewer can actually open.
The markup uses explicit labels, useful autocomplete values, and fieldsets for grouped choices. You can edit every line instead of working around a locked template schema.
Every field, and why it's there
| Field | Type | Required | Why it's there |
|---|---|---|---|
| Full name | text | Yes | Who is claiming the expense. |
email | Yes | Where the approval or rejection goes. | |
| Department | text | Optional | Routes the claim when more than one cost centre exists. |
| Expense date | date | Yes | The date on the receipt, not the date of the claim. |
| Expense type | select | Yes | Travel, meals, software, supplies, or other. |
| Amount | number | Yes | The amount to reimburse, in one currency named on the page. |
| Description | textarea | Yes | What was purchased and why it belongs to the organisation. |
| Receipt | file | Yes | PDF or image of the receipt. Keep the size limit honest. |
From this HTML to a working form
- 1
Create the form from a template
In Core Forms, add a new form and choose the Reimbursement Form starting point, or paste the HTML below into code mode.
- 2
Remove what you will not use
Delete unnecessary fields, update the labels and choices, then set the success message to explain what happens next.
- 3
Test the whole path
Submit the form with realistic data. Verify validation, the saved submission, notification email, autoresponder, and any integration action.
Three upgrades worth considering
Show fields only when needed
Keep the first view short and reveal follow-up questions from an earlier answer.
Use conditional logic →Route the submitted data
Send the result to email, a CRM, a spreadsheet, or a signed webhook after validation.
Explore integrations →Check the funnel
Measure starts, successful submissions, and field drop-off after the form has real traffic.
Use form analytics →Reimbursement Form template questions
Is this reimbursement form template free to copy?
Yes. The HTML on this page is free to copy and adapt. Core Forms is required only if you want its WordPress submission handling, inbox, actions, analytics, and other plugin features.
Can I change or remove fields?
Yes. The form is plain HTML. Remove any field you cannot justify, rename fields before collecting data, and keep every label associated with its control.
Does the template save submissions in WordPress?
Core Forms can save successful submissions in its WordPress inbox. Storage is a per-form setting, so you can disable it for forms whose data should not be retained.
Can the form send a confirmation email?
Yes. Add an autoresponder action, map its recipient to the submitted email field, and state what the person should expect next.
How should I test it?
Use realistic valid data, missing required data, a malformed email address, keyboard-only navigation, and a narrow mobile viewport. Also verify every configured action and redirect.
The template is free. The plumbing is the product.
Core Forms turns this HTML into stored submissions, spam-filtered email, and 70+ integrations.