Event Publishing

Endpoints for publishing cloudevents to Slipstream

Publish Events

Accepts CloudEvents or batches of CloudEvents related to the practice site. This can be used to send events to slipstream for processing, publishing as webhooks and analytics

Securityapi_key or azure_auth
Request
path Parameters
SiteSlug
required
string <slug> (Slug) ^[osl][a-zA-Z0-9]{3,}$

The unique slug for the practice site

Example: s8n6EzC
Request Body schema:
required
specversion
required
id
required
source
required
subject
type
required
time
string or null <date-time>
datacontenttype
string or null

The content type of the data field. Assume application/slipstreamevent+json if missing

dataschema
data
siteslug
string <slug> (Slug) ^[osl][a-zA-Z0-9]{3,}$

A URL-safe unique identifier for an entity (See Sqids)

expirytime
intendeddeliverytime
string or null <date-time>

The time the event is intended to be delivered at. Not delivered before this time.

traceparent
tracestate
priority
integer or null

Priority of the event for time-sensitive processing.

Enum Value Description
0

Normal Priority

1

High Priority

2

Realtime Priority

organisationslug
string <slug> (Slug) ^[osl][a-zA-Z0-9]{3,}$

A URL-safe unique identifier for an entity (See Sqids)

billingorganisationslug
string <slug> (Slug) ^[osl][a-zA-Z0-9]{3,}$

A URL-safe unique identifier for an entity (See Sqids)

product
string (PracticeManagementSoftware)

Software systems

Enum Value Description
Unknown

Unknown PMS - not valid

Testing

Used for automated testing, not a real software system

Exact

Exact Dental

Dentally

Dentally Cloud

Ascend

Ascend

dataref
visibility
integer or null
Default: 0

Controls the scope of an event's visibility. Possible values: - 0: Internal – The event can be subscribed to by other slipstream services, but is not available as a webhook (default when omitted) - 1: Public – The event is published as a webhook and can be subscribed to by authorized external systems - 2: WorkQueue – The event will be published to a work queue for later processing by the publishing service - 3: Private – The event is not published to a broker; it is only visible within the service publishing it and in telemetry For events from external systems, only Internal and Public are valid values.

Enum Value Description
0

Internal

1

Public

2

WorkQueue

3

Private

billingsku
string or null

Encodes a billable item and any relevant options into a billing SKU which decides what it should cost.

billingpax
integer or null

How many of the given SKU this item should be billed for. Assumed to be 1 if omitted.

pmsspecificid
string (PmsSpecificPracticeId)

The PMS-specific id that uniquely identifies a physical practice

property name*
additional property
any
Responses
204

Event(s) received successfully

400

Malformed Request (ProblemDetails)

401

Unauthorized - Provide proof of identity (ProblemDetails)

403

Forbidden - Insufficient permissions (ProblemDetails)

429

Too many requests - Chill out (ProblemDetails)

5XX

Server Error (ProblemDetails)

post/sites/{SiteSlug}/events
Request samples
{
  • "specversion": "string",
  • "id": "string",
  • "source": "http://example.com",
  • "subject": "string",
  • "type": "Slipstream.UrlShortener.UrlCreated",
  • "time": "2019-08-24T14:15:22Z",
  • "datacontenttype": "application/slipstreamevent+json",
  • "dataschema": "http://example.com",
  • "data": { },
  • "siteslug": "s8n6EzC",
  • "expirytime": "2021-04-24T18:25:43.511Z",
  • "intendeddeliverytime": "2021-04-23T20:25:43.511Z",
  • "traceparent": "00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01",
  • "tracestate": "string",
  • "priority": 1,
  • "organisationslug": "s8n6EzC",
  • "billingorganisationslug": "s8n6EzC",
  • "product": "Unknown",
  • "dataref": "/some/dataref",
  • "visibility": 0,
  • "billingsku": "string",
  • "billingpax": 1,
  • "pmsspecificid": "04d2f2f0-8f1a-11eb-8dcd-0242ac130003"
}
Response samples
application/problem+json
{
  • "title": "The Name field is required.",
  • "detail": "The Name field is required.",
  • "status": 400,
  • "traceId": "00-84c1fd4063c38d9f3900d06e56542d48-85d1d4-00"
}

Validate Webhook Subscription

Implements the cloudevents validation specification so that standard cloudevent publishers can use it.

Securityapi_key or azure_auth
Request
path Parameters
SiteSlug
required
string <slug> (Slug) ^[osl][a-zA-Z0-9]{3,}$

The unique slug for the practice site

Example: s8n6EzC
header Parameters
WebHook-Request-Rate
integer <int32>

The rate at which the client can send requests to the server

Example: 1000
WebHook-Request-Origin
string

The origin that is allowed to send requests to the server

Example: *
Responses
204

No Content

options/sites/{SiteSlug}/events
Request samples
Response samples
application/problem+json
{}