> ## Documentation Index
> Fetch the complete documentation index at: https://learn.nexudus.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get one TariffProduct

> Retrieve a single TariffProduct record by its Id.

A plan component (internally TariffProduct) adds one product to a plan (internally tariff) so that the product is charged on every invoice raised for contracts on that plan, and its price is added to the plan's total price. Use it for recurring add-ons such as mail handling, lockers or parking; one-off sign-up charges use sign-up products (TariffSignupProduct) instead.

## Authentication

<Note>
  This endpoint requires OAuth2 authentication. Include a valid bearer token in the `Authorization` header.
  The authenticated user must be a full unrestricted administrator or have the **`TariffProduct-Read`** role.
</Note>

## Path Parameters

<ParamField path="id" type="integer" required>
  The Id of the TariffProduct record to retrieve.
</ParamField>

## Code Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET \
    "https://spaces.nexudus.com/api/billing/tariffproducts/87654321" \
    -H "Authorization: Bearer YOUR_TOKEN"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://spaces.nexudus.com/api/billing/tariffproducts/87654321',
    {
      headers: {
        'Authorization': 'Bearer YOUR_TOKEN'
      }
    }
  );

  const record = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://spaces.nexudus.com/api/billing/tariffproducts/87654321',
      headers={
          'Authorization': 'Bearer YOUR_TOKEN'
      }
  )

  record = response.json()
  ```
</CodeGroup>

## Response

### 200

<ResponseField name="TariffId" type="integer">
  ID of the plan this component belongs to; required, and every contract on that plan is then charged for the component's product..
</ResponseField>

<ResponseField name="TariffName" type="string">
  Display value for Tariff.Name..
</ResponseField>

<ResponseField name="TariffTransferProductsToContract" type="boolean">
  Display value for Tariff.TransferProductsToContract..
</ResponseField>

<ResponseField name="ProductId" type="integer">
  ID of the product charged as the plan component; required, and the product's own current price is what gets invoiced, so reuse an existing product instead of creating a duplicate..
</ResponseField>

<ResponseField name="ProductName" type="string">
  Display value for Product.Name..
</ResponseField>

<ResponseField name="ProductPrice" type="number">
  Display value for Product.Price..
</ResponseField>

<ResponseField name="ProductBusinessCurrencyCode" type="string">
  Display value for Product.Business.Currency.Code..
</ResponseField>

<ResponseField name="Id" type="integer">
  Unique record identifier.
</ResponseField>

<ResponseField name="UniqueId" type="string">
  UUID of the record.
</ResponseField>

<ResponseField name="CreatedOn" type="string">
  Date and time the record was created (ISO 8601).
</ResponseField>

<ResponseField name="UpdatedOn" type="string">
  Date and time the record was last updated (ISO 8601).
</ResponseField>

<ResponseField name="UpdatedBy" type="string">
  Email of the user who last updated this record.
</ResponseField>

<ResponseField name="IsNew" type="boolean">
  Whether the record was recently created.
</ResponseField>

<ResponseField name="SystemId" type="string">
  External system identifier.
</ResponseField>

```json Example Response theme={null}
{
  "TariffId": 0,
  "TariffName": null,
  "TariffTransferProductsToContract": null,
  "ProductId": 0,
  "ProductName": null,
  "ProductPrice": null,
  "ProductBusinessCurrencyCode": null,
  "Id": 87654321,
  "UpdatedOn": "2025-01-15T10:30:00Z",
  "CreatedOn": "2025-01-10T08:00:00Z",
  "UniqueId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "UpdatedBy": "admin@example.com",
  "IsNew": false,
  "SystemId": null,
  "ToStringText": "TariffProduct Example",
  "LocalizationDetails": null,
  "CustomFields": null
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.