Batch Payment Processor Guide
Complete guide for using the Batch Payment Processor to generate multiple payment requests with email notifications.
Overview
The Batch Payment Processor is designed for scenarios where you need to send payment requests to multiple people, such as:
- Event organizers collecting fees from attendees
- Clubs or associations collecting membership dues
- Small businesses invoicing multiple clients
- Group trip coordinators splitting expenses
- Educational institutions collecting course fees
Access: https://pexmor.github.io/spayd-applied/app/batch.html
Key Features
- ✅ Import people data from Excel or CSV files
- ✅ Manual data entry interface
- ✅ Generate individual QR codes for each person
- ✅ Create personalized email templates
- ✅ Batch export (HTML emails + QR images)
- ✅ Variable Symbol auto-generation
- ✅ Separate storage from main SPAYD app
- ✅ Offline-first architecture
Quick Start
1. Setup Accounts
Before processing payments, configure your bank accounts:
- Click hamburger menu (☰)
- Select “Accounts”
- Click “Add Account”
- Enter:
- Name: Descriptive name (e.g., “Event Account”)
- IBAN: Your bank account (CZ format)
- Currency: CZK, EUR, etc.
- Click “Save”
2. Create Events
Define the payment event:
- Go to “Events” in menu
- Click “Add Event”
- Enter:
- Name: Event description (e.g., “Summer Camp 2025”)
- Account: Select account
- Default Amount: Default payment amount
- Click “Save”
3. Import People Data
Option A: Excel/CSV Import
-
Prepare your file with columns:
- Name
- Email
- Amount (optional if event has default)
- Variable Symbol (optional, auto-generated if empty)
-
In the app:
- Click “Import Data”
- Select your file
- Map columns to fields
- Preview and confirm
Option B: Manual Entry
- Click “Add Person”
- Fill in form:
- Name
- Email
- Amount
- Variable Symbol (optional)
- Click “Save”
4. Generate Batch Payments
- Select event from dropdown
- Click “Generate All Payments”
- System creates:
- Individual QR codes
- Personalized emails
- Payment tracking data
5. Preview & Export
- Review generated emails
- Click “Preview” for individual emails
- Click “Export Batch” to download:
- HTML email files
- QR code images
- ZIP archive with all files
6. Send Emails
Use the exported HTML files with your email client or service:
- Mail merge in Outlook/Gmail
- Email marketing platform (Mailchimp, SendGrid, etc.)
- Custom scripts
Data Import Guide
Required Columns:
Name or Jméno: Full name
Email or E-mail: Valid email address
Optional Columns:
Amount or Částka: Payment amount
VS or Variable Symbol or Variabilní symbol: Unique identifier
Example:
| Name |
Email |
Amount |
VS |
| Jan Novák |
jan.novak@example.com |
1500 |
20251001 |
| Eva Svobodová |
eva.svobodova@example.com |
1500 |
20251002 |
| Petr Dvořák |
petr.dvorak@example.com |
1200 |
20251003 |
Tips:
- First row must be headers
- Amount should be numeric (no currency symbols)
- VS should be numeric and unique
- Email must be valid format
Same structure as Excel, but comma-separated:
Name,Email,Amount,VS
Jan Novák,jan.novak@example.com,1500,20251001
Eva Svobodová,eva.svobodova@example.com,1500,20251002
Petr Dvořák,petr.dvorak@example.com,1200,20251003
Encoding: UTF-8 (for Czech characters)
Variable Symbol Generation
If Variable Symbol not provided, system auto-generates:
Method 1: Sequential
- Format:
YYYYMMDD + sequential number
- Example:
202511301, 202511302, 202511303
Method 2: Hash-based
- Based on name and timestamp
- Ensures uniqueness
- Example:
156789012
Best Practice:
- Use your own VS for tracking
- Ensure uniqueness across all payments
- Use meaningful patterns (e.g., date + person ID)
Email Templates
Default Template
The system provides a default email template:
Subject: Payment Request - [Event Name]
Body:
Hello [Name],
Please make a payment for [Event Name].
Amount: [Amount] CZK
Variable Symbol: [VS]
Account: [IBAN]
You can scan the QR code below with your banking app:
[QR Code Image]
Thank you!
Customization
Customize email content:
- Go to “Email Settings”
- Edit template text
- Use variables:
{name}: Person’s name
{amount}: Payment amount
{vs}: Variable Symbol
{iban}: Account IBAN
{event}: Event name
{message}: Custom message
Example Custom Template:
Vážený {name},
posíláme Vám platební údaje pro {event}.
Částka k úhradě: {amount} {currency}
Variabilní symbol: {vs}
Platbu můžete provést naskenováním QR kódu:
[QR Code]
Děkujeme za Vaši účast!
S pozdravem,
Organizační tým
System generates two versions:
-
HTML Version
- Rich formatting
- Embedded QR code (Base64)
- Modern design
- Email client compatible
-
Text Version
- Plain text fallback
- All payment details
- No images (IBAN link instead)
Export Options
ZIP Archive Export
Contents:
batch-export.zip
├── emails/
│ ├── jan-novak.html
│ ├── eva-svobodova.html
│ └── petr-dvorak.html
├── qr-codes/
│ ├── jan-novak.png
│ ├── eva-svobodova.png
│ └── petr-dvorak.png
├── data/
│ ├── people.json
│ └── summary.txt
└── index.html (batch summary)
Individual File Export
Download files one by one:
- Click person’s row
- Click “Download Email” or “Download QR”
Data Export
Export people list for backup:
- JSON format
- CSV format
- Excel format (planned)
Use Cases & Examples
Example 1: School Trip
Scenario: Collecting €50 from 30 students
Steps:
- Create account “School Trip Fund”
- Create event “Vienna Trip 2025” with €50 default
- Import student list (name, email, parent email)
- Generate batch payments
- Export and send to parents
Tip: Use student ID as Variable Symbol for tracking
Example 2: Club Membership
Scenario: Annual membership dues (varying amounts)
Steps:
- Create account “Club Account”
- Create event “Annual Membership 2025”
- Manual entry or import with different amounts per member type
- Generate payments
- Send personalized emails
Tip: Use membership ID as VS
Example 3: Wedding Contribution
Scenario: Collecting contributions from guests
Steps:
- Create account “Wedding Gift Fund”
- Create event “Our Wedding” (no default amount)
- Import guest list with suggested amounts
- Generate QR codes
- Include in wedding invitations
Tip: Make payment optional, use guest ID as VS
Example 4: Retreat Registration
Scenario: Corporate retreat with different room types
Steps:
- Create event “Company Retreat 2025”
- Import employee list with room-based pricing
- Generate payments
- Send via company email system
Excel Structure:
| Employee | Email | Room Type | Amount | VS |
|----------|-------|-----------|--------|-----|
| John | j@company.com | Single | 2500 | EMP001 |
| Jane | jane@company.com | Double | 2000 | EMP002 |
Advanced Features
Bulk Operations
Select Multiple:
- Checkbox selection for multiple people
- Bulk actions: Delete, Export, Regenerate
Filter & Search:
- Search by name, email, VS
- Filter by amount range
- Sort by any column
Payment Tracking
Status Tracking:
- Pending
- Sent (email sent)
- Paid (manual marking)
- Cancelled
Mark as Paid:
- Select person
- Click “Mark as Paid”
- Enter payment date (optional)
Export Paid List:
- Filter by “Paid” status
- Export for accounting
Custom Variables
Add custom fields for personalization:
- Go to “Custom Fields”
- Add field (e.g., “Seat Number”, “Group”)
- Import or enter data
- Use in email template:
{custom_seat_number}
Best Practices
Data Management
- Backup Regularly: Export people data periodically
- Unique VS: Always ensure unique Variable Symbols
- Validate Data: Review imported data before generating
- Test First: Send test email to yourself before batch
- Keep Records: Export summary for accounting
Email Delivery
- Use Reputable Service: Gmail, Outlook, Mailchimp
- Avoid Spam: Don’t send too many at once
- Personalize Subject: Include recipient name
- Plain Text Too: Always include text version
- Test Rendering: Preview in different email clients
Payment Collection
- Clear Instructions: Make payment process obvious
- Deadline: Include payment due date
- Contact Info: Provide support email/phone
- Follow Up: Send reminders for unpaid
- Confirmation: Send receipt after payment
Security & Privacy
- Data Protection: Don’t share exported files publicly
- Email Security: Use encrypted email if possible
- Access Control: Limit who can access batch data
- Delete Old Data: Clear processed batches regularly
- GDPR Compliance: Obtain consent for data processing
Troubleshooting
Import Issues
“Invalid file format”
- Ensure file is .xlsx or .csv
- Check for corrupt file
- Try re-saving in Excel
“Missing required columns”
- Verify Name and Email columns exist
- Check column header spelling
- Ensure headers in first row
“Invalid email addresses”
- Review email format (must have @ and domain)
- Remove spaces around emails
- Check for special characters
Generation Issues
QR codes not generating:
- Verify IBAN is valid
- Check amount is positive number
- Ensure VS is numeric
Emails look broken:
- Check for special characters in template
- Verify all variables are closed with }
- Test in different browsers
Export fails:
- Clear browser cache
- Check available disk space
- Try smaller batch size
Browser Issues
Data not saving:
- Enable browser storage
- Check private browsing mode (doesn’t persist)
- Clear old batch data
Performance slow:
- Limit batch size to <100 at once
- Clear completed batches
- Use modern browser (Chrome, Firefox)
Keyboard Shortcuts
| Shortcut |
Action |
Ctrl + N |
Add new person |
Ctrl + I |
Import data |
Ctrl + G |
Generate batch |
Ctrl + E |
Export batch |
Ctrl + S |
Save changes |
Esc |
Close dialog |
Ctrl + F |
Search/filter |
Limits & Constraints
Technical Limits:
- Max people per batch: 500 (recommended <100)
- Max file size: 5MB
- Supported formats: XLSX, CSV
- IBAN: CZ format validated
- Variable Symbol: Max 10 digits
Browser Storage:
- Uses IndexedDB
- No server storage
- Data stays on device
- Export for backup
FAQs
Q: Can I use for non-CZ bank accounts?
A: Yes, but IBAN validation is CZ-focused. Other formats may work but not guaranteed.
Q: Is email sending automatic?
A: No, system generates email files. You send via your email service.
Q: Can I edit generated emails?
A: Yes, exported HTML files can be edited before sending.
Q: What happens if VS duplicates?
A: System warns you. Ensure uniqueness before generating.
Q: Can I process multiple events simultaneously?
A: Yes, each event processed independently. Select event for each batch.
Q: Is data synced across devices?
A: No, all data local to browser. Export for transfer.
Q: Can I undo batch generation?
A: Yes, batch data can be deleted. Already sent emails cannot be recalled.
Q: Maximum email size?
A: ~100KB per email (HTML + embedded QR). Well within limits.
Questions or issues? Check the User Guide or AGENTS.md for more details.