The Practice -> Cloud API is the unified API for integrating a Practice Management System with services provided by the Slipstream ecosystem. If you need to invoke an action or query data that is held in a slipstream service, this is the API to use.
This API has 2 distinct kinds of authentication:
Slipstream is designed to work with multiple PMS systems and so has a fairly flexible design for practice grouping and billing.
Practice Site
Organisation
Site Slug
Organisation Slug
PMS Specific Identifier
Site Identifier
: aba64a36-2176-4c02-a5cd-6f5f5908e055
(GUID)UK1234
(string)Organisation Identifier
:b529cd1e-7389-4630-8771-885816eee796
(GUID)<None>
(Exact does not natively have the concept of organisations - will need to generate one)All of the APIs offered here support application/json as the primary request and response format.
Type | Standard | Example |
---|---|---|
Timestamps | ISO 8601 | 2023-09-27T22:45:12.2473254+13:00 |
Countries | ISO 3166 alpha-3 | NZL |
Geolocation | ISO 6709 (latitude + longitude) | +38-097/ |
Currency | ISO 4217 | NZD |
Phone | E.164 | +64271234567 |
Events are all delivered via webhook and will be delivered to the URL you specify when subscribing in CloudEvent format, serialized as Json.
We recommend that you use one of the open source SDKs for handling the received events:
Ruby | C# | Python | JS | Java
In addition to the standard spec we use these extension attributes:
Attribute | Type | Description | Reference |
---|---|---|---|
siteslug |
String | The slug of the practice site the event pertains to. | |
expirytime |
Timestamp | The deadline for the event to be delivered. Discarded if not delivered by this time. | CloudEvents Spec |
intendeddeliverytime |
Timestamp | The time the event is intended to be delivered at. Not delivered before this time. | |
traceparent |
String | The correlation ID for correlating events. | CloudEvents Spec |
priority |
Integer | Priority of the event for time-sensitive processing. | Normal (0), High (1), Realtime (2) |
organisationslug |
String | The slug representing the organisation the event pertains to. | |
billingorganisationslug |
String | The slug for the organisation to be billed for the event. Defaults to organisationslug if not specified. |
|
product |
String | Identifier of the product that owns the event (e.g. dentally, exact). | |
dataref |
UriReference | A URI using the valet-key pattern to retrieve full data. Use when the payload is large | CloudEvents Spec |
{
"specversion": "1.0",
"datacontenttype": "application/cloudevents+json",
"source": "https://hsone.app/schema/hso-slipstream-urlshortener",
"type": "Slipstream.UrlShortener.UrlCreated",
"slipstreamorganisationidentifier": "GflkMNL",
"traceid": "00-b7232b4bc06a79d5c89e2c06d1b30f83-964b5c3492e23588-00",
"traceparent": "00-b7232b4bc06a79d5c89e2c06d1b30f83-964b5c3492e23588-00",
"partitionkey": "hsone.app-Slipstream.UrlShortener.UrlCreated",
"priority": 1,
"slipstreampracticeidentifier": "lwkpcgsx",
"time": "2023-10-17T14:33:42.0188871+13:00",
"id": "a37b2e58-3cc0-4667-a590-79d14e7c98ac",
"data": "{\"EventId\":\"a37b2e58-3cc0-4667-a590-79d14e7c98ac\",\"EventType\":\"Slipstream.UrlShortener.UrlCreated\",\"LongUrl\":\"https://google.com/search\",\"SiteSlug\":\"string\",\"ShortUrl\":\"https://localhost:7001/hwpcVTx\",\"Timestamp\":\"2023-10-17T14:33:42.0188871+13:00\",\"UrlId\":\"hwpcVTx\"}"
}
Capabilities are a set of tags that a practice site sends to the practice registry to indicate what slipstream functionality it can support and is enabled. You should update the capabilities of a practice site whenever the capabilities change, this may be on software update, or when a new feature is enabled.
These can be managed via the practice site endpoints once a practice site has been onboarded