NAV
bash javascript

Vetter Software API Terms of Service

Last modified: Dec 01, 2019

Hi, we’re Vetter Software (for simplicity, we’ll refer to ourselves as “Vetter,” “we,” “us” or “our”). Our mission is to help coordinate and improve the health of the world’s animals. To help achieve our mission, we make an API and associated documentation (together, the “API”) available to third parties to create applications for our customers that are designed to help those customers run their animal healthcare businesses more successfully (each, an “Application”).

1. Authority

By accessing or using our API, you agree to comply with these API Terms of Service (“Terms”). If you are using our API on behalf of an entity, you represent and warrant that you have legal authority to bind that entity to the Terms and by accepting the Terms, you are doing so on behalf of that entity (and all references to "you" in the Terms refer to that entity).

2. Using the API

2.1 License

Provided that you comply with these Terms, we grant you a non-exclusive, non-assignable, non-transferable license to use our API to develop, test, market, offer to sell, sell and support your Application.

2.2 Access

You will only access our API by the means described in the API documentation. You must use the developer credentials that we assign to you. All activities that occur using your developer credentials are your responsibility, so keep them secret. Developer credentials may not be embedded in open source projects. When using our API, you will not misrepresent or mask your identity. You will be required to provide certain identifying information when you register to use our API, and in order to continue to use our API. Any registration information you give us will be current and accurate, and you'll inform us promptly of any change.

2.3 Use Limitations

We set and enforce limits on your use of our API (e.g. limiting the number of API requests that you may make) in our sole discretion. You agree to, and will not attempt to circumvent, such limitations. If you would like to use our API beyond these limits, you must obtain our express written consent (and we may decline your request or condition acceptance on your agreement to additional terms and/or charges for that use).

2.4 Security; Privacy

You will use commercially reasonable efforts to protect user information collected by your Application, including personally identifiable information, from unauthorized access or use, and will promptly report to us and to your users any unauthorized access or use of such information to the extent required by applicable law. In the event of any such unauthorized access or use, you will make no public statement without our prior written consent. You will comply with all applicable law, regulation, and third party rights (including without limitation laws regarding the import or export of data or software, privacy, and local laws) when using our API. You will provide and adhere to a privacy policy for your Application that clearly and accurately describes what information you collect and how you use and share that information.

2.5 Monitoring

You agree that we may monitor use of our API to ensure quality, improve our products and services and verify your compliance with the Terms. You will not interfere with this monitoring, and you will provide us with reasonable assistance at no cost, if we ask for it. We may suspend your access to our API without notice, if we reasonably believe that you are in violation of the Terms.

2.6 Non-Exclusivity

The Terms are non-exclusive. You acknowledge that we may develop products or services that compete with your Application or other products or services.

2.7 Fees; Reporting

Any fees applicable to your use of our API will be outlined in the developer program application that you submit when registering to use our API, the terms of which are hereby expressly incorporated into the Terms. Within three business days after we request it, you will provide us with such data as we may reasonably require to calculate the fees due to us.

2.8 Feedback

If you provide feedback or suggestions about our API, then we may freely use that information without obligation to you.

3. Prohibitions; HIPAA; Confidentiality

3.1 Prohibitions

When using our API, you may not (or allow those acting on your behalf to):

Sublicense our API for use by a third party; Create an Application that functions substantially the same as our API and offer it for use by third parties; Perform an action with the intent of introducing any virus, worm, defect, Trojan horse, malware, or any item of a destructive nature to any of our products or services; Interfere with, or disrupt, our API or the servers or networks providing our API; Try to exceed or circumvent limitations on use, including creating multiple Applications for identical (or substantially similar) use; Promote or facilitate unlawful activities; or Reverse engineer our API, except to the extent that this restriction is expressly prohibited by applicable law.

3.2 Confidentiality

You will keep your developer credentials confidential and make reasonable efforts to prevent and discourage other Applications from using your credentials. Our communications to you and our API may contain our confidential information. Our confidential information includes any materials, communications, and information that are marked confidential or that would normally be considered confidential under the circumstances. If you receive any such information, then you will not disclose it to any third party without our prior written consent. Our confidential information does not include information that you independently developed, that was rightfully given to you by a third party without confidentiality obligation, or that becomes public through no fault of your own. You may disclose our confidential information when compelled to do so by law only after you provide us with reasonable prior notice, unless a court orders that we not receive notice.

3.3 HIPAA

Unless otherwise specified in writing by us, we do not intend use of our API to create obligations under the Health Insurance Portability and Accountability Act, as amended ("HIPAA"), and we make no representations that our API satisfies HIPAA requirements. If you are (or become) a "covered entity" or "business associate" as defined in HIPAA, you will not use our API for any purpose or in any manner involving transmitting protected health information to us unless you have received our prior written consent.

4. Content

4.1 Content Accessible Through our API

As between you and us, we own all rights, title and interest, including all intellectual property rights, in and to, the content that is accessed through our API. Each of our customers must give you express permission to access its content through your Application and to share that content with third parties. This content is the sole responsibility of the person that makes it available. Your access to content provided by our API may be restricted, limited, or filtered in accordance with applicable law, regulation, and policy.

4.2 Submission of Content

Our API allows the submission of content. We do not acquire any ownership of any intellectual property rights in the content that you submit to our API through your Application, except as expressly provided in the Terms. For the sole purpose of enabling us to provide, secure, and improve our API and our products and services, and only in accordance with our privacy policy, you give us a perpetual, irrevocable, worldwide, sublicensable, royalty-free, fully paid-up and non-exclusive license to use, host, store, modify, communicate, and publish content submitted, posted, or displayed to, or from, our API through your Application. Before you submit content to our API through your Application, you will ensure that you have the necessary rights (including the necessary rights from your users) to grant us the license.

4.3 Prohibitions on Content

Unless expressly permitted by the content owner or by applicable law, you will not, and will not permit your users or others acting on your behalf to, do the following with content accessed through our API:

Scrape, build databases, or otherwise create permanent copies of such content, or keep cached copies longer than permitted by the cache header; Copy, translate, modify, create a derivative work of, sell, lease, lend, convey, distribute, publicly display, or sublicense to any third party; Misrepresent the source or ownership; or Remove, obscure, or alter any copyright, trademark, or other proprietary rights notices; or falsify or delete any author attributions, legal notices, or other labels of the origin or source of material.

5. Brand and Attribution

5.1 Brand

"Brand " is defined as the trade names, trademarks, service marks, logos, domain names, and other distinctive brand features of each party. Except where expressly stated, the Terms do not grant either party any right, title, or interest in or to the other party's Brand. All use by you of our Brand (including any goodwill associated therewith) will inure to our benefit.

5.2 Attribution

You agree to display any required attribution as described in the API documentation. We hereby grants to you a nontransferable, nonsublicenseable, nonexclusive license while the Terms are in effect to display our Brand for the purpose of promoting or advertising your Application. You must only use our Brand in accordance with the Terms and for the purpose of fulfilling your obligations under this Section. In using our Brand, you must not: (a) display our Brand in any way that is misleading, defamatory, infringing, libelous, disparaging, obscene or otherwise objectionable to us in our sole discretion; or (b) remove any legal, copyright, trademark, watermark or other proprietary right notices contained in any content or materials you receive from us or from our API. You understand and agree that we have sole discretion to determine whether your attribution and use of our Brand is in accordance with the above requirements.

5.3 Publicity

You will not make any statement regarding your use of our API that suggests partnership with, sponsorship by, or endorsement by us without our prior written approval.

5.4 Promotional Use

We may publicly refer to you as a licensee of our API, and publish your name and logo on our website, in press releases and in promotional materials without additional consent.

6. Ownership

6.1 Our Property

As between you and us, we own all rights, title, and interest, including all intellectual property rights, in and to: (1) our API and documentation; (2) content accessible through our API; (3) our Brand; and (4) our confidential information (together, the “Vetter Property”). Except for the express licenses granted in these Terms, we do not grant you any right, title, or interest in any of the Vetter Property. You agree to take such actions as we may reasonably request to perfect our rights in the Vetter Property.

6.2 Your Property

Except to the extent your Application contains Vetter Property, we do not acquire ownership in your Application. During the term of these Terms you grant us a paid-up, royalty-free, non-exclusive, worldwide, irrevocable right and license, under all of your intellectual property rights, to use, perform, and display your Application and its content for purposes of marketing, demonstrating, and making your Application available to our customers.

7. Term and Termination

7.1 Term

The term of these Terms commences on the date that you agree to these Terms, and continues until terminated as set forth below.

7.2 Termination

You may stop using our API at any time. If you want to terminate the Terms, you must provide us with prior written notice and upon termination, cease your use of our API. We reserve the right to terminate the Terms with you, or discontinue providing our API or any portion or feature or your access thereto, for any reason and at any time without liability or other obligation to you.

7.3 Effect of Termination

Upon termination of the Terms, you will immediately stop using our API, cease all use of our Brand, and delete any stored content and our confidential information in your possession or control. In addition, all rights and licenses granted to you will terminate immediately. We may independently communicate with any account owner whose account is associated with your Application to provide notice of the termination of your right to use our API.

7.4 Surviving Provisions

When the Terms terminate, those terms that by their nature are intended to continue indefinitely will continue to apply, including, but not limited to, pre-existing payment obligations and Sections 2.8, 6, 7.3, 7.4, 8 - 11.

8. WARRANTIES; DISCLAIMER

EXCEPT AS EXPRESSLY SET OUT IN THE TERMS, WE DO NOT MAKE ANY SPECIFIC PROMISES ABOUT OUR API, INCLUDING ANY COMMITMENT ABOUT THE CONTENT ACCESSED THROUGH OUR API, THE SPECIFIC FUNCTIONS OF OUR API, OR ITS RELIABILITY, AVAILABILITY OR ABILITY TO MEET YOUR NEEDS. WE PROVIDE OUR API "AS IS". SOME JURISDICTIONS PROVIDE FOR CERTAIN WARRANTIES, LIKE THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. EXCEPT AS EXPRESSLY PROVIDED FOR IN THE TERMS, TO THE EXTENT PERMITTED BY LAW, WE EXCLUDE ALL WARRANTIES, GUARANTEES, CONDITIONS, REPRESENTATIONS AND UNDERTAKINGS.

9. LIMITATION OF LIABILITY

WHEN PERMITTED BY LAW, WE WILL NOT BE RESPONSIBLE FOR LOST PROFITS, REVENUES, DATA FINANCIAL LOSSES, OR INDIRECT, SPECIAL, CONSEQUENTIAL, EXEMPLARY OR PUNITIVE DAMAGES. TO THE EXTENT PERMITTED BY LAW, OUR TOTAL LIABILITY FOR ANY CLAIM UNDER THE TERMS, INCLUDING FOR ANY IMPLIED WARRANTIES, IS LIMITED TO THE AMOUNT YOU PAID US TO USE OUR API DURING THE SIX MONTHS PRIOR TO THE EVENT GIVING RISE TO THE LIABILITY. IN ALL CASES, WE WILL NOT BE LIABLE FOR ANY EXPENSE, LOSS, OR DAMAGE THAT IS NOT REASONABLY FORESEEABLE.

10. Indemnification

You will defend, hold harmless and indemnify us (and our employees, shareholders and directors) from any claim or action brought by a third party against us, including all damages, liabilities, costs and expenses (including reasonably attorneys’ fees), to the extent resulting from, alleged to have resulted from, or are in connection with: (a) your breach of your obligations under these Terms; or (2) the violation of any intellectual property right of such third party by your Application or Brand.

11. General Provisions

We may modify these Terms at any time, so you should review them regularly. Changes will be effective immediately, but they will not apply retroactively. If you do not agree to the modified Terms, you must stop using our API. These Terms govern our relationship with you - they do not create any third party beneficiary rights. Our failure to enforce any right does not mean that we are giving up any of our rights. Neither of us will be liable for a failure to perform our obligations (excluding obligations to pay fees) as a result of a condition that is outside of our reasonable control (such as a natural disaster, war or Internet disturbance). We each agree to contract in the English language. These Terms (and any agreement or additional terms referenced in these Terms) make up the entire agreement between us relating to our API and your use of our API. If a court decides that a portion of these terms is not enforceable, the rest of these terms will not be affected. These Terms are governed by the laws of the State of California, excluding its conflict of laws rules. If there is a dispute between us, both of us agree to work together in good faith to try to resolve that dispute before resorting to taking any legal action. Nothing in the Terms will limit either party's ability to seek injunctive relief. All disputes relating to these Terms or our API be litigated exclusively in the federal or state courts of San Mateo County, California, and we both consent to personal jurisdiction in those courts. We may send you certain communications in connection with your use of our API.

Authentication

You will need to authenticate yourself when using our API. Authentication to our API is performed via oAuth2. You will need to include your secret API key, bearer token and clinic ID in the request header. Requests made without authentication will also fail. All requests must be made over HTTPS. Be sure to keep your credentials secret! Do not share them with any third party.

Sandbox Domain: https://ulimfxq67h.execute-api.us-west-2.amazonaws.com/sandbox

Production Domain: https://ulimfxq67h.execute-api.us-west-2.amazonaws.com/api

Method: POST

URL: https://{{domain}}/oauth/access_token

Content Type: application/x-www-form-urlencoded

Parameters:

Key Description Type
client_id Obtained from Vetter Software
client_secret Obtained from Vetter Software
grant_type String
Always "client_credentials"

Example Request:curl -X POST -H "Cache-Control: no-cache" -H "x-api-key: {clientSecret}" -H "Content-Type: application/x-www-form-urlencoded" -d 'grant_type=client_credentials&client_id={clientId}&client_secret={clientSecret}&scope=APIService&=' "https://{{domain}}/oauth/access_token"

Example Response:{ "access_token": "cri5ncXt5SMaaCh9cXiFdR7FwQE0AXqUOLsaoDb7", "token_type": "Bearer", "expires_in": 3600 }

Appointment

List of Appointment

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/appointments

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)
category To get the Medical/Personal Appointment Integer (default 0, max 2)
0 - Medical Appointment
1 - Personal Appointment
2 - Both

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/appointments?category=2&page=2&perPage=200

Display a listing of the appointments.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/appointments" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/appointments",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 2,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 2,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": "c7fea4e8-375e-41",
        "reason": "Exam",
        "start": "2017-09-06T14:00:00+00:00",
        "end": "2017-09-06T14:10:00+00:00",
        "appointmentType": {
          "id": "11eaf7ff-ae26-11",
          "label": "Default"
        },
        "note": "",
        "category": {
          "id": 0,
          "label": "Medical"
        },
        "status": "Checked in",
        "provider": {
          "id": "fed298bf-ae25-11",
          "firstName": "Ami",
          "lastName": "Espinosa"
        },
        "client": {
          "id": "11ea66aa-ae3f-11",
          "firstName": "Alex",
          "lastName": "Ellwood"
        },
        "patient": {
          "id": "11ea7803-ae5c-11",
          "name": "Minion",
          "weight": "23 Lbs"
        },
        "createAt": "2017-04-19T02:02:51+00:00",
        "updateAt": "2017-05-26T08:48:38+00:00",
        "location": "In clinic",
        "referral": {
          "type": "Contact person",
          "id": "2589120c-ae31-11",
          "firstName": "Bernice",
          "lastName": "Mitchell"
        }
      },
      {
        "id": "d6fc8e1d-a591-49",
        "reason": "Exam",
        "start": "2017-03-31T07:15:00+00:00",
        "end": "2017-03-31T07:30:00+00:00",
        "appointmentType": {
          "id": "11eaf7ff-ae26-11",
          "label": "Default"
        },
        "note": "",
        "category": {
          "id": 0,
          "label": "Medical"
        },
        "status": "Checked in",
        "provider": {
          "id": "fed298bf-ae25-11",
          "firstName": "Ami",
          "lastName": "Espinosa"
        },
        "client": {
          "id": "11efefd0-ae52-11",
          "firstName": "Latoya",
          "lastName": "Wardle"
        },
        "patient": {
          "id": "11f587a5-ae33-11",
          "name": "Small",
          "weight": "20 Lbs"
        },
        "createAt": "2017-03-31T05:58:05+00:00",
        "updateAt": "2017-03-31T05:59:54+00:00",
        "location": "In clinic",
        "referral": []
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/appointments

Passing parameter in query

Operators : '<', '>', '<>', '=', '<=', '>=', 'like'

Where clauses:

Key Description Type
appointmentType.id Appointment type appointmentType.id (lookup from appointment type list)
appointmentType.label Appointment type's label String
client.firstName Client first name for appointment String
client.id Client for appointment client.id (lookup from client list)
client.lastName Client last name for appointment String
createAt Appointment created date Date (ISO8601 format)
end Appointment end date Date (ISO8601 format)
id Appointment Id uuid
location Location for appointment String, accepted values:
• “In clinic”
• “At client”
note Appointment Note String
patient.id Patient for appointment patient.id (lookup from patient list)
patient.name Patient name for appointment String
provider.id Provider for appointment staff.id (lookup from staff list)
provider.firstName Provider first name for appointment String
provider.lastName Provider last name for appointment String
reason Appointment reason String
referral.id Referral id for appointment contactPerson.id (lookup from contact persons list)
company.id (lookup from compa- nies list)
referral.type Referral type String, accepted values:
• “Contact person”
• “Company”
start Appointment start date Date (ISO8601 format)
updateAt Appointment updated date Date (ISO8601 format)

Example Request:

Ordering:

Key Description Type
appointmentType.id Appointment type appointmentType.id (lookup from appointment type list)
appointmentType.label Appointment type's label String
client.firstName Client first name for appointment String
client.id Client for appointment client.id (lookup from client list)
client.lastName Client last name for appointment String
createAt Appointment created date Date (ISO8601 format)
end Appointment end date Date (ISO8601 format)
id Appointment Id uuid
location Location for appointment String, accepted values:
• “In clinic”
• “At client”
note Appointment Note String
patient.id Patient for appointment patient.id (lookup from patient list)
patient.name Patient name for appointment String
provider.id Provider for appointment staff.id (lookup from staff list)
provider.firstName Provider first name for appointment String
provider.lastName Provider last name for appointment String
reason Appointment reason String
referral.firstName Referral first name String
referral.id Referral id for appointment contactPerson.id (lookup from contact persons list)
company.id (lookup from compa- nies list)
referral.name Referral company name String
referral.lastName Referral last name String
referral.type Referral type String, accepted values:
• “Contact person”
• “Company”
start Appointment start date Date (ISO8601 format)
updateAt Appointment updated date Date (ISO8601 format)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/appointments?orderBy=start,desc

Store a newly created appointment in storage.

Method: POST

URL: https://{{domain}}/api/1.0.0/{apiKey}/appointments

Content Type : application/json

Response Status:

Parameters: See parameters for “Update Appointment”.

Example Request: See Example request for "Update Appointments" but use POST method.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/appointments" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/appointments",
  method: "POST",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

HTTP Request

POST api/1.0.0/{apiKey}/appointments

Display the specified appointment.

Method: POST

URL: https://{{domain}}/api/1.0.0/{apiKey}/appointments/{appointmentId}

Response Status:

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/appointments/{appointmentId}" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/appointments/{appointmentId}",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "resource": {
      "id": "c7fea4e8-375e-41",
      "reason": "Test API",
      "start": "2017-09-06T14:00:00+00:00",
      "end": "2017-09-06T14:10:00+00:00",
      "appointmentType": {
        "id": "11eaf7ff-ae26-11",
        "label": "Default"
      },
      "note": "",
      "category": {
        "id": 0,
        "label": "Medical"
      },
      "status": "Checked in",
      "provider": {
        "id": "fed298bf-ae25-11",
        "firstName": "Ami",
        "lastName": "Espinosa"
      },
      "client": {
        "id": "11ea66aa-ae3f-11",
        "firstName": "Rheanna",
        "lastName": "Finnegan"
      },
      "patient": {
        "id": "11ea7803-ae5c-11",
        "name": "Minion",
        "weight": "23 Lbs"
      },
      "createAt": "2017-04-19T02:02:51+00:00",
      "updateAt": "2017-05-26T08:48:38+00:00",
      "location": "In clinic",
      "referral": {
        "type": "Contact person",
        "id": "2589120c-ae31-11",
        "firstName": "Bernice",
        "lastName": "Mitchell"
      }
    }
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/appointments/{appointmentId}

Update the specified appointment in storage.

Method: PUT

URL: https://{{domain}}/api/1.0.0/{apiKey}/appointments/{appointmentId}

Content Type: application/json

Response Status:

Parameters:

Name Description Type Validation
reason Appointment reason String Required
start Appointment start time Date Required; Must be in ISO8601 format “2016- 08-19T06:15:47-0700”
end Appointment end time Date Required; Must be in ISO8601 format “2016- 08-19T06:15:47-0700”; Must be greater than start
appointmentType{id} Appointment type appointmentType.id, JSON Required (lookup from appointment types list)
note Note String Optional
provider{id} Provider for appointment staff.id, JSON Required (lookup from staff list)
client{id} Client client.id, JSON Optional (lookup from client list)
patient{id} Patient patient.id, JSON Optional(lookup from patient list)
location Location String Required Accepted values:
• “In clinic”
• “At client”
referral{type} Referral type String, JSON Optional Accepted values:
• “Contact person”
• “Company”
referral{id} Referral id
Sometimes an appointment was referred to the clinic by others either person or company.
contactPerson.id / company.id, JSON Required if referral{type} exists
If referral{type} is “Contact person”, then lookup from contact persons list
If referral{type} is “Company”, then lookup from compa- nies list

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/appointments/{appointmentId}" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/appointments/{appointmentId}",
  method: "PUT",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

HTTP Request

PUT api/1.0.0/{apiKey}/appointments/{appointments}

Appointment Status

List of appointments

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/census

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)
start To get the start of the day of the appointment start date Date (ISO8601 format)
end To get the end of the day of the appointment end date Date (ISO8601 format)
updateAt To get the end of the day of the appointment end date Date (ISO8601 format)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/census?page=2&perPage=200

