Billing
Every shipment generates an invoice automatically. View, export, send, and collect payment for invoices from a single list. Send via email, WhatsApp, or SMS.
Overview
Every shipment in Deprixa Plus generates an invoice automatically. The Billing module is where you manage, view, export, and collect payment for those invoices. There is a one-to-one relationship between a shipment and its invoice — one shipment, one invoice.
From the Billing list you can view all invoices across all shipments, filter by payment status, date, or branch, export PDFs in bulk, send invoices directly to clients, and record payments when they arrive.
| Detail | Value |
|---|---|
| Access path | Main menu → Billing |
| Required permission | settings.billing.view |
| Invoice model | One invoice per shipment, auto-generated at shipment creation |
| Invoice detail URL | /invoices/{shipment} |
The Billing List
The billing list at /billing shows every invoice in the system for your accessible branches. Each row represents one shipment-invoice pair.
Columns
| Column | Description |
|---|---|
| Tracking # | The shipment's tracking number. Click to open the shipment detail. |
| Client Name | The customer associated with this shipment (sender or receiver, per your configuration) |
| Service | The service type used for this shipment |
| Total Amount | The invoiced amount including taxes |
| Payment Status | Color-coded badge: Unpaid, Partially Paid, Paid, Void |
| Invoice Date | Date the shipment (and invoice) was created |
| Actions | View invoice, Mark as Paid, Send, Download PDF |
Filters Available
- Date range — filter by invoice creation date
- Payment status — All, Unpaid, Partially Paid, Paid, Void
- Branch — filter to a specific branch (Admins only; Managers see their branch by default)
Bulk Actions
Select multiple invoices using the row checkboxes, then use the bulk action bar to:
- Export PDF — downloads a ZIP file containing one PDF per selected invoice
- Mark as Paid — bulk-marks selected invoices as paid (same payment date and method applied to all)
Invoice States
Each invoice has a payment status that reflects the collection state. The status is updated automatically when payments are recorded or manually when you void an invoice.
| Status | Meaning | Color Indicator |
|---|---|---|
| Unpaid | Invoice has been issued (shipment created) but no payment has been recorded yet | Red badge |
| Partially Paid | At least one payment has been recorded but the total recorded is less than the invoice total | Orange badge |
| Paid | The recorded payments equal or exceed the invoice total. The invoice is considered settled. | Green badge |
| Void | The invoice has been cancelled. Typically used when a shipment is cancelled or created in error. Void invoices are excluded from financial totals. | Gray badge |
Invoice Detail Page
Clicking on any invoice opens the full invoice detail view at /invoices/{shipment}. This page shows the invoice exactly as it would appear to the client, plus payment management controls for staff.
Invoice Contents
- Company header — your company logo, name, address, and contact details (from Settings → Company Profile)
- Client information — billing name, address, and contact from the customer record
- Invoice number — auto-generated sequential number
- Invoice date and due date (if applicable)
- Shipment details — tracking number, service type, origin, destination, weight
- Line items — service fee, additional surcharges (if any)
- Subtotal, tax amount, and total
- Payment status — current status badge and recorded payment history
- QR code — if configured, links to the online payment page
Staff Controls on the Invoice Detail Page
- Mark as Paid — opens payment recording form
- Send — opens the send dialog (email, WhatsApp, SMS)
- Download PDF — downloads the invoice as a formatted PDF
- Void Invoice — marks the invoice as void (requires confirmation)
Marking an Invoice as Paid
When a client pays for their shipment, you record the payment in the system to update the invoice status and keep your financial records accurate.
Recording a Payment
- Open the invoice from the billing list or the shipment detail page
- Click Mark as Paid
- Fill in the payment details:
- Payment Date — date the payment was received
- Payment Method — Cash, Bank Transfer, Card, Check, or other
- Reference Number — bank transaction ID, check number, or other reference (optional)
- Amount — defaults to the full outstanding balance; change for partial payments
- Notes — any internal notes about this payment
- Click Save Payment
After recording:
- If the payment equals or exceeds the invoice total → status changes to Paid
- If the payment is less than the invoice total → status changes to Partially Paid
- The payment record appears in the invoice's payment history section
Multiple payments can be recorded against a single invoice (for partial payment scenarios). Each payment record includes the date, method, amount, and recording user.
Sending the Invoice to Clients
Deprixa Plus supports three channels for delivering invoices to clients. Choose the channel based on your client's preference and your integration configuration.
Sends the invoice PDF as an email attachment to the client's email address stored in their customer profile.
Requirements: MAIL_* settings configured in .env and tested in Settings → Notifications.
The email uses your company branding (logo, colors) from Settings → Branding.
Sends a WhatsApp message to the client's phone number with a link to view the invoice online.
Requirements: WhatsApp Business API integration must be configured in Settings → Notifications. Requires a WhatsApp Business account and approved message template.
SMS
Sends an SMS text message to the client's phone number with a short link to the invoice.
Requirements: SMS provider must be configured in Settings → Notifications. Supported providers: Twilio, Vonage, and other configured integrations.
How to Send
- Open the invoice detail page or use the Actions button in the billing list row
- Click Send
- Select your preferred channel (Email, WhatsApp, or SMS)
- Verify the destination (email address or phone number shown)
- Add an optional message or note (email and WhatsApp only)
- Click Send Invoice
WhatsApp Delivers Higher Open Rates
In regions where WhatsApp is the primary communication channel (Latin America, Middle East, Southeast Asia), sending invoices via WhatsApp typically results in faster client acknowledgment and payment than email. Configure WhatsApp Business API if your clients are active WhatsApp users.
PDF Export
Invoice PDFs are generated server-side using DomPDF and include your full company branding. PDFs look identical to the on-screen invoice view.
Single Invoice PDF
From the invoice detail page, click Download PDF. The PDF is generated immediately and downloads to your browser. The PDF filename includes the invoice number and client name for easy filing.
Bulk PDF Export
From the billing list:
- Apply any desired filters (e.g., date range, unpaid only)
- Select the invoices you want to export (or use "Select All" for the full filtered set)
- Click Export PDF in the bulk action bar
- The system generates individual PDFs and packages them into a ZIP file
- The ZIP file downloads to your browser when ready
For large exports (50+ invoices), generation runs in the background and a notification appears in the top bar when the download is ready.
PDF Contents
- Company logo, name, address, and tax ID
- Client billing information
- Invoice number, date, and due date
- Shipment details and line items
- Subtotal, tax breakdown, and total
- Payment status as of generation time
- QR code for online payment (if configured)
- Footer with company contact details
Tax Configuration
Tax rates applied to invoices are configured at the organization level in Settings → Company Profile → Tax Settings. The configured tax rate is applied automatically to every shipment invoice.
Available tax configuration options:
- Tax Rate (%) — the percentage applied to the service fee
- Tax Label — the name shown on invoices (e.g., "VAT", "IVA", "GST")
- Tax Inclusion — whether prices are entered as tax-inclusive or tax-exclusive
- Tax ID — your company's tax registration number printed on invoices
If you operate in a tax-exempt context, set the tax rate to 0%. The tax line will still appear on invoices but will show $0.00 or can be hidden via the invoice template settings.
Online Payment (Payment Link)
When an online payment provider is integrated (such as Stripe), clients can pay their invoice directly via a secure payment link. The payment endpoint is:
/shipments/{shipment}/payment/success
When a client completes payment through the payment gateway, this endpoint is called automatically and the invoice status is updated to Paid without any manual staff action required. A payment confirmation email is sent to the client, and a notification is sent to your billing staff.
Payment gateway integration is configured in Settings → Billing. Contact your system administrator or refer to the payment provider's documentation for integration setup details.
Billing and Financial Reports
For a financial overview of your billing performance, go to Reports → Financial. The financial report shows:
- Total billed — total invoice value for the selected period
- Total collected — sum of all recorded payments in the period
- Outstanding balance — total unpaid and partially paid invoice amounts
- Top clients by revenue — the 5 clients generating the most billing volume
- Payment status distribution — breakdown of paid vs. unpaid invoices as a donut chart
See the Reports module documentation for full details on the financial report.
Billing Permissions
| Action | Permission Required | Default Roles |
|---|---|---|
| View billing list | settings.billing.view | Super Admin, Admin, Manager, Accountant |
| View invoice detail | settings.billing.view | Super Admin, Admin, Manager, Accountant |
| Mark invoice as paid | settings.billing.view | Super Admin, Admin, Manager, Accountant |
| Send invoice via email | settings.billing.view | Super Admin, Admin, Manager, Accountant |
| Send invoice via WhatsApp | settings.billing.view | Super Admin, Admin, Manager, Accountant |
| Send invoice via SMS | settings.billing.view | Super Admin, Admin, Manager, Accountant |
| Download single PDF | settings.billing.view | Super Admin, Admin, Manager, Accountant |
| Bulk export PDFs | settings.billing.view | Super Admin, Admin, Manager, Accountant |
| Void an invoice | settings.billing.view | Super Admin, Admin |
The Dispatcher and Courier roles do not have access to the billing module. The Dispatcher can see the shipment total on the shipment detail page, but cannot access invoice management functions. The Customer role can view their own invoices through their client portal but cannot perform any billing actions.
Tips for Power Users
- Filter unpaid invoices first thing Monday morning: Start each week by filtering the billing list to Unpaid and sorting by date ascending. Oldest unpaid invoices need follow-up first. Send a WhatsApp or email reminder directly from the action button.
- Bulk export PDFs for monthly statement runs: At month end, filter by the previous month's date range, select all, and export a ZIP of all PDFs. This is your monthly billing archive and can be sent to accounting for reconciliation.
- Use the WhatsApp send for mobile-first clients: In markets where clients prefer WhatsApp over email, always use the WhatsApp send option. Response and payment rates are typically higher when clients receive a WhatsApp message.
- Always record the payment method and reference: When marking invoices as paid, enter the payment method and reference number (bank transaction ID, check number, etc.). This makes reconciliation and dispute resolution much easier when a client disputes a payment later.
- Partial payments for COD collections: If a courier collects partial COD payments, record them as partial payments immediately. This keeps your outstanding balance accurate and flags the remaining amount for follow-up.
- Check the Financial Report weekly: Go to Reports → Financial once a week to see your collection rate. A low collection rate (collected vs. billed) is an early warning sign that needs action before the outstanding amount grows too large.