August 11, 2026
Return Invoice PDF URL
GET /v3/Invoices/{InvoiceKey} now returns InvoicePdfUrl, a link to the rendered invoice PDF. Use it to preview the invoice, download it, or pass it on to your client.
GET /v3/Invoices/{InvoiceKey}
{
// ...existing invoice fields
"InvoiceKey": "M2dVbCt4RHk",
"InvoiceNumber": "KIN-1001",
"InvoiceStatus": "AwaitingPayment",
"InvoicePdfUrl": "/v3/Files?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
}
InvoicePdfUrl is only returned once the invoice has been posted or sent; otherwise it’s null. This field is not returned on the /v3/Invoices list endpoint.
The URL includes a token that is valid for 15 minutes — the same format GET /v3/FileDetails/{key} returns — so request the invoice again for a fresh link rather than storing it.
Estimated Amount on Estimate Summaries
GET /v3/EstimateSummaries/{WorkItemKey} now returns EstimateAmount on each summary — the estimated cost of the work, calculated from EstimateMinutes at the user’s HourlyRate. Previously you had to work this out yourself.
GET /v3/EstimateSummaries/4jgPTtcXxwC2
{
"value": [
{
// ...existing estimate summary fields
"EstimateSummaryKey": "160F79F6-E650-40C3-8BD9-F70C287B7476-0",
"TaskTypeName": "Admin",
"EstimateMinutes": 60,
"HourlyRate": 150,
"ActualMinutes": 45,
"EstimateAmount": 150
}
]
}
Estimate summaries remain read-only — EstimateAmount is calculated by Karbon and can’t be set through the API.