Workpath Housecall API

The path connecting telehealth and in-home healthcare.

Getting Started

This document outlines the behaviors expected from Intake API Version 2 (V2). The Workpath REST API provides programmatic access to Workpath data for use in client applications and partner integrations. This is a working document as we continue to update our API.

For general information visit this link: Workpath Intake API Overview

Information We Need

To start the appointment process, we require a certain amount of information from you about your patient, the provider of your patient, what labs you are wanting to run, and insurance information (if applicable). See the sections below about our endpoints you will need in order to create a full appointment.

Access to our Client Management Dashboard can be found here.

Need additional assistance? Click Here

Authentication and Keys

User resources provide authentication and config settings for individual users.


Authorization Code

The authorization code grant type is initiated from your client application. A URL will be constructed with specific parameters and navigated to, where the user will then sign in to Workpath. After a successful sign in, the user will authorize your application to access their information and then be redirected back to your client. The redirection URL will include a code that can be exchanged for an access token.

Authorization Code Initiation

This step will be initiated by your application. Your application will generate and store the required attributes which it can later reference when the request is sent back to your redirect URI. It will need to generate two random strings, one for the state and one for the code_verifier. Workpath will send the state back with the code to your redirect URI, so make sure your application saves the code verifier that can be referenced by the state later on.

Request Attributes

GET https://api.workpath.co/oauth/authorize

client_id string

required

API Credential key associated with client generated here.

redirect_uri string

required

Redirect URL associated with client generated here.

state string

required

Randomly generated string.

code_challenge string

required

SHA-256 and base64 encoded version of the code verifier.

code_challenge_method string

required

Always use S256.

response_type string

required

Always use code.
Example Request JSON
                
  {
    "client_id": "3680ba42-822d-44db-8a5c-9d5ce35b639e",
    "redirect_uri": "https://url.com",
    "state": "iOTxFAXD7dYdsKhR9hGa",
    "code_challenge": "ZDU3N2VhZjJiYjRiY2QzZTg3M2NhNmVhZDUzYTQ4Nj...",
    "code_challenge_method": "S256",
    "response_type": "code",
    "onboarding": "1"
  }
                
              

Token Exchange

Authorization Code Grant Type

This step will take place once the request is sent back to your redirect URI. Two parameters will be available as query parameters, code and state. Use the state parameter to access the correct code verifier which will be used in the code exchanged request, as outlined in the attributes section of these instructions.

Alternatively, if anything went wrong during authorization, an error_type and error_description will be sent as query params to allow your application to show the error accordingly.

Request Attributes

POST https://api.workpath.co/oauth/token

grant_type string

required

OAuth grant type. Value should be authorization_code.

code string

required

Code sent back as query param in redirect URI.

code_verifier string

required

String referenced by state sent back as query param in redirect URI.

code_challenge_method string

required

Always use S256.

client_id string

required

API Credential key associated with client generated here.

redirect_uri string

required

Redirect URL associated with client generated here.
Example Request JSON
                
  {
    "grant_type": "authorization_code",
    "code": "blIbZ1d~3j@7W*N2prkc",
    "code_verifier": "IotXfaxd7DyDSkHr9HgA",
    "code_challenge_method": "S256",
    "client_id": "3680ba42-822d-44db-8a5c-9d5ce35b639e",
    "redirect_uri": "https://url.com"
  }
                
              
Response Attributes

access_token string

Token value.

expires_in string

Seconds to expiration of the token.

access_token_expires_at string

Expiration time stamp.

scope string

Space-separated list of scopes.

token_type string

Token type.
Example Response JSON
                
  {
    "access_token": "035736ac-abb5-49b9-a08d-c83d09398ba1",
    "expires_in": 1800,
    "access_token_expires_at": "2016-12-04T16:05:49.401Z",
    "scope": "",
    "token_type": "Bearer"
  }                  
                
              

Client Credential Grant Type

Issue a new access token. Requests can include an HTTP Basic authorization header representing a valid API key and password or client_id and client_secret as attributes in the request body.

