Introdução
Bem-vindos à documentação da API do OW.Net Cloud. O objetivo desta documentação é orientar os desenvolvedores sobre como integrar-se com a API, descrevendo funcionalidades, os métodos a serem utilizados, listando informações a serem enviadas e recebidas, e fornecendo exemplos.
O processo de integração com a API do OW.Net Cloud é simples, exigindo apenas conhecimentos intermediários em linguagem de programação para a web, requisições HTTPS e manipulação de arquivos JSON, a fim de ser implantado com sucesso.
Neste manual, você encontrará a referência de todas as operações disponíveis na API REST do OW.Net Cloud. Essas operações devem ser executadas utilizando sua chave específica (Nome de usuário e senha) nos respectivos endpoints dos ambientes.
Requisitos para Integração
Antes de iniciar a integração com nossa API, você precisará ter credenciais válidas para realizar suas requisições. Para obtê-las, basta preencher o formulário e aguardar nosso retorno.
Credenciais
Requisição:
curl -X POST
-H 'Content-Type: application/x-www-form-urlencoded'
[URL]/token
-d "grant_type=password"
-d "username=$_username"
-d "password=$_password"
Resposta:
{
"access_token":"RU28Dl3t4BfffEmGTLx28_bBVqybQ2LHecgUgq21cWzrN0jtcbZHlK7Yw6PNxdfIXgLpRZcGdf",
"token_type":"bearer",
"expires_in":7199
}
Com suas credenciais de username e password, você poderá obter o access_token, que será usado em todas as requisições.
Autenticação
A API requer dois tokens para realizar as requisições:
access_token
: OAuth - obtido com suas credenciaistoken
: Chave fornecida pela clínica/consultório
URL
Ambiente | URL |
---|---|
SANDBOX | http://local.odontoway.com |
PRODUÇÃO | https://api.owcloud.com.br |
Agenda
Pesquisar Unidades
Esta operação permite pesquisar pelas unidades disponíveis para agendamento.
Requisição:
{URL}/api/v1/calendar/offices?token={token} \
-H "Authorization: Bearer access_token"
Resposta:
{
"Description": "Unidade Praia do Canto",
"Address":
{
"Street": "Arthur Czartoryski",
"Number": "70",
"Complement": "Sala 333",
"ZipCode": "29060370",
"City": "Vitória",
"State": "ES"
}
}
HTTPS Request
GET [URL]/api/v1/calendar/offices
Parâmetros
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
token |
Guid | Sim | Chave fornecida pela clínica/consultório |
Pesquisar Profissionais
Esta operação permite pesquisar pelos profissionais disponíveis para agendamento.
Requisição:
{URL}/api/v1/calendar/doctors?token={token}&office={office} \
-H "Authorization: Bearer access_token"
Resposta:
{
"DoctorId": "00000011-0000-0000-1042-000000000001",
"Name": "Perseu Conde",
"Office": "Unidade Praia do Canto"
}
HTTPS Request
GET [URL]/api/v1/calendar/doctors
Parâmetros
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
token |
Guid | Sim | Chave fornecida pela clínica/consultório |
office |
string | Não | Nome da Unidade |
Pesquisar Atividades
Esta operação permite pesquisar pelas atividades disponíveis para agendamento.
Requisição:
{URL}/api/v1/calendar/activities?token={token}&office={office}&doctorId={doctorId} \
-H "Authorization: Bearer access_token"
Resposta:
{
"ActivityId": "194fe4c8-bf70-4a53-81f9-83a24777640b",
"Description": "Atendimento (diversos)",
"Office": "Unidade Praia do Canto"
}
HTTPS Request
GET [URL]/api/v1/calendar/activities
Parâmetros
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
token |
Guid | Sim | Chave fornecida pela clínica/consultório |
office |
string | Não | Nome da Unidade |
doctorId |
Guid | Não | Identificador do profissional |
Pesquisar Datas Disponíveis
Esta operação permite pesquisar pelas datas disponíveis para agendamento.
Requisição:
{URL}/api/v1/calendar/availabledates?token={token}&office={office}&doctorId={doctorId}&activityId={activityId}&startDate={startDate}&quantity={quantity} \
-H "Authorization: Bearer access_token"
Resposta:
{
"Office": "Unidade Praia do Canto",
"DoctorId": "00000011-0000-0000-1042-000000000001",
"ActivityId": "194fe4c8-bf70-4a53-81f9-83a24777640b",
"Date": "2021-12-08"
}
HTTPS Request
GET [URL]/api/v1/calendar/availabledates
Parâmetros
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
token |
Guid | Sim | Chave fornecida pela clínica/consultório |
office |
string | Não | Nome da Unidade |
doctorId |
Guid | Não | Identificador do profissional |
activityId |
Guid | Não | Identificador da atividade |
startDate |
Date | Não | Data inicial da pesquisa |
quantity |
Guid | Não | Total de datas que serão retornadas - Default = 10 |
Pesquisar Horários Disponíveis
Esta operação permite pesquisar pelos horários disponíveis para agendamento.
Requisição:
{URL}/api/v1/calendar/availabletimes?token={token}&date={date}&office={office}&doctorId={doctorId}&activityId={activityId} \
-H "Authorization: Bearer access_token"
Resposta:
{
"Time": "09:00:00",
"AppointmentId": "699f4a68-49ec-4a1a-a9d2-9d69696a0d7d"
}
HTTPS Request
GET [URL]/api/v1/calendar/availabletimes
Parâmetros
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
token |
Guid | Sim | Chave fornecida pela clínica/consultório |
date |
Date | Sim | Data que será realizada a consulta dos horários |
office |
string | Não | Nome da Unidade |
doctorId |
Guid | Não | Identificador do profissional |
activityId |
Guid | Não | Identificador da atividade |
Agendar um Cliente
Esta operação permite agendar um cliente em um horário disponível.
HTTPS Request
POST [URL]/api/v1/calendar/insert
Requisição:
{URL}/api/v1/calendar/insert?token={token} \
-H "Authorization: Bearer access_token"
Body parameter
{
"Id": "699f4a68-49ec-4a1a-a9d2-9d69696a0d7d",
"CampaignId": "",
"Client":
{
"Id": "",
"Name": "Marcelo",
"LastName": "Almeida",
"Phone": "4799376637",
"Email": "marcelo.almeida@gmail.com"
}
}
Resposta:
"699f4a68-49ec-4a1a-a9d2-9d69696a0d7d"
Parâmetros
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
token |
Guid | Sim | Chave fornecida pela clínica/consultório |
Propriedades Appointment
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
token |
Guid | Sim | Chave fornecida pela clínica/consultório |
Id |
Guid | Sim | Identificador do agendamento - AppointmentId |
CampaignId |
Guid | Não | Identificador da campanha pelo qual o cliente se interessou pela clínica |
Client |
Guid | Sim | Objeto como os dados do cliente que irá ser agendado Client |
Confirmar um Agendamento
Esta operação permite confirmar um horário agendado.
Requisição:
{URL}/api/v1/calendar/confirm?token={token}&appointmentId={appointmentId} \
-H "Authorization: Bearer access_token"
Resposta:
"Appointment confirmed"
HTTPS Request
GET [URL]/api/v1/calendar/confirm
Parâmetros
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
token |
Guid | Sim | Chave fornecida pela clínica/consultório |
appointmentId |
Guid | Sim | Identificador do agendamento |
Clientes
Pesquisar um Cliente
Esta operação permite pesquisar um cliente/paciente pelo e-mail ou número de telefone.
Requisição:
{URL}/api/v1/patient/find?token={token}&phone={phone}&email={email} \
-H "Authorization: Bearer access_token"
Resposta:
{
"Id": "49a5d19a-fa8e-44ee-8d5a-3bdaf4bfcd8a",
"Ide": 99999,
"Name": "Marcelo",
"LastName": "Almeida",
"Phone": "4799376637",
"Email": "marcelo.almeida@gmail.com",
"Birthday": "31/12/2000",
"Address": {
"Street": "Av. Vitória",
"Number": "55",
"Complement": "casa",
"ZipCode": "29140744",
"City": "Vitória",
"State": "ES"
}
}
HTTPS Request
GET [URL]/api/v1/patient/find
Parâmetros
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
token |
Guid | Sim | Chave fornecida pela clínica/consultório |
phone |
string | Não | Número do telefone principal do cliente |
email |
string | Não | E-mail principal do cliente |
Obter um Cliente pelo Id
Esta operação permite obter as informações de um cliente/paciente cadastrado com base no seu ID.
Requisição:
{URL}/api/v1/patient/get?token={token}&id={id} \
-H "Authorization: Bearer access_token"
Resposta:
{
"Id": "49a5d19a-fa8e-44ee-8d5a-3bdaf4bfcd8a",
"Name": "NameNameName",
"LastName": "LastNameLastName",
"Phone": "9999-9999",
"Email": "email@email.com.br",
"Address": {
"Street": "Av. Vitória",
"Number": "55",
"Complement": "casa",
"ZipCode": "29140744",
"City": "Vitória",
"State": "ES"
},
"Ide": 99999,
"Birthday": "2001-01-01T00:00:00"
}
HTTPS Request
GET [URL]/api/v1/patient/get
Parâmetros
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
token |
Guid | Sim | Chave fornecida pela clínica/consultório |
id |
Guid | Sim | Identificador único do cliente na plataforma |
Obter um Cliente pelo Identificador
Esta operação permite obter informações básicas de um cliente cadastrado com base no seu Identificador.
Requisição:
{URL}/api/v1/patient/getbyide?token={token}&ide={ide} \
-H "Authorization: Bearer access_token"
Resposta:
{
"Id": null,
"Name": "NameNameName",
"LastName": "LastNameLastName",
"Phone": "9999-9999",
"Email": "email@email.com.br",
"Address": null,
"Ide": 99999,
"Birthday": "2001-01-01T00:00:00"
}
HTTPS Request
GET [URL]/api/v1/patient/getbyide
Parâmetros
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
token |
Guid | Sim | Chave fornecida pela clínica/consultório |
ide |
int | Sim | Identificador único do cliente para a clínica |
Leads
Inserir um Lead
Esta operação permite incluir um Lead no Funil de Vendas.
HTTPS Request
POST [URL]/api/v1/lead/insert
Requisição:
{URL}/api/v1/lead/insert?token={token} \
-H "Authorization: Bearer access_token"
Body parameter
{
"CampaignId": "699f4a68-49ec-4a1a-a9d2-9d69696a0d7d",
"Client":
{
"Id": "",
"Name": "Marcelo",
"LastName": "Almeida",
"Phone": "4799376637",
"Email": "marcelo.almeida@gmail.com"
},
"Note": "Tenho interesse em ..."
}
Resposta:
"77aa3f83-d1e5-441a-8a4f-7e766962b6f8"
Parâmetros
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
token |
Guid | Sim | Chave fornecida pela clínica/consultório |
Propriedades Lead
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
token |
Guid | Sim | Chave fornecida pela clínica/consultório |
CampaignId |
Guid | Sim | Identificador da campanha pelo qual o cliente se interessou pela clínica |
Client |
Guid | Sim | Objeto como os dados do cliente que irá ser agendado Client |
Note |
String | Não | Comentário feito pelo cliente na página. Máximo 255 caracteres |
Campanhas de Marketing
Listar as campanhas ativas
Esta operação permite listar as campanhas de marketing que estão ativas.
Requisição:
{URL}/api/v1/campaign/list?token={token} \
-H "Authorization: Bearer access_token"
Resposta:
{
"Id": "b8dd3cf9-db13-495a-bd52-f54f967321e4",
"Description": "Facebook"
}
HTTPS Request
GET [URL]/api/v1/campaign/list
Parâmetros
Parâmetro | Tipo | Obrigatório | Descrição |
---|---|---|---|
token |
Guid | Sim | Chave fornecida pela clínica/consultório |
Estruturas dos Objetos
Abaixo as estruturas dos objetos DTO
Appointment
Objeto contendo informações para inserir um agendamento
{
"Id": "699f4a68-49ec-4a1a-a9d2-9d69696a0d7d",
"CampaignId": "",
"Client": {
"Id": "",
"Name": "Marcelo",
"LastName": "Almeida",
"Phone": "4799376637",
"Email": "marcelo.almeida@gmail.com",
"Address": {
"Street": "Av. Vitória",
"Number": "55",
"Complement": "casa",
"ZipCode": "29140744",
"City": "Vitória",
"State": "ES"
}
}
}
Propriedades
Nome | Tipo | Obrigatório | Descrição |
---|---|---|---|
Id |
Guid | Sim | Identificador do horário disponível |
CampaignId |
Guid | Não | Identificador da campanha/referência do qual este cliente conheceu a empresa |
Client |
Client | Sim | Objeto contendo informações do cliente |
Client
Objeto contendo informações do cliente
{
"Id": "",
"Name": "Marcelo",
"LastName": "Almeida",
"Phone": "4799376637",
"Email": "marcelo.almeida@gmail.com",
"Address": {
"Street": "Av. Vitória",
"Number": "55",
"Complement": "casa",
"ZipCode": "29140744",
"City": "Vitória",
"State": "ES"
}
}
Propriedades
Nome | Tipo | Obrigatório | Descrição |
---|---|---|---|
Id |
Guid | Sim | Identificador do horário disponível |
Name |
string | Sim | Nome do cliente |
LastName |
string | Sim | Sobrenome do cliente |
Phone |
string | Sim | Telefone do cliente |
Email |
string | Sim | E-mail do cliente |
Address |
Address | Não | Objeto contendo o endereço do cliente Address |
Address
Objeto contendo o endereço do cliente
{
"Street": "Av. Vitória",
"Number": "55",
"Complement": "casa",
"ZipCode": "29140744",
"City": "Vitória",
"State": "ES"
}
Propriedades
Nome | Tipo | Obrigatório | Descrição |
---|---|---|---|
Street |
string | Não | Logradouro |
Number |
string | Não | Número |
Complement |
string | Não | Complemento |
ZipCode |
string | Não | CEP |
City |
string | Não | Cidade |
State |
string | Não | Estado |
Lead
Objeto contendo informações para inserir um lead
{
"CampaignId": "9c7327ae-15d3-4a68-97ae-d1e2e52c59bc",
"Client":
{
"Id": "",
"Name": "Marcelo",
"LastName": "Almeida",
"Phone": "4799376637",
"Email": "marcelo.almeida@gmail.com"
},
"Note": "Tenho interesse em ..."
}
Propriedades
Nome | Tipo | Obrigatório | Descrição |
---|---|---|---|
CampaignId |
Guid | Sim | Identificador da campanha/referência do qual este cliente conheceu a empresa |
Client |
Client | Sim | Objeto contendo informações do cliente |
Note |
String | Não | Comentário feito pelo cliente na página. Máximo 255 caracteres |
Erros
Códigos de erros utilizados
Error Code | Meaning |
---|---|
null | Nenhuma informação foi encontrada |
The request is invalid | Requisição incorreta por falta de um ou mais parâmetros |
400 | Bad Request -- Your request is invalid. |
401 | Unauthorized -- Your API key is wrong. |
403 | Forbidden -- The kitten requested is hidden for administrators only. |
404 | Not Found -- The specified kitten could not be found. |
405 | Method Not Allowed -- You tried to access a kitten with an invalid method. |
406 | Not Acceptable -- You requested a format that isn't json. |
410 | Gone -- The kitten requested has been removed from our servers. |
418 | I'm a teapot. |
429 | Too Many Requests -- You're requesting too many kittens! Slow down! |
500 | Internal Server Error -- We had a problem with our server. Try again later. |
503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |
Termos de Uso da API
Ao utilizar a API do OW.Net Cloud, você concorda com os seguintes termos e condições:
Credenciais de Acesso: As credenciais de acesso à API são exclusivas para o uso da sua empresa. Não compartilhe suas credenciais com terceiros.
Uso Adequado: Utilize a API do OW.Net Cloud de acordo com a documentação fornecida. Não utilize a API para fins ilegais ou prejudiciais.
Responsabilidade: Sua empresa é responsável por todas as atividades realizadas com suas credenciais de acesso.
Segurança: Mantenha suas credenciais de acesso em segurança e protegidas contra acesso não autorizado.
Limitação de Responsabilidade: A LS-Sistemas não se responsabiliza por quaisquer danos decorrentes do uso ou impossibilidade de uso da API.
Revogação de Acesso: A LS-Sistemas se reserva o direito de revogar o acesso à API a qualquer momento, sem aviso prévio, em caso de violação destes termos.
Ao acessar e utilizar a API do OW.Net Cloud, você concorda em cumprir estes termos de uso. A LS-Sistemas se reserva o direito de atualizar ou modificar estes termos a qualquer momento. É responsabilidade da sua empresa revisar periodicamente estes termos para estar ciente de quaisquer alterações.