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

# Presidio

> Connect Serval to Presidio's Procurement API to look up dispatched assets, stock levels, and serial numbers on demand.

## About Presidio

Presidio is an IT solutions and services provider. Serval connects to Presidio's Procurement API to read dispatched-asset records, stock levels, and serial numbers on your behalf whenever a Serval workflow runs.

**Authentication:** An API **username** and **password** issued by Presidio, plus the exact **User-Agent** value Presidio assigned to your account. Serval exchanges the username and password for a short-lived JWT at Presidio's token endpoint and sends the JWT (as a bearer token) together with your User-Agent value on every request. The User-Agent is required because Presidio's gateway blocks any request — including authentication — that does not carry the expected value.

**Regions:** Presidio publishes two regional API families from the same host: **EMEA** (`/api/v1/emea/...`, including stock and serial-number endpoints) and **APAC - Singapore** (`/api/v1/apac/singapore/...`, assets only). Your credentials determine which region you can read; workflows choose the region by endpoint path.

**Data sync:** On-demand only - there is no background sync or scheduled ingestion. Serval reads from Presidio at the moment a Serval workflow runs.

## What the Presidio integration enables

| Capability                     | Description                                                                                                                                                                                                                                                                     |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Look up dispatched assets      | `GET /api/v1/emea/assets` (and `/api/v1/apac/singapore/assets`) return dispatched-asset records — order numbers, item details, serial numbers, tracking URLs, and delivery addresses — with filtered variants by date interval, item code, manufacturer, and free search terms. |
| Read stock levels              | `GET /api/v1/emea/stock` returns physical stock per item, optionally including serial numbers (EMEA only).                                                                                                                                                                      |
| Read serial numbers            | `GET /api/v1/emea/serialnumbers` returns serial-number and asset-tag records by item (EMEA only).                                                                                                                                                                               |
| Call any Presidio API endpoint | A generic, typed API request action exposes every endpoint above with request/response types generated from Presidio's OpenAPI specification.                                                                                                                                   |

## Get your credentials

Presidio issues API credentials directly — there is no self-service developer portal. Ask your Presidio account contact for:

<Steps>
  <Step title="API username and password">
    The login pair for the Procurement API's token endpoint.

    <Warning>
      Treat the password like any other credential. If it's ever exposed, ask Presidio to rotate it and update the Serval connection.
    </Warning>
  </Step>

  <Step title="Your User-Agent value">
    The exact User-Agent string Presidio assigned to your account, e.g. `ProcurementAPI/1.0 (custom;yourcompany)`. Presidio's gateway rejects requests that do not send it, so it must be copied exactly.
  </Step>
</Steps>

## Connect in Serval

All fields are required. An incomplete configuration is rejected with a message beginning "Invalid Presidio configuration".

<Steps>
  <Step title="Enter the Username">
    The API login Presidio issued for your account.
  </Step>

  <Step title="Enter the Password">
    The API password Presidio issued alongside the username.
  </Step>

  <Step title="Enter the User-Agent">
    The exact User-Agent value from Presidio, copied character-for-character.
  </Step>
</Steps>

After connecting, Serval runs healthchecks that authenticate and read a one-item sample from the assets API (trying EMEA first, then APAC - Singapore). The stock and serial-number checks apply to EMEA accounts only and are expected to fail for APAC - Singapore accounts.
