Scout Reimbursement Pro
Scout Reimbursement Pro is a complete expense reimbursement system built specifically for scout groups, youth organizations, and non-profit associations. It solves a common problem in volunteer work: members advance money out of pocket — for camp supplies, craft materials, or travel costs — and then have to submit receipts manually via email. This plugin makes the entire process digital, transparent, and secure.
How it works
- A member fills out the Contact Form 7 form on your website and uploads receipts (photos or PDFs) directly from their phone.
- The board receives an email with all details and a one-click approval link.
- After approval, the treasurer automatically receives a structured payment email with IBAN suffix, amount, and receipt files.
- Once the treasurer has processed the payment, they mark it as “Paid” via a link — the applicant is notified automatically.
- The WordPress admin can monitor all submissions, status changes, and annual summaries in the backend at any time.
Key Features
Mobile-optimised file upload The upload area is optimised for smartphone use. Members can take a photo of a receipt with their camera or upload an existing file (JPG, PNG, PDF). Multiple receipts per submission are supported.
Client-side image compression Before uploading, photos are automatically compressed in the browser to a maximum of 1600×1600 pixels at 80% quality. This saves server capacity and speeds up uploads significantly — especially important with poor mobile connections at camps.
Secure file storage
All uploaded receipts are stored in a protected directory outside the public WordPress uploads folder. An .htaccess file prevents direct external access and script execution — files are only accessible to administrators.
Email-based approval workflow The entire approval process runs via email links — board members and the treasurer do not need to log into the WordPress backend. Each link is secured with a cryptographically secure random token and can only be used meaningfully once.
Three-stage status system Each submission passes through the stages “Open” → “Approved” → “Paid”. Backward status changes are blocked — an already approved submission cannot be reversed via the email links. Administrators can reject any non-paid submission directly from the WordPress backend, even after approval (e.g. for duplicate receipts), with an optional reason sent to the applicant.
Automatic receipt numbers Every approved submission automatically receives a sequential receipt number (N-1, N-2, …), which serves as an immutable reference for the association’s bookkeeping.
Annual report and print function All approved and paid receipts for a given year can be output as a print-optimised overview — with a digital stamp (PAID / APPROVED), date, and all associated files. Ideal for the annual general meeting or your accountant.
Category statistics The backend includes a statistics view that breaks down expenses by category (e.g. “Travel”, “Materials”, “Camp costs”) and shows the annual total. Data is cached to keep database load minimal.
Retrospective file upload Administrators can add further receipts to an existing submission via the backend — for example when a paper receipt arrives by post.
Security
- All form inputs are sanitized before database storage
- All output is context-appropriately escaped (
esc_html,esc_attr,esc_url) - Admin actions are protected with WordPress nonces
- Email links use cryptographically secure tokens (20 characters, alphanumeric)
- Database queries exclusively via
$wpdb->prepare() - File upload exclusively via
wp_handle_upload()— no direct use ofmove_uploaded_file() - Allowed file types are server-side restricted to JPG, PNG, GIF, and PDF
- Maximum file size: 10 MB per file
Requirements
- WordPress 5.8 or later
- PHP 7.4 or later
- Contact Form 7 (must be installed and active)
- A configured reimbursement form in Contact Form 7 with the correct field names
Supported Languages
The plugin is fully prepared for translation (all strings internationalized via __() and _e(), text domain: scout-reimbursement-pro). The default backend language is German; a complete English (en_US) translation is included.