# Retrieve a manual taxable document

Operation ID: `getManualTaxableDocument`

Group: Accounting › Tax Documents › Manual Taxable Documents

[Open in the interactive reference](https://docs.api.lensing.ai/lensing/v1/endpoints/getManualTaxableDocument)

`GET /tax-documents/manual-taxable-documents/{id}`

Read-only: Reads and returns; changes nothing.

Retrieves a manual taxable document, also called an ad hoc document. The response is the full record, including its lines. POST tax-documents/manual-taxable-documents/search returns the same fields.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Api-Version` | header | string · v1 | yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version `v1`. |
| `id` | path | string | yes | Id of the manual taxable document to fetch (a UUID); bound from the :id path segment. |

## Response

`200` Success

Under `data` (getManualTaxableDocumentOutput):

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | Id of the manual taxable document (a UUID) — the public identifier used by this route. |
| `type` | string | no | Kind of document. One of 'outgoingInvoice', 'outgoingCredit', 'incomingInvoice', 'incomingCredit'. An outgoingInvoice is a customer-facing invoice whose incoming payment can be matched to a bank deposit. |
| `taxDocumentNumber` | string | no | System-generated tax document number, unique per tenant and human-readable. Absent until one has been assigned. |
| `documentNumber` | string | no | Document number as it appears on the source document — the counterparty's own number for an incoming document, or the number carried over from an external system. Distinct from taxDocumentNumber, which Everest assigns. |
| `title` | string | no | Title of the document, as shown on the record. |
| `description` | string | no | Free-text description of the document. |
| `invoiceDate` | date | no | Date the document was issued, as a calendar date (YYYY-MM-DD). |
| `serviceDate` | date | no | Date the underlying service was provided, as a calendar date (YYYY-MM-DD). Drives the tax point where it differs from the invoice date. |
| `dueDate` | date | no | Date payment falls due, as a calendar date (YYYY-MM-DD). Absent when no due date has been set. |
| `currency` | string | no | Currency of this document as a 3-letter ISO 4217 code (e.g. USD, EUR, GBP). It governs every amount on the record, on the header and on every line alike. |
| `paymentStatus` | string | no | Settlement status of the document. One of 'paid', 'partiallyPaid', 'unpaid', 'noPaymentNeeded', 'voided', 'applied', 'unapplied', 'partiallyApplied', 'noApplicationNeeded'. |
| `paymentTerms` | string | no | Payment terms recorded on the document, as free text (e.g. 'Net 30'). |
| `totalTaxAmount` | decimal | no | Sum of the tax amounts of every line, in the document currency (see currency). |
| `totalAmount` | decimal | no | Sum of the total amounts of every line — the gross document total, in the document currency (see currency). |
| `totalAllocatedAmount` | decimal | no | Amount already allocated to this document by payments or credits, in the document currency (see currency). |
| `totalOpenAmount` | decimal | no | Remaining unallocated balance on this document, in the document currency (see currency). Greater than zero means the document is still open — this is how an unmatched customer invoice is found. |
| `hasAttachment` | boolean | no | True when the document has at least one attachment. The attachments themselves are not published by this API; document delivery is a separate concern with its own permission. |
| `customerId` | string | no | Id of the customer the document is issued to (a UUID). Set on customer-facing documents; absent on vendor or employee ones. |
| `customerName` | string | no | Display name of the customer. Personal and counterparty data — it is returned here but is not a filter on GET tax-documents/manual-taxable-documents, so it never travels in a URL. |
| `customerNumber` | string | no | System-generated customer number of the customer, unique per tenant. |
| `entityId` | string | no | Id of the legal entity the document belongs to (a UUID). |
| `entityName` | string | no | Name of the legal entity the document belongs to. |
| `lastModifiedDate` | date-time | yes | Instant the document record last changed, as ISO 8601 UTC (YYYY-MM-DDTHH:mm:ss.sssZ). Poll on this to sync incrementally rather than re-reading the whole collection. |
| `lines` | array<object> | no | Lines of the document, each carrying one taxable position. Empty on a document with no lines. All line amounts are in the document currency (see currency). |
| `lines[].id` | string | yes | Id of the document line (a UUID). |
| `lines[].lineNumber` | string | no | System-generated line number within the document. Absent until one has been assigned. |
| `lines[].description` | string | no | Free-text description of the line item. |
| `lines[].taxableBasis` | decimal | no | Basis amount the tax is calculated on, in the document currency (see currency). |
| `lines[].taxAmount` | decimal | no | Tax charged on the line, in the document currency (see currency). |
| `lines[].totalAmount` | decimal | no | Line total including tax, in the document currency (see currency). |

```json
{
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "type": "<type>",
    "taxDocumentNumber": "<taxDocumentNumber>",
    "documentNumber": "<documentNumber>",
    "title": "<title>",
    "description": "<description>",
    "invoiceDate": "2026-01-15",
    "serviceDate": "2026-01-15",
    "dueDate": "2026-01-15",
    "currency": "<currency>",
    "paymentStatus": "<paymentStatus>",
    "paymentTerms": "<paymentTerms>",
    "totalTaxAmount": "19.99",
    "totalAmount": "19.99",
    "totalAllocatedAmount": "19.99",
    "totalOpenAmount": "19.99",
    "hasAttachment": true,
    "customerId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "customerName": "<customerName>",
    "customerNumber": "<customerNumber>",
    "entityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "entityName": "<entityName>",
    "lastModifiedDate": "2026-01-15T09:30:00.000Z",
    "lines": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "lineNumber": "<lineNumber>",
        "description": "<description>",
        "taxableBasis": "19.99",
        "taxAmount": "19.99",
        "totalAmount": "19.99"
      }
    ]
  },
  "diagnostics": [
    {
      "code": "<code>",
      "message": "<message>",
      "severity": "error",
      "path": [
        "<path>"
      ],
      "details": "<details>"
    }
  ]
}
```

## Errors

| Code | Status |
| --- | --- |
| `NOT_FOUND` | 400 |

## Statuses

- `400` — Invalid request or business failure. Codes: NOT_FOUND
- `401` — The request carries no valid access token.
- `403` — Not authorized
- `404` — Not found
- `429` — Too many requests from this client address. The response has no body and no `Retry-After` header.
- `500` — Internal server error
