{"slug":"api-paidpilot-io-v1-invoice-from-timesheet-c9b008","title":"PaidPilot Invoice API","host":"api.paidpilot.io","method":"POST","resource":"https://api.paidpilot.io/v1/invoice-from-timesheet","category":"other","description":"PaidPilot Invoice API: Timesheet to invoice JSON. Time entries (hours x rate, optional per-entry rounding, grouping by description, expenses, tax, terms) become a validated invoice JSON with totals, ready to POST to /v1/invoice.pdf for the PDF.","price_listed":0.02,"price_asked":null,"state":"effects","state_label":"Not tested: has real-world effects","checks_7d":0,"answered_7d":0,"latency_ms_median":null,"reported_calls_30d":2,"reported_payers_30d":1,"networks":["eip155:8453"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"body":{"buyer":{"name":"Blue River Bakery"},"currency":"USD","default_rate":85,"entries":[{"date":"2026-10-05","description":"Website fixes","hours":1.6},{"date":"2026-10-06","description":"Website fixes","hours":2.25},{"date":"2026-10-08","description":"Menu photo shoot","hours":3,"rate":95}],"expenses":[{"amount":29,"description":"Stock photo license"}],"group_by":"description","invoice_number":"INV-1002","issue_date":"2026-10-11","rounding":{"increment_minutes":15,"mode":"up"},"seller":{"email":"billing@acme.example","name":"Acme Web Studio LLC"},"tax_rate":7,"terms":"Net 15"},"bodyType":"json","method":"POST","type":"http"},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"buyer":{"properties":{"address":{"maxLength":400,"type":"string"},"email":{"format":"email","maxLength":254,"pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string"},"name":{"maxLength":120,"minLength":1,"type":"string"},"phone":{"maxLength":40,"type":"string"},"tax_id":{"maxLength":60,"type":"string"}},"required":["name"],"type":"object"},"currency":{"default":"USD","type":"string"},"default_rate":{"description":"Hourly rate for entries without their own rate","maximum":1000000,"minimum":0,"type":"number"},"discount":{"maximum":1000000000,"minimum":0,"type":"number"},"due_date":{"description":"YYYY-MM-DD; or give terms instead","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"entries":{"items":{"additionalProperties":false,"properties":{"date":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"description":{"maxLength":250,"minLength":1,"type":"string"},"hours":{"exclusiveMinimum":0,"maximum":1000,"type":"number"},"rate":{"maximum":1000000,"minimum":0,"type":"number"}},"required":["description","hours"],"type":"object"},"maxItems":500,"minItems":1,"type":"array"},"expenses":{"description":"Reimbursable expenses, one line each","items":{"additionalProperties":false,"properties":{"amount":{"maximum":1000000000,"minimum":0,"type":"number"},"description":{"maxLength":250,"minLength":1,"type":"string"}},"required":["description","amount"],"type":"object"},"maxItems":100,"type":"array"},"group_by":{"default":"entry","description":"entry = one line per entry; description = merge entries with the same description and rate","enum":["entry","description"],"type":"string"},"invoice_number":{"maxLength":64,"minLength":1,"type":"string"},"issue_date":{"pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"notes":{"maxLength":2000,"type":"string"},"payment_instructions":{"maxLength":1000,"type":"string"},"rounding":{"additionalProperties":false,"properties":{"increment_minutes":{"anyOf":[{"const":1,"type":"number"},{"const":5,"type":"number"},{"const":6,"type":"number"},{"const":10,"type":"number"},{"const":15,"type":"number"},{"const":30,"type":"number"},{"const":60,"type":"number"}],"description":"Round each entry to this many minutes"},"mode":{"default":"up","enum":["up","nearest"],"type":"string"}},"required":["increment_minutes"],"type":"object"},"seller":{"properties":{"address":{"maxLength":400,"type":"string"},"email":{"format":"email","maxLength":254,"pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","type":"string"},"name":{"maxLength":120,"minLength":1,"type":"string"},"phone":{"maxLength":40,"type":"string"},"tax_id":{"maxLength":60,"type":"string"}},"required":["name"],"type":"object"},"tax_rate":{"maximum":100,"minimum":0,"type":"number"},"terms":{"description":"e.g. \"Net 15\"; sets due_date from issue_date (early-pay discounts are not applied to the invoice)","maxLength":40,"minLength":1,"type":"string"}},"required":["seller","buyer","invoice_number","issue_date","entries"],"type":"object"},"bodyType":{"enum":["json","form-data","text"],"type":"string"},"method":{"enum":["POST"],"type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"properties":{"example":{"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"},"history":[],"description_full":"PaidPilot Invoice API: Timesheet to invoice JSON. Time entries (hours x rate, optional per-entry rounding, grouping by description, expenses, tax, terms) become a validated invoice JSON with totals, ready to POST to /v1/invoice.pdf for the PDF.","last_updated":"2026-10-18T15:09:32.958Z","schemes":["exact"]}