Basic Auth Example: Authorization: Basic [value], where the value is the base-64 encoded representation of '[api-key]:[api-password]'.

The access token returned by this method is used as the bearer token for all subsequent requests to the API in the form of an auth header (Authorization: Bearer [access token]). Subsequent requests made using an expired or invalid token will return a 401 - Unauthorized response code.

Note: the content encoding for this endpoint is 'application/x-www-form-urlencoded', unlike the 'application/json' used by all other API methods.

Request Parameters

POST https://api.workpath.co/oauth/token

grant_type string

required

OAuth grant type. Value should be client_credentials.

client_id string

API Key provided by Workpath. Not needed with BasicAuth.

client_secret string

API Password provided by Workpath. Not needed with BasicAuth.
Example URL-Encoded String

grant_type=client_credentials&client_id=4ab41347-e24f-475d-b1da-bce37ae31af3&client_secret=SX0LGy6z!Pa~%2CV-!A%3Aaz

Response Attributes

access_token string

Token value.

expires_in string

Seconds to expiration of the token.

access_token_expires_at string

Expiration time stamp.

scope string

Space-separated list of scopes.

token_type string

Token type.
Example Response JSON
                
  {
    "access_token": "035736ac-abb5-49b9-a08d-c83d09398ba1",
    "expires_in": 1800,
    "access_token_expires_at": "2016-12-04T16:05:49.401Z",
    "scope": "",
    "token_type": "Bearer"
  }                  
                
              

Need additional assistance? Click Here

Credential Management (API Credentials)

All API credential requests require a BasicAuth header by using a previously created API credential. The provided BasicAuth header will then be used to determine if the request is allowed based on the API credential being accessed, only API credentials with the same associated client will work with each other. For API credential creation, the associated BasicAuth credential provided in the request will be used to create another API credential associated with the same client. Cross-client access is not allowed and will result in an unauthorized response.


Create API Credentials

POST https://api.workpath.co/api-keys

Adds a new API Credential (limit 2 for each client).

Creating your first API Credential is done through the UI here. Calling this endpoint creates a second API Credential based on the first one you created. You may only have two credentials at a time. Attempting to create a third will result in a thrown error.

Response Attributes

id number

API Key ID.

key string

API Key.

client_id string

Associated client ID.

is_active boolean

Flag that indicates whether the API credential is active.

last_login_at string

Indicates when the API credential was last used.

created_at string

Indicates when the API credential was created.

updated_at string

Indicates when the API credential was last updated.

secret string

API key password.
Example Response JSON
                
  {
    "id": 1001,
    "key": "c2b869e9-2013-4435-9eb9-837b0dc7937d",
    "client_id": "c2b869e9-2013-4435-9eb9-837b0dc7937d",
    "is_active": false,
    "last_login_at": "2016-12-06T15:50:49.402Z",
    "created_at": "2016-12-06T15:50:49.402Z",
    "updated_at": "2016-12-06T15:50:49.402Z",
    "secret": "SX0LGy6z!Pa~,V-!A:az"
  }                  
                
              

Retrieve API Credential

Retrieve details for an API Credential.

Request Parameters

GET https://api.workpath.co/api-keys/[id OR key]

id number

optional if key is used

ID of the API Credential being requested.

key string

optional if id is used

Key of API Credential being requested.
Response Attributes

id number

API Key ID.

key string

API Key.

client_id string

Associated client ID.

is_active boolean

Flag that indicates whether the API credential is active.

last_login_at string

Indicates when the API credential was last used.

created_at string

Indicates when the API credential was created.

updated_at string

Indicates when the API credential was last updated.
Example Response JSON
                
  {
    "id": 1001,
    "key": "c2b869e9-2013-4435-9eb9-837b0dc7937d",
    "client_id": "c2b869e9-2013-4435-9eb9-837b0dc7937d",
    "is_active": false,
    "last_login_at": "2016-12-06T15:50:49.402Z",
    "created_at": "2016-12-06T15:50:49.402Z",
    "updated_at": "2016-12-06T15:50:49.402Z"
  }                  
                
              

