Encounters
The "Encounters" folder in the API collection houses a curated selection of API requests and endpoints that pertain to managing and tracking patient encounters. Encounters refer to the interactions, appointments, or medical events between healthcare professionals and patients. This folder organizes the necessary API calls for creating, retrieving, updating, and deleting encounter records, streamlining the testing and development of functionalities related to patient interactions within the API collection.
Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveUUID of the user
Pagination: page number
0Example: 0Pagination: page size
20Example: 50Sort field with sorting order(asc or desc) after coma
status%2CcalendarEventStartDatetime%2CascEncounter status. Available statuses: DRAFT,OPEN,ACTIVE,FINALIZED
["OPEN","DRAFT","FINALIZED","CANCELLED"]If true, return only encounter thats belong to the patients in the user care team (default: true)
truePaginated encounter records
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
GET /{tenantName}/{instanceName}/users/{userId}/encounters HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"metaInfo": {
"page": 1,
"pageSize": 1,
"totalElements": 1,
"numberOfElements": 1
}
}Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveUUID of the patient record
Encounter status. Available statuses: DRAFT,OPEN,ACTIVE,FINALIZED
Pagination: page number
0Pagination: page size
20Sort field with sorting order(asc or desc) after coma
Exclude all information not related to calendar event, except encounter record
Paginated encounter records
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
GET /{tenantName}/{instanceName}/patients/{patientId}/encounters HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"metaInfo": {
"page": 1,
"pageSize": 1,
"totalElements": 1,
"numberOfElements": 1
}
}This endpoint allows you to create a new encounter record for a specific patient.
{{url}}/{{tenantName}}/{{instanceName}}/patients/{{patientId}}/encounters
Some information about the parameter location:
For creating encounters via API this parameter is a string.
After creating an encounter via API, on the UI this string is displayed depending on the eventMode:
- IN-PERSON: Тhe location value is displayed as text that can be copied.
- CALL: You need to enter the patient number, and then the location value is displayed as a link, when clicked on, it opens the call drover in the patient's commcenter. The link will be displayed as an encounter location if the patient has a primary phone number specified
- VIDEO: the location value is displayed as an external link. The link must be fully specified
To fill in the billing information, the responsibleParty parameters and information about services should be passed into the body of the request. responsibleParty ('Billing Type' on UI) can take values:
SELF_PAY
INSURANCE
In the visitServices block you should pass all the services that should be attached to this encounter.
name - the name of the service, which is specified in the designer
preVisitCost ('Co-pay' on UI) and serviceCost ('Fee' on UI) - payment amount, it is specified in cents.
modifiers - list of modifiers for this service, the names are specified in the designer. Service can be without modifiers
HTTP Response Codes:
201: Successfully created the encounter for the patient
400: Bad request - the request could not be understood or was missing required parameters
500: Internal server error - something went wrong on the server
Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveUUID of the patient record
DRAFTPossible values: Created encounter
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
POST /{tenantName}/{instanceName}/patients/{patientId}/encounters HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 597
{
"calendarEventId": "123e4567-e89b-12d3-a456-426614174000",
"title": "text",
"description": "text",
"instruction": "text",
"color": "text",
"status": "DRAFT",
"templateName": "text",
"notes": "text",
"patientInfo": {
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"firstName": "text",
"lastName": "text"
},
"timezone": "text",
"visitServices": [
{
"name": "text",
"quantity": 1,
"serviceCost": 1,
"cancellationFee": 1,
"preVisitCost": 1,
"modifiers": [
"text"
]
}
],
"encounterPaymentInfo": {
"status": "NO_PAYMENT_DUE",
"amountDue": 1,
"lastUpdatedAt": 1
},
"location": "text",
"currentScheduledAppointment": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}HTTP Request
For receiving this list as an API client need to set param withCareTeam=false.
Example: {{ url }} / {{ tenantName }} / {{ instanceName }} /encounters**?withCareTeam=false**
GET /{tenantName}/{instanceName}/encounters
in our example it would be:
GET https://api.live.welkincloud.io/gh/sb-demo/encounters
Responses
200
OK
401
Unauthorized
403
Forbidden
404
Not Found
Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveZero-based page number
0Number of results per page
20Sort field and direction, e.g. lastName,asc or createdAt,desc
Encounter status. Available statuses: DRAFT,OPEN,ACTIVE,FINALIZED
Paginated encounter records for the current API client
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
GET /{tenantName}/{instanceName}/encounters HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"metaInfo": {
"page": 1,
"pageSize": 1,
"totalElements": 1,
"numberOfElements": 1
}
}Get all Encounter Records with related data by client_id from JWT Token (work for users and api_clients tokens)
Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveactiveUserId={{userId}}{{userId}}Exclude all information not related to calendar event, except encounter record
falseEncounter status. Available statuses: DRAFT,OPEN,ACTIVE,FINALIZED
Pagination: page number
0Pagination: page size
20Sort field with sorting order(asc or desc) after coma
Paginated full encounter records
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
GET /{tenantName}/{instanceName}/full-encounters HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": [
{
"encounter": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"disposition": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"calendarEvent": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"userRelatedToCalendarEvent": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"assessmentLinks": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"comments": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"createdByName": "text",
"updatedByName": "text",
"encounterId": "123e4567-e89b-12d3-a456-426614174000",
"text": "text"
}
]
}
],
"metaInfo": {
"page": 1,
"pageSize": 1,
"totalElements": 1,
"numberOfElements": 1
}
}Get all encounter records with related data by patient id
HTTP Request
GET /{tenantName}/{instanceName}/patients/{patientId}/full-encounters
in our example it would be:
GET https://api.live.welkincloud.io/gh/sb-demo/patients/08632f11-cb33-4b5b-aece-aaa360f9f747/full-encounters
Responses
200
OK
401
Unauthorized
403
Forbidden
404
Not Found
Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveUUID of the patient record
Encounter status. Available statuses: DRAFT,OPEN,ACTIVE,FINALIZED
["OPEN"]Pagination: page number
0Example: 1Pagination: page size
20Example: 1Sort field with sorting order(asc or desc) after coma
updatedAt,descASC,DESC
ASCExclude all information not related to calendar event, except encounter record
truePaginated full encounter records
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
GET /{tenantName}/{instanceName}/patients/{patientId}/full-encounters HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": [
{
"encounter": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"disposition": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"calendarEvent": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"userRelatedToCalendarEvent": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"assessmentLinks": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"comments": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"createdByName": "text",
"updatedByName": "text",
"encounterId": "123e4567-e89b-12d3-a456-426614174000",
"text": "text"
}
]
}
],
"metaInfo": {
"page": 1,
"pageSize": 1,
"totalElements": 1,
"numberOfElements": 1
}
}Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveUUID of the user
ownerUserId={{userId}}Exclude all information not related to calendar event, except encounter record
true2021-09-30T21%3A00%3A00.000Z2021-10-31T20%3A59%3A59.999Z{{userId}}If true, return only encounter thats belong to the patients in the user care team (default: true)
falseEncounter status. Available statuses: DRAFT,OPEN,ACTIVE,FINALIZED
Pagination: page number
0Pagination: page size
20Sort field with sorting order(asc or desc) after coma
Paginated full encounter records
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
GET /{tenantName}/{instanceName}/users/{userId}/full-encounters HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": [
{
"encounter": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"disposition": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"calendarEvent": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"userRelatedToCalendarEvent": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"assessmentLinks": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"comments": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"createdByName": "text",
"updatedByName": "text",
"encounterId": "123e4567-e89b-12d3-a456-426614174000",
"text": "text"
}
]
}
],
"metaInfo": {
"page": 1,
"pageSize": 1,
"totalElements": 1,
"numberOfElements": 1
}
}HTTP Request
GET /{tenantName}/{instanceName}/patients/{patientId}/encounters/{encounterId}
in our example it would be:
GET https://api.live.welkincloud.io/gh/sb-demo/patients/d6ea79ce-d3d6-4c2d-a27e-e4d1207f60f1/encounters/336ae731-c674-4b85-941a-ef3b37d93b82
Responses
The encounter information will come as a response. The startDateTime (endDateTime) and the same variables will be displayed for the encaunter, but for local time localStartDateTime (localEndDateTime).
startDateTime/endDateTime - start and end times in UTCs
localStartDateTime/localEndDateTime - information about the local time for the user who is requesting the information (When information is requested using an API request, the request is made from under the API client, it has no timezone and therefore the information is displayed in the UTC).
200
OK
401
Unauthorized
403
Forbidden
404
Not Found
Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveUUID of the patient record
UUID of the encounter
Encounter record
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
GET /{tenantName}/{instanceName}/patients/{patientId}/encounters/{encounterId} HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}HTTP Request
Please, fill only that fields that you want to update.
Correspondence of Encounter statuses for the GUI:
DRAFT - Planned on UI OPEN - In Progress on UI CANCELLED - Cancelled on UI FINALIZED - Completed on UI
PATCH /{tenantName}/{instanceName}/patients/{patientId}/encounters/{encounterId}
in our example it would be:
PATCH https://api.live.welkincloud.io/gh/sb-demo/patients/620ef7f0-2ba9-48e1-8e0f-a47f40890bf4/encounters/b30355dd-ff65-4ae3-aab7-a1bdd0fddd79
Responses
200
OK
401
Unauthorized
403
Forbidden
404
Not Found
Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveUUID of the patient record
UUID of the encounter
Partial update — all fields optional.
Updated encounter
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
PATCH /{tenantName}/{instanceName}/patients/{patientId}/encounters/{encounterId} HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 334
{
"calendarEventId": "123e4567-e89b-12d3-a456-426614174000",
"title": "text",
"description": "text",
"status": "DRAFT",
"notes": "text",
"location": "text",
"visitServices": [
{
"name": "text",
"quantity": 1,
"serviceCost": 1,
"cancellationFee": 1,
"preVisitCost": 1,
"modifiers": [
"text"
]
}
],
"currentScheduledAppointment": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}HTTP Request
GET /{tenantName}/{instanceName}/patients/{patientId}/full-encounters/{encounterId}
in our example it would be:
GET https://api.live.welkincloud.io/gh/sb-demo/patients/08632f11-cb33-4b5b-aece-aaa360f9f747/full-encounters/7d72c423-48bc-4fc6-aa35-72a6cdd0c4ca
Responses
The encounter information will come as a response. The startDateTime (endDateTime) and the same variables will be displayed for the encaunter, but for local time localStartDateTime (localEndDateTime).
startDateTime/endDateTime - start and end times in UTCs
localStartDateTime/localEndDateTime - information about the local time for the user who is requesting the information (When information is requested using an API request, the request is made from under the API client, it has no timezone and therefore the information is displayed in the UTC).
Translated with DeepL.com (free version)
200
OK
401
Unauthorized
403
Forbidden
404
Not Found
Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveUUID of the patient record
UUID of the encounter
Full encounter record
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
GET /{tenantName}/{instanceName}/patients/{patientId}/full-encounters/{encounterId} HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"encounter": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"disposition": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"calendarEvent": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"userRelatedToCalendarEvent": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"assessmentLinks": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
],
"comments": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"createdByName": "text",
"updatedByName": "text",
"encounterId": "123e4567-e89b-12d3-a456-426614174000",
"text": "text"
}
]
}HTTP Request
GET /{tenantName}/{instanceName}/patients/{patientId}/encounters/{encounterId}/assessments
in our example it would be:
GET https://api.live.welkincloud.io/gh/sb-demo/patients/d6ea79ce-d3d6-4c2d-a27e-e4d1207f60f1/encounters/336ae731-c674-4b85-941a-ef3b37d93b82/assessments
Responses
200
OK
401
Unauthorized
403
Forbidden
404
Not Found
Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveUUID of the patient record
UUID of the encounter
COMMONAssessment links for this encounter
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
GET /{tenantName}/{instanceName}/patients/{patientId}/encounters/{encounterId}/assessments HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
]HTTP Request
POST /{tenantName}/{instanceName}/patients/{patientId}/encounters/{encounterId}/assessments
in our example it would be:
POST https://api.live.welkincloud.io/gh/sb-demo/patients/d6ea79ce-d3d6-4c2d-a27e-e4d1207f60f1/encounters/336ae731-c674-4b85-941a-ef3b37d93b82/assessments
Responses
201
Created
401
Unauthorized
403
Forbidden
404
Not Found
Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveUUID of the patient record
UUID of the encounter
Created assessment link
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
POST /{tenantName}/{instanceName}/patients/{patientId}/encounters/{encounterId}/assessments HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 110
{
"assessmentName": "text",
"assessmentTitle": "text",
"assessmentRecordId": "123e4567-e89b-12d3-a456-426614174000"
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}HTTP Request
GET /{tenantName}/{instanceName}/patients/{patientId}/encounters/{encounterId}/assessments/{encounterAssessmentId}
in our example it would be:
GET https://api.live.welkincloud.io/gh/sb-demo/patients/d6ea79ce-d3d6-4c2d-a27e-e4d1207f60f1/encounters/336ae731-c674-4b85-941a-ef3b37d93b82/assessments/0e692ed3-b250-42ee-a17b-f65e69efcc07
Responses
200
OK
401
Unauthorized
403
Forbidden
404
Not Found
Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveUUID of the patient record
UUID of the encounter
encounterAssessmentId path parameter
Assessment link
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
GET /{tenantName}/{instanceName}/patients/{patientId}/encounters/{encounterId}/assessments/{encounterAssessmentId} HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}HTTP Request
DELETE /{tenantName}/{instanceName}/patients/{patientId}/encounters/{encounterId}/assessments/{encounterAssessmentId}
in our example it would be:
DELETE https://api.live.welkincloud.io/gh/sb-demo/patients/d6ea79ce-d3d6-4c2d-a27e-e4d1207f60f1/encounters/336ae731-c674-4b85-941a-ef3b37d93b82/assessments/0e692ed3-b250-42ee-a17b-f65e69efcc07
Responses
200
OK
401
Unauthorized
403
Forbidden
404
Not Found
Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveUUID of the patient record
UUID of the encounter
encounterAssessmentId path parameter
Assessment link deleted
No content
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
DELETE /{tenantName}/{instanceName}/patients/{patientId}/encounters/{encounterId}/assessments/{encounterAssessmentId} HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
HTTP Request
PATCH /{tenantName}/{instanceName}/patients/{patientId}/encounters/{encounterId}/assessments/{encounterAssessmentId}
in our example it would be:
PATCH https://api.live.welkincloud.io/gh/sb-demo/patients/d6ea79ce-d3d6-4c2d-a27e-e4d1207f60f1/encounters/336ae731-c674-4b85-941a-ef3b37d93b82/assessments/0e692ed3-b250-42ee-a17b-f65e69efcc07
Responses
200
OK
401
Unauthorized
403
Forbidden
404
Not Found
Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveUUID of the patient record
UUID of the encounter
encounterAssessmentId path parameter
Updated assessment link
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
PATCH /{tenantName}/{instanceName}/patients/{patientId}/encounters/{encounterId}/assessments/{encounterAssessmentId} HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 61
{
"assessmentRecordId": "123e4567-e89b-12d3-a456-426614174000"
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}HTTP Request
GET /{tenantName}/{instanceName}/patients/{patientId}/encounters/{encounterId}/disposition
in our example it would be:
GET https://api.live.welkincloud.io/gh/sb-demo/patients/d6ea79ce-d3d6-4c2d-a27e-e4d1207f60f1/encounters/336ae731-c674-4b85-941a-ef3b37d93b82/disposition
Responses
200
OK
401
Unauthorized
403
Forbidden
404
Not Found
Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveUUID of the patient record
UUID of the encounter
Disposition record
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
GET /{tenantName}/{instanceName}/patients/{patientId}/encounters/{encounterId}/disposition HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}HTTP Request
PATCH /{tenantName}/{instanceName}/patients/{patientId}/encounters/{encounterId}/disposition
in our example it would be:
PATCH https://api.live.welkincloud.io/gh/sb-demo/patients/d6ea79ce-d3d6-4c2d-a27e-e4d1207f60f1/encounters/336ae731-c674-4b85-941a-ef3b37d93b82/disposition
Responses
200
OK
401
Unauthorized
403
Forbidden
404
Not Found
Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveUUID of the patient record
UUID of the encounter
Field values as defined by the disposition CDT formation — there is no fixed schema.
Updated disposition record
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
PATCH /{tenantName}/{instanceName}/patients/{patientId}/encounters/{encounterId}/disposition HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 38
{
"ANY_ADDITIONAL_PROPERTY": "anything"
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"patientId": "123e4567-e89b-12d3-a456-426614174000",
"cdtId": "123e4567-e89b-12d3-a456-426614174000",
"version": 1,
"cdtName": "text",
"jsonBody": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}Request to Get current encounter billing formation:
HTTP Request
GET /{tenantName}/{instanceName}/formations/{version}/encounter-disposition
in our example it would be:
GET https://api.live.welkincloud.io/gh/sb-demo/formations/current/encounter-disposition
Responses
200
OK
401
Unauthorized
403
Forbidden
404
Not Found
Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveDisposition CDT formation
^[a-z0-9\-_]+$truetrueBad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
GET /{tenantName}/{instanceName}/formations/current/encounter-disposition HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"title": "text",
"label": "text",
"version": 1,
"internal": true,
"readable": true,
"updatable": true,
"type": "SINGLE_RECORD",
"relation": "COMMON",
"fields": [
{
"name": "text",
"type": "TEXT",
"formula": "text",
"dictionary": {
"name": "text",
"field": "text"
},
"profileDataType": {
"name": "text",
"fields": [
"text"
]
},
"customDataType": {
"name": "text",
"fields": [
"text"
]
},
"customFieldType": "text",
"editable": true,
"searchable": true,
"bulkEdit": true,
"phi": true,
"disable": true,
"injectedSource": true,
"displayType": "CHECKBOX",
"valueType": "STRING",
"meta": {
"label": "text",
"minLength": 1,
"maxLength": 1,
"minValue": "text",
"maxValue": "text",
"fileTypes": [
"text"
],
"maxFiles": 1,
"maxTotalFileSize": 1,
"required": true,
"options": [
{
"label": "text",
"value": null,
"refCdtName": "text"
}
],
"multiple": true,
"patterns": [
"NUMBERS_ONLY"
]
},
"mask": {
"symbol": "*",
"startPosition": 1,
"endPosition": 1
},
"richTextEnabled": true
}
]
}Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveFormation version identifier (e.g. current, draft, or a version number)
currentname or type
CustList of encounter templates
^[a-z0-9\-_]+$Minutes
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
GET /{tenantName}/{instanceName}/formations/{version}/encounters HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"title": "text",
"encounterDescription": "text",
"encounterInstruction": "text",
"encounterColor": "text",
"type": "text",
"deliveryMethod": "text",
"defaultDuration": 1,
"acuityAppointmentTypeId": "text",
"locationPdtSource": {
"name": "text",
"fields": [
"text"
]
},
"predefinedLocation": "text",
"assessmentNames": [
"text"
],
"visitServices": [
{
"name": "text",
"modifiers": [
"text"
]
}
]
}
]Request to Get one encounter template by name.
HTTP Request
GET /{tenantName}/{instanceName}/formations/{version}/encounters/{encounterTemplateName}
in our example it would be:
GET https://api.live.welkincloud.io/gh/sb-demo/formations/current/encounters/temp-1
Responses
200
OK
401
Unauthorized
403
Forbidden
404
Not Found
Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveFormation version identifier (e.g. current, draft, or a version number)
currentencounterTemplateName path parameter
Encounter template
^[a-z0-9\-_]+$Minutes
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
GET /{tenantName}/{instanceName}/formations/{version}/encounters/{encounterTemplateName} HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"title": "text",
"encounterDescription": "text",
"encounterInstruction": "text",
"encounterColor": "text",
"type": "text",
"deliveryMethod": "text",
"defaultDuration": 1,
"acuityAppointmentTypeId": "text",
"locationPdtSource": {
"name": "text",
"fields": [
"text"
]
},
"predefinedLocation": "text",
"assessmentNames": [
"text"
],
"visitServices": [
{
"name": "text",
"modifiers": [
"text"
]
}
]
}Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
live^[a-z0-9\-_]+$Minutes
Created encounter template
^[a-z0-9\-_]+$Minutes
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
POST /{tenantName}/{instanceName}/formations/draft/encounters HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 369
{
"name": "text",
"title": "text",
"encounterDescription": "text",
"encounterInstruction": "text",
"encounterColor": "text",
"type": "text",
"deliveryMethod": "text",
"defaultDuration": 1,
"acuityAppointmentTypeId": "text",
"locationPdtSource": {
"name": "text",
"fields": [
"text"
]
},
"predefinedLocation": "text",
"assessmentNames": [
"text"
],
"visitServices": [
{
"name": "text",
"modifiers": [
"text"
]
}
]
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"title": "text",
"encounterDescription": "text",
"encounterInstruction": "text",
"encounterColor": "text",
"type": "text",
"deliveryMethod": "text",
"defaultDuration": 1,
"acuityAppointmentTypeId": "text",
"locationPdtSource": {
"name": "text",
"fields": [
"text"
]
},
"predefinedLocation": "text",
"assessmentNames": [
"text"
],
"visitServices": [
{
"name": "text",
"modifiers": [
"text"
]
}
]
}Full update encounter template.
PUT /{tenantName}/{instanceName}/formations/draft/encounters/{encounterTemplateName}
in our example it would be:
PUT https://api.live.welkincloud.io/gh/sb-demo/formations/draft/encounters/temp-1
Responses
200
OK
401
Unauthorized
403
Forbidden
404
Not Found
Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
live^[a-z0-9\-_]+$Minutes
Updated encounter template
^[a-z0-9\-_]+$Minutes
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
PUT /{tenantName}/{instanceName}/formations/draft/encounters/etmp-master HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 369
{
"name": "text",
"title": "text",
"encounterDescription": "text",
"encounterInstruction": "text",
"encounterColor": "text",
"type": "text",
"deliveryMethod": "text",
"defaultDuration": 1,
"acuityAppointmentTypeId": "text",
"locationPdtSource": {
"name": "text",
"fields": [
"text"
]
},
"predefinedLocation": "text",
"assessmentNames": [
"text"
],
"visitServices": [
{
"name": "text",
"modifiers": [
"text"
]
}
]
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "text",
"title": "text",
"encounterDescription": "text",
"encounterInstruction": "text",
"encounterColor": "text",
"type": "text",
"deliveryMethod": "text",
"defaultDuration": 1,
"acuityAppointmentTypeId": "text",
"locationPdtSource": {
"name": "text",
"fields": [
"text"
]
},
"predefinedLocation": "text",
"assessmentNames": [
"text"
],
"visitServices": [
{
"name": "text",
"modifiers": [
"text"
]
}
]
}Delete encounter template by name
HTTP Request
DELETE /{tenantName}/{instanceName}/formations/draft/encounters/{encounterTemplateName}
in our example it would be:
DELETE https://api.live.welkincloud.io/gh/sb-demo/formations/draft/encounters/336ae731-c674-4b85-941a-ef3b37d93b82
Responses
200
OK
401
Unauthorized
403
Forbidden
404
Not Found
Bearer token obtained from POST /{tenantName}/admin/api_clients/{clientName}. Valid for 60 minutes.
Your organization (tenant) name, e.g. acme-health
acme-healthYour environment name: live, sandbox, or a custom name
liveencounterTemplateName path parameter
Encounter template deleted
No content
Bad request — the request could not be understood or was missing required parameters.
Unauthorized — the Bearer token is missing, expired, or invalid.
Forbidden — the API client role does not have permission for this resource. Check the role and security policy in Admin.
Not found — the requested resource does not exist.
Too many requests — rate limit exceeded. Implement exponential backoff.
Internal server error.
DELETE /{tenantName}/{instanceName}/formations/draft/encounters/{encounterTemplateName} HTTP/1.1
Host: api.live.welkincloud.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Last updated
Was this helpful?