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

# Admit Token

POST https://api.npretail.app/{tenant}/{environment}/{company}/speedgate/admit
Content-Type: application/json

This endpoint processes tokens received from tryAdmit to grant admission. Each token in the request specifies a quantity for admission (useful for guests). Single Token Admission Admit a single ticket by providing its token. Multiple Token Admission Use multiple tokens to admit a member and their guests, specifying quantities for each guest token (default is 1). The request payload must include tokens and relevant quantity to admit (default is 1). If admission fails, an error message is returned.

Reference: https://docs.navipartner.com/apis/api-reference/speedgate/service-speedgate/admit-token

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

### Body (application/json)

This endpoint expects an AdmitRequest.

- `tokens` (list of TokenToAdmit, required)

## Response

### 200

Returns the result of the admit of a customer.

- `admittedTokens` (list of AdmitResponse, required)

## Types

### TokenToAdmit

The token to admit a guest to the park. In case the token is a member guest token, a quantity for number of guests may be specified

- `token` (UUID, required) — A unique token that identifies a specific admission request
- `quantity` (integer, optional) — The number of tickets

### AdmitResponse

Response to admit a customer with a token.

- `token` (UUID, required) — A unique token that identifies a specific admission request
- `referenceNumberType` (enum, required) — The type of reference number that was identified.
  - Allowed values: `unknown`, `ticket`, `wallet`, `memberCard`, `docLxCityCard`, `ticketRequest`
- `referenceNumber` (string, required) — The number sent to speedgate to open the gate
- `ticketId` (UUID, required) — Unique identifier for a ticket
- `status` (enum, required) — The status of the admission request.
  - Allowed values: `admitted`, `denied`, `unknown`, `deniedByGate`, `permittedByGate`, `initialized`, `validationFailure`
- `itemNo` (string, required) — The item number of the ticket
- `admissionCode` (string, required) — A unique code that identifies a specific admission.
- `printCount` (integer, required) — The number of times the ticket has been printed
- `printedAt` (datetime, optional) — The date and time when the ticket was printed
- `memberCardId` (UUID, optional) — Unique identifier for a member card.
- `ticketNumber` (string, optional) — The number sent to speedgate to open the gate

## Examples

### Admit Ticket

Example of a successful admission of a ticket.

**Request**

```json
{
  "tokens": [
    {
      "token": "aaaaaaaa-aaaa-aaaa-aaaa-426614174000"
    }
  ]
}
```

**Response**

```json
{
  "admittedTokens": [
    {
      "token": "aaaaaaaa-aaaa-aaaa-aaaa-426614174000",
      "referenceNumberType": "ticket",
      "referenceNumber": "TIC123456",
      "ticketId": "cccccccc-e89b-12d3-a456-426614174000",
      "status": "admitted",
      "itemNo": "31001",
      "admissionCode": "CASTLE",
      "printCount": 1,
      "printedAt": "2024-10-11T12:13:00Z"
    }
  ]
}
```

**SDK Code**

```python Admit Ticket
import requests

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

payload = { "tokens": [{ "token": "aaaaaaaa-aaaa-aaaa-aaaa-426614174000" }] }
headers = {
    "x-np-api-key": "<NaviPartner API Key>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Admit Ticket
const url = 'https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./speedgate/admit';
const options = {
  method: 'POST',
  headers: {'x-np-api-key': '<NaviPartner API Key>', 'Content-Type': 'application/json'},
  body: '{"tokens":[{"token":"aaaaaaaa-aaaa-aaaa-aaaa-426614174000"}]}'
};

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

```go Admit Ticket
package main

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