Remarks:

  1. If only start date passed, the results will render all appointments from the start of the day of "start" until end of the day of current date.
  2. If only end date passed, the results will render all appointments starting from beginning until end of the day of "end" date.
  3. If start and end date passed, the results will render all appointments from the start of the day of "start" until end of the day of "end" date.
  4. If no start and end date passed, the results will render all appointments for current date.

Display a listing of the available appointment in census.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/census" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/census",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 3,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 3,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "header": {
      "header_date": "Friday, Apr 7, 2017",
      "prev_timestamp": "2017-04-06T07:00:00+00:00",
      "next_timestamp": "2017-04-08T07:00:00+00:00"
    },
    "resources": [
      {
        "id": "dfd29fd0-d9d7-44",
        "reason": "Exam 2",
        "start": "2017-04-06T15:45:00+00:00",
        "end": "2017-04-06T16:00:00+00:00",
        "appointmentType": {
          "id": "11eaf7ff-ae26-11",
          "label": "Default"
        },
        "note": "",
        "category": {
          "id": 0,
          "label": "Medical"
        },
        "status": "Visit complete",
        "provider": {
          "id": "fed298bf-ae25-11",
          "firstName": "Ami",
          "lastName": "Espinosa"
        },
        "client": {
          "id": "11efefd0-ae52-11",
          "firstName": "Latoya",
          "lastName": "Wardle"
        },
        "patient": {
          "id": "11f587a5-ae33-11",
          "name": "Small",
          "weight": "20 Lbs"
        },
        "createAt": "2017-04-06T08:58:32+00:00",
        "updateAt": "2017-04-06T09:32:19+00:00",
        "location": "In clinic",
        "referral": []
      },
      {
        "id": "4fc0c242-1777-41",
        "reason": "Test",
        "start": "2017-04-07T15:45:00+00:00",
        "end": "2017-04-07T16:00:00+00:00",
        "appointmentType": {
          "id": "11eaf7ff-ae26-11",
          "label": "Default"
        },
        "note": "",
        "category": {
          "id": 0,
          "label": "Medical"
        },
        "status": "Cancelled",
        "provider": {
          "id": "fed298bf-ae25-11",
          "firstName": "Ami",
          "lastName": "Espinosa"
        },
        "client": {
          "id": "11f9193b-ae52-11",
          "firstName": "Natalie",
          "lastName": "Tan"
        },
        "patient": {
          "id": "11f92496-ae26-11",
          "name": "Pat",
          "weight": ""
        },
        "createAt": "2017-04-07T08:58:32+00:00",
        "updateAt": "2017-04-07T09:32:19+00:00",
        "location": "In clinic",
        "referral": []
      },
      {
        "id": "0cccc30f-114b-4f",
        "reason": "Exam 1",
        "start": "2017-04-07T09:00:00+00:00",
        "end": "2017-04-07T09:15:00+00:00",
        "appointmentType": {
          "id": "11eaf7ff-ae26-11",
          "label": "Default"
        },
        "note": "",
        "category": {
          "id": 0,
          "label": "Medical"
        },
        "status": "Checked in",
        "provider": {
          "id": "fed298bf-ae25-11",
          "firstName": "Ami",
          "lastName": "Espinosa"
        },
        "client": {
          "id": "11f9193b-ae52-11",
          "firstName": "Natalie",
          "lastName": "Tan"
        },
        "patient": {
          "id": "11f92496-ae26-11",
          "name": "Pat",
          "weight": ""
        },
        "createAt": "2017-04-07T03:30:24+00:00",
        "updateAt": "2017-04-07T03:30:24+00:00",
        "location": "In clinic",
        "referral": []
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/census

Passing parameter in query

Operators : '='

Where clauses:

Key Description Type
end Appointment start date Date (ISO8601 format)
start Appointment start date Date (ISO8601 format)
timezone Timezone for date Valid timezone (eg: America/Los_Angeles)
updateAt Client updated date Date (ISO8601 format)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/census?start=2017-06-22T0:00:00-07:00&timezone=Asia/Kuala_Lumpur&end=2017-06-23T0:00:00-07:00&updateAt=2017-06-23T0:00:00-07:00

Update the specified appointment status.

Parameters:

Name Description Type Validation
status The appointment status Integer Required (Lookup from status)
date Appointment confirmation date Date (ISO8601 format) Required if status is 2 (Confirmed)
reason Appointment cancellation reason Integer Required if status is 3 (Cancelled)
1 - Cancelled by Client
2 - Cancelled by Clinic
3 - Created in Error
4 - No Show
createBy The staff id uuid Optional, required if updateBy is provided (Lookup from staffs), it should be same with updateBy
updateBy The staff id uuid Optional, required if createBy is provided (Lookup from staffs), it should be same with createBy

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/census/{appointmentId}" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/census/{appointmentId}",
  method: "PUT",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

HTTP Request

PUT api/1.0.0/{apiKey}/census/{appointmentId}

Appointment Status Type

List of Status Type

Display a listing of available the status.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/status" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/status",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 7,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 7,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": 1,
        "value": "Not confirmed"
      },
      {
        "id": 2,
        "value": "Confirmed"
      },
      {
        "id": 3,
        "value": "Cancelled"
      },
      {
        "id": 4,
        "value": "Checked in"
      },
      {
        "id": 5,
        "value": "In room"
      },
      {
        "id": 6,
        "value": "Visit complete"
      },
      {
        "id": 7,
        "value": "Checked out"
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/status

Appointment Types

List of Appointment Types

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/appointment-types

Response Status:

Remarks:

  1. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/appointment-types?page=2&perPage=200

Display a listing of the the practice’s appointment types.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/appointment-types" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/appointment-types",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 1,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 1,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": "11eaf7ff-ae26-11",
        "label": "Default",
        "duration": 15,
        "color": {
          "id": 16,
          "label": "Light Yellow",
          "code": "FFFFE0"
        },
        "description": "",
        "isDefault": true
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/appointment-types

Appointment Type Color

List of Appointment Type Colors

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/colors

Response Status:

Remarks:

  1. Clinic's timezone is displayed in the response.meta.

Display a listing of the available colors.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/colors" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/colors",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 60,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 3,
      "from": 1,
      "to": 20,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": 1,
        "code": "CD5C5C",
        "label": "Indian Red"
      },
      {
        "id": 2,
        "code": "F08080",
        "label": "Light Coral"
      },
      {
        "id": 3,
        "code": "E9967A",
        "label": "Dark Salmon"
      },
      {
        "id": 4,
        "code": "FFA07A",
        "label": "Light Salmon"
      },
      {
        "id": 5,
        "code": "DC143C",
        "label": "Crimson"
      },
      {
        "id": 6,
        "code": "B22222",
        "label": "Fire Brick"
      },
      {
        "id": 7,
        "code": "FFB6C1",
        "label": "Light Pink"
      },
      {
        "id": 8,
        "code": "FF69B4",
        "label": "Hot Pink"
      },
      {
        "id": 9,
        "code": "DB7093",
        "label": "Pale Violet Red"
      },
      {
        "id": 10,
        "code": "FF7F50",
        "label": "Coral"
      },
      {
        "id": 11,
        "code": "FF6347",
        "label": "Tomato"
      },
      {
        "id": 12,
        "code": "FF4500",
        "label": "Orange Red"
      },
      {
        "id": 13,
        "code": "FFA500",
        "label": "Orange"
      },
      {
        "id": 14,
        "code": "FFD700",
        "label": "Gold"
      },
      {
        "id": 15,
        "code": "FFFF00",
        "label": "Yellow"
      },
      {
        "id": 16,
        "code": "FFFFE0",
        "label": "Light Yellow"
      },
      {
        "id": 17,
        "code": "FFFACD",
        "label": "Lemon Chiffon"
      },
      {
        "id": 18,
        "code": "FAFAD2",
        "label": "Light Goldenrod Yellow"
      },
      {
        "id": 19,
        "code": "FFEFD5",
        "label": "Papaya Whip"
      },
      {
        "id": 20,
        "code": "FFE4B5",
        "label": "Moccasin"
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/colors

Appointment Providers

List of Appointment Providers

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/appointment-providers

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/appointment-providers?page=2&perPage=200

Display a listing of the appointment providers.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/appointment-providers" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/appointment-providers",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 2,
      "perPage": 200,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 2,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": "b54755cd-34uu-48",
        "index": 2,
        "displayName": "John Doe",
        "actorId": "0000000000000002",
        "type": 1,
        "isActive": true,
        "createBy": "0000000000000003",
        "createAt": "2020-05-06T01:56:14+00:00",
        "updateBy": "0000000000000003",
        "updateAt": "2020-05-06T01:56:14+00:00"
      },
      {
        "id": "d084cb8b-q3sw-4f",
        "index": 1,
        "displayName": "Non staff schedule column",
        "actorId": null,
        "type": 0,
        "isActive": true,
        "createBy": "0000000000000003",
        "createAt": "2020-05-04T18:27:57+00:00",
        "updateBy": "0000000000000003",
        "updateAt": "2020-05-04T18:27:57+00:00"
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/appointment-providers

Passing parameter in query

Operators : '<', '>', '<>', '=', '<=', '>=', 'like'

Where clauses:

Key Description Type
staff.id Staff for appointment providers staff.id (lookup from staff list)
staff.firstName Staff first name for appointment providers String
staff.lastName Staff last name for appointment providers String
type Appointment providers type • 0 - Non-Staff
• 1 - Staff
isActive Appointment providers active • 0 - Not Active
• 1 - Active
createAt Appointment providers created date Date (ISO8601 format)
updateAt Appointment providers updated date Date (ISO8601 format)

Example Request:

Ordering:

Key Description Type
createAt Appointment providers created date Date (ISO8601 format)
updateAt Appointment providers updated date Date (ISO8601 format)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/appointment-providers?orderBy=createAt,desc

Display the specified appointment provider.

Method: POST

URL: https://{{domain}}/api/1.0.0/{apiKey}/appointment-providers/{appointmentProviderId}

Response Status:

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/appointment-providers/{appointmentProviderId}" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url:
    "http://{{domain}}/api/1.0.0/{apiKey}/appointment-providers/{appointmentProviderId}",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "resource": {
      "id": "b54755cd-34uu-48",
      "index": 2,
      "displayName": "John Doe",
      "actorId": "0000000000000002",
      "type": 1,
      "isActive": true,
      "createBy": "0000000000000003",
      "createAt": "2020-05-06T01:56:14+00:00",
      "updateBy": "0000000000000003",
      "updateAt": "2020-05-06T01:56:14+00:00"
    }
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/appointment-providers/{appointmentProviderId}

Client

List of Clients

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/clients

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)
showAll Show all clients including deleted clients Integer (default 0)
0 - False
1 - True

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/clients?page=2&perPage=200

Display a listing of the clients.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/clients" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/clients",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 2,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 2,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": "11efefd0-ae52-11",
        "index": 12,
        "firstName": "Latoya",
        "lastName": "Wardle",
        "address": "",
        "city": "",
        "state": "",
        "country": "",
        "zipcode": "",
        "home": "",
        "work": "",
        "mobile": "",
        "email": "l.wardle@msn.com.my",
        "fax": "",
        "createAt": "2017-03-20T08:58:54+00:00",
        "updateAt": "2017-07-26T09:55:01+00:00",
        "firstVisit": "2017-03-30T14:00:00+00:00",
        "lastVisit": "2017-06-13T11:00:00+00:00",
        "paymentTerm": "Due upon receipt",
        "discount": "",
        "reminderOptions": ["email"],
        "status": "Active",
        "isDeleted": false,
        "patients": [
          {
            "id": "11f587a5-ae33-11",
            "index": 21,
            "firstVisit": "2017-03-30T14:00:00+00:00",
            "lastVisit": "2017-06-13T11:00:00+00:00",
            "name": "Small",
            "species": {
              "id": 1,
              "label": "Canine"
            },
            "color": "",
            "sex": {
              "id": 3,
              "label": "Female (intact)"
            },
            "breeds": [
              {
                "id": 26,
                "label": "American Staffordshire Terrier"
              }
            ],
            "birthdate": "",
            "chip": "",
            "status": "Active",
            "deceasedDate": "",
            "inactiveDate": "",
            "isPrimary": true,
            "isDeleted": false
          }
        ]
      },
      {
        "id": "11f9193b-ae52-11",
        "index": 23,
        "firstName": "Natalie",
        "lastName": "Tan",
        "address": "",
        "city": "",
        "state": "",
        "country": "",
        "zipcode": "",
        "home": "",
        "work": "",
        "mobile": "",
        "email": "natalie@gmail.com",
        "fax": "",
        "createAt": "2017-04-07T02:45:14+00:00",
        "updateAt": "2017-06-21T07:21:47+00:00",
        "firstVisit": "2017-04-07T10:30:00+00:00",
        "lastVisit": "2017-06-21T02:00:00+00:00",
        "paymentTerm": "Due upon receipt",
        "discount": "",
        "reminderOptions": ["email"],
        "status": "Active",
        "isDeleted": false,
        "patients": [
          {
            "id": "11f92496-ae26-11",
            "index": 23,
            "firstVisit": "2017-04-07T10:30:00+00:00",
            "lastVisit": "2017-06-21T02:00:00+00:00",
            "name": "Pat",
            "species": {
              "id": 1,
              "label": "Canine"
            },
            "color": "",
            "sex": {
              "id": 3,
              "label": "Female (intact)"
            },
            "breeds": [
              {
                "id": 26,
                "label": "American Staffordshire Terrier"
              }
            ],
            "birthdate": "",
            "chip": "",
            "status": "Active",
            "deceasedDate": "",
            "inactiveDate": "",
            "isPrimary": true,
            "isDeleted": false
          }
        ]
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/clients

Passing parameter in query

Operators : '<', '>', '<>', '=', '<=', '>=', 'like', 'in'

Where clauses:

Key Description Type
address Address for client String
city City for client String
country Country for client String
createAt Client created date Date (ISO8601 format)
email Email for client String
fax Fax for client String
firstName Client first name String
home Home number for client String/Integer
id Client Id uuid
lastName Client last name String
mobile Mobile number for client String/Integer
state State for client String
work Work number for client String/Integer
updateAt Client updated date Date (ISO8601 format)
zipcode Zipcode for client Integer

Ordering:

Key Description Type
address Address for client String
city City for client String
country Country for client String
createAt Client created date Date (ISO8601 format)
email Email for client String
fax Fax for client String
firstName Client first name String
home Home number for client String/Integer
id Client Id uuid
lastName Client last name String
mobile Mobile number for client String/Integer
state State for client String
work Work number for client String/Integer
updateAt Client updated date Date (ISO8601 format)
zipcode Zipcode for client Integer

Example Request:

Store a newly created client in storage.

Parameters: See parameters for “Update Client”.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/clients" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/clients",
  method: "POST",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

HTTP Request

POST api/1.0.0/{apiKey}/clients

Display the specified client.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/clients/{clientId}" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/clients/{clientId}",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "resource": {
      "id": "11efefd0-ae52-11",
      "index": 12,
      "firstName": "Latoya",
      "lastName": "Wardle",
      "address": "",
      "city": "",
      "state": "",
      "country": "",
      "zipcode": "",
      "home": "",
      "work": "",
      "mobile": "",
      "email": "l.wardle@msn.com.my",
      "fax": "",
      "createAt": "2017-03-20T08:58:54+00:00",
      "updateAt": "2017-07-26T09:55:01+00:00",
      "firstVisit": "2017-03-30T14:00:00+00:00",
      "lastVisit": "2017-06-13T11:00:00+00:00",
      "paymentTerm": "Due upon receipt",
      "discount": "",
      "reminderOptions": ["email"],
      "status": "Active",
      "isDeleted": false,
      "patients": [
        {
          "id": "11f587a5-ae33-11",
          "index": 35,
          "firstVisit": "2017-03-30T14:00:00+00:00",
          "lastVisit": "2017-06-13T11:00:00+00:00",
          "name": "Small",
          "species": {
            "id": 1,
            "label": "Canine"
          },
          "color": "",
          "sex": {
            "id": 3,
            "label": "Female (intact)"
          },
          "breeds": [
            {
              "id": 26,
              "label": "American Staffordshire Terrier"
            }
          ],
          "birthdate": "",
          "chip": "",
          "status": "Active",
          "deceasedDate": "",
          "inactiveDate": "",
          "isPrimary": true,
          "isDeleted": false
        }
      ]
    }
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/clients/{clientId}

Update the specified client in storage.

Parameters :

Name Description Type Validation
address Street address String Optional
city City String Optional
country Country String Optional
email Email String Optional
fax Fax number String Optional
firstName Client first name String Required
home Home phone String Optional
lastName Client last name String Required
mobile Mobile phone String Optional
state State String Optional
work Work phone String Optional
zipcode Zipcode String Optional
discount{id} Discount type discount.id, JSON Optional (lookup from inventory discount list)
reminderOptions Reminder Option Array Optional Accepted values:
• “mail”
• "email”
• "phone"
• "sms

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/clients/{clientId}" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/clients/{clientId}",
  method: "PUT",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

HTTP Request

PUT api/1.0.0/{apiKey}/clients/{clientId}

Communication

List of Communication

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/communications

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/communications?page=2&perPage=200

Display a listing of the communications.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/communications" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/communications",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 2,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 2,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": "13e77dca-ae52-11",
        "index": 1,
        "content": "<p>Test communication 1</p>",
        "patientId": "b1d8f09d-0540-40",
        "clientId": "77670325-cb21-44",
        "contactId": "",
        "appointmentId": "70345278-b7c6-41",
        "isActive": true,
        "createBy": "0000000000000003",
        "createAt": "2017-09-06T14:00:00+00:00",
        "updateBy": "0000000000000003",
        "updateAt": "2017-09-06T14:00:00+00:00",
        "date": "2019-12-02T02:27:42+00:00",
        "type": 2
      },
      {
        "id": "13e5d88e-ae5a-11",
        "index": 2,
        "content": "<p>Test communication 2</p>",
        "patientId": "b1d8f09d-0540-40",
        "clientId": "77670325-cb21-44",
        "contactId": "",
        "appointmentId": "80559929-4616-44",
        "isActive": true,
        "createBy": "0000000000000003",
        "createAt": "2017-09-05T14:00:00+00:00",
        "updateBy": "0000000000000003",
        "updateAt": "2019-12-03T01:53:34+00:00",
        "date": "2017-09-05T14:00:00+00:00",
        "type": 2
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/communications

Passing parameter in query

Operators : '<', '>', '<>', '=', '<=', '>=', 'like'

Where clauses:

Key Description Type
client.firstName Client first name for communication String
client.id Client for communication client.id (lookup from client list)
client.lastName Client last name for communication String
createAt Communication created date Date (ISO8601 format)
type Communication type • 1 - Phone
• 2 - In Person
• 3 - Fax
• 4 - Email
• 5 - Mail
• 6 - SMS (Text)
isActive Communication active • 0 - Not Active
• 1 - Active
patient.id Patient for communication patient.id (lookup from patient list)
patient.name Patient name for communication String
updateAt Communication updated date Date (ISO8601 format)

Example Request:

Ordering:

Key Description Type
createAt Communication created date Date (ISO8601 format)
updateAt Communication updated date Date (ISO8601 format)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/communications?orderBy=createAt,desc

Store a newly created communication in storage.

Method: POST

URL: https://{{domain}}/api/1.0.0/{apiKey}/communications

Content Type : application/json

Response Status:

Parameters: See parameters for “Update Communication".

Example Request: See Example request for "Update Communication" but use POST method.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/communications" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/communications",
  method: "POST",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

HTTP Request

POST api/1.0.0/{apiKey}/communications

Display the specified communication.

Method: POST

URL: https://{{domain}}/api/1.0.0/{apiKey}/communications/{communicationId}

Response Status:

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/communications/{communicationId}" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/communications/{communicationId}",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "resource": {
      "id": "13e77dca-ae52-11",
      "index": 1,
      "content": "<p>Test communication 1</p>",
      "patientId": "b1d8f09d-0540-40",
      "clientId": "77670325-cb21-44",
      "contactId": "",
      "appointmentId": "70345278-b7c6-41",
      "isActive": true,
      "createBy": "0000000000000003",
      "createAt": "2017-09-06T14:00:00+00:00",
      "updateBy": "0000000000000003",
      "updateAt": "2017-09-06T14:00:00+00:00",
      "date": "2019-12-02T02:27:42+00:00",
      "type": 2
    }
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/communications/{communicationId}

Update the specified communication in storage.

Method: PUT

URL: https://{{domain}}/api/1.0.0/{apiKey}/communications/{communicationId}

Content Type: application/json

Response Status:

Parameters:

Name Description Type Validation
content Communication content String Required
client{id} Client client.id, JSON Required (lookup from client list)
patient{id} Patient patient.id, JSON Optional(lookup from patient list)
date Communication date Date Required; Must be in ISO8601 format “2016- 08-19T06:15:47-0700”;
type Communication type Integer Required;
• 1 - Phone
• 2 - In Person
• 3 - Fax
• 4 - Email
• 5 - Mail
• 6 - SMS (Text)

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/communications/{communicationId}" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/communications/{communicationId}",
  method: "PUT",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

HTTP Request

PUT api/1.0.0/{apiKey}/communications/{communicationId}

Company

List of Companies

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/companies

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/companies?page=2&perPage=200

Display a listing of the companies from the practice’s contacts list.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/companies" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/companies",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 2,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 2,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": "144fbc9b-ae6a-11",
        "name": "Excellent Visions Medical",
        "address": "16 Jalan Sungai Ujong",
        "city": "George Town",
        "state": "Pulau Pinang",
        "zipcode": "10100",
        "phone": "4567891",
        "fax": "",
        "email": "",
        "website": "www.excellent-medical.com",
        "createAt": "2017-04-20T06:16:12+00:00",
        "updateAt": "2017-04-20T06:16:12+00:00",
        "country": "Malaysia",
        "accountNo": ""
      },
      {
        "id": "144fc031-ae35-11",
        "name": "DKSH S/B",
        "address": "Jalan Subang Perdana",
        "city": "Shah Alam",
        "state": "Selangor",
        "zipcode": "40150",
        "phone": "",
        "fax": "",
        "email": "",
        "website": "www.dkshb.com.my",
        "createAt": "2017-04-20T06:17:15+00:00",
        "updateAt": "2017-04-20T06:17:15+00:00",
        "country": "Malaysia",
        "accountNo": ""
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/companies

Contact

List of Contacts

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/contact-persons

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/contact-persons?page=2&perPage=200

Display a listing of the contacts from the practice’s contacts list.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/contact-persons" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/contact-persons",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 2,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 2,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": "0000000000065562",
        "firstName": "Karen",
        "lastName": "S",
        "salutation": "",
        "title": "Account Manager",
        "address": "",
        "city": "",
        "state": "",
        "country": "",
        "zipcode": "",
        "work": "",
        "mobile": "",
        "email": "",
        "fax": "",
        "createAt": "2013-06-25T18:25:21+00:00",
        "updateAt": "2013-06-25T18:26:37+00:00"
      },
      {
        "id": "0000000000065564",
        "firstName": "Adam",
        "lastName": "B",
        "salutation": "DVM",
        "title": "Dr.",
        "address": "11238 Buzzy Drive",
        "city": "San Francisco",
        "state": "California",
        "country": "United States",
        "zipcode": "91173",
        "work": "510-874-2571",
        "mobile": "510-471-2794",
        "email": "vetterqa@gmail.com",
        "fax": "408-758-6634",
        "createAt": "2013-07-03T04:03:04+00:00",
        "updateAt": "2015-04-03T04:35:47+00:00"
      },
      {
        "id": "0000000000065565",
        "firstName": "Phil",
        "lastName": "Z",
        "salutation": "",
        "title": "Dr.",
        "address": "",
        "city": "Fogelsville",
        "state": "Pennsylvania",
        "country": "",
        "zipcode": "18051",
        "work": "",
        "mobile": "",
        "email": "",
        "fax": "",
        "createAt": "2013-07-03T16:46:51+00:00",
        "updateAt": "2013-07-04T05:33:20+00:00"
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/contact-persons

Estimate

List of Estimates

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/estimates

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/estimates?page=2&perPage=200

Display a listing of the estimates.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/estimates" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/estimates",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 2,
      "perPage": 200,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 2,
      "timezone": "America/Los_Angeles"
    },
    "resources": [
      {
        "id": "792cc88c-931f-11",
        "index": 110,
        "expire": "2018-07-04T07:48:28+00:00",
        "start": "2018-06-20T07:48:00+00:00",
        "status": 0,
        "isactive": true,
        "create_at": "2018-06-20T07:48:28+00:00",
        "update_at": "2018-06-20T07:48:28+00:00",
        "client": {
          "id": "a19ec978-bb97-11",
          "firstname": "Erick",
          "lastname": "Thompson"
        },
        "items": [],
        "name": "Estimate #1"
      },
      {
        "id": "ae8fb86c-c5a9-11",
        "index": 120,
        "expire": "2018-07-31T15:04:18+00:00",
        "start": "2018-07-17T15:04:00+00:00",
        "isactive": true,
        "create_at": "2018-07-17T15:04:18+00:00",
        "update_at": "2018-07-17T15:04:37+00:00",
        "client": {
          "id": "a172b0fe-bb97-11",
          "firstname": "Thomas",
          "lastname": "Benedict"
        },
        "items": [
          {
            "id": "ae8fcba4-c5a9-11",
            "index": 0,
            "date": "2018-07-17T15:04:00+00:00",
            "quantity_min": 1,
            "quantity_max": -1,
            "price_min": 20,
            "price_max": 0,
            "unit_price_min": 20,
            "unit_price_max": 0,
            "tax_min": 2,
            "tax_max": 0,
            "fee": 0,
            "total_min": 0,
            "total_max": 0,
            "status": 0,
            "isactive": true,
            "create_at": "2018-07-17T15:04:18+00:00",
            "update_at": "2018-07-17T15:04:18+00:00",
            "patient": {
              "id": "a1729d62-bb97-11",
              "name": "Cameo"
            },
            "item": {
              "id": "a3492e78-c9a8-4c",
              "name": "Vaccination 1"
            }
          },
          {
            "id": "ae8ff908-c5a9-11",
            "index": 1,
            "date": "2018-07-17T15:04:00+00:00",
            "quantity_min": 1,
            "quantity_max": -1,
            "price_min": 50,
            "price_max": 0,
            "unit_price_min": 50,
            "unit_price_max": 0,
            "tax_min": 5,
            "tax_max": 0,
            "fee": 0,
            "total_min": 0,
            "total_max": 0,
            "status": 0,
            "isactive": true,
            "create_at": "2018-07-17T15:04:18+00:00",
            "update_at": "2018-07-17T15:04:18+00:00",
            "patient": {
              "id": "a1729d62-bb97-11",
              "name": "Lassy"
            },
            "item": {
              "id": "0db21e6e-1b09-4e",
              "name": "Vaccination 2"
            }
          },
          {
            "id": "ae903198-c5a9-11",
            "index": 2,
            "date": "2018-07-17T15:04:00+00:00",
            "quantity_min": 1,
            "quantity_max": -1,
            "price_min": 50,
            "price_max": 0,
            "unit_price_min": 50,
            "unit_price_max": 0,
            "tax_min": 5,
            "tax_max": 0,
            "fee": 0,
            "total_min": 0,
            "total_max": 0,
            "status": 0,
            "isactive": true,
            "create_at": "2018-07-17T15:04:18+00:00",
            "update_at": "2018-07-17T15:04:18+00:00",
            "patient": {
              "id": "a1729d62-bb97-11",
              "name": "Lassy"
            },
            "item": {
              "id": "477974ef-0208-45",
              "name": "Lab work 1"
            }
          },
          {
            "id": "ae906df2-c5a9-11",
            "index": 3,
            "date": "2018-07-17T15:04:00+00:00",
            "quantity_min": 1,
            "quantity_max": -1,
            "price_min": 50,
            "price_max": 0,
            "unit_price_min": 50,
            "unit_price_max": 0,
            "tax_min": 5,
            "tax_max": 0,
            "fee": 0,
            "total_min": 0,
            "total_max": 0,
            "status": 0,
            "isactive": true,
            "create_at": "2018-07-17T15:04:18+00:00",
            "update_at": "2018-07-17T15:04:18+00:00",
            "patient": {
              "id": "a1729d62-bb97-11",
              "name": "Lassy"
            },
            "item": {
              "id": "ce401b5a-0a52-4c",
              "name": "Medicine 3"
            }
          },
          {
            "id": "ae90a16e-c5a9-11",
            "index": 4,
            "date": "2018-07-17T15:04:00+00:00",
            "quantity_min": 1,
            "quantity_max": -1,
            "price_min": 50,
            "price_max": 0,
            "unit_price_min": 50,
            "unit_price_max": 0,
            "tax_min": 5,
            "tax_max": 0,
            "fee": 0,
            "total_min": 0,
            "total_max": 0,
            "status": 0,
            "isactive": true,
            "create_at": "2018-07-17T15:04:19+00:00",
            "update_at": "2018-07-17T15:04:19+00:00",
            "patient": {
              "id": "a1729d62-bb97-11",
              "name": "Lassy"
            },
            "item": {
              "id": "d3683365-4ff4-4f",
              "name": "Medicine 2"
            }
          },
          {
            "id": "ae90d3d2-c5a9-11",
            "index": 5,
            "date": "2018-07-17T15:04:00+00:00",
            "quantity_min": 1,
            "quantity_max": -1,
            "price_min": 50,
            "price_max": 0,
            "unit_price_min": 50,
            "unit_price_max": 0,
            "tax_min": 5,
            "tax_max": 0,
            "fee": 0,
            "total_min": 0,
            "total_max": 0,
            "status": 0,
            "isactive": true,
            "create_at": "2018-07-17T15:04:19+00:00",
            "update_at": "2018-07-17T15:04:19+00:00",
            "patient": {
              "id": "a1729d62-bb97-11",
              "name": "Lassy"
            },
            "item": {
              "id": "c9efb7dc-1f30-45",
              "name": "Medicine 1"
            }
          }
        ],
        "name": "Estimate #2",
        "status": 1
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/estimates

Passing parameter in query

Operators : '<', '>', '<>', '=', '<=', '>=', 'like'

Where clauses:

Key Description Type
estimate.id Id for estimate uuid
client.id Client for estimate client.id (lookup from client list)
status Estimate status • 0 - Open
• 1 - Approved
isactive Estimate active • 0 - Not Active
• 1 - Active
start Estimate start date Date (ISO8601 format)
expire Estimate expire date Date (ISO8601 format)
create_at Estimate create_at date Date (ISO8601 format)
update_at Estimate update_at date Date (ISO8601 format)

Example Request:

Ordering:

Key Description Type
start Estimate start date Date (ISO8601 format)
expire Estimate expire date Date (ISO8601 format)
create_at Estimate create_at date Date (ISO8601 format)
update_at Estimate update_at date Date (ISO8601 format)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/estimates?orderBy=update_at,desc

Display the specified estimate.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/estimates/{estimateId}" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/estimates/{estimateId}",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "resources": {
      "id": "ae8fb86c-c5a9-11",
      "index": 110,
      "expire": "2018-07-31T15:04:18+00:00",
      "start": "2018-07-17T15:04:00+00:00",
      "isactive": true,
      "create_at": "2018-07-17T15:04:18+00:00",
      "update_at": "2018-07-17T15:04:37+00:00",
      "client": {
        "id": "a172b0fe-bb97-11",
        "firstname": "Thomas",
        "lastname": "Benedict"
      },
      "items": [
        {
          "id": "ae8fcba4-c5a9-11",
          "index": 0,
          "date": "2018-07-17T15:04:00+00:00",
          "quantity_min": 1,
          "quantity_max": -1,
          "price_min": 20,
          "price_max": 0,
          "unit_price_min": 20,
          "unit_price_max": 0,
          "tax_min": 2,
          "tax_max": 0,
          "fee": 0,
          "total_min": 0,
          "total_max": 0,
          "status": 0,
          "isactive": true,
          "create_at": "2018-07-17T15:04:18+00:00",
          "update_at": "2018-07-17T15:04:18+00:00",
          "patient": {
            "id": "a1729d62-bb97-11",
            "name": "Cameo"
          },
          "item": {
            "id": "a3492e78-c9a8-4c",
            "name": "Vaccination 1"
          }
        },
        {
          "id": "ae8ff908-c5a9-11",
          "index": 1,
          "date": "2018-07-17T15:04:00+00:00",
          "quantity_min": 1,
          "quantity_max": -1,
          "price_min": 50,
          "price_max": 0,
          "unit_price_min": 50,
          "unit_price_max": 0,
          "tax_min": 5,
          "tax_max": 0,
          "fee": 0,
          "total_min": 0,
          "total_max": 0,
          "status": 0,
          "isactive": true,
          "create_at": "2018-07-17T15:04:18+00:00",
          "update_at": "2018-07-17T15:04:18+00:00",
          "patient": {
            "id": "a1729d62-bb97-11",
            "name": "Lassy"
          },
          "item": {
            "id": "0db21e6e-1b09-4e",
            "name": "Vaccination 2"
          }
        },
        {
          "id": "ae903198-c5a9-11",
          "index": 2,
          "date": "2018-07-17T15:04:00+00:00",
          "quantity_min": 1,
          "quantity_max": -1,
          "price_min": 50,
          "price_max": 0,
          "unit_price_min": 50,
          "unit_price_max": 0,
          "tax_min": 5,
          "tax_max": 0,
          "fee": 0,
          "total_min": 0,
          "total_max": 0,
          "status": 0,
          "isactive": true,
          "create_at": "2018-07-17T15:04:18+00:00",
          "update_at": "2018-07-17T15:04:18+00:00",
          "patient": {
            "id": "a1729d62-bb97-11",
            "name": "Lassy"
          },
          "item": {
            "id": "477974ef-0208-45",
            "name": "Lab work 1"
          }
        },
        {
          "id": "ae906df2-c5a9-11",
          "index": 3,
          "date": "2018-07-17T15:04:00+00:00",
          "quantity_min": 1,
          "quantity_max": -1,
          "price_min": 50,
          "price_max": 0,
          "unit_price_min": 50,
          "unit_price_max": 0,
          "tax_min": 5,
          "tax_max": 0,
          "fee": 0,
          "total_min": 0,
          "total_max": 0,
          "status": 0,
          "isactive": true,
          "create_at": "2018-07-17T15:04:18+00:00",
          "update_at": "2018-07-17T15:04:18+00:00",
          "patient": {
            "id": "a1729d62-bb97-11",
            "name": "Lassy"
          },
          "item": {
            "id": "ce401b5a-0a52-4c",
            "name": "Medicine 3"
          }
        },
        {
          "id": "ae90a16e-c5a9-11",
          "index": 4,
          "date": "2018-07-17T15:04:00+00:00",
          "quantity_min": 1,
          "quantity_max": -1,
          "price_min": 50,
          "price_max": 0,
          "unit_price_min": 50,
          "unit_price_max": 0,
          "tax_min": 5,
          "tax_max": 0,
          "fee": 0,
          "total_min": 0,
          "total_max": 0,
          "status": 0,
          "isactive": true,
          "create_at": "2018-07-17T15:04:19+00:00",
          "update_at": "2018-07-17T15:04:19+00:00",
          "patient": {
            "id": "a1729d62-bb97-11",
            "name": "Lassy"
          },
          "item": {
            "id": "d3683365-4ff4-4f",
            "name": "Medicine 2"
          }
        },
        {
          "id": "ae90d3d2-c5a9-11",
          "index": 5,
          "date": "2018-07-17T15:04:00+00:00",
          "quantity_min": 1,
          "quantity_max": -1,
          "price_min": 50,
          "price_max": 0,
          "unit_price_min": 50,
          "unit_price_max": 0,
          "tax_min": 5,
          "tax_max": 0,
          "fee": 0,
          "total_min": 0,
          "total_max": 0,
          "status": 0,
          "isactive": true,
          "create_at": "2018-07-17T15:04:19+00:00",
          "update_at": "2018-07-17T15:04:19+00:00",
          "patient": {
            "id": "a1729d62-bb97-11",
            "name": "Lassy"
          },
          "item": {
            "id": "c9efb7dc-1f30-45",
            "name": "Medicine 1"
          }
        }
      ],
      "name": "Estimate #2",
      "status": 1
    }
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/estimates/{estimateId}

Inventory

List of Inventory Items

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/inventories

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/inventories?page=2&perPage=200

Display a listing of the inventory items.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/inventories" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/inventories",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 4,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 4,
      "timezone": {
        "timezone_type": 3,
        "timezone": "America/Los_Angeles"
      }
    },
    "resources": [
      {
        "id": "0d9962c8-5038-45",
        "name": "Imrab 1 Rabies Vaccine",
        "displayName": "Imrab 1 Rabies Vaccine",
        "createAt": "2017-11-13T06:18:07+00:00",
        "updateAt": "2018-02-21T13:49:42+00:00",
        "dose": 1,
        "price": "35.00",
        "minimumPrice": "0.00",
        "controlledItem": true,
        "status": "Active",
        "printOnInvoice": true,
        "itemType": {
          "id": 10585,
          "label": "Prescriptions",
          "type": "Pharmacy"
        },
        "unitOfMeasure": "Unit(s)"
      },
      {
        "id": "151d38b7-ae6a-11",
        "name": "Anesthesia",
        "displayName": "Anesthesia",
        "createAt": "2017-07-16T01:56:31+00:00",
        "updateAt": "2017-11-13T03:02:28+00:00",
        "dose": 1,
        "price": "10.00",
        "minimumPrice": "0.00",
        "controlledItem": false,
        "status": "Active",
        "printOnInvoice": true,
        "itemType": {
          "id": 10595,
          "label": "Anesthesia",
          "type": "Anesthesia"
        },
        "unitOfMeasure": "Unit(s)"
      },
      {
        "id": "b5f0c656-b436-40",
        "name": "Dispensing Fee",
        "displayName": "Dispensing Fee",
        "createAt": "2017-11-13T03:03:22+00:00",
        "updateAt": "2017-11-13T03:03:22+00:00",
        "dose": 1,
        "price": "10.00",
        "minimumPrice": "0.00",
        "controlledItem": false,
        "status": "Active",
        "printOnInvoice": true,
        "itemType": {
          "id": 10592,
          "label": "Fees",
          "type": "Administrative Fees"
        },
        "unitOfMeasure": "Unit(s)"
      },
      {
        "id": "e525b334-26b8-4b",
        "name": "Anesthesia Chamber Lexan",
        "displayName": "Anesthesia Chamber Lexan",
        "createAt": "2017-11-13T03:03:39+00:00",
        "updateAt": "2017-11-13T03:03:39+00:00",
        "dose": 1,
        "price": "20.00",
        "minimumPrice": "0.00",
        "controlledItem": false,
        "status": "Active",
        "printOnInvoice": true,
        "itemType": {
          "id": 10595,
          "label": "Anesthesia",
          "type": "Anesthesia"
        },
        "unitOfMeasure": "Unit(s)"
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/inventories

Passing parameter in query

Operators : '<', '>', '<>', '=', '<=', '>=', 'like', 'in'

Where clauses:

Key Description Type
id Item Id uuid
name Item name String
price Item price String
active Item status 1 - Active, 0 - Inactive
controlledItem Controlled item 1 - True, 0 - False
createAt Item create date Date (ISO8601 format)
updateAt Item updated date Date (ISO8601 format)

Example Request:

Ordering:

Key Description Type
name Item name String
createAt Item create date Date (ISO8601 format)
updateAt Item updated date Date (ISO8601 format)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/inventories?orderBy=createAt,desc

Display the specified inventory.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/inventories/{inventoryid}" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/inventories/{inventoryid}",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "resource": {
        "id": "0000000000085901",
        "name": "Acepromazine 25mg Tablets",
        "displayName": "Acepromazine 25mg Tablets",
        "dose": 1,
        "price": 3.25,
        "minimumPrice": 3.25,
        "controlledItem": false,
        "status": "Active",
        "printOnInvoice": true,
        "itemType": {
            "id": 1839,
            "label": "Prescriptions",
            "type": "Pharmacy"
        },
        "unitOfMeasure": "Unit(s)",
        "createAt": "2015-01-05T23:51:46+0000",
        "updateAt": "2015-02-12T11:40:43+0000",
        "balance": -1818300
    }
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/inventories/{inventoryid}

Inventory Adjustments

List of Inventory Adjustments

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/inventory-adjustments

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/inventory-measurements?page=2&perPage=200

Display a listing of the inventory adjustments.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/inventory-adjustments" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/inventory-adjustments",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 3,
      "perPage": 200,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 3,
      "timezone": {
        "timezone_type": 3,
        "timezone": "America/Los_Angeles"
      }
    },
    "resources": [
      {
        "id": "0000000000000008",
        "date": "2013-08-13T07:00:00+00:00",
        "note": "",
        "isactive": true,
        "create_by": "0000000000000009",
        "create_at": "2013-08-13T21:10:02+00:00",
        "update_by": "0000000000000009",
        "update_at": "2013-08-13T21:10:02+00:00",
        "item": {
          "id": "0000000000000384",
          "name": "Amoxicillin 500mg Capsules"
        },
        "adjustment": 618,
        "reason": "Other"
      },
      {
        "id": "0000000000000009",
        "date": "2013-08-14T07:00:00+00:00",
        "note": "",
        "isactive": true,
        "create_by": "0000000000000009",
        "create_at": "2013-08-14T16:36:31+00:00",
        "update_by": "0000000000000009",
        "update_at": "2013-08-14T16:36:31+00:00",
        "item": {
          "id": "0000000000000507",
          "name": "Viralys Lysine Gel 5oz"
        },
        "adjustment": 4,
        "reason": "Other"
      },
      {
        "id": "0000000000000010",
        "date": "2013-08-14T07:00:00+00:00",
        "note": "",
        "isactive": true,
        "create_by": "0000000000000009",
        "create_at": "2013-08-14T16:39:18+00:00",
        "update_by": "0000000000000009",
        "update_at": "2013-08-14T16:39:18+00:00",
        "item": {
          "id": "0000000000000343",
          "name": "Baytril 136mg"
        },
        "adjustment": 133,
        "reason": "Other"
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/inventory-adjustments

Passing parameter in query

Operators : '<', '>', '<>', '=', '<=', '>=', 'like', 'in'

Parameters:

Where clauses:

Key Description Type
isactive Adjustment status • 1 - Active
• 0 - Inactive
item_id Inventory ID item_id (lookup from inventory list)
date Date of adjustment Date (ISO8601 format)
create_at Adjustment record created at Date (ISO8601 format)
update_at Adjustment record updated at Date (ISO8601 format)

Example Request:

Ordering:

Key Description Type
date Date of adjustment Date (ISO8601 format)
create_at Adjustment date created Date (ISO8601 format)
update_at Adjustment date updated Date (ISO8601 format)
adjustment Adjustment quantity Integer

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/inventory-adjustments?orderBy=date,desc

Display the specified inventory adjustment.

Method: POST

URL: https://{{domain}}/api/1.0.0/{apiKey}/inventory-adjustments/{adjustmentId}

Response Status:

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/inventory-adjustments/{adjustmentId}" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url:
    "http://{{domain}}/api/1.0.0/{apiKey}/inventory-adjustments/{adjustmentId}",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "resource": {
      "id": "0000000000000016",
      "date": "2013-08-20T07:00:00+00:00",
      "note": "",
      "isactive": true,
      "create_by": "0000000000000009",
      "create_at": "2013-08-21T00:12:09+00:00",
      "update_by": "0000000000000009",
      "update_at": "2013-08-21T00:12:09+00:00",
      "item": {
        "id": "0000000000000900",
        "name": "Hills A/D Cans 5.5 OZ"
      },
      "adjustment": 180,
      "reason": "Other"
    }
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/inventory-adjustments/{adjustmentId}

Inventory Purchases

List of Inventory Purchases

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/inventory-purchases

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/inventory-purchases?page=2&perPage=200

Display a listing of the inventory purchases.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/inventory-purchases" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/inventory-purchases",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 3,
      "perPage": 200,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 3,
      "timezone": {
        "timezone_type": 3,
        "timezone": "America/Los_Angeles"
      }
    },
    "resources": [
      {
        "id": "0000000000000010",
        "date": "2013-06-23T07:00:00+00:00",
        "expire": "2013-12-31T08:00:00+00:00",
        "lot": "06/19/13",
        "quantity": 60,
        "price": 0.011166666666667,
        "total_price": 0.67,
        "shipping": 0,
        "tax": 0,
        "isactive": false,
        "create_by": "0000000000000007",
        "create_at": "2013-06-24T00:49:58+00:00",
        "update_by": "0000000000000007",
        "update_at": "2013-06-24T00:49:58+00:00",
        "manufacturer": null,
        "balance": 0,
        "item": {
          "id": "0000000000000561",
          "name": "Cyclosporine 25mg Chew"
        },
        "supplier": {
          "id": "0000000000000497",
          "name": "MWI"
        },
        "uom": "Unit(s)"
      },
      {
        "id": "0000000000000012",
        "date": "2013-07-12T00:00:00+00:00",
        "expire": "2015-03-31T00:00:00+00:00",
        "lot": "130337",
        "quantity": 5,
        "price": 1.446,
        "total_price": 7.23,
        "shipping": 0,
        "tax": 0,
        "isactive": false,
        "create_by": "0000000000000007",
        "create_at": "2013-07-12T22:26:51+00:00",
        "update_by": "0000000000000007",
        "update_at": "2013-07-12T22:26:51+00:00",
        "manufacturer": null,
        "balance": 0,
        "item": {
          "id": "0000000000000112",
          "name": "Epi Soothe Shampoo 8 fl oz"
        },
        "supplier": {
          "id": "0000000000000497",
          "name": "MWI"
        },
        "uom": "Unit(s)"
      },
      {
        "id": "0000000000000014",
        "date": "2013-07-26T07:00:00+00:00",
        "expire": "2014-01-24T08:00:00+00:00",
        "lot": "",
        "quantity": 100,
        "price": 0.0185,
        "total_price": 1.85,
        "shipping": 0,
        "tax": 0,
        "isactive": false,
        "create_by": "0000000000000007",
        "create_at": "2013-07-26T21:38:32+00:00",
        "update_by": "0000000000000007",
        "update_at": "2013-07-26T21:38:32+00:00",
        "manufacturer": null,
        "balance": 0,
        "item": {
          "id": "0000000000000561",
          "name": "Cyclosporine 25mg Chew"
        },
        "supplier": {
          "id": "0000000000000497",
          "name": "MWI"
        },
        "uom": "Unit(s)"
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/inventory-purchases

Passing parameter in query

Operators : '<', '>', '<>', '=', '<=', '>=', 'like', 'in'

Parameters:

Where clauses:

Key Description Type
isactive Purchase status • 1 - Active
• 0 - Inactive
item_id Inventory ID item_id (lookup from inventory list)
supplier_id Supplier ID supplier_id (lookup from company list)
lot Purchase lot number String
date Date of purchase Date (ISO8601 format)
expire Inventory lot expiration Date (ISO8601 format)
create_at Purchase record created at Date (ISO8601 format)
update_at Purchase record updated at Date (ISO8601 format)

Example Request:

Ordering:

Key Description Type
date Date of purchase Date (ISO8601 format)
expire Inventory lot expiration Date (ISO8601 format)
create_at Purchase date created Date (ISO8601 format)
update_at Purchase date updated Date (ISO8601 format)
quantity Purchase quantity Integer

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/inventory-purchases?orderBy=date,desc

Display the specified inventory purchase.

Method: POST

URL: https://{{domain}}/api/1.0.0/{apiKey}/inventory-purchases/{purchaseId}

Response Status:

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/inventory-purchases/{purchaseId}" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/inventory-purchases/{purchaseId}",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "resource": {
      "id": "0000000000000001",
      "date": "2013-06-07T07:00:00+00:00",
      "expire": null,
      "lot": "a3f",
      "quantity": 5,
      "price": 0.718,
      "total_price": 3.59,
      "shipping": 0,
      "tax": 0,
      "isactive": false,
      "create_by": "0000000000000007",
      "create_at": "2013-06-07T19:35:58+00:00",
      "update_by": "0000000000000007",
      "update_at": "2013-06-07T19:35:58+00:00",
      "manufacturer": null,
      "balance": 0,
      "item": {
        "id": "0000000000000946",
        "name": "Clindamycin 25mg/mL Suspension 20mL"
      },
      "supplier": {
        "id": "0000000000000497",
        "name": "MWI"
      },
      "uom": "Bottle(s)"
    }
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/inventory-purchases/{purchaseId}

Inventory Types

List of Inventory Types

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/inventory-types

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

  3. Label is referring to the Category name.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/inventory-types?page=2&perPage=200

Display a listing of the inventory types.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/inventory-types" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/inventory-types",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 19,
      "perPage": 10,
      "currentPage": 1,
      "lastPage": 2,
      "from": 1,
      "to": 10,
      "timezone": {
        "timezone_type": 3,
        "timezone": "America/Los_Angeles"
      }
    },
    "resources": [
      {
        "id": 9587,
        "label": "Diet",
        "type": "Dietary Products"
      },
      {
        "id": 9588,
        "label": "Hygiene",
        "type": "Other Medical"
      },
      {
        "id": 9589,
        "label": "Prescriptions",
        "type": "Pharmacy"
      },
      {
        "id": 9590,
        "label": "Preventative",
        "type": "Other Medical"
      },
      {
        "id": 9591,
        "label": "Services",
        "type": "Outpatient Services"
      },
      {
        "id": 9592,
        "label": "Vaccinations",
        "type": "Immunizations"
      },
      {
        "id": 9593,
        "label": "Labs + Diagnostics",
        "type": "Laboratory / Diagnostics"
      },
      {
        "id": 9594,
        "label": "Retail",
        "type": "Other Non-Medical"
      },
      {
        "id": 9595,
        "label": "Supplies",
        "type": "Other Non-Medical"
      },
      {
        "id": 9596,
        "label": "Fees",
        "type": "Administrative Fees"
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/inventory-types

Inventory Unit of Measure

List of Inventory Unit of Measure

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/inventory-measurements

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/inventory-measurements?page=2&perPage=200

Display a listing of the inventory measurements.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/inventory-measurements" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/inventory-measurements",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 3,
      "perPage": 200,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 3,
      "timezone": "America/Los_Angeles"
    },
    "resources": [
      {
        "id": 1,
        "label": "Unit(s)"
      },
      {
        "id": 2,
        "label": "L"
      },
      {
        "id": 3,
        "label": "dL"
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/inventory-measurements

Invoice

List of Invoices

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/invoices

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/invoices?page=2&perPage=200

Display a listing of the invoices.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/invoices" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/invoices",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 5,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 5,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": "11ea84a9-ae31-11",
        "index": 110,
        "date": "2017-03-10T04:17:58+00:00",
        "client": {
          "id": "11ea66aa-ae3f-11",
          "firstName": "Rheanna",
          "lastName": "Finnegan"
        },
        "paymentTerm": {
          "id": 1,
          "label": "Due upon receipt"
        },
        "createBy": "4e396107-4561-11",
        "createAt": "2017-03-10T04:17:58+00:00",
        "updateBy": "a5b315a3-55e1-11",
        "updateAt": "2017-03-10T04:19:55+00:00",
        "ismobile": false,
        "location": "In clinic",
        "name": "Invoice #1",
        "status": "Paid",
        "items": [
          {
            "id": "11ea8762-ae81-11",
            "item_id": "11ea8762-1231-11",
            "name": "",
            "displayName": "",
            "date": "2017-03-10T04:17:58+00:00",
            "quantity": 1,
            "itemUom": {
              "id": 1,
              "label": "Unit(s)"
            },
            "price": 30,
            "fee": 3,
            "discount": 0,
            "tax": 0,
            "lineTotal": 33,
            "patient": {
              "id": "11ea7803-ae5c-11",
              "name": "Minion",
              "weight": "23 Lbs"
            },
            "provider": {
              "id": "06c4bccb-ae30-11",
              "firstName": "Rheanna",
              "lastName": "Finnegan"
            },
            "createAt": "2017-03-10T04:17:58+00:00",
            "updateAt": "2017-03-10T04:17:58+00:00"
          }
        ]
      },
      {
        "id": "11ed64a4-ae64-11",
        "index": 114,
        "date": "2017-03-13T07:36:00+00:00",
        "client": {
          "id": "11ea66aa-ae3f-11",
          "firstName": "Rheanna",
          "lastName": "Finnegan"
        },
        "paymentTerm": {
          "id": 1,
          "label": "Due upon receipt"
        },
        "createBy": "4e396107-4561-11",
        "createAt": "2017-03-13T07:37:02+00:00",
        "updateBy": "a5b315a3-55e1-11",
        "updateAt": "2017-06-06T03:52:10+00:00",
        "ismobile": false,
        "location": "In clinic",
        "name": "Invoice #9",
        "status": "Open",
        "items": [
          {
            "id": "11ed75b1-ae3f-11",
            "item_id": "936fff08-4a3f-47",
            "name": "Item 1",
            "displayName": "Item 1",
            "date": "2019-05-15T00:22:37+00:00",
            "quantity": 1,
            "itemUom": {
              "id": 1,
              "label": "Unit(s)"
            },
            "price": 10,
            "fee": 0,
            "discount": 0,
            "tax": 0,
            "lineTotal": 10,
            "patient": {
              "id": "11ea7803-ae5c-11",
              "name": "Minion",
              "weight": "23 Lbs"
            },
            "provider": {
              "id": "0000000000012888",
              "firstName": "Peter",
              "lastName": "Chen"
            },
            "createAt": "2019-05-15T00:20:56+00:00",
            "updateAt": "2019-05-15T00:22:37+00:00"
          },
          {
            "id": "11f5705d-ae36-11",
            "item_id": "936fff08-4a3f-11",
            "name": "Item 2",
            "displayName": "Item 2",
            "date": "2019-05-11T00:20:56+00:00",
            "quantity": 2,
            "itemUom": {
              "id": 1,
              "label": "Unit(s)"
            },
            "price": 10,
            "fee": 0,
            "discount": 1,
            "tax": 0,
            "lineTotal": 9,
            "patient": {
              "id": "11ea7803-ae5c-11",
              "name": "Minion",
              "weight": "23 Lbs"
            },
            "provider": {
              "id": "fed298bf-ae25-11",
              "firstName": "Ami",
              "lastName": "Espinosa"
            },
            "createAt": "2019-05-11T00:20:56+00:00",
            "updateAt": "2019-05-11T00:22:37+00:00"
          }
        ]
      },
      {
        "id": "144b939b-ae7f-11",
        "index": 118,
        "date": "2017-04-17T08:50:00+00:00",
        "client": {
          "id": "11ea66aa-ae3f-11",
          "firstName": "Rheanna",
          "lastName": "Finnegan"
        },
        "paymentTerm": {
          "id": 1,
          "label": "Due upon receipt"
        },
        "createBy": "4e396107-4561-11",
        "createAt": "2017-04-17T08:50:46+00:00",
        "updateBy": "a5b315a3-55e1-11",
        "updateAt": "2017-04-17T08:53:54+00:00",
        "ismobile": false,
        "location": "In clinic",
        "name": "Invoice #15",
        "status": "Paid",
        "items": [
          {
            "id": "144ba56f-ae65-11",
            "item_id": "936fff08-411f-11",
            "name": "Anesthesia Mask Canine",
            "displayName": "Anesthesia Mask Canine",
            "date": "2017-04-17T08:50:46+00:00",
            "quantity": 2,
            "itemUom": {
              "id": 1,
              "label": "Unit(s)"
            },
            "price": 40,
            "fee": 2,
            "discount": 0,
            "tax": 0,
            "lineTotal": 44,
            "patient": "",
            "provider": {
              "id": "fed298bf-ae25-11",
              "firstName": "Ami",
              "lastName": "Espinosa"
            },
            "createAt": "2017-04-17T08:50:46+00:00",
            "updateAt": "2017-04-17T08:53:54+00:00"
          },
          {
            "id": "144bc097-ae2f-11",
            "item_id": "93622f08-411f-11",
            "name": "Lab 1",
            "displayName": "Lab 1",
            "date": "2017-04-17T08:50:46+00:00",
            "quantity": 2,
            "itemUom": {
              "id": 1,
              "label": "Unit(s)"
            },
            "price": 20,
            "fee": 0,
            "discount": 0,
            "tax": 0,
            "lineTotal": 20,
            "patient": "",
            "provider": {
              "id": "fed298bf-ae25-11",
              "firstName": "Ami",
              "lastName": "Espinosa"
            },
            "createAt": "2017-04-17T08:50:46+00:00",
            "updateAt": "2017-04-17T08:53:54+00:00"
          },
          {
            "id": "144bc320-ae4d-11",
            "item_id": "233622f08-411f-11",
            "name": "Anal Gland Expression",
            "displayName": "Anal Gland Expression",
            "date": "2017-04-17T08:50:46+00:00",
            "quantity": 1,
            "itemUom": {
              "id": 1,
              "label": "Unit(s)"
            },
            "price": 17,
            "fee": 0,
            "discount": 0,
            "tax": 0,
            "lineTotal": 17.6,
            "patient": "",
            "provider": {
              "id": "fed298bf-ae25-11",
              "firstName": "Ami",
              "lastName": "Espinosa"
            },
            "createAt": "2017-04-17T08:50:46+00:00",
            "updateAt": "2017-04-17T08:53:54+00:00"
          }
        ]
      },
      {
        "id": "144bd7af-ae59-11",
        "index": 121,
        "date": "2017-04-17T08:55:00+00:00",
        "client": {
          "id": "11ea66aa-ae3f-11",
          "firstName": "Rheanna",
          "lastName": "Finnegan"
        },
        "paymentTerm": {
          "id": 1,
          "label": "Due upon receipt"
        },
        "createBy": "4e396107-4561-11",
        "createAt": "2017-04-17T08:55:59+00:00",
        "updateBy": "a5b315a3-55e1-11",
        "updateAt": "2017-06-06T03:52:10+00:00",
        "ismobile": false,
        "location": "In clinic",
        "name": "Invoice #16",
        "status": "Open",
        "items": [
          {
            "id": "144be1e0-ae3d-11",
            "item_id": "93612308-411f-11",
            "name": "Anesthesia Mask Canine",
            "displayName": "Anesthesia Mask Canine",
            "date": "2017-05-26T09:35:32+00:00",
            "quantity": 21,
            "itemUom": {
              "id": 1,
              "label": "Unit(s)"
            },
            "price": 420,
            "fee": 30,
            "discount": 0,
            "tax": 12,
            "lineTotal": 462,
            "patient": {
              "id": "11ea7803-ae5c-11",
              "name": "Minion",
              "weight": "23 Lbs"
            },
            "provider": {
              "id": "fed298bf-ae25-11",
              "firstName": "Ami",
              "lastName": "Espinosa"
            },
            "createAt": "2017-04-17T08:55:59+00:00",
            "updateAt": "2017-06-06T03:52:10+00:00"
          },
          {
            "id": "144bea90-ae26-11",
            "item_id": "93622f08-1232-11",
            "name": "Lab 1",
            "displayName": "Lab 1",
            "date": "2017-05-26T09:35:32+00:00",
            "quantity": 2,
            "itemUom": {
              "id": 1,
              "label": "Unit(s)"
            },
            "price": 20,
            "fee": 0,
            "discount": 0,
            "tax": 0,
            "lineTotal": 20,
            "patient": {
              "id": "11ea7803-ae5c-11",
              "name": "Minion",
              "weight": "23 Lbs"
            },
            "provider": {
              "id": "fed298bf-ae25-11",
              "firstName": "Ami",
              "lastName": "Espinosa"
            },
            "createAt": "2017-04-17T08:55:59+00:00",
            "updateAt": "2017-06-06T03:52:10+00:00"
          },
          {
            "id": "144c026a-ae3b-11",
            "item_id": "936233308-411f-11",
            "name": "Anal Gland Expression",
            "displayName": "Anal Gland Expression",
            "date": "2017-05-26T09:35:32+00:00",
            "quantity": 3,
            "itemUom": {
              "id": 1,
              "label": "Unit(s)"
            },
            "price": 52.8,
            "fee": 0,
            "discount": 0,
            "tax": 0,
            "lineTotal": 52.8,
            "patient": {
              "id": "11ea7803-ae5c-11",
              "name": "Minion",
              "weight": "23 Lbs"
            },
            "provider": {
              "id": "fed298bf-ae25-11",
              "firstName": "Ami",
              "lastName": "Espinosa"
            },
            "createAt": "2017-04-17T08:55:59+00:00",
            "updateAt": "2017-06-06T03:52:10+00:00"
          }
        ]
      },
      {
        "id": "148136bc-ae3c-11",
        "index": 123,
        "date": "2017-05-26T09:35:00+00:00",
        "client": {
          "id": "11ea66aa-ae3f-11",
          "firstName": "Rheanna",
          "lastName": "Finnegan"
        },
        "paymentTerm": {
          "id": 2,
          "label": "Net 10"
        },
        "createBy": "4e396107-4561-11",
        "createAt": "2017-05-26T09:35:32+00:00",
        "updateBy": "a5b315a3-55e1-11",
        "updateAt": "2017-06-20T03:17:25+00:00",
        "ismobile": false,
        "location": "In clinic",
        "name": "Invoice #42",
        "status": "Open",
        "items": [
          {
            "id": "148149a8-ae5d-11",
            "item_id": "93622f08-1231-11",
            "name": "Anesthesia Mask Canine",
            "displayName": "Anesthesia Mask Canine",
            "date": "2017-05-26T09:35:32+00:00",
            "quantity": 1,
            "price": 20,
            "fee": 0,
            "discount": 4,
            "tax": 0,
            "lineTotal": 16,
            "patient": {
              "id": "11ea7803-ae5c-11",
              "name": "Minion",
              "weight": "23 Lbs"
            },
            "provider": {
              "id": "fed298bf-ae25-11",
              "firstName": "Ami",
              "lastName": "Espinosa"
            },
            "createAt": "2017-05-26T09:35:32+00:00",
            "updateAt": "2017-06-20T03:17:25+00:00"
          },
          {
            "id": "14817254-ae28-11",
            "item_id": "93622f08-1231-11",
            "name": "Lab 1",
            "displayName": "Lab 1",
            "date": "2017-05-26T09:35:32+00:00",
            "quantity": 1,
            "itemUom": {
              "id": 1,
              "label": "Unit(s)"
            },
            "price": 10,
            "fee": 0,
            "discount": 2,
            "tax": 0,
            "lineTotal": 8,
            "patient": {
              "id": "11ea7803-ae5c-11",
              "name": "Minion",
              "weight": "23 Lbs"
            },
            "provider": {
              "id": "fed298bf-ae25-11",
              "firstName": "Ami",
              "lastName": "Espinosa"
            },
            "createAt": "2017-05-26T09:35:32+00:00",
            "updateAt": "2017-06-20T03:17:25+00:00"
          },
          {
            "id": "1481bfc9-ae4b-11",
            "item_id": "93622f08-411f-11",
            "name": "Anal Gland Expression",
            "displayName": "Anal Gland Expression",
            "date": "2017-05-26T09:35:32+00:00",
            "quantity": 1,
            "itemUom": {
              "id": 1,
              "label": "Unit(s)"
            },
            "price": 17.6,
            "fee": 0,
            "discount": 3.52,
            "tax": 0,
            "lineTotal": 14.08,
            "patient": {
              "id": "11ea7803-ae5c-11",
              "name": "Minion",
              "weight": "23 Lbs"
            },
            "provider": {
              "id": "fed298bf-ae25-11",
              "firstName": "Ami",
              "lastName": "Espinosa"
            },
            "createAt": "2017-05-26T09:35:32+00:00",
            "updateAt": "2017-06-20T03:17:25+00:00"
          },
          {
            "id": "14d914e1-ae35-11",
            "item_id": "93622f08-2211-11",
            "name": "Item Action",
            "displayName": "Item Action",
            "date": "2017-05-26T09:35:32+00:00",
            "quantity": 1,
            "itemUom": {
              "id": 1,
              "label": "Unit(s)"
            },
            "price": 12,
            "fee": 0,
            "discount": 2.4,
            "tax": 0,
            "lineTotal": 9.6,
            "patient": {
              "id": "11ea7803-ae5c-11",
              "name": "Minion",
              "weight": "23 Lbs"
            },
            "provider": {
              "id": "fed298bf-ae25-11",
              "firstName": "Ami",
              "lastName": "Espinosa"
            },
            "createAt": "2017-05-26T09:35:32+00:00",
            "updateAt": "2017-06-20T03:17:25+00:00"
          }
        ]
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/invoices

Passing parameter in query

Operators : '<', '>', '<>', '=', '<=', '>=', 'like'

Where clauses:

Key Description Type
appointment.id Appointment id for invoice appointment.id (lookup from appointment list)
client.id Client for invoice client.id (lookup from client list)
client.firstName Client first name for invoice String
client.lastName Client last name for invoice String
createAt Invoice created time Date (ISO8601 format)
id Invoice Id uuid
location Location for invoice String, accepted values:
• “In clinic”
• “At client”
patient.id Patient for invoice patient.id (lookup from patient list)
patient.name Patient name for invoice String
paymentTerm Invoice payment term Integer:
• 1 - Due upon receipt
• 2 - Net 10
• 3 - Net 15
• 4 - Net 30
• 5 - Net 45
• 6 - Net 60
• 7 - Net 90
status Invoice status • 1 - Open
• 2 - Paid
• 3 - Write Off
• 4 - Closed
• 5 - Locked
• 6 - Reopened
start Invoice date Date (ISO8601 format)
updateAt Invoice updated time Date (ISO8601 format)

Example Request:

Ordering:

Key Description Type
appointment.id Appointment id for invoice appointment.id (lookup from appointment list)
client.id Client for invoice client.id (lookup from client list)
client.firstName Client first name for invoice String
client.lastName Client last name for invoice String
createAt Invoice created time Date (ISO8601 format)
id Invoice Id uuid
location Location for invoice String, accepted values:
• “In clinic”
• “At client”
patient.id Patient for invoice patient.id (lookup from patient list)
patient.name Patient name for invoice String
paymentTerm Invoice payment term Integer:
• 1 - Due upon receipt
• 2 - Net 10
• 3 - Net 15
• 4 - Net 30
• 5 - Net 45
• 6 - Net 60
• 7 - Net 90
status Invoice status • 1 - Open
• 2 - Paid
• 3 - Write Off
start Invoice date Date (ISO8601 format)
updateAt Invoice updated time Date (ISO8601 format)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/invoices?orderBy=updateAt,desc

Display the specified invoice.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/invoices/{invoiceId}" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/invoices/{invoiceId}",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "resource": {
      "id": "11ea84a9-ae31-11",
      "index": 112,
      "date": "2017-03-10T04:17:58+00:00",
      "client": {
        "id": "11ea66aa-ae3f-11",
        "firstName": "Rheanna",
        "lastName": "Finnegan"
      },
      "paymentTerm": {
        "id": 1,
        "label": "Due upon receipt"
      },
      "createBy": "4e396107-4561-11",
      "createAt": "2017-03-10T04:17:58+00:00",
      "updateBy": "4e396107-4561-11",
      "updateAt": "2017-03-10T04:19:55+00:00",
      "location": "In clinic",
      "ismobile": false,
      "name": "Invoice #1",
      "status": "Paid",
      "items": [
        {
          "id": "11ea8762-ae81-11",
          "item_id": "93622f08-1231-11",
          "name": "",
          "displayName": "",
          "date": "2017-03-10T04:17:58+00:00",
          "quantity": 1,
          "itemUom": {
            "id": 1,
            "label": "Unit(s)"
          },
          "price": 30,
          "lineTotal": 33,
          "patient": {
            "id": "11ea7803-ae5c-11",
            "name": "Minion",
            "weight": "23 Lbs"
          },
          "provider": {
            "id": "06c4bccb-ae30-11",
            "firstName": "Rheanna",
            "lastName": "Finnegan"
          },
          "createAt": "2017-03-10T04:17:58+00:00",
          "updateAt": "2017-03-10T04:19:55+00:00"
        }
      ]
    }
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/invoices/{invoiceId}

Patient

List of Patients

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/patients

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)
showAll Show all patients including deleted patients Integer (default 0)
0 - False
1 - True

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/patients?page=2&perPage=200

Display a listing of the patients.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/patients" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/patients",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 14,
      "perPage": 5,
      "currentPage": 1,
      "lastPage": 3,
      "from": 1,
      "to": 5,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": "11ea7803-ae5c-11",
        "index": 21,
        "firstVisit": "2017-03-28T11:30:00+00:00",
        "lastVisit": "2017-09-06T14:00:00+00:00",
        "name": "Minion",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "color": "",
        "sex": {
          "id": 4,
          "label": "Female (spayed)"
        },
        "breeds": [
          {
            "id": 6,
            "label": "Akbash Dog"
          },
          {
            "id": 26,
            "label": "American Staffordshire Terrier"
          }
        ],
        "birthdate": "1970-01-01T00:00:00+00:00",
        "chip": "",
        "createAt": "2017-03-10T04:11:40+00:00",
        "updateAt": "2017-05-26T10:25:49+00:00",
        "status": "Active",
        "deceasedDate": "",
        "inactiveDate": "",
        "isDeleted": false,
        "clients": [
          {
            "id": "11ea66aa-ae3f-11",
            "index": 11,
            "firstName": "Rheanna",
            "lastName": "Finnegan",
            "address": "Address",
            "city": "City",
            "state": "State",
            "country": "Country",
            "zipcode": "Zipcode",
            "home": "0000-HOME-111",
            "work": "0000-WORK-111",
            "mobile": "0000-MOBILE-111",
            "email": "r.fineggan@yahoo.com",
            "fax": "0000-FAX-111",
            "createAt": "2017-03-10T04:11:13+00:00",
            "updateAt": "2017-06-13T08:41:26+00:00",
            "firstVisit": "2017-03-28T11:30:00+00:00",
            "lastVisit": "2017-09-06T14:00:00+00:00",
            "paymentTerm": "Due upon receipt",
            "discount": "",
            "reminderOptions": ["email"],
            "status": "Active",
            "isDeleted": false,
            "isPrimary": true
          },
          {
            "id": "2589120c-ae31-11",
            "index": 15,
            "firstName": "Bernice",
            "lastName": "Mitchell",
            "address": "",
            "city": "",
            "state": "",
            "country": "",
            "zipcode": "",
            "home": "",
            "work": "",
            "mobile": "132345",
            "email": "karen@yahoo.com",
            "fax": "",
            "createAt": "2017-03-28T07:22:25+00:00",
            "updateAt": "2017-06-20T03:12:55+00:00",
            "firstVisit": "",
            "lastVisit": "",
            "paymentTerm": "Due upon receipt",
            "discount": "",
            "reminderOptions": ["phone"],
            "status": "Active",
            "isDeleted": false,
            "isPrimary": false
          }
        ]
      },
      {
        "id": "11ec71e6-ae63-11",
        "index": 24,
        "firstVisit": "",
        "lastVisit": "",
        "name": "Baby",
        "species": {
          "id": 12,
          "label": "Porcine"
        },
        "color": "",
        "sex": {
          "id": 3,
          "label": "Female (intact)"
        },
        "breeds": [
          {
            "id": 1323,
            "label": "Beijing Black"
          },
          {
            "id": 1327,
            "label": "Berkshire"
          }
        ],
        "birthdate": "1970-01-01T00:00:00+00:00",
        "chip": "",
        "createAt": "2017-03-13T05:40:21+00:00",
        "updateAt": "2017-03-28T08:07:51+00:00",
        "status": "Active",
        "deceasedDate": "",
        "inactiveDate": "",
        "isDeleted": false,
        "clients": []
      },
      {
        "id": "11f56935-ae57-11",
        "index": 43,
        "firstVisit": "2017-06-13T08:30:00+00:00",
        "lastVisit": "2017-06-14T22:00:00+00:00",
        "name": "Min",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "color": "",
        "sex": {
          "id": 3,
          "label": "Female (intact)"
        },
        "breeds": [
          {
            "id": 26,
            "label": "American Staffordshire Terrier"
          }
        ],
        "birthdate": "1970-01-01T00:00:00+00:00",
        "chip": "",
        "createAt": "2017-03-30T07:08:11+00:00",
        "updateAt": "2017-03-30T07:08:11+00:00",
        "status": "Active",
        "deceasedDate": "",
        "inactiveDate": "",
        "isDeleted": false,
        "clients": [
          {
            "id": "11efd914-ae61-11",
            "index": 11,
            "firstName": "Rheanna",
            "lastName": "Finnegan",
            "address": "",
            "city": "",
            "state": "",
            "country": "",
            "zipcode": "",
            "home": "",
            "work": "",
            "mobile": "",
            "email": "r.finnegan@yahoo.com",
            "fax": "",
            "createAt": "2017-03-20T08:57:15+00:00",
            "updateAt": "2017-07-13T06:26:57+00:00",
            "firstVisit": "2017-06-13T08:30:00+00:00",
            "lastVisit": "2017-06-14T22:00:00+00:00",
            "paymentTerm": "Due upon receipt",
            "discount": "",
            "reminderOptions": ["email"],
            "status": "Active",
            "isDeleted": false,
            "isPrimary": true
          }
        ]
      },
      {
        "id": "11f58565-ae6a-11",
        "index": 54,
        "firstVisit": "2017-03-30T19:45:00+00:00",
        "lastVisit": "2017-06-21T01:00:00+00:00",
        "name": "Yellow",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "color": "",
        "sex": {
          "id": 3,
          "label": "Female (intact)"
        },
        "breeds": [
          {
            "id": 26,
            "label": "American Staffordshire Terrier"
          }
        ],
        "birthdate": "1970-01-01T00:00:00+00:00",
        "chip": "",
        "createAt": "2017-03-30T09:06:07+00:00",
        "updateAt": "2017-03-30T09:06:07+00:00",
        "status": "Active",
        "deceasedDate": "",
        "inactiveDate": "",
        "isDeleted": false,
        "clients": [
          {
            "id": "2589ad8c-ae7d-11",
            "index": 45,
            "firstName": "Elaine",
            "lastName": "Tan",
            "address": "First Subang",
            "city": "City",
            "state": "State",
            "country": "Country",
            "zipcode": "Zipcode",
            "home": "0000-HOME-111",
            "work": "0000-WORK-111",
            "mobile": "0000-MOBILE-111",
            "email": "cc_1@email.com",
            "fax": "0000-FAX-111",
            "createAt": "2017-03-21T07:59:41+00:00",
            "updateAt": "2017-07-26T02:13:10+00:00",
            "firstVisit": "2017-03-30T19:45:00+00:00",
            "lastVisit": "2017-06-21T01:00:00+00:00",
            "paymentTerm": "Due upon receipt",
            "discount": "",
            "reminderOptions": ["email"],
            "status": "Active",
            "isDeleted": false,
            "isPrimary": true
          }
        ]
      },
      {
        "id": "11f587a5-ae33-11",
        "index": 56,
        "firstVisit": "2017-03-30T14:00:00+00:00",
        "lastVisit": "2017-06-13T11:00:00+00:00",
        "name": "Small",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "color": "",
        "sex": {
          "id": 3,
          "label": "Female (intact)"
        },
        "breeds": [
          {
            "id": 26,
            "label": "American Staffordshire Terrier"
          }
        ],
        "birthdate": "1970-01-01T00:00:00+00:00",
        "chip": "",
        "createAt": "2017-03-31T02:55:31+00:00",
        "updateAt": "2017-04-20T06:42:39+00:00",
        "status": "Active",
        "deceasedDate": "",
        "inactiveDate": "",
        "isDeleted": false,
        "clients": [
          {
            "id": "11efefd0-ae52-11",
            "index": 12,
            "firstName": "Latoya",
            "lastName": "Wardle",
            "address": "",
            "city": "",
            "state": "",
            "country": "",
            "zipcode": "",
            "home": "",
            "work": "",
            "mobile": "",
            "email": "l.wardle@msn.com.my",
            "fax": "",
            "createAt": "2017-03-20T08:58:54+00:00",
            "updateAt": "2017-07-26T09:55:01+00:00",
            "firstVisit": "2017-03-30T14:00:00+00:00",
            "lastVisit": "2017-06-13T11:00:00+00:00",
            "paymentTerm": "Due upon receipt",
            "discount": "",
            "reminderOptions": ["email"],
            "status": "Active",
            "isDeleted": false,
            "isPrimary": true
          }
        ]
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/patients

Passing parameter in query

Operators : '<', '>', '<>', '=', '<=', '>=', 'like', 'in'

Parameters:

Where clauses:

Key Description Type
birthdate Birthdate for patient Date (ISO8601 format)
breed.id Breed id for patient breed.id (lookup from patient breed list)
chip Chip for patient String
color Color for patient String
createAt Patient created date Date (ISO8601 format)
estimateBirthdate Estimate birthdate for patient Date (ISO8601 format)
id Patient Id uuid
name Name for patient String
sex.id Sex id for patient sex.id (lookup from patient sex list)
species.id Species id for patient species.id (lookup from patient species list)
status Patient status • 1 - Active
• 2 - Inactive
• 3 - Deceased
updateAt Patient updated date Date (ISO8601 format)

Example Request:

Ordering:

Key Description Type
birthdate Birthdate for patient Date (ISO8601 format)
chip Chip for patient String
color Color for patient String
estimateBirthdate Estimate birthdate for patient Date (ISO8601 format)
id Patient Id uuid
name Name for patient String
sex.id Sex id for patient sex.id (lookup from patient sex list)
species.id Species id for patient species.id (lookup from patient species list)
status Patient status • 1 - Active
• 2 - Inactive
• 3 - Deceased

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/patients?orderBy=name,desc

Store a newly created patient in storage.

Parameters : See parameters for “Update Patient”.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/patients" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/patients",
  method: "POST",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

HTTP Request

POST api/1.0.0/{apiKey}/patients

Display the specified patient.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/patients/{patientId}" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/patients/{patientId}",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "resource": {
      "id": "11ea7803-ae5c-11",
      "index": 56,
      "firstVisit": "2017-03-28T11:30:00+00:00",
      "lastVisit": "2017-09-06T14:00:00+00:00",
      "name": "Minion",
      "species": {
        "id": 1,
        "label": "Canine"
      },
      "color": "",
      "sex": {
        "id": 3,
        "label": "Female (intact)"
      },
      "breeds": [
        {
          "id": 6,
          "label": "Akbash Dog"
        },
        {
          "id": 26,
          "label": "American Staffordshire Terrier"
        }
      ],
      "birthdate": "",
      "chip": "",
      "status": "Active",
      "deceasedDate": "",
      "inactiveDate": "",
      "isDeleted": false,
      "clients": [
        {
          "id": "11ea66aa-ae3f-11",
          "index": 235,
          "firstName": "Rheanna",
          "lastName": "Finnegan",
          "address": "Address",
          "city": "City",
          "state": "State",
          "country": "Country",
          "zipcode": "Zipcode",
          "home": "0000-HOME-111",
          "work": "0000-WORK-111",
          "mobile": "0000-MOBILE-111",
          "email": "r.fineggan@yahoo.com",
          "fax": "0000-FAX-111",
          "createAt": "2017-03-10T04:11:13+00:00",
          "updateAt": "2017-06-13T08:41:26+00:00",
          "firstVisit": "2017-03-28T11:30:00+00:00",
          "lastVisit": "2017-09-06T14:00:00+00:00",
          "paymentTerm": "Due upon receipt",
          "discount": "",
          "reminderOptions": ["email"],
          "status": "Active",
          "isDeleted": false,
          "isPrimary": true
        }
      ]
    }
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/patients/{patientId}

Update the specified patient in storage.

Parameters:

Name Description Type Validation
name Patient name String Required
species{id} Patient species species.id, JSON Required (lookup from species list)
color Patient color String Optional
sex{id} Patient sex sex.id, JSON Required (lookup from sex list)
breeds[{id},..] Patient breed(s) breeds.id, JSON, multiple Required (lookup from breeds list; must belong to the same group of species
birthdate Patient birthdate Date Optional; Must be in ISO8601 format “2016-08-19T06:15:47-0700”
chip Microchip number String Optional
status Patient status String Required Accepted values:
. Active
. Inactive
. Deceased
deceasedDate Deceased date Date Required if status=”deceased”; Must be in ISO8601 format “2016-08-19T06:15:47-0700”
inactiveDate Inactive date Date Required if status=”inactive”; Must be in ISO8601 format “2016-08-19T06:15:47-07 00”

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/patients/{patientId}" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/patients/{patientId}",
  method: "PUT",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

HTTP Request

PUT api/1.0.0/{apiKey}/patients/{patientId}

Patient Breed

List of Patient Breeds

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/breeds

Response Status:

Remarks:

  1. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/breeds?page=2&perPage=200

Display a listing of the available breeds.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/breeds" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/breeds",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 1806,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 91,
      "from": 1,
      "to": 20,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": 1,
        "label": "Affenpinscher",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      },
      {
        "id": 2,
        "label": "Afghan Hound",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      },
      {
        "id": 3,
        "label": "Africanis",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      },
      {
        "id": 4,
        "label": "Aidi",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      },
      {
        "id": 5,
        "label": "Airedale Terrier",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      },
      {
        "id": 6,
        "label": "Akbash Dog",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      },
      {
        "id": 7,
        "label": "Akita Inu",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      },
      {
        "id": 8,
        "label": "Alangu Mastiff",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      },
      {
        "id": 9,
        "label": "Alano Espanol",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      },
      {
        "id": 10,
        "label": "Alapaha Blue Blood Bulldog",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      },
      {
        "id": 11,
        "label": "Alaskan Klee Kai",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      },
      {
        "id": 12,
        "label": "Alaskan Malamute",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      },
      {
        "id": 13,
        "label": "Alaunt",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      },
      {
        "id": 14,
        "label": "Alopekis",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      },
      {
        "id": 15,
        "label": "Alpine Dachsbracke",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      },
      {
        "id": 16,
        "label": "American Akita",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      },
      {
        "id": 17,
        "label": "American Alsatian",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      },
      {
        "id": 18,
        "label": "American Bulldog",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      },
      {
        "id": 19,
        "label": "American Bully",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      },
      {
        "id": 20,
        "label": "American Cocker Spaniel",
        "species": {
          "id": 1,
          "label": "Canine"
        },
        "antechBreedCode": ""
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/breeds

Patient Sex

List of Patient Sexes

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/sexes

Response Status:

Remarks:

  1. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/sexes?page=2&perPage=200

Display a listing of the available sexes.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/sexes" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/sexes",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 5,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 5,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": 1,
        "value": "Email"
      },
      {
        "id": 2,
        "value": "Phone"
      },
      {
        "id": 3,
        "value": "Mail"
      },
      {
        "id": 4,
        "value": "No Reminder"
      },
      {
        "id": 5,
        "value": "SMS (Text)"
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/sexes

Patient Species

List of Patient Species

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/species

Response Status:

Remarks:

  1. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/species?page=2&perPage=200

Display a listing of the available species.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/species" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/species",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 5,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 5,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": 1,
        "label": "Male (intact)"
      },
      {
        "id": 2,
        "label": "Male (neutered)"
      },
      {
        "id": 3,
        "label": "Female (intact)"
      },
      {
        "id": 4,
        "label": "Female (spayed)"
      },
      {
        "id": 5,
        "label": "Unknown"
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/species

Patient's History

List of patient history

Method: GET URL: https://{{domain}}/api/1.0.0/{apiKey}/patient/{{patientId}}/history

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)
type To get the specific type of history Varchar (Default All history)
communication - Communications
diagnosis - Diagnoses
problem - Problems
record - Records
vital - Vitals
show To show record type result based on status Integer (default 1)
0 - Inactive
1 - Active
2 - All

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/patient/{{patientId}}/history?page=2&perPage=200&type=record

Display a listing of the resource.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/patient/{patientId}/history" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/patient/{patientId}/history",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 2,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 2,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": "11f9c96d-ae81-11",
        "type": "Labs + Diagnostics",
        "date": "2017-04-07T08:38:00+00:00",
        "patient": {
          "id": "11f986b5-ae7d-11",
          "name": "Max",
          "weight": ""
        },
        "createAt": "2017-04-07T08:38:54+00:00",
        "updateAt": "2017-04-07T08:38:54+00:00",
        "prescribedBy": {
          "id": "fed298bf-ae25-11",
          "firstName": "Ami",
          "lastName": "Espinosa",
          "fullName": "Ami Espinosa",
          "displayName": "Ami L.",
          "initial": "SL"
        },
        "recordNote": "",
        "quantity": 1,
        "item": {
          "id": "11f9c6ac-ae31-11",
          "label": "Lab (blood glucose)"
        },
        "itemUom": {
          "id": 1,
          "label": "Unit(s)"
        }
      },
      {
        "id": "2587e6d4-ae5a-11",
        "type": "Anesthesia",
        "date": "2017-04-07T08:33:00+00:00",
        "patient": {
          "id": "11f986b5-ae7d-11",
          "name": "Max",
          "weight": ""
        },
        "createAt": "2017-04-07T08:34:10+00:00",
        "updateAt": "2017-04-07T08:34:10+00:00",
        "prescribedBy": {
          "id": "fed298bf-ae25-11",
          "firstName": "Ami",
          "lastName": "Espinosa",
          "fullName": "Ami Espinosa",
          "displayName": "Ami L.",
          "initial": "SL"
        },
        "recordNote": "",
        "quantity": 1,
        "item": {
          "id": "11aed6b4-ae52-11",
          "label": "Anes"
        },
        "itemUom": {
          "id": 1,
          "label": "Unit(s)"
        }
      },
      {
        "id": "a5408db7-6138-48",
        "businessId": "11b7c73d-ae26-11",
        "value": "",
        "value2": "",
        "date": "2017-04-07T08:39:22+00:00",
        "note": "",
        "isActive": true,
        "medicalNoteFlag": {
          "id": 1,
          "label": "Show in medical note"
        },
        "createBy": {
          "id": "fed298bf-ae25-11",
          "firstName": "Ami",
          "lastName": "Espinosa",
          "fullName": "Ami Espinosa",
          "displayName": "Ami L.",
          "initial": "SL",
          "status": []
        },
        "createAt": "2017-04-07T08:39:22+00:00",
        "updateBy": {
          "id": "fed298bf-ae25-11",
          "firstName": "Ami",
          "lastName": "Espinosa",
          "fullName": "Ami Espinosa",
          "displayName": "Ami L.",
          "initial": "SL",
          "status": []
        },
        "updateAt": "2017-04-07T08:39:22+00:00",
        "patient": {
          "id": "11f986b5-ae7d-11",
          "name": "Max"
        },
        "masterVital": {
          "id": 1,
          "label": "Heart Rate"
        },
        "masterUom": {
          "id": 67,
          "label": "bpm"
        },
        "masterUom2": [],
        "soap": {
          "id": "11f9d04d-ae5d-11",
          "label": "Medical Note (Apr 07, 2017)",
          "locked": 0
        },
        "appointment": [],
        "module": "vital"
      },
      {
        "id": "108dafec-b7f7-11",
        "index": 1,
        "content": "Send confirmation email",
        "patient": {
          "id": "14e68c90-ae39-11",
          "name": "Bulat Bulat",
          "weight": ""
        },
        "client": {
          "id": "14e682b7-ae83-11",
          "firstName": "Yen",
          "lastName": "Tan",
          "fullName": "Yen Tan",
          "displayName": "Yen T.",
          "initial": "YT",
          "status": {
            "id": 1,
            "name": "Active"
          }
        },
        "contact": [],
        "reference": {
          "id": ""
        },
        "referenceType": [],
        "businessId": "0000000000000001",
        "appointment": [],
        "isActive": true,
        "createBy": {
          "id": "fed298bf-ae25-11",
          "firstName": "Ami",
          "lastName": "Espinosa",
          "fullName": "Ami Espinosa",
          "displayName": "Ami L.",
          "initial": "SL",
          "status": []
        },
        "createAt": "2018-01-12T02:30:03+00:00",
        "updateBy": {
          "id": "fed298bf-ae25-11",
          "firstName": "Ami",
          "lastName": "Espinosa",
          "fullName": "Ami Espinosa",
          "displayName": "Ami L.",
          "initial": "SL",
          "status": []
        },
        "updateAt": "2018-01-12T02:30:03+00:00",
        "date": "2018-07-04T02:29:00+00:00",
        "type": {
          "id": 4,
          "label": "Email"
        },
        "withName": "",
        "contactType": {
          "id": 0,
          "label": "Contact"
        },
        "messageId": "",
        "status": "",
        "timestamp": "",
        "module": "communication"
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/patient/{patientId}/history

Patient's Owner

List of Patient's Owner

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/patient/{patientId}/clients

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/patient/{patientId}/clients?page=2&perPage=200

Display a listing of the patient’s owners.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/patient/{patientId}/clients" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/patient/{patientId}/clients",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 2,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 2,
      "timezone": "Asia/Kuala_Lumpur",
      "patient": {
        "id": "11f8ceb3-ae35-11",
        "firstVisit": "2017-04-04T23:15:00+00:00",
        "lastVisit": "2017-06-13T10:15:00+00:00",
        "name": "Fatty",
        "species": {
          "id": 9,
          "label": "Fish"
        },
        "color": "",
        "sex": {
          "id": 1,
          "label": "Male (intact)"
        },
        "breeds": [
          {
            "id": 620,
            "label": "Goldfish"
          },
          {
            "id": 622,
            "label": "Marine Fish"
          }
        ],
        "birthdate": "2016-11-30T08:22:11+00:00",
        "chip": "",
        "createAt": "2017-04-04T08:40:15+00:00",
        "updateAt": "2017-07-13T07:22:11+00:00",
        "status": "Active",
        "deceasedDate": "",
        "inactiveDate": ""
      }
    },
    "resources": [
      {
        "id": "11f8d88c-ae73-11",
        "firstName": "Siti",
        "lastName": "S",
        "address": "",
        "city": "",
        "state": "",
        "country": "",
        "zipcode": "",
        "home": "",
        "work": "",
        "mobile": "",
        "email": "siti@yahoo.com",
        "fax": "",
        "createAt": "2017-04-04T08:40:41+00:00",
        "updateAt": "2017-06-13T06:29:32+00:00",
        "firstVisit": "2017-06-13T10:15:00+00:00",
        "lastVisit": "2017-06-13T10:15:00+00:00",
        "paymentTerm": "Due upon receipt",
        "discount": "",
        "reminderOptions": ["email"],
        "isPrimary": true
      },
      {
        "id": "25892ff3-ae58-11",
        "firstName": "Ahmad",
        "lastName": "AH",
        "address": "Subang SS15",
        "city": "Subang",
        "state": "Selangor",
        "country": "Country",
        "zipcode": "Zipcode",
        "home": "0000-HOME-111",
        "work": "0000-WORK-111",
        "mobile": "0000-MOBILE-111",
        "email": "email@email.com",
        "fax": "0000-FAX-111",
        "createAt": "2017-03-21T09:27:35+00:00",
        "updateAt": "2017-06-14T06:26:43+00:00",
        "firstVisit": "2017-04-04T23:15:00+00:00",
        "lastVisit": "2017-06-13T09:15:00+00:00",
        "paymentTerm": "Net 10",
        "discount": {
          "id": "14d6ce3f-ae54-11",
          "label": "Discount $10"
        },
        "reminderOptions": ["phone", "email"],
        "isPrimary": false
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/patient/{patientId}/clients

Store a newly created patient's owner in storage.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/patient/{patientId}/clients" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/patient/{patientId}/clients",
  method: "POST",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

HTTP Request

POST api/1.0.0/{apiKey}/patient/{patientId}/clients

Update the specified patient's owner in storage.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/patient/{patientId}/clients/{clients}" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url:
    "http://{{domain}}/api/1.0.0/{apiKey}/patient/{patientId}/clients/{clients}",
  method: "PUT",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

HTTP Request

PUT api/1.0.0/{apiKey}/patient/{patientId}/clients/{clients}

Patient's Record

List of patient record

Method: GET URL: https://{{domain}}/api/1.0.0/{apiKey}/patient/{{patientId}}/record

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
show To show record type result based on status Integer (default 1)
0 - Inactive
1 - Active
2 - All

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/patient/{{patientId}}/record?show=2

Display a listing of the resource.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/patient/{patientId}/record" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/patient/{patientId}/record",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 2,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 2,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": "2587e6d4-ae5a-11",
        "type": "Anesthesia",
        "date": "2017-04-07T08:33:00+00:00",
        "patient": {
          "id": "11f986b5-ae7d-11",
          "name": "Max",
          "weight": ""
        },
        "createAt": "2017-04-07T08:34:10+00:00",
        "updateAt": "2017-04-07T08:34:10+00:00",
        "prescribedBy": {
          "id": "fed298bf-ae25-11",
          "firstName": "Ami",
          "lastName": "Espinosa",
          "fullName": "Ami Espinosa",
          "displayName": "Ami L.",
          "initial": "SL"
        },
        "recordNote": "",
        "quantity": 1,
        "item": {
          "id": "11aed6b4-ae52-11",
          "label": "Anes"
        },
        "itemUom": {
          "id": 1,
          "label": "Unit(s)"
        }
      },
      {
        "id": "11f9c96d-ae81-11",
        "type": "Labs + Diagnostics",
        "date": "2017-04-07T08:38:00+00:00",
        "patient": {
          "id": "11f986b5-ae7d-11",
          "name": "Max",
          "weight": ""
        },
        "createAt": "2017-04-07T08:38:54+00:00",
        "updateAt": "2017-04-07T08:38:54+00:00",
        "prescribedBy": {
          "id": "fed298bf-ae25-11",
          "firstName": "Ami",
          "lastName": "Espinosa",
          "fullName": "Ami Espinosa",
          "displayName": "Ami L.",
          "initial": "SL"
        },
        "recordNote": "",
        "quantity": 1,
        "item": {
          "id": "11f9c6ac-ae31-11",
          "label": "Lab (blood glucose)"
        },
        "itemUom": {
          "id": 1,
          "label": "Unit(s)"
        }
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/patient/{patientId}/record

Payment

List of Payments

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/payments

Response Status:

Remarks:

  1. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/payments?page=2&perPage=200

Display a listing of the available payments.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/payments" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/payments",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 4,
      "perPage": 200,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 200,
      "timezone": "America/Los_Angeles"
    },
    "resources": [
      {
        "id": "6f405946-931f-11",
        "amount": 320,
        "date": "2018-05-07T06:39:47+00:00",
        "isactive": 1,
        "createdAt": "2018-05-07T06:39:47+00:00",
        "updatedAt": "2018-05-07T06:39:47+00:00",
        "client": {
          "id": "a1bc90b6-bb97-11",
          "firstName": "Peter",
          "lastName": "Parker"
        },
        "paymentType": {
          "id": "202afce8-0132-11",
          "name": "Cash"
        },
        "invoices": [
          {
            "id": "6e581066-931f-11",
            "name": "Invoice #1",
            "paymentAmount": 270
          },
          {
            "id": "6e8125b4-931f-11",
            "name": "Invoice #2",
            "paymentAmount": 50
          }
        ],
        "credit": []
      },
      {
        "id": "7880a369-931f-11",
        "amount": 100,
        "date": "2018-01-01T08:17:58+00:00",
        "isactive": 1,
        "createdAt": "2018-06-06T08:17:38+00:00",
        "updatedAt": "2018-06-06T08:17:58+00:00",
        "client": {
          "id": "a1909fba-bb97-11",
          "firstName": "Tom",
          "lastName": "Sawyer"
        },
        "paymentType": {
          "id": "202afce8-0132-11",
          "name": "Cash"
        },
        "invoices": [],
        "credit": {
          "id": "78827b60-931f-11",
          "name": "Credit #1",
          "amount": 100
        }
      },
      {
        "id": "7937f809-931f-11",
        "amount": 10,
        "date": "2018-06-25T03:23:50+00:00",
        "isactive": 1,
        "createdAt": "2018-06-25T03:23:50+00:00",
        "updatedAt": "2018-06-25T03:23:50+00:00",
        "client": {
          "id": "a18e49e0-bb97-11",
          "firstName": "Herman",
          "lastName": "Melville"
        },
        "paymentType": {
          "id": "202afce8-0132-11",
          "name": "Cash"
        },
        "invoices": [
          {
            "id": "7934418c-931f-11",
            "name": "Invoice #42",
            "paymentAmount": 10
          }
        ],
        "credit": []
      },
      {
        "id": "794920a4-931f-11",
        "amount": 10,
        "date": "2018-06-25T03:27:20+00:00",
        "isactive": 1,
        "createdAt": "2018-06-25T03:27:20+00:00",
        "updatedAt": "2018-06-25T03:27:20+00:00",
        "client": {
          "id": "a18e49e0-bb97-11",
          "firstName": "Ted",
          "lastName": "Baker"
        },
        "paymentType": {
          "id": "202afce8-0132-11",
          "name": "Cash"
        },
        "invoices": [
          {
            "id": "793dc1f9-931f-11",
            "name": "Invoice #43",
            "paymentAmount": 10
          }
        ],
        "credit": []
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/payments

Passing parameter in query

Operators : '<', '>', '<>', '=', '<=', '>=', 'like'

Where clauses:

Key Description Type
id Payment ID
isactive Payment status 1 - Active, 0 - Inactive
date Payment date in datetime Date (ISO8601 format)
create_at Payment created at in datetime Date (ISO8601 format)
update_at Payment updated at in datetime Date (ISO8601 format)
client.id Staff ID for payments client ID (lookup from client list)
payment_type.id Payment Type ID for payment type payment type ID (lookup from payment type list)
payment_type.name Payment Type name for payment type String

Example Request:

Ordering:

Key Description Type
date Payment date in datetime Date (ISO8601 format)
create_at Payment created at in datetime Date (ISO8601 format)
update_at Payment updated at in datetime Date (ISO8601 format)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/payments?orderBy=date,desc

Store a new payment.

Method: POST

URL: https://{{domain}}/api/1.0.0/{apiKey}/payments

Content Type : application/json

Response Status:

Example request:

curl --location --request POST 'http://{{domain}}/api/1.0.0/{apiKey}/payments' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {token}' \
--header 'x-api-key: {apiKey}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "payment_date": "2012-01-20T01:00:00+00:00",
    "payment_type_id": "9cf77394-f260-45",
    "client.id": "d2b18b18-265f-4a",
    "amount": 107.86,
    "is_cashback": 0,
    "invoice_ids": [
        "d81d2577-1ee6-11",
        "d8539010-1ee6-11"
    ]
}'
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/payments",
  method: "POST",
  headers: {
    accept: "application/json",
    Authorization: "Bearer {token}",
    x-api-key: {apiKey},
    Content-Type: "application/json"
  },
  data: JSON.stringify({
    payment_date: "2012-01-20T01:00:00+00:00",
    payment_type_id: "9cf77394-f260-45",
    "client.id": "d2b18b18-265f-4a",
    amount: 107.86,
    is_cashback: 0,
    invoice_ids: ["d81d2577-1ee6-11", "d8539010-1ee6-11"],
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

HTTP Request

POST api/1.0.0/{apiKey}/payments

Payment Types

List of Payment Types

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/payment-types

Response Status:

Remarks:

  1. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/payment-types?page=2&perPage=200

Display a listing of the available payment types.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/payment-types" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/payment-types",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 5,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 5,
      "timezone": "America/Los_Angeles"
    },
    "resources": [
      {
        "id": "202a26f6-0132-11",
        "name": "Gift Certificate",
        "note": "",
        "status": 1,
        "createdAt": "2017-03-17T02:37:48+00:00",
        "updatedAt": "2017-03-17T02:37:48+00:00"
      },
      {
        "id": "202a3fba-0132-11",
        "name": "e-Payment",
        "note": "",
        "status": 1,
        "createdAt": "2017-03-17T02:37:48+00:00",
        "updatedAt": "2017-03-17T02:37:48+00:00"
      },
      {
        "id": "202a4faa-0132-11",
        "name": "Other",
        "note": "",
        "status": 1,
        "createdAt": "2017-03-17T02:37:48+00:00",
        "updatedAt": "2017-03-17T02:37:48+00:00"
      },
      {
        "id": "202a6440-0132-11",
        "name": "Coupon",
        "note": "",
        "status": 1,
        "createdAt": "2017-03-17T02:37:48+00:00",
        "updatedAt": "2017-03-17T02:37:48+00:00"
      },
      {
        "id": "202a7700-0132-11",
        "name": "Charitable Fund",
        "note": "",
        "status": 1,
        "createdAt": "2017-03-17T02:37:48+00:00",
        "updatedAt": "2017-03-17T02:37:48+00:00"
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/payment-types

Passing parameter in query

Operators : '<', '>', '<>', '=', '<=', '>=', 'like'

Where clauses:

Key Description Type
name Payment Type name for payment type String
status Payment Type status 1 - Active, 2 - Inactive, 3 - Suspended

Example Request:

Ordering:

Key Description Type
create_at Payment created at in datetime Date (ISO8601 format)
update_at Payment updated at in datetime Date (ISO8601 format)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/payment-types?orderBy=create_at,desc

Record

List of Records

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/records

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/records?page=2&perPage=200

Display a listing of the records.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/records" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/records",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 2,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 2,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resource": {
        {
            "id": "426e83e4-1ea7-11",
            "type": {
                "id": 3,
                "label": "Prescription"
            },
            "date": "2018-09-05T03:40:00+00:00",
            "patient": {
                "id": "0000000000054309",
                "name": "Patient 1",
                "weight": ""
            },
            "createAt": "2018-09-05T03:40:41+00:00",
            "updateAt": "2018-09-05T03:40:47+00:00",
            "prescribedBy": {
                "fullName": "Ahmad Saifullah",
                "displayName": "Ahmad S.",
                "initial": "AS",
                "status": [],
                "id": "0fb67045-ae6c-11",
                "firstName": "Ahmad",
                "lastName": "Saifullah"
            },
            "recordNote": "",
            "quantity": 2,
            "item": {
                "id": "2e040d36-b56e-45",
                "label": "764 Item 1",
                "type": "Prescriptions"
            },
            "itemUom": {
                "id": 20,
                "label": "Capsule(s)"
            },
            "status": "Inactive"
        },
        {
            "id": "4271c364-1ea7-11",
            "type": {
                "id": 3,
                "label": "Prescription"
            },
            "date": "2018-09-05T03:40:00+00:00",
            "patient": {
                "id": "0000000000054309",
                "name": "Patient 1",
                "weight": ""
            },
            "createAt": "2018-09-05T03:41:00+00:00",
            "updateAt": "2018-09-05T03:41:00+00:00",
            "prescribedBy": {
                "fullName": "Ahmad Saifullah",
                "displayName": "Ahmad S.",
                "initial": "AS",
                "status": [],
                "id": "0fb67045-ae6c-11",
                "firstName": "Ahmad",
                "lastName": "Saifullah"
            },
            "recordNote": "",
            "quantity": 1,
            "item": {
                "id": "2e040d36-b56e-45",
                "label": "764 Item 1",
                "type": "Prescriptions"
            },
            "itemUom": {
                "id": 20,
                "label": "Capsule(s)"
            },
            "status": "Active"
        },
        {
            "id": "433ecdfa-1ea7-11",
            "type": {
                "id": 3,
                "label": "Prescription"
            },
            "date": "2018-09-05T03:51:00+00:00",
            "patient": {
                "id": "d0dfe29f-5bc7-49",
                "name": "Abu",
                "weight": ""
            },
            "createAt": "2018-09-05T03:52:01+00:00",
            "updateAt": "2018-09-05T03:52:28+00:00",
            "prescribedBy": {
                "fullName": "Ahmad Saifullah",
                "displayName": "Ahmad S.",
                "initial": "AS",
                "status": [],
                "id": "0fb67045-ae6c-11",
                "firstName": "Ahmad",
                "lastName": "Saifullah"
            },
            "recordNote": "",
            "quantity": 1,
            "item": {
                "id": "2e040d36-b56e-45",
                "label": "764 Item 1",
                "type": "Prescriptions"
            },
            "itemUom": {
                "id": 20,
                "label": "Capsule(s)"
            },
            "status": "Inactive"
        },
    },
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/records

Passing parameter in query

Operators : '<', '>', '<>', '=', '<=', '>=', 'like', 'in'

Where clauses:

Key Description Type
id Record Id uuid
patient_id Patient id for record patient_id (lookup from patient list)
create_at Record created time Date (ISO8601 format)
update_at Record updated time Date (ISO8601 format)

Example Request:

Ordering:

Key Description Type
create_at Record created time Date (ISO8601 format)
update_at Record updated time Date (ISO8601 format)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/records?orderBy=update_at,desc

Display the specified record.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/records/{recordId}" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/records/{recordId}",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
    "response": {
        "message": {
            "code": 200,
            "description": "Success"
        },
        "resource": {
            {
                "id": "a1928e6a-bb97-11",
                "type": {
                    "id": 3,
                    "label": "Prescription"
                },
                "date": "2018-05-30T08:12:00+00:00",
                "patient": {
                    "id": "a199ced2-bb97-11",
                    "name": "Patient 29052018",
                    "weight": ""
                },
                "createAt": "2018-05-30T08:13:16+00:00",
                "updateAt": "2018-05-30T08:13:57+00:00",
                "prescribedBy": {
                    "fullName": "Firdaous Yousof",
                    "displayName": "Firdaous Y.",
                    "initial": "FY",
                    "status": [],
                    "id": "0000000000000003",
                    "firstName": "Firdaous",
                    "lastName": "Yousof"
                },
                "recordNote": "",
                "quantity": 1,
                "item": {
                    "id": "d4ff0448-40c3-49",
                    "label": "001 Item 001",
                    "type": "Prescriptions"
                },
                "itemUom": {
                    "id": 1,
                    "label": "Unit(s)"
                },
                "status": "Inactive"
            },
        }
    }
}

HTTP Request

GET api/1.0.0/{apiKey}/record/{recordId}

Reminder

List of Reminders

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/reminders

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)
isactive To get the Active/Deleted reminders Integer (default 2, max 2)
1 - Active
0 - Deleted
2 - Both

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/reminders?page=2&perPage=200

Display a listing of the reminders.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/reminders" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/reminders",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 2,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 2,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resource": {
      "id": "11eff8f2-ae70-11",
      "note": "Laboratory / Diagnostics for Lab 1",
      "givenDate": "2017-04-20T20:09:00-07:00",
      "dueDate": "2017-05-20T20:09:24-07:00",
      "reminderSend": 2,
      "timePeriod": {
        "id": 4,
        "label": "Day"
      },
      "reminderSendOption": {
        "id": 1,
        "label": "Before Due"
      },
      "reminderType": {
        "id": 1,
        "label": "Email"
      },
      "status": {
        "id": 1,
        "label": "Completed"
       },
      "isActive": true,
      "patient": {
        "id": "11f587a5-ae33-11",
        "name": "Small",
        "weight": "20 Lbs"
      },
      "item": {
        "id": "11f518d9-ae2f-11",
        "label": "Lab 1"
      },
      "createAt": "2017-03-20T09:05:57+00:00",
            "updateAt": "2017-04-21T03:09:24+00:00",
      "clients": [
        {
          "id": "11efd914-ae61-11",
          "firstName": "Rheanna",
          "lastName": "L",
          "reminderAttributes": {
            "sendInterval": 2,
            "sendPeriod": {
              "id": 4,
              "label": "Day"
            },
            "sendAt": {
              "id": 1,
              "label": "Before Due"
            },
            "type": {
              "id": 1,
              "label": "Email"
            }
          }
        },
        {
          "id": "11ea66aa-ae3f-11",
          "firstName": "Rheanna",
          "lastName": "Finnegan",
          "reminderAttributes": {
            "sendInterval": 2,
            "sendPeriod": {
              "id": 4,
              "label": "Day"
            },
            "sendAt": {
              "id": 1,
              "label": "Before Due"
            },
            "type": {
              "id": 1,
              "label": "Email"
            }
          }
        },
        {
          "id": "11f9193b-ae52-11",
          "firstName": "Natalie",
          "lastName": "Tan",
          "reminderAttributes": {
            "sendInterval": 2,
            "sendPeriod": {
              "id": 4,
              "label": "Day"
            },
            "sendAt": {
              "id": 1,
              "label": "Before Due"
            },
            "type": {
              "id": 1,
              "label": "Email"
            }
          }
        },
        {
          "id": "11efefd0-ae52-11",
          "firstName": "Latoya",
          "lastName": "Wardle",
          "reminderAttributes": {
            "sendInterval": 2,
            "sendPeriod": {
              "id": 4,
              "label": "Day"
            },
            "sendAt": {
              "id": 1,
              "label": "Before Due"
            },
            "type": {
              "id": 1,
              "label": "Email"
            }
          }
        }
      ]
    },
      {
        "id": "11f55d9a-ae6b-11",
        "note": "Appointment for Minion on Mar 28, 2017 at 07:30 AM",
        "givenDate": "",
        "dueDate": "2017-03-28T04:30:00-07:00",
        "reminderSend": 2,
        "timePeriod": {
          "id": 4,
          "label": "Day"
        },
        "reminderSendOption": {
          "id": 1,
          "label": "Before Due"
        },
        "reminderType": {
          "id": 1,
          "label": "Email"
        },
        "status": {
           "id": 1,
           "label": "Completed"
       },
       "isActive": true,
        "patient": {
          "id": "11ea7803-ae5c-11",
          "name": "Minion",
          "weight": "23 Lbs"
        },
        "item": [],
        "createAt": "2017-03-28T08:48:37+00:00",
        "updateAt": "2017-03-28T08:48:47+00:00",
        "clients": [
          {
            "id": "11ea66aa-ae3f-11",
            "firstName": "Rheanna",
            "lastName": "Finnegan",
            "reminderAttributes": {
              "sendInterval": 2,
              "sendPeriod": {
                "id": 4,
                "label": "Day"
              },
              "sendAt": {
                "id": 1,
                "label": "Before Due"
              },
              "type": {
                "id": 1,
                "label": "Email"
              }
            }
          }
        ]
      },
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/reminders

Passing parameter in query

Operators : '<', '>', '<>', '=', '<=', '>=', 'like'

Where clauses:

Key Description Type
appointment.id Appointment id for reminder appointment.id (lookup from appointment list)
client.firstName Client first name for client reminder String
client.id Client id for client reminder client.id (lookup from client list)
client.lastName Client last name for client reminder String
createAt Reminder created time Date (ISO8601 format)
dueDate Reminder due date Date (ISO8601 format)
id Reminder Id uuid
note Reminder note String
patient.id Patient id for reminder patient.id (lookup from patient list)
patient.name Patient name for invoice String
record.id Record id for reminder record.id (lookup from patient record list)
sendAt Reminder Send option for client reminder reminder-send-options.id (lookup from reminder send options list)
sendInterval Send Interval for client reminder Integer
sendPeriod Send period id for client reminder time-period.id (lookup from time period list)
givenDate Reminder given date Date (ISO8601 format)
type Reminder type for client reminder reminders-types.id (lookup from reminder type list)
updateAt Reminder updated time Date (ISO8601 format)

Example Request:

Ordering:

Key Description Type
appointment.id Appointment id for reminder appointment.id (lookup from appointment list)
client.firstName Client first name for client reminder String
client.id Client id for client reminder client.id (lookup from client list)
client.lastName Client last name for client reminder String
createAt Invoice created time Date (ISO8601 format)
dueDate Reminder due date Date (ISO8601 format)
id Reminder Id uuid
note Reminder note String
patient.id Patient id for reminder patient.id (lookup from patient list)
patient.name Patient name for invoice String
record.id Record id for reminder record.id (lookup from patient record list)
sendAt Reminder Send option for client reminder reminder-send-options.id (lookup from reminder send options list)
sendInterval Send Interval for client reminder Integer
sendPeriod Send period id for client reminder time-period.id (lookup from time period list)
givenDate Reminder given date Date (ISO8601 format)
type Reminder type for client reminder reminders-types.id (lookup from reminder type list)
updateAt Invoice updated time Date (ISO8601 format)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/reminders?orderBy=updateAt,desc

Display the specified reminder.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/reminders/{reminderId}" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/reminders/{reminderId}",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "resource": {
      "id": "11eff8f2-ae70-11",
      "note": "Laboratory / Diagnostics for Lab",
      "givenDate": "2017-04-20T20:09:00-07:00",
      "dueDate": "2017-05-20T20:09:24-07:00",
      "reminderSend": 2,
      "timePeriod": {
        "id": 4,
        "label": "Day"
      },
      "reminderSendOption": {
        "id": 1,
        "label": "Before Due"
      },
      "reminderType": {
        "id": 1,
        "label": "Email"
      },
      "status": {
        "id": 0,
        "label": "Not complete"
      },
      "isActive": true,
      "patient": {
        "id": "11f587a5-ae33-11",
        "name": "Small",
        "weight": "20 Lbs"
      },
      "item": {
        "id": "11f518d9-ae2f-11",
        "label": "Lab 1"
      },
      "createAt": "2017-03-20T09:05:57+00:00",
      "updateAt": "2017-04-21T03:09:24+00:00",
      "clients": [
        {
          "id": "",
          "firstName": "",
          "lastName": "",
          "reminderAttributes": {
            "sendInterval": 2,
            "sendPeriod": {
              "id": 4,
              "label": "Day"
            },
            "sendAt": {
              "id": 1,
              "label": "Before Due"
            },
            "type": {
              "id": 1,
              "label": "Email"
            }
          }
        },
        {
          "id": "",
          "firstName": "",
          "lastName": "",
          "reminderAttributes": {
            "sendInterval": 3,
            "sendPeriod": {
              "id": 7,
              "label": "Year"
            },
            "sendAt": {
              "id": 2,
              "label": "After Due"
            },
            "type": {
              "id": 1,
              "label": "Email"
            }
          }
        },
        {
          "id": "",
          "firstName": "",
          "lastName": "",
          "reminderAttributes": {
            "sendInterval": 2,
            "sendPeriod": {
              "id": 4,
              "label": "Day"
            },
            "sendAt": {
              "id": 1,
              "label": "Before Due"
            },
            "type": {
              "id": 1,
              "label": "Email"
            }
          }
        },
        {
          "id": "",
          "firstName": "",
          "lastName": "",
          "reminderAttributes": {
            "sendInterval": 2,
            "sendPeriod": {
              "id": 4,
              "label": "Day"
            },
            "sendAt": {
              "id": 1,
              "label": "Before Due"
            },
            "type": {
              "id": 1,
              "label": "Email"
            }
          }
        }
      ]
    }
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/reminders/{reminderId}

Reminder Send Option

List of Reminder Send Options

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/reminder-send-options

Response Status:

Remarks:

  1. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/reminder-send-options?page=2&perPage=200

Display a listing of the available reminder send options.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/reminder-send-options" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/reminder-send-options",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 2,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 2,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": 1,
        "value": "Before Due"
      },
      {
        "id": 2,
        "value": "After Due"
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/reminder-send-options

Reminder Type

List of Reminder Types

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/reminder-types

Response Status:

Remarks:

  1. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/reminder-types?page=2&perPage=200

Display a listing of the available reminder types.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/reminder-types" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/reminder-types",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 5,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 5,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": 1,
        "value": "Email"
      },
      {
        "id": 2,
        "value": "Phone"
      },
      {
        "id": 3,
        "value": "Mail"
      },
      {
        "id": 4,
        "value": "No Reminder"
      },
      {
        "id": 5,
        "value": "SMS (Text)"
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/reminder-types

Staff

List of Staffs

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/staffs

Response Status:

Remarks:

  1. All the dates are converted to UTC.

  2. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/staffs?page=2&perPage=200

Display a listing of the practice’s staff members.

.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/staffs" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/staffs",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 3,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 3,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": "06c4bccb-ae30-11",
        "firstName": "Rheanna",
        "lastName": "Finnegan",
        "title": "",
        "address": "",
        "city": "",
        "state": "",
        "country": "",
        "zipcode": "",
        "home": "",
        "mobile": "",
        "email": "rheanna@vettersoftware.com",
        "license": "",
        "DEA": "",
        "createAt": "2015-07-20T08:19:05+00:00",
        "updateAt": "2017-03-20T08:56:36+00:00",
        "isProvider": true,
        "schedule": {
          "label": "Dont Display on schedule"
        },
        "role": {
          "label": "Administrator"
        }
      },
      {
        "id": "0000000000012888",
        "firstName": "Peter",
        "lastName": "Warner",
        "title": "",
        "address": "",
        "city": "Bloomington",
        "state": "Illinois",
        "country": "United States",
        "zipcode": "61701",
        "home": "",
        "mobile": "",
        "email": "pwarner@vettersoftware.com",
        "license": "",
        "DEA": "",
        "createAt": "2010-05-07T00:00:00+00:00",
        "updateAt": "2017-05-26T08:55:06+00:00",
        "isProvider": false,
        "schedule": {
          "label": "Display on schedule"
        },
        "role": {
          "label": "Office Manager"
        }
      },
      {
        "id": "fed298bf-ae25-11",
        "firstName": "Ami",
        "lastName": "Espinosa",
        "title": "",
        "address": "",
        "city": "",
        "state": "",
        "country": "",
        "zipcode": "",
        "home": "",
        "mobile": "",
        "email": "ami@vettersoftware.com",
        "license": "",
        "DEA": "",
        "createAt": "2015-03-10T01:30:11+00:00",
        "updateAt": "2017-07-26T02:32:59+00:00",
        "isProvider": false,
        "schedule": {
          "label": "Display on schedule"
        },
        "role": {
          "label": "Administrator"
        }
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/staffs

Time Period

List of Time Period

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/time-period

Response Status:

Remarks:

  1. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/time-period?page=2&perPage=200

Display a listing of the available time period.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/time-period" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/time-period",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 7,
      "perPage": 20,
      "currentPage": 1,
      "lastPage": 1,
      "from": 1,
      "to": 7,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": 1,
        "value": "Second"
      },
      {
        "id": 2,
        "value": "Minute"
      },
      {
        "id": 3,
        "value": "Hour"
      },
      {
        "id": 4,
        "value": "Day"
      },
      {
        "id": 5,
        "value": "Week"
      },
      {
        "id": 6,
        "value": "Month"
      },
      {
        "id": 7,
        "value": "Year"
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/time-period

Time Sheet

List of Time Sheet

Method: GET

URL: https://{{domain}}/api/1.0.0/{apiKey}/timesheet

Response Status:

Remarks:

  1. Clinic's timezone is displayed in the response.meta.

Parameters:

Key Description Type
page To go to another page Integer (default 1)
perPage To set number of records per page Integer (default 20, max 200)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/timesheet?page=2&perPage=200

Display a listing of the available time sheet.

Example request:

curl "http://{{domain}}/api/1.0.0/{apiKey}/timesheet" \
-H "Accept: application/json"
var settings = {
  async: true,
  crossDomain: true,
  url: "http://{{domain}}/api/1.0.0/{apiKey}/timesheet",
  method: "GET",
  headers: {
    accept: "application/json",
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Example response:

{
  "response": {
    "message": {
      "code": 200,
      "description": "Success"
    },
    "meta": {
      "total": 7924,
      "perPage": 200,
      "currentPage": 1,
      "lastPage": 40,
      "from": 1,
      "to": 200,
      "timezone": "Asia/Kuala_Lumpur"
    },
    "resources": [
      {
        "id": 36,
        "clock_in_time": "2015-06-12T04:44:00+00:00",
        "clock_out_time": "2015-06-12T15:00:00+00:00",
        "round_clock_in_time": "2015-06-12T04:44:00+00:00",
        "round_clock_out_time": "2015-06-12T15:00:00+00:00",
        "hours": 10,
        "minutes": 16,
        "isactive": true,
        "comments": "",
        "note": null,
        "staff": {
          "id": "0000000000000001",
          "firstname": "Firdaous",
          "lastname": "Y",
          "email": "firdaous.y@vs.com"
        }
      },
      {
        "id": 41,
        "clock_in_time": "2015-06-12T15:00:00+00:00",
        "clock_out_time": "2015-06-13T15:00:00+00:00",
        "round_clock_in_time": "2015-06-12T15:00:00+00:00",
        "round_clock_out_time": "2015-06-13T15:00:00+00:00",
        "hours": 24,
        "minutes": 0,
        "isactive": true,
        "comments": null,
        "note": null,
        "staff": {
          "id": "0000000000000001",
          "firstname": "Firdaous",
          "lastname": "Y",
          "email": "firdaous.y@vs.com"
        }
      }
    ]
  }
}

HTTP Request

GET api/1.0.0/{apiKey}/timesheet

Passing parameter in query

Operators : '<', '>', '<>', '=', '<=', '>=', 'like'

Where clauses:

Key Description Type
staff.id Staff ID for timesheet staff ID (lookup from staff list)
staff.firstname Staff first name for timesheet String
staff.lastname Staff last name for timesheet String
staff.email Staff email for timesheet String
clock_in_time Timesheet clock in datetime Date (ISO8601 format)
clock_out_time Timesheet clock out datetime Date (ISO8601 format)
round_clock_in_time Timesheet rounded clock in datetime Date (ISO8601 format)
round_clock_out_time Timesheet rounded clock out datetime Date (ISO8601 format)
isactive Item status 1 - Active, 0 - Inactive

Example Request:

Ordering:

Key Description Type
clock_in_time Timesheet clock in datetime Date (ISO8601 format)
clock_out_time Timesheet clock out datetime Date (ISO8601 format)
round_clock_in_time Timesheet rounded clock in datetime Date (ISO8601 format)
round_clock_out_time Timesheet rounded clock out datetime Date (ISO8601 format)

Example Request: curl -X GET -H "Authorization: Bearer {token}" -H "Cache-Control: no-cache" -H "x-api-key: {client_secret}" -H "https://{{domain}}/api/1.0.0/{apiKey}/timesheet?orderBy=round_clock_in_time,desc