Retrieve API Credential List

GET https://api.workpath.co/api-keys/

Retrieve list of API Credentials associated with authenticating client.

Example Response JSON
                
  [
    {
      "id": 1001,
      "key": "c2b869e9-2013-4435-9eb9-837b0dc7937d",
      "client_id": "c2b869e9-2013-4435-9eb9-837b0dc7937d",
      "is_active": false,
      "last_login_at": "2016-12-06T15:50:49.402Z",
      "created_at": "2016-12-06T15:50:49.402Z",
      "updated_at": "2016-12-06T15:50:49.402Z"
    },
    {
      "id": 1002,
      "key": "c2b869e9-2013-4435-9eb9-837b0dc7937d",
      "client_id": "c2b869e9-2013-4435-9eb9-837b0dc7937d",
      "is_active": true,
      "last_login_at": "2016-12-06T15:50:49.402Z",
      "created_at": "2016-12-06T15:50:49.402Z",
      "updated_at": "2016-12-06T15:50:49.402Z"
    },
    ...   
  ]
                                
                
              


Update API Credential

Modifies an individual API Credential.

Parameters

PUT https://api.workpath.co/api-keys/[key]

key string

optional

Key of the API Credential being updated.
Request Attributes

PUT https://api.workpath.co/api-keys/[key]

is_active string

Updates active status.
Response Attributes

id number

API Key ID.

key string

API Key.

client_id string

Associated client ID.

is_active boolean

Flag that indicates whether the API credential is active.

last_login_at string

Indicates when the API credential was last used.

created_at string

Indicates when the API credential was created.

updated_at string

Indicates when the API credential was last updated.

secret string

API key password.
Example Response JSON
                
  {
    "id": 1001,
    "key": "c2b869e9-2013-4435-9eb9-837b0dc7937d",
    "client_id": "c2b869e9-2013-4435-9eb9-837b0dc7937d",
    "is_active": false,
    "last_login_at": "2016-12-06T15:50:49.402Z",
    "created_at": "2016-12-06T15:50:49.402Z",
    "updated_at": "2016-12-06T15:50:49.402Z"
  }                  
                
              

Delete API Credential

Deletes a Device in a User.

Parameters

DELETE https://api.workpath.co/api-keys/[key]

key string

optional

Key of the API Credential being deleted.

Need additional assistance? Click Here

People

These are the endpoints you will need to hit in order to create a Patient, Guarantor, and an Insured Person for the Insurance Object later on.


Create A Person

Create a new Person.

Request Attributes

POST https://api.workpath.co/people

first_name string

required

Person's first name.

last_name string

required

Person's last name.

gender string

required

Gender of the Person.

biological_sex string

required

The biological sex of the Person. The following are accepted options: Ambiguous, Female, Male, Not Applicable, Other, or Unknown.

date_of_birth string

required

The Person's date of birth.

phone string

required

The Person's phone number. Please include the country code. For example, “8045551234” will not be accepted - please format as “+18045551234”.

email string

required

The Person's email address.

photo_url string

A link to the Person's profile picture if applicable.

messaging_enabled boolean

Is messaging enabled for the Person?

addresses array

required

An array of address objects. Each address object should have the following fields:

street string

required

The Person's street address.

street2 string

The Person's street address.

city string

required

The Person's city.

state string

required

The Person's state.

zip string

required

The Person's zip code.

country string

required

The Person's country.

phone string

The address's phone number.

latitude number

required

The latitude of the address for map purposes.

longitude number

required

The longitude of the address for map purposes.

timezone string

required

The address's timezone.
Example Request JSON
                
  {
    "first_name": "Joseph",
    "last_name": "Schmoseph",
    "dob": "1977-06-01",
    "gender": "female",
    "biological_sex": "Female",
    "phone": "+17183211234",
    "email": "testguy@example.com",
    "photo_url": "https://example.com/pic.png",
    "messaging_enabled": true,
    "addresses": [
      {
        "id": 1001,
        "label": "Home",
        "street": "123 Fourth St",
        "street2": "Suite 101",
        "city": "Richmond",
        "state": "Virginia",
        "zip": "10001",
        "country": "US",
        "phone": "+17183211234",
        "latitude": 37.5407246,
        "longitude": -77.4360481,
        "timezone": "America/New_York"
      }
    ]
  }                                
                
              

