Invoices (TenaBill)
Invoices are the core billing record in TenaBill. Each invoice belongs to a customer and can be paid through the hosted billing portal or a direct checkout session.
Console: TenaBill merchant console → Invoices (/invoices)
Invoice statuses
| Status | Meaning |
|---|---|
| Open | Awaiting payment |
| Paid | Payment collected |
| Void | Cancelled; will not be collected |
| Uncollectible | Marked as bad debt |
View invoice detail
Click any row to expand the invoice detail panel. You can see line items, due date, and dunning history.
Send a payment reminder
With an invoice selected, click Send reminder. TenaBill sends a invoice.payment_reminder email to the customer using the configured email template and branding.
You can also trigger reminders programmatically via POST /api/v1/console/invoices/{id}/remind.
Dunning
TenaBill tracks automatic retry and reminder attempts in the dunning log visible on each invoice detail view. Dunning emails use the dunning.overdue template category configured in Settings → Email templates.
Create invoices
Invoices are created via the API. The console list is read-only to preserve your billing logic as the authoritative source:
POST /api/v1/console/invoices
X-TenaBill-Api-Key: <your-key>
{
"customerId": "cust_abc",
"lineItems": [{ "offeringId": "off_xyz", "quantity": 1 }],
"dueDate": "2026-07-01"
}Hosted checkout
Generate a pay link for any open invoice:
POST /api/v1/console/checkout/sessions
{ "invoiceId": "inv_abc" }Share the returned checkoutUrl with your customer; the /pay/ portal handles Stripe collection.
Related
- Customers — who owns each invoice
- Catalog — offerings referenced by line items
- Payments — Stripe Connect setup required for collection
- Webhooks —
invoice.paidevent - Email templates — reminder and dunning email content