Get invoice details
Returns complete details of an existing invoice, including all billable items, financial totals, and payment tracking information.
What is returned:
- Invoice identification (ID, number, type, status)
- Project reference and billing period (billedFrom, billedTo)
- All billable items:
- Tasks with time tracking and hourly rates
- Products with options, quantities, and pricing
- Components with nested items and time estimates
- Subscriptions (fixed, variable, one-time payments)
- Express quotations with items and options
- Support contingent charges (retainer plan charges for Support-type projects)
- Support contingent usage (compensation/deductions from support contingents, negative amounts)
- Manual positions (custom billing items)
- Financial totals:
- Net amount (before taxes and fees)
- VAT amount and percentage
- Leadtime fee (if applicable)
- Gross amount (after taxes)
- Full total (including all fees)
- Payment tracking:
- Due date and overdue status
- Sent dates and recipients
- Reminder dates (first and second)
- Payment received date
- Cancellation information
- Overdue fees and interest calculations
Description fields: All description fields (products, components, manual positions, express quotations) are returned as HTML format for easy display in web applications.
Use cases:
- View complete invoice breakdown for accounting
- Display invoice details in customer portals
- Generate custom invoice documents
- Track payment status and overdue amounts
- Audit invoice contents and calculations
GET
/billing/invoices/{id}Authorization
AuthorizationOAuth2 access token · headerrequiredScopes:
api:reador
AuthorizationBearer token (JWT) · headerrequiredPath parameters
idstring<uuid>requiredInvoice ID (UUID)
Responses
200Successfully retrieved invoice details
billedFromstringrequiredBilling period start date
billedTostringrequiredBilling period end date
bruttonumberrequiredGross amount (after taxes)
cancelationSentAtobjectCancellation sent date
cancelationSentByobjectUser ID who sent cancellation
cancelationSentContactIdobjectCancellation contact ID
cancelationSentTypestringrequiredHow cancellation was sent
Allowed:
ManualEmailcomponentsCountnumberrequiredNumber of components billed
componentsSumnumberrequiredTotal amount from components
contactIdobjectInvoice contact ID
createdAtstringrequiredInvoice creation date
dueDateobjectPayment due date
expressQuotationsInvoiceExpressQuotationDto[]requiredExpress quotations
Show propertiesHide properties
Array of
InvoiceExpressQuotationDtoacceptedAtstringrequiredAccepted date
acceptedByNamestringrequiredAccepted by user name
amountnumberrequiredTotal amount
fullNumberstringrequiredFull quotation number
idstringrequiredExpress quotation ID
itemsInvoiceExpressQuotationItemDto[]requiredQuotation items
Show propertiesHide properties
Array of
InvoiceExpressQuotationItemDtodescriptionstringrequiredItem description as HTML
optionsInvoiceExpressQuotationItemOptionDto[]requiredItem options
Show propertiesHide properties
Array of
InvoiceExpressQuotationItemOptionDtotitlestringrequiredOption title
totalPricenumberrequiredTotal price
unitPricenumberrequiredUnit price
ordernumberrequiredOrder
quantitynumberrequiredQuantity
titlestringrequiredItem title
totalPricenumberrequiredTotal price
unitstringrequiredUnit type
unitPricenumberrequiredUnit price
quotationIdstringrequiredQuotation ID
quotationShortNumbernumberrequiredQuotation short number
taskIdstringrequiredTask ID
taskShortNumbernumberrequiredTask short number
titlestringrequiredQuotation title
firstReminderAtobjectFirst reminder sent date
firstReminderContactIdobjectFirst reminder contact ID
firstReminderSentByobjectUser ID who sent first reminder
firstReminderTypestringrequiredHow first reminder was sent
Allowed:
ManualEmailfixedSubscriptionsInvoiceFixedSubscriptionDto[]requiredFixed subscriptions
Show propertiesHide properties
Array of
InvoiceFixedSubscriptionDtoamountnumberrequiredSubscription amount
idstringrequiredSubscription billing ID
titlestringrequiredSubscription title
fullTotalnumberrequiredFull total including all fees
hourRatenumberrequiredHourly rate used for time-based billing
idstringrequiredInvoice ID (UUID)
includedTypesnumber[]requiredIncluded invoice types
invoiceComponentsInvoiceComponentDto[]requiredInvoice components
Show propertiesHide properties
Array of
InvoiceComponentDtoamountnumberrequiredTotal amount after discount
amountWithoutDiscountnumberrequiredAmount before discount
descriptionstringrequiredComponent description as HTML
discountAmountnumberrequiredDiscount amount
discountTypestringrequiredDiscount type
Allowed:
FixedPercentagehourRatenumberrequiredHourly rate
iconobjectComponent icon
idstringrequiredInvoice component ID
itemsInvoiceComponentItemDto[]requiredComponent items
Show propertiesHide properties
Array of
InvoiceComponentItemDtoamountnumberrequiredTotal amount
childrenInvoiceComponentItemDto[]Nested child items
Show propertiesHide properties
Array of
InvoiceComponentItemDtoCircular reference to
InvoiceComponentItemDto.descriptionstringrequiredItem description as HTML
hourRatenumberrequiredHourly rate
iconobjectItem icon
idstringrequiredComponent item ID
namestringrequiredItem name
originalItemIdobjectOriginal item ID from project component
parentIdobjectParent item ID
sortnumberrequiredSort order
timeFrameobjectTime frame in hours
totalEstimateobjectTotal estimate in hours
typestringrequiredItem type
Allowed:
EpicWorkPackageTodoListTestSuitenamestringrequiredComponent name
originalComponentIdobjectOriginal component ID from project
sortnumberrequiredSort order
totalTimeFramenumberrequiredTotal time frame in hours
invoiceProductsInvoiceProductDto[]requiredInvoice products
Show propertiesHide properties
Array of
InvoiceProductDtobasePriceFixednumberrequiredBase price before discounts
categoryIdstringrequiredProduct category ID
descriptionobjectProduct description as HTML
fixedDiscountAmountnumberrequiredDiscount amount
fixedDiscountTypestringrequiredDiscount type
Allowed:
FixedPercentagefixedDiscountValuenumberrequiredDiscount value
idstringrequiredInvoice product ID
logoIdobjectProduct logo file ID
namestringrequiredProduct name
optionsInvoiceProductOptionDto[]requiredProduct options
Show propertiesHide properties
Array of
InvoiceProductOptionDtoidstringrequiredOption ID
namestringrequiredOption name
originalOptionIdobjectOriginal option ID from catalog
sortnumberrequiredSort order
valuesInvoiceProductOptionValueDto[]requiredAvailable option values
Show propertiesHide properties
Array of
InvoiceProductOptionValueDtoextraPriceFixedobjectExtra price for this option value
idstringrequiredOption value ID
namestringrequiredOption value name
originalValueIdobjectOriginal option value ID from catalog
sortnumberrequiredSort order
originalProductIdobjectOriginal product ID from catalog
priceFixednumberrequiredPrice after discounts
quantitynumberrequiredQuantity
sortnumberrequiredSort order
totalPricenumberrequiredTotal price (priceFixed * quantity)
invoiceProductsCountnumberrequiredNumber of products billed
invoiceProductsSumnumberrequiredTotal amount from products
isOverduebooleanrequiredWhether invoice is overdue
leadtimeFeenumberrequiredLeadtime fee amount
leadtimeFeeIncludedbooleanrequiredWhether Leadtime fee is included
leadtimeFeeMethodstringrequiredLeadtime fee calculation method
Allowed:
SeparateRowTasksDistributionleadtimeFeePercentnumberrequiredLeadtime fee percentage
leadtimeRowCustomTitleobjectCustom title for Leadtime fee row
manualRowsInvoiceManualPositionDto[]requiredManual billing positions
Show propertiesHide properties
Array of
InvoiceManualPositionDtoamountnumberrequiredTotal amount
categoryNameobjectCategory name
descriptionobjectDescription as HTML
discountAmountnumberDiscount amount
discountTypestringDiscount type
Allowed:
FixedPercentagediscountValuenumberDiscount value
idstringrequiredManual position ID
interimPaymentIdobjectInterim payment ID
projectManualPositionIdobjectProject manual position ID
titlestringrequiredPosition title
typestringManual position type
Allowed:
manualprojectinterimPaymentinterimPaymentDiscountnettonumberrequiredNet amount (before taxes and fees)
numberstringrequiredInvoice number
oneTimePaymentsInvoiceOneTimePaymentDto[]requiredOne-time payments
Show propertiesHide properties
Array of
InvoiceOneTimePaymentDtoamountnumberrequiredTotal amount
idstringrequiredOne-time payment ID
pricenumberrequiredPrice per unit
quantitynumberrequiredQuantity
titlestringrequiredPayment title
overDueDaysnumberrequiredNumber of days overdue
overdueInterestnumberrequiredOverdue interest amount
overdueInterestDaysnumberrequiredOverdue interest days
overdueInterestPercentnumberrequiredOverdue interest percentage
overdueReminderFeenumberrequiredOverdue reminder fee
paidAtobjectPayment received date
paidRuntimeobjectPayment runtime in days
potentialOverdueInterestnumberrequiredPotential overdue interest
potentialOverdueReminderFeenumberrequiredPotential overdue reminder fee
projectIdstringrequiredProject ID
reverseVatbooleanrequiredWhether reverse VAT charge applies
secondReminderAtobjectSecond reminder sent date
secondReminderContactIdobjectSecond reminder contact ID
secondReminderSentByobjectUser ID who sent second reminder
secondReminderTypestringrequiredHow second reminder was sent
Allowed:
ManualEmailsentAtobjectInvoice sent date
sentByobjectUser ID who sent the invoice
sentToContactIdobjectContact ID who received the invoice
sentTypestringrequiredHow invoice was sent
Allowed:
ManualEmailstatusstringrequiredInvoice status
Allowed:
NewSentPaidCancelledstatusChangedAtobjectStatus change date
supportContingentChargesInvoiceSupportContingentChargeDto[]requiredSupport contingent charges billed on this invoice
Show propertiesHide properties
Array of
InvoiceSupportContingentChargeDtofrequencynumberrequiredBilling frequency in months. Determines how often this contingent is charged (e.g., 1 = monthly, 3 = quarterly)
hourRatenumberrequiredHourly rate used for calculating the price (in organization currency)
hoursIncludednumberrequiredNumber of hours included in this billing period
idstringrequiredInvoice support contingent charge ID
periodEndstringrequiredBilling period end date (ISO 8601 date string, YYYY-MM-DD format)
periodStartstringrequiredBilling period start date (ISO 8601 date string, YYYY-MM-DD format)
pricenumberrequiredTotal price for this billing period (in organization currency)
supportContingentIdstringrequiredSupport contingent ID (UUID) that this charge is based on
titlestringrequiredTitle of the support contingent
transferablebooleanrequiredWhether unused hours from this period can be transferred to future periods
supportContingentChargesCountnumberrequiredNumber of support contingent charges billed
supportContingentChargesSumnumberrequiredTotal amount from support contingent charges
tasksInvoiceTaskDto[]requiredBilled tasks
Show propertiesHide properties
Array of
InvoiceTaskDtoamountnumberrequiredTotal amount
billedTimenumberrequiredBilled time in hours
estimatedTimenumberrequiredEstimated time in hours
idstringrequiredTask ID
leadtimeFeeTimenumberrequiredLeadtime fee time in hours
spentTimenumberrequiredTime spent in hours
taskShortNumbernumberrequiredTask short number
taskTypeIdstringrequiredTask type ID
titlestringrequiredTask title
totalHoursnumberrequiredTotal hours (billed + leadtime fee)
tasksCountnumberrequiredNumber of tasks billed
tasksHoursBillednumberrequiredTotal hours billed from tasks
tasksSumnumberrequiredTotal amount from tasks
typestringrequiredInvoice type
Allowed:
MixedSubscriptionTimeBasedExpressQuotationSingleProjectInterimPaymentSupportContingentChargevariableSubscriptionsInvoiceVariableSubscriptionDto[]requiredVariable subscriptions
Show propertiesHide properties
Array of
InvoiceVariableSubscriptionDtoamountnumberrequiredTotal amount
idstringrequiredSubscription billing ID
pricenumberrequiredPrice per unit
quantitynumberrequiredQuantity (number of units)
titlestringrequiredSubscription title
vatnumberrequiredVAT percentage
vatAmountnumberrequiredVAT amount
401Unauthorized - Invalid or missing authentication token
403Forbidden - Insufficient API scopes or permissions
404Invoice not found
Request
curl -X GET "https://leadtime.app/api/public/billing/invoices/%3Cuuid%3E" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"const response = await fetch("https://leadtime.app/api/public/billing/invoices/%3Cuuid%3E", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
});import requests
response = requests.get(
"https://leadtime.app/api/public/billing/invoices/%3Cuuid%3E",
headers={
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
},
)Response
{
"billedFrom": "2025-01-01",
"billedTo": "2025-01-31",
"brutto": 11900,
"cancelationSentAt": "2025-01-20T10:00:00Z",
"cancelationSentBy": "123e4567-e89b-12d3-a456-426614174000",
"cancelationSentContactId": "123e4567-e89b-12d3-a456-426614174000",
"cancelationSentType": "Email",
"componentsCount": 3,
"componentsSum": 12000,
"contactId": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2025-01-15T10:00:00Z",
"dueDate": "2025-02-15",
"expressQuotations": [
{
"acceptedAt": "2025-01-15T10:00:00Z",
"acceptedByName": "John Doe",
"amount": 500,
"fullNumber": "EQ-456",
"id": "123e4567-e89b-12d3-a456-426614174000",
"items": [
{
"description": "<p>Extra development work</p>",
"options": [
{
"title": "Priority Support",
"totalPrice": 50,
"unitPrice": 50
}
],
"order": 1,
"quantity": 5,
"title": "Additional Development Hours",
"totalPrice": 500,
"unit": "Hours",
"unitPrice": 100
}
],
"quotationId": "123e4567-e89b-12d3-a456-426614174000",
"quotationShortNumber": 456,
"taskId": "123e4567-e89b-12d3-a456-426614174000",
"taskShortNumber": 123,
"title": "Quick Add-on Development"
}
],
"firstReminderAt": "2025-02-20T10:00:00Z",
"firstReminderContactId": "123e4567-e89b-12d3-a456-426614174000",
"firstReminderSentBy": "123e4567-e89b-12d3-a456-426614174000",
"firstReminderType": "Email",
"fixedSubscriptions": [
{
"amount": 500,
"id": "123e4567-e89b-12d3-a456-426614174000",
"title": "Monthly Support Package"
}
],
"fullTotal": 12400,
"hourRate": 100,
"id": "123e4567-e89b-12d3-a456-426614174000",
"includedTypes": [
"Mixed"
],
"invoiceComponents": [
{
"amount": 12000,
"amountWithoutDiscount": 13000,
"description": "<p>Backend API development</p>",
"discountAmount": 1000,
"discountType": "Percentage",
"hourRate": 100,
"icon": "⚙️",
"id": "123e4567-e89b-12d3-a456-426614174000",
"items": [
{
"amount": 4000,
"children": [
null
],
"description": "<p>Implement user authentication system</p>",
"hourRate": 100,
"icon": "🔐",
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "User Authentication",
"originalItemId": "123e4567-e89b-12d3-a456-426614174000",
"parentId": "123e4567-e89b-12d3-a456-426614174000",
"sort": 1,
"timeFrame": 40,
"totalEstimate": 40,
"type": "WorkPackage"
}
],
"name": "Backend Development",
"originalComponentId": "123e4567-e89b-12d3-a456-426614174000",
"sort": 1,
"totalTimeFrame": 120
}
],
"invoiceProducts": [
{
"basePriceFixed": 1000,
"categoryId": "123e4567-e89b-12d3-a456-426614174000",
"description": "<p>Complete website development package</p>",
"fixedDiscountAmount": 100,
"fixedDiscountType": "Percentage",
"fixedDiscountValue": 10,
"id": "123e4567-e89b-12d3-a456-426614174000",
"logoId": "123e4567-e89b-12d3-a456-426614174000",
"name": "Website Development Package",
"options": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Size",
"originalOptionId": "123e4567-e89b-12d3-a456-426614174000",
"sort": 1,
"values": [
{
"extraPriceFixed": 50,
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "Large",
"originalValueId": "123e4567-e89b-12d3-a456-426614174000",
"sort": 1
}
]
}
],
"originalProductId": "123e4567-e89b-12d3-a456-426614174000",
"priceFixed": 900,
"quantity": 1,
"sort": 1,
"totalPrice": 900
}
],
"invoiceProductsCount": 5,
"invoiceProductsSum": 5000,
"isOverdue": false,
"leadtimeFee": 500,
"leadtimeFeeIncluded": true,
"leadtimeFeeMethod": "TasksDistribution",
"leadtimeFeePercent": 10,
"leadtimeRowCustomTitle": "Service Fee",
"manualRows": [
{
"amount": 200,
"categoryName": "Licenses",
"description": "<p>Annual license fee</p>",
"discountAmount": 0,
"discountType": "Fixed",
"discountValue": 0,
"id": "123e4567-e89b-12d3-a456-426614174000",
"interimPaymentId": "123e4567-e89b-12d3-a456-426614174000",
"projectManualPositionId": "123e4567-e89b-12d3-a456-426614174000",
"title": "Third-party API License",
"type": "manual"
}
],
"netto": 10000,
"number": "ACME01-2510-001",
"oneTimePayments": [
{
"amount": 500,
"id": "123e4567-e89b-12d3-a456-426614174000",
"price": 500,
"quantity": 1,
"title": "Setup Fee"
}
],
"overDueDays": 0,
"overdueInterest": 0,
"overdueInterestDays": 0,
"overdueInterestPercent": 0,
"overdueReminderFee": 0,
"paidAt": "2025-01-20T10:00:00Z",
"paidRuntime": 5,
"potentialOverdueInterest": 0,
"potentialOverdueReminderFee": 0,
"projectId": "123e4567-e89b-12d3-a456-426614174000",
"reverseVat": false,
"secondReminderAt": "2025-03-01T10:00:00Z",
"secondReminderContactId": "123e4567-e89b-12d3-a456-426614174000",
"secondReminderSentBy": "123e4567-e89b-12d3-a456-426614174000",
"secondReminderType": "Email",
"sentAt": "2025-01-15T10:00:00Z",
"sentBy": "123e4567-e89b-12d3-a456-426614174000",
"sentToContactId": "123e4567-e89b-12d3-a456-426614174000",
"sentType": "Email",
"status": "New",
"statusChangedAt": "2025-01-15T10:00:00Z",
"supportContingentCharges": [
{
"frequency": 1,
"hourRate": 10,
"hoursIncluded": 50,
"id": "123e4567-e89b-12d3-a456-426614174000",
"periodEnd": "2025-08-31",
"periodStart": "2025-08-01",
"price": 500,
"supportContingentId": "123e4567-e89b-12d3-a456-426614174000",
"title": "Monthly Support Retainer",
"transferable": true
}
],
"supportContingentChargesCount": 1,
"supportContingentChargesSum": 500,
"tasks": [
{
"amount": 850,
"billedTime": 8.5,
"estimatedTime": 8,
"id": "123e4567-e89b-12d3-a456-426614174000",
"leadtimeFeeTime": 0.5,
"spentTime": 8.5,
"taskShortNumber": 123,
"taskTypeId": "123e4567-e89b-12d3-a456-426614174000",
"title": "Implement user authentication",
"totalHours": 9
}
],
"tasksCount": 10,
"tasksHoursBilled": 80.5,
"tasksSum": 8050,
"type": "Mixed",
"variableSubscriptions": [
{
"amount": 1000,
"id": "123e4567-e89b-12d3-a456-426614174000",
"price": 100,
"quantity": 10,
"title": "Per-User License"
}
],
"vat": 19,
"vatAmount": 1900
}Unauthorized - Invalid or missing authentication token
Forbidden - Insufficient API scopes or permissions
Invoice not found