Update A Person

Modify a Person.

Request Attributes

PUT https://api.workpath.co/people/[id]

first_name string

required

Person's first name.

last_name string

required

Person's last name.

gender string

required

Gender of the Person.

biological_sex string

required

The biological sex of the Person. The following are accepted options: Ambiguous, Female, Male, Not Applicable, Other, or Unknown.

date_of_birth string

required

The Person's date of birth.

phone string

required

The Person's phone number. Please include the country code. For example, “8045551234” will not be accepted - please format as “+18045551234”.

email string

required

The Person's email address.

photo_url string

A link to the Person's profile picture if applicable.

messaging_enabled boolean

Is messaging enabled for the Person?
Example Request JSON
                
  {
    "first_name": "Joseph",
    "last_name": "Schmoseph",
    "dob": "1977-06-01",
    "gender": "female",
    "biological_sex": "Female",
    "phone": "+17183211234",
    "email": "testguy@example.com",
    "photo_url": "https://example.com/pic.png",
    "messaging_enabled": true
  }                                
                
              
Response Attributes

id number

The ID of the created Person.

first_name string

Person's first name.

last_name string

Person's last name.

gender string

Gender of the Person.

biological_sex string

required

The biological sex of the Person. The following are accepted options: Ambiguous, Female, Male, Not Applicable, Other, or Unknown.

date_of_birth string

The Person's date of birth.

phone string

The Person's phone number. Please include the country code. For example, “8045551234” will not be accepted - please format as “+18045551234”.

email string

The Person's email address.

photo_url string

A link to the Person's profile picture if applicable.

messaging_enabled boolean

Is messaging enabled for the Person?

addresses array

An array of address objects attached to the Person.

tags array

optional

An array of tag objects attached to the Person.

documents array

optional

An array of document objects attached to the Person.
Example Response JSON
                
  {
    "id": 1001,
    "name": "Joseph Schmoseph",
    "dob": "1977-06-01",
    "gender": "female",
    "biological_sex": "Female",
    "phone": "+17183211234",
    "email": "testguy@example.com",
    "photo_url": "https://example.com/pic.png",
    "messaging_enabled": true,
    "addresses": [
      {
        "id": 1001,
        "label": "Home",
        "street": "123 Fourth St",
        "street2": "Suite 101",
        "city": "Richmond",
        "state": "Virginia",
        "zip": "10001",
        "country": "US",
        "phone": "+17183211234",
        "latitude": 37.5407246,
        "longitude": -77.4360481,
        "timezone": "America/New_York"
      }
    ],
    "tags": [
      {
        "id": 1001,
        "name": "Centrifuge",
        "color": "#FF0000",
        "description": "Lorem ipsum dolor sit amet",
        "locked": false,
        "alert": false,
        "organization_id": null
      }
    ],
    "documents": [
      {
        "id": 1001,
        "name": "Certification",
        "url": "https://example.com/certification"
      }
    ]
  }                               
                
              

Retrieve Person

Retrieve details for a Person.

Request Parameters

GET https://api.workpath.co/people/[id]

id number

required

ID of the Person being requested.
Response Attributes

id number

The ID of the created Person.

first_name string

Person's first name.

last_name string

Person's last name.

gender string

Gender of the Person.

biological_sex string

required

The biological sex of the Person. The following are accepted options: Ambiguous, Female, Male, Not Applicable, Other, or Unknown.

date_of_birth string

The Person's date of birth.

phone string

The Person's phone number. Please include the country code. For example, “8045551234” will not be accepted - please format as “+18045551234”.

email string

The Person's email address.

photo_url string

A link to the Person's profile picture if applicable.

messaging_enabled boolean

Is messaging enabled for the Person?

addresses array

An array of address objects attached to the Person.

tags array

optional

An array of tag objects attached to the Person.

