> This page is for API Reference.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.navipartner.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.navipartner.com/_mcp/server.

# Dynamic Price Rule List

GET https://api.npretail.app/{tenant}/{environment}/{company}/ticket/reports/dynamicPriceRuleList

Returns a list of ticket items and their assigned dynamic price profiles, including the pricing rules. The result can be filtered using the optional query parameters itemNumber, admissionCode, and profileCode (if profileCode is provided, it ignores admissionCode).

Reference: https://docs.navipartner.com/apis/api-reference/ticketing/service-reports/dynamic-price-rule-list

## Authentication

- `x-np-api-key` header (required) — API Key authentication via header

## Request

### Path parameters

- `tenant` (string, required) — Your Entra Tenant ID. [More details.](/paths#1-tenant)
- `environment` (string, required) — Your Business Central Environment. [More details.](/paths#2-environment)
- `company` (string, required) — Your Business Central Company. [More details.](/paths#3-company)

### Query parameters

- `itemNumber` (string, optional) — Filter result to the item number.
- `admissionCode` (string, optional) — Filter result to the admission code.
- `profileCode` (string, optional) — Filter result to the profile code. (ignores admissionCode if both are provided).

## Response

### 200

Returns a list of ticket items and the assigned dynamic price profiles, including their rules.

- `priceProfileAssignments` (list of AssignedPriceProfile, required) — List of assigned price profiles to the ticket item.
- `priceProfiles` (list of PriceProfileDetail, required) — Detailed list of price profile details associated with the assigned profiles.

## Types

### AssignedPriceProfile

A representation of which price profiles are assigned to a specific ticket item along with their rules.

- `itemNo` (string, required) — Ticket item number.
- `variantCode` (string, required) — Variant code of the ticket item.
- `admissionCode` (string, required) — Admission code of the ticket item.
- `scheduleCode` (string, required) — Schedule code of the ticket item.
- `priceProfileCode` (string, required) — Assigned price profile code.

### PriceProfileDetail

A detailed representation of a dynamic price profile.

- `profileCode` (string, required) — Code of the price profile.
- `lines` (list of PriceProfileLine, required) — List of price profile lines associated with this profile.

### PriceProfileLine

A flat representation of a dynamic price profile with all relevant details.

- `id` (UUID, required) — Unique identifier of the price profile line.
- `lineNo` (integer, required) — Line number within the price profile.
- `amount` (double, required) — Fixed amount for the price profile line.
- `amountIncludesVAT` (boolean, required) — Indicates if the amount includes VAT.
- `blocked` (boolean, required) — Indicates if the price profile line is blocked.
- `description` (string, required) — Description of the price profile line.
- `percentage` (double, required) — Percentage value for the price profile line.
- `pricingOption` (integer, required) — Pricing option identifier.
- `relativeBookingDateFormula` (string, required) — Formula for relative booking date calculation.
- `relativeEventDateFormula` (string, required) — Formula for relative event date calculation.
- `relativeUntilEventDate` (string, required) — Formula for relative until event date calculation.
- `roundingDirection` (integer, required) — Rounding direction for the price profile line.
- `roundingPrecision` (double, required) — Rounding precision for the price profile line.
- `bookingDateFrom` (date, optional) — Start date for booking eligibility.
- `bookingDateUntil` (date, optional) — End date for booking eligibility.
- `eventDateFrom` (date, optional) — Start date for event eligibility.
- `eventDateUntil` (date, optional) — End date for event eligibility.

## Examples

**Response**

```json
{
  "priceProfileAssignments": [
    {
      "itemNo": "TICKET-001",
      "variantCode": "VAR-01",
      "admissionCode": "AD-01",
      "scheduleCode": "SCH-01",
      "priceProfileCode": "DP-STD"
    }
  ],
  "priceProfiles": [
    {
      "profileCode": "DP-STD",
      "lines": [
        {
          "id": "C6156081-0B3A-F011-B3A1-81CF16E9F0D8",
          "lineNo": 10000,
          "amount": 0,
          "amountIncludesVAT": true,
          "blocked": false,
          "description": "0 days out, 0 cheaper.",
          "percentage": 0,
          "pricingOption": 2,
          "relativeBookingDateFormula": "",
          "relativeEventDateFormula": "",
          "relativeUntilEventDate": "+0D",
          "roundingDirection": 0,
          "roundingPrecision": 0.01,
          "bookingDateFrom": null,
          "bookingDateUntil": null,
          "eventDateFrom": null,
          "eventDateUntil": null
        },
        {
          "id": "C7156081-0B3A-F011-B3A1-81CF16E9F0D8",
          "lineNo": 20000,
          "amount": -1,
          "amountIncludesVAT": true,
          "blocked": false,
          "description": "1 days out, 1 cheaper.",
          "percentage": 0,
          "pricingOption": 2,
          "relativeBookingDateFormula": "",
          "relativeEventDateFormula": "",
          "relativeUntilEventDate": "+1D",
          "roundingDirection": 0,
          "roundingPrecision": 0.01,
          "bookingDateFrom": null,
          "bookingDateUntil": null,
          "eventDateFrom": null,
          "eventDateUntil": null
        }
      ]
    }
  ]
}
```

**SDK Code**

```python Get dynamic price rules for a specific ticket item
import requests

url = "https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket/reports/dynamicPriceRuleList"

querystring = {"itemNumber":"TICKET-001"}

headers = {"x-np-api-key": "<NaviPartner API Key>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Get dynamic price rules for a specific ticket item
const url = 'https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket/reports/dynamicPriceRuleList?itemNumber=TICKET-001';
const options = {method: 'GET', headers: {'x-np-api-key': '<NaviPartner API Key>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Get dynamic price rules for a specific ticket item
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket/reports/dynamicPriceRuleList?itemNumber=TICKET-001"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("x-np-api-key", "<NaviPartner API Key>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Get dynamic price rules for a specific ticket item
require 'uri'
require 'net/http'

url = URI("https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket/reports/dynamicPriceRuleList?itemNumber=TICKET-001")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["x-np-api-key"] = '<NaviPartner API Key>'

response = http.request(request)
puts response.read_body
```

```java Get dynamic price rules for a specific ticket item
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket/reports/dynamicPriceRuleList?itemNumber=TICKET-001")
  .header("x-np-api-key", "<NaviPartner API Key>")
  .asString();
```

```php Get dynamic price rules for a specific ticket item
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket/reports/dynamicPriceRuleList?itemNumber=TICKET-001', [
  'headers' => [
    'x-np-api-key' => '<NaviPartner API Key>',
  ],
]);

echo $response->getBody();
```

```csharp Get dynamic price rules for a specific ticket item
using RestSharp;

var client = new RestClient("https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket/reports/dynamicPriceRuleList?itemNumber=TICKET-001");
var request = new RestRequest(Method.GET);
request.AddHeader("x-np-api-key", "<NaviPartner API Key>");
IRestResponse response = client.Execute(request);
```

```swift Get dynamic price rules for a specific ticket item
import Foundation

let headers = ["x-np-api-key": "<NaviPartner API Key>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./ticket/reports/dynamicPriceRuleList?itemNumber=TICKET-001")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```