> For the complete documentation index, see [llms.txt](https://docs.doku.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.doku.com/subscription-and-billing/flexibill/subscription-and-billing.md).

# Subscription and Billing

Subscription and Billing is FlexiBill's **bill logic engine**. It controls when invoices are issued, how billing cycles are structured, what pricing model applies, and how bills are delivered to customers.

Every bill in FlexiBill starts here — whether you manage 10 customers or 10,000. Subscription and Billing handles the rules; payment collection follows those rules through a **payment link** or, when combined with **Account Billing**, through **auto-debit**.

{% hint style="info" %}
**Subscription and Billing** defines the billing logic and schedule. **Account Billing** adds the ability to automatically charge a customer's registered card without them needing to act. Both can be used together. → [Learn more about Account Billing](/subscription-and-billing/flexibill/account-billing.md)
{% endhint %}

## Two Ways to Manage Billing

Subscription and Billing offers two distinct approaches. Choose based on how your business structures its products and how billing is managed operationally:

### Subscriptions

A **plan-based model** — you define your products as Collections and Plans, then link customers to the appropriate plan. The system manages the full subscription lifecycle: billing schedule, invoice issuance, renewals, and status tracking per customer.

Use this when your business sells **defined packages** and needs per-customer lifecycle visibility.

* Configure pricing models: Flat Fee, Per Unit, Tiered, Volume, or Stairstep
* Set billing cycles per plan: daily, weekly, monthly, annual, or specific calendar dates
* Customers can self-subscribe via a shareable **Pricing Table**
* Upgrade, downgrade, or end subscriptions per customer at any time

👉 [*Learn more*](/subscription-and-billing/flexibill/subscription-and-billing/subscriptions.md)

### Bulk Bill Upload

A **file-based model** — you prepare customer billing data in a CSV or XLSX file and upload it. The system generates and delivers invoices to all customers in the file simultaneously.

Use this when your team **already manages billing data in Excel** or needs to onboard large volumes quickly without configuring individual plans per customer.

* Supports one-time and recurring bill types
* Process up to 1,000 customer records in a single upload
* No plan or collection setup required — billing details are defined in the file

👉 [*Learn more*](/subscription-and-billing/flexibill/subscription-and-billing/billing.md)

## Which Approach Should I Use?

| Aspect                       | Subscriptions                                 | Bulk Bill Upload                                  |
| ---------------------------- | --------------------------------------------- | ------------------------------------------------- |
| **Bill logic**               | Defined by Collection & Plan configuration    | Defined per row in the uploaded file              |
| **Pricing model**            | Flat Fee, Per Unit, Tiered, Volume, Stairstep | Fixed amount per row                              |
| **Customer setup**           | Registered as Member, linked to a Plan        | Included in the uploaded file                     |
| **Billing cycle**            | Configured in the Plan                        | Configured in the file (`cycle_type`, `interval`) |
| **Plan upgrade / downgrade** | ✅ Supported                                   | ❌ Not applicable                                  |
| **Customer self-subscribe**  | ✅ Via Pricing Table                           | ❌ Not applicable                                  |
| **Suitable volume**          | Any — from 1 to thousands                     | High volume (100+ per cycle)                      |
| **Best for**                 | Defined packages, tiers, membership plans     | Existing Excel-based billing, fast migration      |

## Features & Benefits

**🗓️ Flexible Bill Logic & Scheduling**

Define exactly when bills are issued per customer. Choose between **interval billing** (every N days/months from start date) or **specific date billing** (a fixed calendar date each month). Start dates, end conditions, and grace periods are all configurable.

**💲 Multiple Pricing Models**

Support for five pricing models — Flat Fee, Per Unit, Tiered, Volume, and Stairstep — in Subscription Lifecycle Management. Each model determines how the invoice amount is calculated based on quantity or usage.

**💳 Payment via Link or Auto-Debit**

Invoices generated by Subscription and Billing can be paid by customers **via a payment link** (manual) or **automatically via auto-debit** when Account Billing is activated. Both payment paths are supported for the same subscription.

**📬 Multi-Channel Invoice Delivery**

Invoices and receipts are delivered via **Email** and/or **WhatsApp** (via PayChat). Delivery channel is configurable per billing batch or per collection.

**📊 Revenue & Outstanding Invoice Tracking**

Monitor expected vs. received revenue, current and overdue outstanding invoices, and full activity logs per bill — all from the Billing Summary dashboard.

**🔗 API Integration**

Register bills and subscriptions programmatically via the host-to-host API — suitable for businesses with existing customer platforms that need to automate billing without dashboard interaction.

## How It Works

<figure><img src="/files/vvB2Lbzkl6CrzK49JJrX" alt=""><figcaption></figcaption></figure>

## Use Cases

{% tabs %}
{% tab title="Education" %}

<table><thead><tr><th width="153.8046875">Customer POV</th><th>Use Case Details</th></tr></thead><tbody><tr><td></td><td><p><strong>Description</strong> A school needs to bill hundreds of students every month across different fee types — tuition, extracurricular, and lab fees — with varying amounts per student. </p><p></p><p><strong>Solution</strong> Use Bulk Bill Upload to process the entire student roster from an Excel file each month. Each row defines the student's billing detail and amount. Invoices are delivered via Email or WhatsApp automatically. </p><p></p><p><strong>How It Works</strong> Prepare billing file from student records → upload to FlexiBill → invoices issued and delivered to all students simultaneously → payments tracked per student in real time. </p><p></p><p><strong>Features Used</strong> Bulk Bill Upload, Recurring Bill, Email + WhatsApp delivery</p></td></tr></tbody></table>
{% endtab %}

{% tab title="Property" %}

<table><thead><tr><th width="159.765625">Customer POV</th><th>Use Case Details</th></tr></thead><tbody><tr><td></td><td><p><strong>Description</strong> A property manager needs to bill monthly rent and utility fees to tenants across multiple units. Some tenants pay monthly on the 1st; others pay on specific dates based on their contract start. </p><p></p><p><strong>Solution</strong> Use Subscription Lifecycle Management — register each tenant as a Member, create a Plan per unit type, and configure the billing date per tenant's contract. The system handles each tenant's schedule independently. </p><p></p><p><strong>How It Works</strong> Create Collection "Unit Rentals" → create Plans per unit → subscribe tenants to their plan with the correct start date → invoices issued automatically per tenant's individual schedule. </p><p></p><p><strong>Features Used</strong> Subscription Lifecycle, Collection and Plan, Member Center</p></td></tr></tbody></table>
{% endtab %}

{% tab title="Fitness" %}

<table><thead><tr><th width="156.65234375">Customer POV</th><th>Use Case Details</th></tr></thead><tbody><tr><td></td><td><p><strong>Description</strong> A gym sells Basic, Pro, and VIP monthly memberships. Members want to subscribe online and not think about payment each month. </p><p></p><p><strong>Solution</strong> Use Subscription Lifecycle Management with a Pricing Table for self-service sign-up. Combine with Account Billing to enable auto-debit — members register their card once and are charged automatically every month. </p><p></p><p><strong>How It Works</strong> Create plans (Basic, Pro, VIP) → publish Pricing Table → members self-subscribe and register card → monthly charge runs automatically via Account Billing. </p><p></p><p><strong>Features Used</strong> Subscription Lifecycle, Pricing Table, Account Billing (auto-debit)</p></td></tr></tbody></table>
{% endtab %}

{% tab title="ISP" %}

<table><thead><tr><th width="164.203125">Customer POV</th><th>Use Case Details</th></tr></thead><tbody><tr><td></td><td><p><strong>Description</strong> An internet service provider offers monthly packages (10 Mbps, 20 Mbps, 50 Mbps) and needs to manage upgrades, downgrades, and automatic monthly invoicing per subscriber. </p><p></p><p><strong>Solution</strong> Use Subscription Lifecycle Management — create a Collection with a Plan per package. When a subscriber upgrades, the merchant creates a new subscription on the updated plan. Invoices are automatically issued each month. </p><p></p><p><strong>How It Works</strong> Create Collection "Internet Packages" → create Plans per bandwidth tier → subscribe customers → monthly invoices issued per plan → upgrade by ending old subscription and creating new one on higher plan. </p><p></p><p><strong>Features Used</strong> Subscription Lifecycle, Collection and Plan, Recurring Bill</p></td></tr></tbody></table>
{% endtab %}
{% endtabs %}

## Merchant & Customer Experience

### Merchant View

Merchants configure bill logic and monitor collections from the DOKU Dashboard:

**Setting up billing:**

* Configure Collections and Plans under **Subscription and Billing → Collection**
* Register customers as Members under **Member Center**
* Create subscriptions individually via **Subscription → Create Subscription**, or in bulk via **Bill → Create Bill → Upload File**
* Share a **Pricing Table** URL or embed it on a website for customer self-subscription

**Monitoring billing:**

* Track all active subscriptions under the **Subscription** tab
* Monitor invoice delivery status and payment status per bill under **Bill**
* View revenue summary — expected, received, and overdue — in **Billing Summary**
* Filter and search bills by member name, bill identifier, file name, or payment status

### Customer View

Customers interact with billing through their inbox or messaging app:

* Receive an **invoice via Email or WhatsApp** containing the billing details and a payment link
* Click the payment link to review the invoice and complete payment using their preferred method
* Optionally enable **auto-debit** on the invoice page — future cycles are then charged automatically without any action required
* Receive a **receipt via Email** after each successful payment

## Terms & Conditions

* Merchant must be registered with a **corporate business account** on DOKU Dashboard
* Business must be **KYB verified** on DOKU Dashboard
* WhatsApp delivery requires a separate **DOKU PayChat** activation
* Auto-debit payment collection requires activating **Account Billing** separately → [Activate Account Billing](/subscription-and-billing/flexibill/account-billing/account-billing-activation.md)

## FAQ

<details>

<summary>What is the difference between Subscription Lifecycle Management and Bulk Bill Upload?</summary>

**Subscriptions** is a plan-based model where you define your product catalog (Collections and Plans), register each customer individually as a Member, and the system manages their billing lifecycle — schedule, renewals, upgrades, and status — per customer.

**Bulk Bill Upload** is a file-based model where billing details (amount, schedule, customer data) are defined per row in an uploaded CSV or XLSX file. It does not require setting up Collections or Plans — it is designed for teams that already manage billing in Excel and want to process large volumes quickly.

Use Subscription Lifecycle Management when you need per-customer plan visibility and lifecycle management. Use Bulk Bill Upload when you need to process a large roster fast with minimal pre-configuration.

</details>

<details>

<summary>Can customers pay automatically without clicking a payment link each cycle?</summary>

Yes — when **Account Billing** is activated alongside Subscription and Billing. Subscription and Billing defines when and how much to bill; Account Billing executes the charge automatically on the customer's registered card or bank account on the billing date.

Customers can also opt into auto-debit themselves from the invoice page during their first payment. → [Learn more about Account Billing](/subscription-and-billing/flexibill/account-billing.md)

</details>

<details>

<summary>Can I use different pricing models for different customers?</summary>

Yes. Each Plan in a Collection is configured with its own pricing model independently. A single Collection can have a Flat Fee plan for standard customers, a Per Unit plan for customers billed by usage, and a Tiered plan for high-volume customers — all running simultaneously. Customers are linked to the plan that applies to them.

</details>

<details>

<summary>What happens if a customer does not pay their invoice before the due date?</summary>

The invoice transitions to **Overdue** status after the due date passes. If a grace period is configured, the customer can still pay within that window without penalty and the service remains active. Once the grace period ends without payment, the subscription moves to **Expired** status.

Overdue invoices are visible in the Billing Summary and can be filtered in the Bill list for follow-up.

</details>

<details>

<summary>Can a customer upgrade or downgrade their plan?</summary>

Plan changes are managed at the subscription level. To move a customer to a different plan, end their current subscription and create a new one on the target plan with the appropriate start date. The old subscription's billing stops; the new subscription's billing begins from the configured start date.

</details>

<details>

<summary>Is the payment link the same for every billing cycle?</summary>

No. Each billing cycle generates a unique payment link. Sharing a link from a previous cycle will not allow payment for the current bill.

</details>

<details>

<summary>Can I bill customers via API instead of the dashboard?</summary>

Yes. The **Host-to-Host Integration** API allows you to create bills and subscriptions programmatically from your backend system. This is suitable for platforms with existing customer databases that need billing to be triggered automatically as part of their application flow. → [API Reference](/subscription-and-billing/flexibill/subscription-and-billing/host-to-host-integration.md)

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.doku.com/subscription-and-billing/flexibill/subscription-and-billing.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