documents array

optional

An array of document objects attached to the Person.
Example Response JSON
                
  {
    "id": 1001,
    "name": "Joseph Schmoseph",
    "dob": "1977-06-01",
    "gender": "female",
    "biological_sex": "Female",
    "phone": "+17183211234",
    "email": "testguy@example.com",
    "photo_url": "https://example.com/pic.png",
    "messaging_enabled": true,
    "addresses": [
      {
        "id": 1001,
        "label": "Home",
        "street": "123 Fourth St",
        "street2": "Suite 101",
        "city": "Richmond",
        "state": "Virginia",
        "zip": "10001",
        "country": "US",
        "phone": "+17183211234",
        "latitude": 37.5407246,
        "longitude": -77.4360481,
        "timezone": "America/New_York"
      }
    ],
    "tags": [
      {
        "id": 1001,
        "name": "Centrifuge",
        "color": "#FF0000",
        "description": "Lorem ipsum dolor sit amet",
        "locked": false,
        "alert": false,
        "organization_id": null
      }
    ],
    "documents": [
      {
        "id": 1001,
        "name": "Certification",
        "url": "https://example.com/certification"
      }
    ]
  }                               
                
              

Delete Person

Deletes a Person.

Parameters

DELETE https://api.workpath.co/people/[id]

id string

ID of the Person being deleted.

Need additional assistance? Click Here

Payment Object

If you do not know this information, simply send us an empty object and we will request the information from your patient directly.

Request Attributes

person_id number

required

The Patient's created Workpath ID.

insurance_details_id number

optional if patient is self-pay

Workpath ID for created insurance details.

payment_type string

required

This will be either patient insurance or self-pay.
Example Payment JSON
                
  {
    "person_id": 0,
    "insurance_details_id": 0,
    "payment_type": ""
  }                                 
                
              

Need additional assistance? Click Here

Patient Insurance Information Object

If you do not know this information, simply send us an empty object and we will request the information from your patient directly. This information is only needed if your patient has insurance that they will be using to pay for the requested labs/tests.

It is important to note that in order to have a guarantor_id and an insured_person_id, you must create those people by using the people endpoint.

Request Attributes

person_id number

required

Workpath ID of the created Patient.

company_name string

required

Name of Patient's Insurance Company.

company_address object

required

Address of the patient’s insurance company.

street string

required

The insurance company’s street address.

street2 string

required

The insurance company’s street address.

city string

required

The insurance company’s city.

state string

required

The insurance company’s state.

zip string

required

The insurance company’s zip code.

country string

required

The insurance company’s country.

company_phone string

required

Patient’s insurance company phone number including country code. “+18045551234”

group_number string

required

Group number for patient’s insurance policy.

relationship string

required

The relationship of the patient to the policy holder.

policy_number string

required

The policy number for the patient’s insurance policy.

guarantor_id number

required

The Guarantor Person's created Workpath ID. (see People)

insured_person_id number

required

The Insured Person's created Workpath ID. (see People)
Example Insurance JSON
                
  {
    "person_id": 0, 
    "company_name": "",
    "company_address": {
      "street": "",
      "street2": "",
      "city": "",
      "state": "",
      "zip": "",
      "country": "",
    },
    "company_phone": "",
    "group_number": "",
    "relationship": "",
    "policy_number": "",
    "guarantor_id": 0, // person.id
    "insured_person_id": 0 // person.id
  }                                
                
              

Need additional assistance? Click Here

Intakes

The Intake is the starting point for a patient request. The initial call takes in certain parameters about the patient and the service being ordered and, depending on the Order Form that is specified, sends a request to the patient (via email and/or SMS) for additional information.


Patient Requests

When creating an Intake, the attached Order Form (order_form) determines the behavior of the Intake as it progresses through the system.

When an Order Form contains Patient Fields, a Patient Request is sent to the patient for those details. However, if those Patient Fields are already populated by the initial creation call, the Patient Request will not be sent since no data is required from the Patient.

