What It Does

The Billing module handles shipment payment tracking, invoice generation (PDF), payment gateway integration, and financial reconciliation. Every shipment can generate a professional invoice, and payments can be collected manually or through integrated gateways.

DetailValue
Who uses itAdmin (full access), Employee (billing view)
Menu pathFinance → Billing
Required permissionsettings.billing.view

Payment Flow

Payments are tracked at the shipment level. When creating or editing a shipment, you set the payment status and method.

  1. 1

    Set Payment Status

    When creating a shipment, set the payment status: Unpaid, Pending, or Paid.

  2. 2

    Select Payment Method

    For "Paid" shipments, select the payment method: Manual, Stripe, or PayPal.

  3. 3

    Process Payment

    Manual: Optionally upload a payment proof image (bank transfer screenshot, receipt photo).

    Stripe / PayPal: The customer is redirected to the payment gateway. The payment is processed automatically and the status updates on success.

Payment Status Badges

StatusMeaningBadge Color
UnpaidNo payment recorded. Invoice outstanding.Red
PendingPayment initiated but not yet confirmed (e.g., bank transfer in progress).Amber
PaidPayment received and confirmed. Invoice settled.Green
VoidInvoice cancelled. Excluded from financial totals.Gray

Invoice Generation

Each shipment can generate a professional PDF invoice. Invoices are generated on demand from the shipment detail page or the billing list.

Invoice Contents

Invoice Configuration

Customize the invoice appearance and content in Settings → Billing:

SettingDescription
Invoice ThemeProfessional template with your branding colors
Tax NumberYour company tax registration number printed on invoices
TermsPayment terms text displayed at the bottom of the invoice
Footer NotesCustom notes printed in the invoice footer area
Signature ImageUpload a signature image to display on invoices

Export Options

Billing Report

The billing report provides a financial overview of all invoiced shipments for a given period.

Features

Reconciliation

The reconciliation view compares revenue collected against costs incurred for each shipment, helping you understand profitability.

Payment Gateways

Payment gateways are configured in Settings → Billing. Each gateway can be enabled independently and supports a test mode for development and staging environments.

Stripe

Credit and debit cards, Apple Pay. Provides the broadest international coverage. Requires Stripe API keys (publishable + secret).

PayPal

PayPal balance, credit and debit cards via PayPal checkout. Requires PayPal Client ID and Secret.

Paystack

Cards, bank transfer, and mobile money. Optimized for African markets (Nigeria, Ghana, South Africa, Kenya). Requires Paystack public and secret keys.

Gateway Configuration Fields

FieldDescription
EnabledToggle the gateway on or off
Test ModeUse sandbox/test API keys for development. No real charges are processed.
API KeysPublic key (client-side) and secret key (server-side) from the provider dashboard
Webhook URLAuto-generated URL to receive payment confirmation callbacks from the provider

Test mode before going live

Always enable Test Mode first and process a few test payments to verify the integration works correctly. Once confirmed, switch to live mode with your production API keys.

Billing Permissions

ActionPermissionDefault Roles
View billing list and invoicessettings.billing.viewSuper Admin, Admin
Mark invoice as paidsettings.billing.viewSuper Admin, Admin
Download / export PDF invoicessettings.billing.viewSuper Admin, Admin
Void an invoicesettings.billing.viewSuper Admin, Admin
Configure payment gatewayssettings.billing.updateSuper Admin, Admin

The Employee and Driver roles do not have direct access to the billing module. Employees can see the shipment total on the shipment detail page but cannot manage invoices. The Customer role can view their own invoices through the customer portal.

Troubleshooting

ProblemSolution
Invoice PDF shows blank company logo Upload your logo in Settings → Company Profile. The logo must be a PNG or JPG file.
Stripe payment fails with "Invalid API key" Verify the API keys in Settings → Billing → Stripe. Ensure you are using test keys for test mode and live keys for production.
Payment status not updating after gateway payment The webhook URL may not be configured in your payment provider's dashboard. Copy the webhook URL from Settings and add it to your Stripe/PayPal/Paystack dashboard.
Invoice total shows $0.00 The shipment has no rate assigned. Verify that a matching Rate Card exists for the shipment's route, or assign a price manually in the shipment form.
Billing report PDF export is slow For large date ranges with hundreds of invoices, the PDF generation may take 30+ seconds. Narrow the date range or wait for the background notification.