func main() {

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

	payload := strings.NewReader("{\n  \"tokens\": [\n    {\n      \"token\": \"aaaaaaaa-aaaa-aaaa-aaaa-426614174000\"\n    }\n  ]\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("x-np-api-key", "<NaviPartner API Key>")
	req.Header.Add("Content-Type", "application/json")

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

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

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

}
```

```ruby Admit Ticket
require 'uri'
require 'net/http'

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

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

request = Net::HTTP::Post.new(url)
request["x-np-api-key"] = '<NaviPartner API Key>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"tokens\": [\n    {\n      \"token\": \"aaaaaaaa-aaaa-aaaa-aaaa-426614174000\"\n    }\n  ]\n}"

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

```java Admit Ticket
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./speedgate/admit")
  .header("x-np-api-key", "<NaviPartner API Key>")
  .header("Content-Type", "application/json")
  .body("{\n  \"tokens\": [\n    {\n      \"token\": \"aaaaaaaa-aaaa-aaaa-aaaa-426614174000\"\n    }\n  ]\n}")
  .asString();
```

```php Admit Ticket
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./speedgate/admit', [
  'body' => '{
  "tokens": [
    {
      "token": "aaaaaaaa-aaaa-aaaa-aaaa-426614174000"
    }
  ]
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'x-np-api-key' => '<NaviPartner API Key>',
  ],
]);

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

```csharp Admit Ticket
using RestSharp;

var client = new RestClient("https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./speedgate/admit");
var request = new RestRequest(Method.POST);
request.AddHeader("x-np-api-key", "<NaviPartner API Key>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"tokens\": [\n    {\n      \"token\": \"aaaaaaaa-aaaa-aaaa-aaaa-426614174000\"\n    }\n  ]\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Admit Ticket
import Foundation

let headers = [
  "x-np-api-key": "<NaviPartner API Key>",
  "Content-Type": "application/json"
]
let parameters = ["tokens": [["token": "aaaaaaaa-aaaa-aaaa-aaaa-426614174000"]]] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./speedgate/admit")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

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()
```

### Admit MemberCard

Example of a successful admission of a Member Card.

**Request**

```json
{
  "tokens": [
    {
      "token": "aaaaaaaa-aaaa-aaaa-aaaa-426614174000"
    }
  ]
}
```

**Response**

```json
{
  "admittedTokens": [
    {
      "token": "aaaaaaaa-aaaa-aaaa-aaaa-426614174000",
      "referenceNumberType": "memberCard",
      "referenceNumber": "MEM789012",
      "ticketId": "cccccccc-e89b-12d3-a456-426614174000",
      "status": "admitted",
      "itemNo": "31001",
      "admissionCode": "CASTLE",
      "printCount": 1,
      "printedAt": "2024-10-11T12:13:00Z",
      "memberCardId": "12121212-aaaa-aaaa-a456-426614174000",
      "ticketNumber": "TIC123456"
    }
  ]
}
```

**SDK Code**

```python Admit MemberCard
import requests

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

payload = { "tokens": [{ "token": "aaaaaaaa-aaaa-aaaa-aaaa-426614174000" }] }
headers = {
    "x-np-api-key": "<NaviPartner API Key>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Admit MemberCard
const url = 'https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./speedgate/admit';
const options = {
  method: 'POST',
  headers: {'x-np-api-key': '<NaviPartner API Key>', 'Content-Type': 'application/json'},
  body: '{"tokens":[{"token":"aaaaaaaa-aaaa-aaaa-aaaa-426614174000"}]}'
};

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

```go Admit MemberCard
package main

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

func main() {

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

	payload := strings.NewReader("{\n  \"tokens\": [\n    {\n      \"token\": \"aaaaaaaa-aaaa-aaaa-aaaa-426614174000\"\n    }\n  ]\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("x-np-api-key", "<NaviPartner API Key>")
	req.Header.Add("Content-Type", "application/json")

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

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

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

}
```

```ruby Admit MemberCard
require 'uri'
require 'net/http'

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

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

request = Net::HTTP::Post.new(url)
request["x-np-api-key"] = '<NaviPartner API Key>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"tokens\": [\n    {\n      \"token\": \"aaaaaaaa-aaaa-aaaa-aaaa-426614174000\"\n    }\n  ]\n}"

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

```java Admit MemberCard
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./speedgate/admit")
  .header("x-np-api-key", "<NaviPartner API Key>")
  .header("Content-Type", "application/json")
  .body("{\n  \"tokens\": [\n    {\n      \"token\": \"aaaaaaaa-aaaa-aaaa-aaaa-426614174000\"\n    }\n  ]\n}")
  .asString();
```

```php Admit MemberCard
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./speedgate/admit', [
  'body' => '{
  "tokens": [
    {
      "token": "aaaaaaaa-aaaa-aaaa-aaaa-426614174000"
    }
  ]
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'x-np-api-key' => '<NaviPartner API Key>',
  ],
]);

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

```csharp Admit MemberCard
using RestSharp;

var client = new RestClient("https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./speedgate/admit");
var request = new RestRequest(Method.POST);
request.AddHeader("x-np-api-key", "<NaviPartner API Key>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"tokens\": [\n    {\n      \"token\": \"aaaaaaaa-aaaa-aaaa-aaaa-426614174000\"\n    }\n  ]\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Admit MemberCard
import Foundation

let headers = [
  "x-np-api-key": "<NaviPartner API Key>",
  "Content-Type": "application/json"
]
let parameters = ["tokens": [["token": "aaaaaaaa-aaaa-aaaa-aaaa-426614174000"]]] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.npretail.app/01234567-89ab-cdef-0123-456789abcdef/production/CRONUS%2520International%2520Ltd./speedgate/admit")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

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()
```