The Order Form also determines how the Intake will advance once all required details are provided:

  • If the Order Form is set to Auto-Publish, the Intake will be automatically converted to an Appointment.
  • If not, the Intake will populate within the "New" tab of the Service Requests tab on the web app. An Office User can then verify the Intake and convert it to an Appointment.

Intake Object

Intake Object Attributes

id integer

The Intake's unique ID

order_form integer

The unique ID of the Order Form that is attached to this Intake

provider Provider object

The physician or prescribing entity that requested the service

id integer

The Provider's unique ID

first_name string

The Provider's first name

last_name string

The Provider's last name

email string

The Provider's email address

phone string

The Provider's phone number

organization_name string

The Provider's organization name

npi string

The Provider's National Provider Identifier (NPI)

status string

The verification status of the Provider

patient Patient object

The Patient

id integer

The Patient's unique ID

first_name string

The Patient's legal first name

middle_name string

The Patient's middle name

last_name string

The Patient's legal last name

phone string

The Patient's phone number

email string

The Patient's email address

biological_sex string

The Patient's biological sex

gender string

The Patient's gender

messaging_enabled_sms boolean

Determines whether the patient should receive SMS messages. If using patient patients and this is enabled, an email address must be provided.

messaging_enabled_email boolean

Determines whether the patient should receive emails. If using patient requests and no phone number is provided, this is ignored for the purposes of sending the patient request.

services array of objects

The requested services and their related ICD-10 codes

id number

The Service's unique ID

diagnosis_codes array of strings

The ICD-10 codes for the conditions applicable to the test

start_time string

The requested start time of the service

location Location object

The address for the service

id integer

The Address's unique ID

street string

The location's street address

street2 string

The location's second address line (apartment, suite, etc.)

city string

The location's city

state string

The location's state

zip string

The location's zip code or postal code

country string

The location's country as a two-letter code (e.g. "US")

latitude float

The location's latitude

longitude float

The location's longitude

notes string

Notes from the provider or ordering entity intended for the labor provider

fields array of Custom Field objects

Any custom data for the Intake

key string

The field's unique key

show boolean

Controls the visibility of the field

required boolean

Determines whether the field is required or not

value any valid JSON type

The current value of the custom field

big boolean

Determines the presentation of the field (false = text field, true = text box)

patient_fields array of Custom Field objects

Any custom data that the patient would fill out

key string

The field's unique key

show boolean

Controls the visibility of the field

required boolean

Determines whether the field is required or not

value any valid JSON type

The current value of the custom field

big boolean

Determines the presentation of the field (false = text field, true = text box)

appointment integer

The ID of the appointment that was created from this intake (if it has been converted)
Example Intake Object JSON
                
  {
    "id": 92200,
    "order_form": 1,
    "provider": {
      "id": 12313,
      "first_name": "Bruce",
      "last_name": "Banner",
      "npi": "0101010111",
      "status": "active"
    },
    "patient": {
      "id": 312391,
      "first_name": "Anthony",
      "middle_name": "Edward",
      "last_name": "Stark",
      "biological_sex": "male",
      "gender": "male",
      "phone": "8048675309",
      "email": "tony@starkindustries.com",
      "messaging_enabled_sms": true,
      "messaging_enabled_email": true
    },
    "services": [
      { "id": 12312, "diagnosis_codes": ["Z00.12", "H879.3"] },
      { "id": 91232, "diagnosis_codes": ["H879.3"] }
    ],
    "start_time": "2021-06-20T13:00:00Z",
    "location": {
      "id": 912012,
      "street": "200 Park Avenue",
      "street2": "The Top",
      "city": "New York",
      "state": "New York",
      "zip": "10166",
      "country": "US",
      "latitude": 40.7533488,
      "longitude": -73.9788555
    },
    "notes": "Patient has fusion reactor in chest."
  }                                    
                
              

Create an Intake

POST https://api.workpath.co/intakes

Request Attributes

order_form integer

The unique ID of the Order Form that is attached to this Intake

provider Provider object

The physician or prescribing entity that requested the service

id integer

The Provider's unique ID

first_name string

The Provider's first name

