---
title: "Invoicing Module"
module_id: "invoicing"
version: "1.0.0"
category: "data"
autonomy: "agent-capable"
generated: true
generated_at: "2026-05-04"
---

# Invoicing

> Create and manage invoices with line items, tax computation, and status tracking

Ships with **5 agent skills**.

## Quick Facts

| Property | Value |
|----------|-------|
| **Module ID** | `invoicing` |
| **Version** | 1.0.0 |
| **Category** | data |
| **Autonomy** | agent-capable |
| **Core** | No |
| **Capabilities** | `data:write`, `data:read` |
| **MCP-exposed skills** | 5 |
| **Owns tables** | — |

## Integrations

**Optional:** `stripe`, `resend`

## Skills

These skills are seeded into `agent_skills` when the module is enabled and exposed via MCP.
External operators (FlowPilot, OpenClaw, Claude Desktop, custom MCP clients) can call them directly.

| Skill | Scope | Description |
|-------|-------|-------------|
| `manage_invoice` | internal | ISO currency code, default ${getActivePack().currency.code} |
| `invoice_from_timesheets` | internal | Generate invoice draft from billable time entries. Use when: user wants to invoice a client for logged hours, "fakturera timmar", "invoice project X for last month". NOT for: manual invoices (use m… |
| `bulk_invoice_from_timesheets` | external | Bulk-generate invoice draft from billable, uninvoiced time entries for a project + period. Use when: month-end billing run, "create monthly invoice from hours". NOT for: single manual invoices (use… |
| `send_dunning_reminders` | external | Sweep overdue invoices and dispatch graduated dunning reminders (friendly 7d, formal 14d, final 30d). Use when: daily AR run, "run reminders", "send overdue reminders". NOT for: single invoice remi… |
| `invoice_overdue_check` | internal | Check for overdue invoices and optionally send reminders. Use when: FlowPilot runs daily overdue check, admin asks "any overdue invoices?", "which invoices are overdue". NOT for: creating invoices … |

## Module API Contract

**Actions:** `create`, `update`, `list`

**Input fields:** `action`, `customer_email`, `customer_name`, `deal_id`, `line_items`, `description`, `qty`, `unit_price_cents`, `invoice_id`, `status`

**Output fields:** `success`, `invoice_id`, `message`

## Used in Processes

This module participates in the following end-to-end business processes:

- [quote-to-cash](../processes/quote-to-cash.md)

## File Map

| Purpose | Path |
|---------|------|
| Module definition | `src/lib/modules/invoicing-module.ts` |

## Contributing

To enhance this module, see [Contributing Guide](../contributing/contributing.md).

Key rules:
- Follow `ModuleDefinition<I, O>` contract pattern
- All schema changes require idempotent migrations
- Skills must be self-describing ([Law 2](../concepts/openclaw-law.md))
- Blocks are interfaces, not pipelines ([Law 3](../concepts/openclaw-law.md))
- New skills must pass the [Agent Contract Integrity](../architecture/agent-contract-integrity.md) checklist (`bun run lint:skills`)

---

*This file is auto-generated by `scripts/generate-module-docs.ts`. Do not edit manually — re-run the script after changing the module definition.*