> 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.

# Reference Number Lookup

GET https://api.npretail.app/{tenant}/{environment}/{company}/speedgate/lookup

This endpoint retrieves the details of a reference number, including its type and status. It can be used to check the history of a reference number.

Reference: https://docs.navipartner.com/apis/api-reference/speedgate/service-speedgate/reference-number-lookup

## 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

- `referenceNumber` (string, required) — The number sent to speedgate to open the gate
- `fromDate` (date, optional) — The date from which to start looking for reference number usages. Default is today. Date only, time is assumed to be 00:00:00 format ISO 8601 (YYYY-MM-DD).

## Response

### 200

Returns a list all usages of the reference number in the speedgate.

- `list of ReferenceNumberLookupResponse`

## Types

### ReferenceNumberLookupResponse

Response to lookup a reference number.

- `referenceNumber` (string, required) — The number sent to speedgate to open the gate
- `referenceNumberType` (enum, required) — The type of reference number that was identified.
  - Allowed values: `unknown`, `ticket`, `wallet`, `memberCard`, `docLxCityCard`, `ticketRequest`
- `scannerId` (string, required) — A human friendly unique code that identifies a specific speedgate.
- `scannerDescription` (string, required) — A textual description or name
- `admitToken` (UUID, required) — A unique token that identifies a specific admission request
- `entryStatus` (enum, required) — The status of the admission request.
  - Allowed values: `admitted`, `denied`, `unknown`, `deniedByGate`, `permittedByGate`, `initialized`, `validationFailure`
- `attemptedAt` (datetime, required) — The date and time when the reference number was attempted to be admitted.
- `errorNumber` (integer, required) — The error number returned by the API.
- `entryNumber` (integer, required) — The sequence number of the scan entry.
- `referenceId` (UUID, optional) — The unique identifier for the reference number.
- `admissionCode` (string, optional) — A unique code that identifies a specific admission.
- `admittedReferenceNumber` (string, optional) — The number sent to speedgate to open the gate
- `admittedReferenceId` (UUID, optional) — The unique identifier for the reference number.
- `admittedAt` (datetime, optional) — The date and time when the ticket was admitted.
- `errorMessage` (string, optional) — The error message returned by the API.
- `type` (enum, optional) — When scanning a reference number it can cascade into other types of reference numbers. This is the type used to qualify the reference number id that was identified. The following types are supported and used in different scenarios `memberGuest` when a member card is scanned and a guests can be admitted for free `memberCard` when a wallet is scanned and a member card can be admitted `ticket` when a wallet is scanned and a ticket can be admitted when a member card is scanned and multiple admissions will be admitted
  - Allowed values: `memberGuest`, `memberCard`, `ticket`
- `typeId` (UUID, optional) — The unique identifier of the resource to use.
- `typeDescription` (string, optional) — The description of the resource.

## Examples

Example of a successful retrieval of log for a reference number.

**Response**

```json
[
  {
    "referenceNumber": "TIC123456",
    "referenceNumberType": "ticket",
    "scannerId": "GATE1",
    "scannerDescription": "This is a description",
    "admitToken": "aaaaaaaa-aaaa-aaaa-aaaa-426614174000",
    "entryStatus": "admitted",
    "attemptedAt": "2024-10-11T12:13:00Z",
    "errorNumber": 0,
    "entryNumber": 123456,
    "referenceId": "12345678-aaaa-12d3-a456-426614174000",
    "admissionCode": "CASTLE",
    "admittedReferenceNumber": "TIC123456",
    "admittedReferenceId": "12345678-aaaa-12d3-a456-426614174000",
    "admittedAt": "2024-10-11T12:13:00Z",
    "errorMessage": ""
  }
]
```

**SDK Code**

```python Usage log for reference number
import requests

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

querystring = {"referenceNumber":"TIC123456"}

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

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

print(response.json())
```

```javascript Usage log for reference number
const url = 'https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./speedgate/lookup?referenceNumber=TIC123456';
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 Usage log for reference number
package main

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

func main() {

	url := "https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./speedgate/lookup?referenceNumber=TIC123456"

	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 Usage log for reference number
require 'uri'
require 'net/http'

url = URI("https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./speedgate/lookup?referenceNumber=TIC123456")

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 Usage log for reference number
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./speedgate/lookup?referenceNumber=TIC123456")
  .header("x-np-api-key", "<NaviPartner API Key>")
  .asString();
```

```php Usage log for reference number
<?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./speedgate/lookup?referenceNumber=TIC123456', [
  'headers' => [
    'x-np-api-key' => '<NaviPartner API Key>',
  ],
]);

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

```csharp Usage log for reference number
using RestSharp;

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

```swift Usage log for reference number
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./speedgate/lookup?referenceNumber=TIC123456")! 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()
```