PCM API (FHIR + OAuth2) (2026-01-05)

Download OpenAPI specification:

Combined OpenAPI entry point that references the FHIR and OAuth2 specifications.

Organization

Parent, service-provider, and data-source organizations.

Search organizations

Search organizations by supported parameters. Used for discovery and retrieval, including searches by active flag or identifier.

query Parameters
_id
string
identifier
string

FHIR identifier search parameter.

active
string

Search by activation status (token; true|false).

type
string

Search by type code (Organization.type or HealthcareService.type).

partof
string
_include
string

Include related resources (FHIR _include).

_include:iterate
string

Recursive include for related resources.

Responses

Response samples

Content type
application/fhir+json
{
  • "resourceType": "Bundle",
  • "id": "bundle-organization-search",
  • "type": "searchset",
  • "total": 2,
  • "entry": [
    ]
}

Read organization

path Parameters
id
required
string

Responses

Response samples

Content type
application/fhir+json
Example
{}

Update organization

Used by organizations to update allowed fields (contacts, endpoint reference, applicable certificate thumbprint (x5t#S256), and redirect URI depending on org type). PCM controls activation.

path Parameters
id
required
string
Request Body schema: application/fhir+json
required
resourceType
required
string
Value: "Organization"
id
string
object (Meta)
object (Narrative)
Array of objects (Extension)
active
boolean
name
string
Array of objects (Identifier)
Array of objects (CodeableConcept)
object (Reference)
Array of objects (ContactPoint)
Array of objects (Address)
Array of objects (OrganizationContact)
Array of objects (Reference)

Responses

Request samples

Content type
application/fhir+json
Example
{}

Response samples

Content type
application/fhir+json
Example
{}

Endpoint

FHIR server endpoints for data sources.

Search endpoints

query Parameters
_id
string
thumbprint
string

Search by NTN-registered applicable certificate thumbprint (x5t#S256, base64url SHA-256) stored in the Endpoint extension.

Responses

Response samples

Content type
application/fhir+json
{
  • "resourceType": "Bundle",
  • "id": "bundle-endpoint-search",
  • "type": "searchset",
  • "total": 1,
  • "entry": []
}

Create endpoint

Request Body schema: application/fhir+json
required
resourceType
required
string
Value: "Endpoint"
id
string
object (Meta)
object (Narrative)
Array of objects (Extension)
status
string
Enum: "active" "suspended" "error" "off" "entered-in-error" "test"
object (Coding)
Array of objects (CodeableConcept)
address
string
object (Reference)

Responses

Request samples

Content type
application/fhir+json
{}

Response samples

Content type
application/fhir+json
{}

Read endpoint

path Parameters
id
required
string

Responses

Response samples

Content type
application/fhir+json
Example
{}

Update endpoint

path Parameters
id
required
string
Request Body schema: application/fhir+json
required
resourceType
required
string
Value: "Endpoint"
id
string
object (Meta)
object (Narrative)
Array of objects (Extension)
status
string
Enum: "active" "suspended" "error" "off" "entered-in-error" "test"
object (Coding)
Array of objects (CodeableConcept)
address
string
object (Reference)

Responses

Request samples

Content type
application/fhir+json
{}

Response samples

Content type
application/fhir+json
{}

HealthcareService

Canonical and instance service definitions.

Search services

query Parameters
_id
string
identifier
string

FHIR identifier search parameter.

active
string

Search by activation status (token; true|false).

category
string

Search by HealthcareService.category.

type
string

Search by type code (Organization.type or HealthcareService.type).

name
string

Search by HealthcareService.name.

providedBy
string

Search by HealthcareService.providedBy (instance profile only).

Responses

Response samples

Content type
application/fhir+json
{
  • "resourceType": "Bundle",
  • "id": "bundle-healthcareservice-search",
  • "type": "searchset",
  • "total": 2,
  • "entry": [
    ]
}

Create service (canonical or instance)

Service providers post an instance to register a service association. PCM admins may post canonical services as part of catalog management.

Request Body schema: application/fhir+json
required
resourceType
required
string
Value: "HealthcareService"
id
string
object (Meta)
object (Narrative)
Array of objects (Extension)
active
boolean
object (Reference)
name
string
Array of objects (CodeableConcept)
object (CodeableConcept)
extraDetails
string
Array of objects (Identifier)

Responses

Request samples

Content type
application/fhir+json
Example
{}

Response samples

Content type
application/fhir+json
Example
{}

Read service

path Parameters
id
required
string

Responses

Response samples

Content type
application/fhir+json
Example
{}

Update service (deactivate instance)

Instance owners may deactivate by PUT with active=false. PCM ignores non-writable elements and enforces policy.

path Parameters
id
required
string
Request Body schema: application/fhir+json
required
resourceType
required
string
Value: "HealthcareService"
id
string
object (Meta)
object (Narrative)
Array of objects (Extension)
active
boolean
object (Reference)
name
string
Array of objects (CodeableConcept)
object (CodeableConcept)
extraDetails
string
Array of objects (Identifier)

Responses

Request samples

Content type
application/fhir+json
{}

Response samples

Content type
application/fhir+json
{}

Consent

Consent requests and approvals. Deletion is not supported; service providers may only deactivate consents they created.

Search consents

Search consents by supported parameters. Use _include to return actor organizations, endpoints, and parent orgs in a single bundle.

query Parameters
_id
string
identifier
string

FHIR identifier search parameter.

status
string
patient
string

Search by patient logical reference; supports patient.identifier chain (system|value).

pcm-service
string

Search by pcmService extension reference (HealthcareService instance).

_include
string

Include related resources (FHIR _include).

_include:iterate
string

Recursive include for related resources.

Responses

Response samples

Content type
application/fhir+json
{}

Create consent request

Request Body schema: application/fhir+json
required
resourceType
required
string
Value: "Consent"
id
string
object (Meta)
object (Narrative)
Array of objects (Extension)
status
string
Enum: "proposed" "active" "rejected" "inactive"
dateTime
string <date-time>
Array of objects (Identifier)
object (CodeableConcept)
Array of objects (CodeableConcept)
object (Reference)
object (ConsentProvision)

Responses

Request samples

Content type
application/fhir+json
{}

Response samples

Content type
application/fhir+json
{}

Read consent

path Parameters
id
required
string

Responses

Response samples

Content type
application/fhir+json
{}

Update consent status

Used by PCM (portal) to approve/reject/revoke, and by service provider to deactivate its own consent (status=inactive). Service providers may update only consents they created; deletion is not supported.

path Parameters
id
required
string
Request Body schema: application/fhir+json
required
resourceType
required
string
Value: "Consent"
id
string
object (Meta)
object (Narrative)
Array of objects (Extension)
status
string
Enum: "proposed" "active" "rejected" "inactive"
dateTime
string <date-time>
Array of objects (Identifier)
object (CodeableConcept)
Array of objects (CodeableConcept)
object (Reference)
object (ConsentProvision)

Responses

Request samples

Content type
application/fhir+json
{}

Response samples

Content type
application/fhir+json
{}

VerificationResult

Approvals for service instances.

Search approvals

query Parameters
_id
string

Responses

Response samples

Content type
application/fhir+json
{
  • "resourceType": "Bundle",
  • "id": "bundle-verificationresult-search",
  • "type": "searchset",
  • "total": 1,
  • "entry": [
    ]
}

Create approval

Request Body schema: application/fhir+json
required
resourceType
required
string
Value: "VerificationResult"
id
string
object (Meta)
object (Narrative)
Array of objects (Extension)
status
string
Value: "validated"
Array of objects (Reference)
object

Responses

Request samples

Content type
application/fhir+json
{
  • "resourceType": "VerificationResult",
  • "status": "validated",
  • "target": [
    ],
  • "validator": {
    }
}

Response samples

Content type
application/fhir+json
{
  • "resourceType": "VerificationResult",
  • "id": "approval-hmo-b-parent-for-hosp-a-instance",
  • "status": "validated",
  • "target": [
    ],
  • "validator": {
    }
}

Read approval

path Parameters
id
required
string

Responses

Response samples

Content type
application/fhir+json
{
  • "resourceType": "VerificationResult",
  • "id": "approval-hmo-b-parent-for-hosp-a-instance",
  • "status": "validated",
  • "target": [
    ],
  • "validator": {
    }
}

CapabilityStatement

Server metadata and supported interactions.

Read capability statement

Returns the PCM server CapabilityStatement describing supported resources, interactions, and search parameters.

Authorizations:
mutualTLS

Responses

Response samples

Content type
application/fhir+json
{
  • "resourceType": "CapabilityStatement",
  • "id": "pcm-capabilitystatement",
  • "description": "Only the resources and interactions defined by pcm_process_flow.md are declared here.",
  • "format": [
    ],
  • "software": {
    },
  • "implementation": {},
  • "text": {
    },
  • "rest": [
    ],
  • "name": "PcmCapabilityStatement",
  • "title": "PCM FHIR Capability Statement",
  • "status": "active",
  • "experimental": false,
  • "date": "2026-01-05",
  • "publisher": "PCM",
  • "kind": "instance",
  • "fhirVersion": "4.0.1"
}

SMART

SMART on FHIR OAuth2 configuration.

Read SMART on FHIR configuration

OAuth2/SMART discovery document for the PCM authorization server.

Authorizations:
mutualTLS

Responses

Response samples

Content type
application/json
{
  • "authorization_endpoint": "https://pcm.auth.example.org/authorize",
  • "introspection_endpoint": "https://pcm.auth.example.org/introspect",
  • "grant_types_supported": [
    ],
  • "response_types_supported": [
    ],
  • "response_modes_supported": [
    ],
  • "token_endpoint_auth_methods_supported": [
    ],
  • "code_challenge_methods_supported": [
    ],
  • "scopes_supported": [
    ],
  • "capabilities": [
    ]
}

OAuth2

Token issuance and introspection.

Issue access token (client_credentials)

Issues an opaque access token using client_credentials Oauth2 flow, protected with mTLS. The issued token is associated with the client_assertion certificate (NTN registered client cert). For data source access, the client_assertion MUST include UDAP B2B extensions with a Consent reference (URL).

Authorizations:
mutualTLS
Request Body schema: application/x-www-form-urlencoded
required
grant_type
required
string
Value: "client_credentials"
client_assertion_type
required
string
Value: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer"
client_assertion
required
string

Signed JWT (private_key_jwt) used for client authentication. Must be signed with the private key corresponding to the mTLS client certificate. Required claims:

  • iss: Client ID (Organization URI)
  • sub: Client ID (same as iss)
  • aud: Token endpoint URL (https://pcm.fhir.health.gov.il/token)
  • jti: Unique identifier
  • iat/exp: Issued/expiration times (short-lived) For data source access, the JWT MUST include UDAP B2B extensions:
  • extensions.hl7-b2b.organization_id
  • extensions.hl7-b2b.consent_reference (array of Consent URLs)
  • extensions.hl7-b2b.purpose_of_use (array, e.g. ["TREAT"])
scope
string

Requested scopes.

resource
required
string

RFC 8707 resource indicator (required). Used to indicate data source FHIR base URL for data source access tokens.

Responses

Request samples

Content type
application/x-www-form-urlencoded
Example
grant_type=client_credentials&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&client_assertion=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwOi8vcGNtLmZoaXIuaGVhbHRoLmdvdi5pbC9Pcmdhbml6YXRpb24vb3JnLXNwIiwic3ViIjoiaHR0cDovL3BjbS5maGlyLmhlYWx0aC5nb3YuaWwvT3JnYW5pemF0aW9uL29yZy1zcCIsImF1ZCI6Imh0dHBzOi8vcGNtLmZoaXIuaGVhbHRoLmdvdi5pbC90b2tlbiIsImp0aSI6ImY0YjM4ZmZkLTMyZTQtNGFhOS04ZWE2LWFlY2I0Y2E3OTU4MSIsImlhdCI6MTcwNjY0MDAwMCwiZXhwIjoxNzA2NjQwMzAwfQ.R6wTt6m8gT3_ExampleSignature&scope=system%2F%2A.cruds&resource=https%3A%2F%2Fpcm.fhir.health.gov.il%2Fr4

Response samples

Content type
application/json
Example
{
  • "access_token": "2f1b8b7e-2d1a-4b0b-9e9a-9f02a7b3b6a1",
  • "token_type": "Bearer",
  • "expires_in": 30,
  • "scope": "system/*.cruds"
}

Introspect access token

Validates an access token and returns its associated claims. Protected with mTLS and requires bearer token authentication.

Authorizations:
mutualTLSbearerAuth
Request Body schema: application/x-www-form-urlencoded
required
token
required
string

Token to introspect.

Responses

Request samples

Content type
application/x-www-form-urlencoded
token=2f1b8b7e-2d1a-4b0b-9e9a-9f02a7b3b6a1

Response samples

Content type
application/json
{}