Billing & Payments
Statement of Account
Monthly account statement — opening balance, running activity, closing balance, amount due.
The contract
Fields your API call provides. Amounts and totals are always computed by the caller — templates only format.
| company.name | string | required |
| company.email | string | required |
| customer.name | string | required |
| customer.email | string | required |
| due_date | string | required |
| amount_due | number | required |
| period_end | string | required |
| period_start | string | required |
| transactions[].date | string | required |
| transactions[].amount | number | required |
| transactions[].balance | number | required |
| transactions[].description | string | required |
| closing_balance | number | required |
| opening_balance | number | required |
| payment_instructions | string | required |
MCP-ready: forks of this template will expose generate_account_statement when the MCP server ships.
Generate it (after you fork & publish)
curl -X POST https://your-paperbrain-host/api/generate/gen_<your-id> \
-H "Content-Type: application/json" \
-d '{
"company": {
"name": "Northwind Consulting",
"email": "billing@northwind.example"
},
"customer": {
"name": "Acme Corp",
"email": "ap@acme.example"
},
"due_date": "2026-06-30",
"amount_due": 9500,
"period_end": "2026-05-31",
"period_start": "2026-05-01",
"transactions": [
{
"date": "2026-05-04",
"amount": 9500,
"balance": 21900,
"description": "Invoice INV-2039 — May retainer"
},
{
"date": "2026-05-12",
"amount": -12400,
"balance": 9500,
"description": "Payment received — thank you"
},
{
"date": "2026-05-21",
"amount": 4800,
"balance": 14300,
"description": "Invoice INV-2041 — workshop series"
},
{
"date": "2026-05-28",
"amount": -4800,
"balance": 9500,
"description": "Credit note CN-0193 applied"
}
],
"closing_balance": 9500,
"opening_balance": 12400,
"payment_instructions": "Pay by ACH to account 4471-002 (routing 021000021), reference your account name. Questions: billing@northwind.example."
}'gen_<your-id>is your generator's id once you fork and publish. The body shown is this template's sample data — the exact shape the contract validates.