Quipu integration for invoice generation.
This package contains:
- quipu_api - Python client library for the Quipu API
- quipu-invoicer - Generate invoices from time tracking exports
nix shell github:numtide/freelancer-toolbox#quipu-invoicer| Variable | Description |
|---|---|
QUIPU_APP_ID |
Quipu OAuth application ID |
QUIPU_APP_SECRET |
Quipu OAuth application secret |
Generate Quipu invoices from harvest-exporter or kimai-exporter JSON output.
# Generate invoice for customer
quipu-invoicer harvest.json
# With custom options
quipu-invoicer \
--customer 5458533 \
--invoice-number "2024-001" \
--issue-date 2024-01-31 \
--due-date 2024-02-28 \
harvest.json| Option | Description |
|---|---|
--customer ID |
Quipu customer ID |
--invoice-number STR |
Invoice number |
--accounting-category ID |
Accounting category ID (default: 133) |
--vat-percent N |
VAT percentage (default: 0) |
--issue-date DATE |
Issue date (YYYY-MM-DD) |
--due-date DATE |
Due date (YYYY-MM-DD) |
--notes TEXT |
Invoice notes |
Expects JSON array from harvest-exporter or kimai-exporter:
[
{
"client": "Acme Corp",
"task": "Development",
"rounded_hours": 40.5,
"target_hourly_rate": 100
}
]Python client library for the Quipu API.
from quipu_api import QuipuAPI
api = QuipuAPI(app_id="...", app_secret="...")
# Create invoice
invoice_data = {
"data": {
"type": "invoices",
"attributes": {
"kind": "income",
"number": "2024-001",
"issue_date": "2024-01-31",
"due_date": "2024-02-28",
"payment_method": "bank_transfer"
},
"relationships": {
"contact": {"data": {"id": 123, "type": "contacts"}},
"items": {"data": [...]}
}
}
}
api.create_invoice(invoice_data)- harvest-exporter - Export Harvest timesheets
- kimai-exporter - Export Kimai time entries
- Monthly Invoicing Workflow