---
title: "GET /api/integration/v1/invoices/{id} — full invoice as structured JSON: number, status, issue/due/period dates, issuer (organization) + bill-to (customer) snapshots, line items, subtotal/tax/discount/total, and currency. Scoped to the authenticated org."
method: GET
path: "/api/integration/v1/invoices/{id}"
tags: ["Invoices"]
---

# GET /api/integration/v1/invoices/{id} — full invoice as structured JSON: number, status, issue/due/period dates, issuer (organization) + bill-to (customer) snapshots, line items, subtotal/tax/discount/total, and currency. Scoped to the authenticated org.

`GET /api/integration/v1/invoices/{id}`

## Request

- Base URL: `https://api.timix.ai`
- URL: `https://api.timix.ai/api/integration/v1/invoices/{id}`
- Auth: API key in header `X-Api-Key`

## Path parameters

- `id` string, required

## Response `200`

- CRUDResponseOfInvoiceView
  - `data` InvoiceView
    - `id` string
    - `invoiceNumber` string
    - `invoiceDate` string, date-time
    - `dueDate` string, date-time
    - `status` 'Draft' | 'Issued' | 'Sent' | 'Paid' | 'Void'
    - `organizationId` string
    - `organizationName` string
    - `organizationTaxId` string
    - `organizationEmail` string
    - `organizationPhone` string
    - `organizationAddress` AddressInfo
      - `line1` string
      - `line2` string
      - `city` string
      - `state` string
      - `postalCode` string
      - `country` string
    - `customerId` string
    - `customerName` string
    - `customerTaxId` string
    - `customerVatNumber` string
    - `customerAddress` AddressInfo
      - `line1` string
      - `line2` string
      - `city` string
      - `state` string
      - `postalCode` string
      - `country` string
    - `customerEmail` string
    - `customerPhone` string
    - `periodStart` string, date-time
    - `periodEnd` string, date-time
    - `lineItems` InvoiceLineItem[]
      - `id` string
      - `lineNumber` integer
      - `description` string
      - `projectId` string
      - `taskId` string
      - `projectName` string
      - `taskName` string
      - `subTaskName` string
      - `billingType` 'Unknown' | 'Fix' | 'TM' | 'OVH' | 'MIXED'
      - `hours` number
      - `hourlyRate` number
      - `fixedAmount` number
      - `lineTotal` number
      - `timeReportIds` string[]
      - `originalLineItemId` string, nullable
    - `currency` string
    - `subTotal` number
    - `taxRate` number
    - `taxAmount` number
    - `discountRate` number
    - `discountAmount` number
    - `totalAmount` number
    - `paidAmount` number
    - `paymentTerms` string
    - `paymentInstructions` string
    - `purchaseOrderNumber` string
    - `frameOrderId` string, nullable
    - `frameOrderReference` string, nullable
    - `frameOrderTotalHours` number, nullable
    - `frameOrderRemainingHours` number, nullable
    - `notes` string
    - `internalNotes` string
    - `grouping` string
    - `isCreditNote` boolean
    - `originalInvoiceId` string
    - `voidReason` string
    - `voidedAt` string, date-time, nullable
    - `createdAt` string, date-time
    - `createdBy` string
    - `sentAt` string, date-time, nullable
    - `paidAt` string, date-time, nullable
  - `validationErrors` string[], nullable
  - `errorMessage` string, nullable
  - `errorCode` string, nullable
  - `errorDetails` object, nullable
  - `httpStatusCode` 'Continue' | 'SwitchingProtocols' | 'Processing' | 'EarlyHints' | 'OK' | 'Created' | 'Accepted' | 'NonAuthoritativeInformation' | 'NoContent' | 'ResetContent' | 'PartialContent' | 'MultiStatus' | 'AlreadyReported' | 'IMUsed' | 'MultipleChoices' | 'MultipleChoices' | 'MovedPermanently' | 'MovedPermanently' | 'Found' | 'Found' | 'SeeOther' | 'SeeOther' | 'NotModified' | 'UseProxy' | 'Unused' | 'RedirectKeepVerb' | 'RedirectKeepVerb' | 'PermanentRedirect' | 'BadRequest' | 'Unauthorized' | 'PaymentRequired' | 'Forbidden' | 'NotFound' | 'MethodNotAllowed' | 'NotAcceptable' | 'ProxyAuthenticationRequired' | 'RequestTimeout' | 'Conflict' | 'Gone' | 'LengthRequired' | 'PreconditionFailed' | 'RequestEntityTooLarge' | 'RequestUriTooLong' | 'UnsupportedMediaType' | 'RequestedRangeNotSatisfiable' | 'ExpectationFailed' | 'MisdirectedRequest' | 'UnprocessableEntity' | 'UnprocessableEntity' | 'Locked' | 'FailedDependency' | 'UpgradeRequired' | 'PreconditionRequired' | 'TooManyRequests' | 'RequestHeaderFieldsTooLarge' | 'UnavailableForLegalReasons' | 'InternalServerError' | 'NotImplemented' | 'BadGateway' | 'ServiceUnavailable' | 'GatewayTimeout' | 'HttpVersionNotSupported' | 'VariantAlsoNegotiates' | 'InsufficientStorage' | 'LoopDetected' | 'NotExtended' | 'NetworkAuthenticationRequired'
  - `success` boolean

---

[API](https://skmtc.dev/timix/apis/timix-ai-integration-api.md) · [All operations](https://skmtc.dev/timix/apis/timix-ai-integration-api/llms.txt) · [OpenAPI document](https://skmtc.dev/timix/apis/timix-ai-integration-api/revisions/ff7f1b6d7479?raw)
