---
title: "View invoice"
method: GET
path: "/api/v1/invoices/{id}"
tags: ["Invoice"]
---

# View invoice

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

Returns details of a single invoice.

## Path parameters

- `id` string, required — Resource identifier.

## Response `200`

Operation completed successfully.

- object
  - `data` object, required
    - `id` string — Resource identifier.
    - `documentNumber` string, nullable
    - `documentDate` string, date-time
    - `log` object, nullable
      - `createdAt` string, date-time, required
      - `createdBy` object, nullable, required
        - `name` string, required
      - `sentAt` string, date-time, nullable, required
      - `sentBy` object, nullable, required
        - `name` string, required
      - `updatedAt` string, date-time, required
    - `amountGross` number, float
    - `amountNet` number, float
    - `costCenter` string
    - `status` 'created' | 'released' | 'sent' | 'canceled' | 'completed' | 'partialCancellation' | 'unknown'
    - `project` object, nullable
      - `id` string, required — Resource identifier.
      - `name` string, required
      - `abbreviation` string, required
    - `customer` object, nullable — An optional object with id and name
      - `id` string, required — Resource identifier.
      - `name` string, required
    - `tags` object[] — A list of tags
      - `id` string — The identifier of the tag
      - `name` string — The name of the tag
      - `color` string — Hexadecimal color value in 6-digit format without the leading # character.
    - `salesOrder` object, nullable
      - `id` string, number, nullable
      - `documentNumber` string, number, nullable
    - `externalOrderReference` string, nullable
    - `devCustomer` string, nullable
    - `billingAddress` object, nullable — Billing address of the customer.
      - `id` string — Resource identifier.
      - `name` string, required
      - `contactPerson` string, required
      - `department` string, nullable, required
      - `subdivision` string, nullable, required
      - `street` string, required
      - `additionalDetails` string, nullable, required
      - `city` string, required
      - `zipCode` string, required
      - `country` string, required
      - `email` string, nullable
    - `paymentTerms` object, nullable
      - `dueDate` string, date-time, nullable, required
      - `earlyPaymentDate` string, date-time, nullable, required
      - `earlyPaymentDiscount` number, float, required
    - `paymentMethodName` string
    - `paymentStatus` 'pending' | 'paid' | 'partlyPaid' | 'canceled' | 'partialCancellation' | 'badDebt' | 'debited' | 'unknown' — Status of the payment. Value `unknown` is displayed when a status from database cannot be identified. Value `unknown` cannot be used when creating or updating statuses (POST or PATCH endpoints)
    - `dunning` string, nullable — Deprecated: use `dunningSettings.level` field instead
    - `dunningDate` string, date, nullable — Deprecated: use `dunningSettings.date` field instead
    - `dunningSettings` object, nullable — Dunning setting for document
      - `level` 'noReminder' | 'paymentReminder' | 'reminder1' | 'reminder2' | 'reminder3' | 'debtCollection' | 'lossOfReceivables', required
      - `date` string, date, required
      - `comment` string, string, required
      - `sent` boolean, required
    - `dunningManualSettings` object, nullable — Expert mode: The payment settings can be set manually with this check mark. Note: This tick overrides the automatic calculation of the incoming payment. This means that the invoice is NOT included in the dunning process. If you use the incoming payment via the account statements, this checkmark should only be used for manual adjustments, because these settings are usually set automatically via the incoming payment.
      - `paymentStatus` 'pending' | 'paid' | 'partlyPaid' | 'canceled' | 'partialCancellation' | 'badDebt' | 'debited' | 'unknown', required — Status of the payment. Value `unknown` is displayed when a status from database cannot be identified. Value `unknown` cannot be used when creating or updating statuses (POST or PATCH endpoints)
      - `paidAt` string, date, nullable, required — Date of the payment
      - `actualAmount` number, float, required — Amount of the payment
      - `discountGiven` number, float, required — Discount given for a payment
    - `gln` string, nullable
    - `taxation` number
    - `positions` object[]
      - `id` number
      - `position` number
      - `salesOrderId` string, number, nullable
      - `saleOrderPositionId` number, nullable
      - `createdAt` string, date-time
      - `productId` number
      - `productNumber` string
      - `description` string
      - `quantity` number
      - `price` object — Money object with amount and currency
        - `amount` string, float — A string representing the amount
        - `currency` 'EUR' | 'USD' | 'JPY' | 'BGN' | 'CZK' | 'DKK' | 'GBP' | 'HUF' | 'PLN' | 'RON' | 'SEK' | 'CHF' | 'ISK' | 'NOK' | 'HRK' | 'RUB' | 'TRY' | 'AUD' | 'BRL' | 'CAD' | 'CNY' | 'HKD' | 'IDR' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'MYR' | 'NZD' | 'PHP' | 'SGD' | 'THB' | 'ZAR' | 'ARS' | 'CLP' | 'SAR' | 'AED' | 'QAR' — Currency matches one of currency values as specified in ISO-4217.
      - `basePrice` object — Money object with amount and currency
        - `amount` string, float — A string representing the amount
        - `currency` 'EUR' | 'USD' | 'JPY' | 'BGN' | 'CZK' | 'DKK' | 'GBP' | 'HUF' | 'PLN' | 'RON' | 'SEK' | 'CHF' | 'ISK' | 'NOK' | 'HRK' | 'RUB' | 'TRY' | 'AUD' | 'BRL' | 'CAD' | 'CNY' | 'HKD' | 'IDR' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'MYR' | 'NZD' | 'PHP' | 'SGD' | 'THB' | 'ZAR' | 'ARS' | 'CLP' | 'SAR' | 'AED' | 'QAR' — Currency matches one of currency values as specified in ISO-4217.
      - `netRevenueSingle` object — Money object with amount and currency
        - `amount` string, float — A string representing the amount
        - `currency` 'EUR' | 'USD' | 'JPY' | 'BGN' | 'CZK' | 'DKK' | 'GBP' | 'HUF' | 'PLN' | 'RON' | 'SEK' | 'CHF' | 'ISK' | 'NOK' | 'HRK' | 'RUB' | 'TRY' | 'AUD' | 'BRL' | 'CAD' | 'CNY' | 'HKD' | 'IDR' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'MYR' | 'NZD' | 'PHP' | 'SGD' | 'THB' | 'ZAR' | 'ARS' | 'CLP' | 'SAR' | 'AED' | 'QAR' — Currency matches one of currency values as specified in ISO-4217.
      - `netRevenueTotal` object — Money object with amount and currency
        - `amount` string, float — A string representing the amount
        - `currency` 'EUR' | 'USD' | 'JPY' | 'BGN' | 'CZK' | 'DKK' | 'GBP' | 'HUF' | 'PLN' | 'RON' | 'SEK' | 'CHF' | 'ISK' | 'NOK' | 'HRK' | 'RUB' | 'TRY' | 'AUD' | 'BRL' | 'CAD' | 'CNY' | 'HKD' | 'IDR' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'MYR' | 'NZD' | 'PHP' | 'SGD' | 'THB' | 'ZAR' | 'ARS' | 'CLP' | 'SAR' | 'AED' | 'QAR' — Currency matches one of currency values as specified in ISO-4217.
      - `grossRevenueSingle` object — Money object with amount and currency
        - `amount` string, float — A string representing the amount
        - `currency` 'EUR' | 'USD' | 'JPY' | 'BGN' | 'CZK' | 'DKK' | 'GBP' | 'HUF' | 'PLN' | 'RON' | 'SEK' | 'CHF' | 'ISK' | 'NOK' | 'HRK' | 'RUB' | 'TRY' | 'AUD' | 'BRL' | 'CAD' | 'CNY' | 'HKD' | 'IDR' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'MYR' | 'NZD' | 'PHP' | 'SGD' | 'THB' | 'ZAR' | 'ARS' | 'CLP' | 'SAR' | 'AED' | 'QAR' — Currency matches one of currency values as specified in ISO-4217.
      - `grossRevenueTotal` object — Money object with amount and currency
        - `amount` string, float — A string representing the amount
        - `currency` 'EUR' | 'USD' | 'JPY' | 'BGN' | 'CZK' | 'DKK' | 'GBP' | 'HUF' | 'PLN' | 'RON' | 'SEK' | 'CHF' | 'ISK' | 'NOK' | 'HRK' | 'RUB' | 'TRY' | 'AUD' | 'BRL' | 'CAD' | 'CNY' | 'HKD' | 'IDR' | 'ILS' | 'INR' | 'KRW' | 'MXN' | 'MYR' | 'NZD' | 'PHP' | 'SGD' | 'THB' | 'ZAR' | 'ARS' | 'CLP' | 'SAR' | 'AED' | 'QAR' — Currency matches one of currency values as specified in ISO-4217.
      - `vatCategory` string
      - `taxRate` number, float
      - `discount` number, float, nullable

## Other responses

- `400` — IETF RFC 9457 Problem API compliant response
- `401` — Unable to authenticate the client
- `403` — Unable to authorize the client
- `404` — Resource was not found or not enough access privileges
- `406` — Requested resource representation does not exist.
- `429` — Too many API calls made.

---

[API](https://skmtc.net/xentral/apis/xentral-api.md) · [All operations](https://skmtc.net/xentral/apis/xentral-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/xentral/xentral-api/versions/8a27ba392442/schema)