last_name string

The Provider's last name

email string

The Provider's email address

phone string

The Provider's phone number

organization_name string

The Provider's organization name

npi string

The Provider's National Provider Identifier (NPI)

status string

The verification status of the Provider

patient Patient object

The Patient

id integer

The Patient's unique ID

first_name string

The Patient's legal first name

middle_name string

The Patient's middle name

last_name string

The Patient's legal last name

phone string

The Patient's phone number

email string

The Patient's email address

biological_sex string

The Patient's biological sex

gender string

The Patient's gender

messaging_enabled_sms boolean

Determines whether the patient should receive SMS messages. If using patient patients and this is enabled, an email address must be provided.

messaging_enabled_email boolean

Determines whether the patient should receive emails. If using patient requests and no phone number is provided, this is ignored for the purposes of sending the patient request.

services array of objects

The requested services and their related ICD-10 codes

id number

The Service's unique ID

diagnosis_codes array of strings

The ICD-10 codes for the conditions applicable to the test

start_time string

The requested start time of the service

location Location object

The address for the service

id integer

The Address's unique ID

street string

The location's street address

street2 string

The location's second address line (apartment, suite, etc.)

city string

The location's city

state string

The location's state

zip string

The location's zip code or postal code

country string

The location's country as a two-letter code (e.g. "US")

latitude float

The location's latitude

longitude float

The location's longitude

notes string

Notes from the provider or ordering entity intended for the labor provider

fields array of Custom Field objects

Any custom data for the Intake

key string

The field's unique key

show boolean

Controls the visibility of the field

required boolean

Determines whether the field is required or not

value any valid JSON type

The current value of the custom field

big boolean

Determines the presentation of the field (false = text field, true = text box)

patient_fields array of Custom Field objects

Any custom data that the patient would fill out

key string

The field's unique key

show boolean

Controls the visibility of the field

required boolean

Determines whether the field is required or not

value any valid JSON type

The current value of the custom field

big boolean

Determines the presentation of the field (false = text field, true = text box)

Need additional assistance? Click Here

Response from Payload

Once we receive your payload, a unique Workpath request ID will be created and sent back to you in the response. You should expect to see a JSON response similar to the following:

                
  {
    "request_id": 12345
  }                  
                
              

If your request comes back to you with a status of anything other than 200 - OK, please refer to the sections below for more detailed information regarding error codes and validation messages.


Error Codes / Messaging

In the situation where you receive an error code in the response from us, you should receive a message describing the error in more detail. An example of an error would be invalid credentials or a missing field. Listed below are error codes and messages that you could receive from us. Please note that these are only error messages from the Workpath API. Generic error codes are listed at the end of this document for your reference.

HTTP Error Codes from Workpath
400 Bad Request [FIELD NAME] missing from payload.
403 Forbidden Invalid credentials.

Validation / Messaging

There are certain fields that need to be formatted in a given way in order to be processed correctly. If one of these fields is not in the correct format, you will receive a validation message from us stating one of the following things:

Error Codes with Validation Messages from Workpath
ERROR Patient DOB needs to be in the format MMDDYYYY.
ERROR [Patient] Phone Number needs to include the country code.
ERROR Invalid option selection for biological sex of patient.
ERROR Name needs to be sent as First Name and Last Name, [Last Name] is missing.
ERROR ^ cannot be used as a delimiter in payload.

Standard Errors (Auth Errors, etc.)

Below is a standard HTTP code summary for your convenience. We use conventional HTTP response codes most like other APIs.

Standard HTTP Error Codes
200 - OK Good to go!
400 - Bad Request The request was not correct - see Error Codes and Messages for details.
401 - Unauthorized Invalid credentials
402 - Request Failed Parameters were valid but the request failed.
403 - Forbidden Invalid permissions attached to credentials.
404 - Not Found Resource requested does not exist.
409 - Conflict The request conflicts with another request.
429 - Too Many Requests Too many requests hit the API at one time.
500, 502, 503, 504 - Server Errors Something went wrong on Workpath’s end.

Need additional assistance? Click Here