Nedap · Authentication Profile

Nedap Authentication

Authentication

Nedap secures its APIs with mutualTLS across 1 declared security scheme, as derived from its OpenAPI definitions.

CompanyHealthcareElectronic Health RecordsInteroperabilityFHIRopenEHRRFIDRetailPhysical SecurityLivestockNetherlandsWebhooks
Methods: mutualTLS Schemes: 1 OAuth flows: API key in:

Security Schemes

OnsApiClientCertificate mutualTLS

Source

Authentication Profile

Raw ↑
generated: '2026-09-02'
method: searched
source: openapi/nedap-ons-openapi-original.json
docs: https://ons-api.nl/english/technical/Certificate_requirements.html
api: Nedap Ons API
note: >-
  The harvested OpenAPI declares no components.securitySchemes at all — running
  derive-authentication.py over it yields nothing — so this profile is read from the
  docs instead. Ons API is mutual-TLS only. There is no bearer token, no API key and no
  OAuth: every request must be made with an SSL client certificate signed by Nedap's
  own Certificate Authority, and that certificate binds one connector to one customer
  environment. That is the strongest auth posture in this pipeline and the least
  agent-reachable one — an agent cannot self-serve a credential; a human completes an
  intake, has a connector reviewed, submits a CSR and receives a PEM back.
summary:
  types:
  - mutualTLS
  api_key_in: []
  oauth2_flows: []
  self_serve: false
  spec_declares_security: false
schemes:
- name: OnsApiClientCertificate
  type: mutualTLS
  documented_only: true
  sources:
  - https://ons-api.nl/english/technical/Certificate_requirements.html
  issuance:
    authority: Nedap's own Certificate Authority (per environment)
    process: >-
      Generate a 4096-bit CSR, upload it to the Ons API Dashboard, receive a signed PEM
      back. The private key is never shared with Nedap; if it leaks, the certificate is
      disabled in the Dashboard.
    csr_requirements:
    - Key length of at least 4096 bits
    - CN, OU, O, L, ST, C and email address all filled in
    - 'CN structured as {technical_name_connector}-{customer_code}-{identification}'
    cn_example: hr_integration-TE1002-free_text
  transport:
    min_tls: TLSv1.2
    sni_required: true
    ciphers:
    - ECDHE-ECDSA-AES256-GCM-SHA384
    - ECDHE-ECDSA-AES128-GCM-SHA256
    - ECDHE-ECDSA-CHACHA20-POLY1305
    - ECDHE-RSA-AES256-GCM-SHA384
    - ECDHE-RSA-AES128-GCM-SHA256
    - ECDHE-RSA-CHACHA20-POLY1305
    - DHE-RSA-AES256-GCM-SHA384
    - DHE-RSA-AES128-GCM-SHA256
  ca_chains:
    production: https://ons-api.nl/assets/production-chain.pem
    staging: https://ons-api.nl/assets/staging-chain.pem
    development: https://ons-api.nl/assets/development-chain.pem
    legacy_note: >-
      Separate legacy chains are published for certificates signed before 02-09-2025
      (production), 28-08-2025 (staging) and 20-08-2025 (development); no new
      certificates are issued from them.
  verification:
    endpoint: GET /ping
    expected: '200 = the certificate works; 403 = the certificate does not work with this URL'
authorization:
  model: Ons Autorisatie rights, evaluated per user/employee per client
  note: >-
    Authorization is not OAuth scopes. It is Nedap's own rights model, and a connector
    queries it rather than carrying it in a token. Four read operations expose it —
    scopeForUser, scopeForEmployee, clearanceForUser, clearanceForEmployee — returning
    either the set of client ids a user may reach for a named right, or a boolean
    clearance for one client. A right not linked to the connector's version yields 404.
  spec: openapi/nedap-ons-authorization-openapi-original.json
  docs: https://ons-api.nl/english/authorization/UsingAuthorizationAPIs.html
  operations:
  - scopeForUser
  - scopeForEmployee
  - clearanceForUser
  - clearanceForEmployee
identity_headers:
- name: X-Cupido-User-Name
  used_by: 130 operations
  note: Names the acting user behind the connector; feeds Ons' own audit trail.
- name: X-Cupido-Active-Identity
  used_by: 127 operations
webhooks:
  method: HMAC
  note: >-
    Inbound webhook notifications are authenticated the other way round — the connector
    generates a secret in the Ons API Dashboard and verifies a Hash-based Message
    Authentication Code on each POST, answering 200 for a valid HMAC and 401 for an
    invalid one. Nedap sends two NOP events at configuration time, one with a correct
    HMAC and one with a deliberately wrong one, to prove the receiver checks.
  docs: https://ons-api.nl/english/technical/Webhooks.html

Work with this as data

Every security artifact here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for security posture

4 MCP tools reach this
  • find_securityBrowse and filter every security artifact in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This security artifact
curl "https://apis.io/api/v1/security/nedap-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.