> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clickpesa.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Common Use Cases

> Explore common use cases and userflows for BillPay, including webshop payments, invoice payments, offline purchases, and recurring customer payments.

### Webshop Payments

A webshop generates a BillPay Control Number at checkout and displays payment instructions for the customer:

* Customer selects mobile money or bank payment method.
* Webshop generates the **Order BillPay Control Number**:
  * Can be **offline concatenation** or **API-generated** for more control (set amount, partial payments, custom reference, description).
* Payment instructions, including mobile money USSD code and **Order BillPay Control Number**, are displayed.
* The customer completes the payment via mobile money USSD, SIM banking, or CRDB Wakala.
* The webshop receives **instant payment confirmation** via webhook or tracks it via [Query Payment API](/api-reference/collection/querying-for-payments/querying-for-payments).

### Invoice Payments

Businesses can generate a BillPay Control Number for each invoice and send it to customers:

* Invoice is issued with an **Order BillPay Control Number** and payment instructions.
* API generation allows specifying:
  * Fixed amount or flexible amount.
  * Partial payments or overs.
  * Bill description for easy reconciliation.
* Customer pays using mobile money, CRDB SIM banking, or Wakala.
* The invoicing system automatically matches the payment using the [Query Payment API](/api-reference/collection/querying-for-payments/querying-for-payments) or webhooks.

### Offline Purchases

For merchants with physical stores, restaurants, or service outlets:

* Merchant provides the customer with a unique **Order BillPay Control Number**, either printed on the bill or shared verbally.
* Customers pay via mobile money (e.g., M-Pesa) or CRDB SIM banking.
* Merchant verifies payment in real-time via ClickPesa Dashboard or webhook notifications.
* Offline-generated numbers follow the `Merchant BillPay-Namba + Order Reference` format for quick adoption without API integration.

### Recurring or Customer-Specific Payments

Ideal for schools, gyms, or subscription services:

* Each customer can have **multiple Customer BillPay Control Numbers**, one per recurring bill (e.g., tuition, fees, or membership subscription).
* Numbers can be assigned:
  * **Via Dashboard** (manual assignment per customer).
  * **Via API** (full flexibility):
    * Specify **customer name**.
    * Add **bill description** (e.g., Fees, Pocket Money).
    * Set payment amount and mode (full, partial, over).
    * Create multiple numbers for the same customer, each accepting multiple payments.
* Customers can pay via mobile money, CRDB SIM banking, or Wakala.
* Payments are tracked automatically via webhook or [Query Payment API](/api-reference/collection/querying-for-payments/querying-for-payments).

### Bulk or Batch Billing

For large organizations or corporate clients:

* Generate multiple **Order or Customer BillPay Control Numbers** via API in batch.
* Assign each number to specific invoices, customers, or departments.
* Clients pays using their assigned number.
* Payments are automatically tracked and reconciled in the organization's system using API or webhooks.
