Esta documentação visa explanar sobre as API's desenvolvidas para verificar regras específicas (customizadas) da operadora de saúde em determinados pontos da autorização construída no HAT. Isto é, a Operadora de Saúde deverá desenvolver uma API em seu software de gestão que validará regras específicas na verificação de elegibilidade do beneficiário, na validação dos procedimentos e na gravação do atendimento. A padronização de como o HAT enviará as informações para esta API e o que esperará de retorno será documentada neste espaço.
Para mais informações sobre outras API's acesse o endereço https://api.totvs.com.br/
Para configurar os endpoints da customização, é necessário acessar o painel de administração do HAT.
Em seguida, acessar, no menu Configurações, Configurações de Integração.
Serão três EndPoints, e podem ter suas informações editadas.
Abaixo é o corpo da requisição que o HAT enviará para o seu endpoint customizado
Nome | Tipo | Descrição |
beneficiaries | Array | Pode comportar vários beneficiários |
beneficiaries.rejectionCauses | Array of Object | Críticas já validadas pelo HAT |
beneficiaries.rejectionCauses[n].code | String | Código da Crítica |
beneficiaries.rejectionCauses[n].alert | String | Se é alerta “1” ou não “0” |
beneficiaries.rejectionCauses[n].description | String | Descrição da crítica |
beneficiaries.beneficiary | Object | Dados do beneficiário |
beneficiaries.beneficiary.gender | String | 1 para feminino e 2 para masculino |
beneficiaries.beneficiary._expandables | Array | Atributos retraídos da entidade que podem ser expandidos |
beneficiaries.beneficiary.phoneNumber | String | Telefone do beneficiário |
beneficiaries.beneficiary.subscriberId | String | Número da matrícula |
beneficiaries.beneficiary.companyName | String | Nome da empresa do plano |
beneficiaries.beneficiary.age | Int | Idade do beneficiário |
beneficiaries.beneficiary.cardExpiration | String | Data de expiração da carteirinha |
beneficiaries.beneficiary.holderRelationship | String | T para verdadeiro e F para falso |
beneficiaries.beneficiary.newbornAttendance | String | S para atendimento RN e N para atendimento normal |
beneficiaries.beneficiary.holderCPF | String | CPF do beneficiário ou responsável |
beneficiaries.beneficiary.isInterchange | Boolean | Indica se o beneficiário é de intercâmbio |
beneficiaries.beneficiary.whenToCharge | String | 1 para Coparticipação com pagamento no ato e 0 Sem coparticipação |
beneficiaries.beneficiary.birthdate | String | Data de nascimento |
beneficiaries.beneficiary.isOwner | Boolean | Se o beneficiário é titular |
beneficiaries.beneficiary.CNS | String | Código do Cartão Nacional de saúde |
beneficiaries.beneficiary.oldSubscriberId | String | Matrícula antiga (matant) |
String | Nome | |
beneficiaries.beneficiary.healthInsurance | Object | Dados do plano |
beneficiaries.beneficiary.healthInsurance.code | String | Código do plano |
beneficiaries.beneficiary.healthInsurance.roomType | String | Tipo de acomodação |
beneficiaries.beneficiary.healthInsurance.description | String | Descrição do plano |
beneficiaries.beneficiary.weight | String | Peso do beneficiário |
beneficiaries.beneficiary.height | String | Altura do beneficiário |
beneficiaries.warnings | Array of Object | Avisos do beneficiário |
beneficiaries.elegibilityResponse | String | Elegibilidade do beneficiário (S para elegível e N para não elegível) |
serviceResponse | Boolean | Resposta do serviço |
authorizationType | String | Tipo de guia 1 – Consulta 2 – Exame 3 – Execução 4 – Internação 9 – Tratamento odontológico |
journey | String | Jornada da guia 1 – Consulta 2 – Exame 3 – Execução 4 – Internação 9 – Tratamento odontológico 10 – Pronto Socorro 11 – Tratamento Seriado |
Abaixo a resposta que o seu endpoint deve retornar:
O HAT sobrescreverá o resultado da elegibilidade e as críticas.
Nomear | Tipo | Descrição |
beneficiaries | Array | Pode comportar vários beneficiários |
beneficiaries.beneficiary | Object | Contém os dados do beneficiário |
beneficiaries.beneficiary.subscriberId | String | Matrícula do beneficiário |
beneficiaries.beneficiary.elegibilityResponse | String | S (autorizado) ou N (não autorizado) – Será substituído na decisão do HAT. Exemplo: o HAT não autorizou mas a customização sim, prevalece a customização. |
beneficiaries.beneficiary.rejectionCauses | Array of Object | Críticas no mesmo padrão do envio. Pode-se manter as críticas validadas pelo HAT, substituir as críticas ou apenas adicionar novas. |
Exemplo JSONs montados:
O HAT vai enviar para o seu endpoint um corpo diferente para cada tipo de atendimento pois as informações variam de acordo com a guia. Por exemplo: Data de internação: Informado somente na guia de internação.
O corpo da mensagem que o HAT enviará para sua customização é o mesmo que está descrito abaixo no item 05 (Customização da gravação da autorização), porém tem um objeto a mais no JSON que é referente ao procedimento que está sendo validado no momento, pois a guia pode ter N procedimentos. Desta forma, há o objeto procedures no corpo da requisição com todos os procedimentos do atendimento e há o objeto validatedProcedure (descrito abaixo) com o procedimento que está sendo validado, neste objeto basicamente tem a tabela e código do procedimento, quantidade solicitada e autorizada (pelo HAT) e possíveis críticas que o HAT já validou.
Nome | Tipo | Descrição |
validatedProcedure | Object | Dados do procedimento que está sendo validado |
validatedProcedure.auditing | Boolean | Se está em auditoria |
validatedProcedure.authorizedQuantity | Number | Quantidade autorizada |
validatedProcedure.balance | Number | Saldo |
validatedProcedure.executionDate | String | Data de execução |
validatedProcedure.inSerie | Boolean | Se o procedimento é seriado |
validatedProcedure.procedureCode | String | Código do procedimento |
validatedProcedure.procedureDescription | String | Descrição do procedimento |
validatedProcedure.procedureType | String | Tipo do procedimento 0 - Procedimento 1 - Material 2 - Medicamento 3 - Taxas 4 - Diarias 5 - OrteseProtese 6 - Pacote 7 - GasesMedicinais 8 - Alugueis 9 - Outros |
validatedProcedure.rejectionCauses | Array of object | Críticas do procedimento |
validatedProcedure.rejectionCauses[n].code | String | Código da crítica |
validatedProcedure.rejectionCauses[n].idTiss | String | Código da crítica na TISS |
validatedProcedure.rejectionCauses[n].description | String | Descrição da crítica |
validatedProcedure.rejectionCauses[n].alert | String | 0 – Crítica 1 – Alerta |
validatedProcedure.requestedQuantity | Number | Quantidade Solicitada |
validatedProcedure.status | Number | Status do procedimento 1 – Autorizado 0 – Negado |
validatedProcedure.tableCode | String | Código da Tabela |
validatedProcedure.toothRegion | String | Dente/Região – Terminologia |
validatedProcedure.surfaces | String | Faces – Separadas por “,” Terminologia |
Abaixo a resposta que o seu endpoint deve retornar:
Nome | Tipo | Descrição |
procedureStatus | Number | 1 - Autorizado 0 - Negado Será substituído na decisão do HAT. Exemplo: o HAT não autorizou mas a customização sim, prevalece a customização. |
auditing | Boolean | true - Enviar para auditoria false - Não enviar para auditoria |
rejectionCauses | Array of Object | Críticas no mesmo padrão do envio. Pode-se manter as críticas validadas pelo HAT, substituir as críticas ou apenas adicionar novas. |
Exemplo JSONs montados:
O HAT vai enviar para o seu endpoint de customização, um corpo diferente para cada tipo de atendimento pois as informações variam de acordo com a guia. Por exemplo: Data de internação: Informado somente na guia de internação.
Nome | Tipo | Descrição |
accidentIndication | String | Indicação de acidente |
ansRegistry | String | Registro ANS |
attendanceLocation | String | Local de atendimento = BB8_LOCAL |
attendanceModel | String | Caráter de atendimento – Terminologia |
attendanceNote | String | Observação do atendimento |
attendanceProtocol | String | Protocolo de atendimento |
attendanceType | String | Tipo de atendimento – Terminologia |
authorizationDate | String | Data da autorização |
authorizationStatus | String | Status da autorização 1 – Autorizado 2 – Parcialmente autorizado 3 – Negado 6 – Auditoria |
authorizationType | String | 1 – Consulta 2 – Exame 3 – Execução 4 – Internação 9 – Tratamento odontológico 10 – Pronto Socorro 11 – Tratamento Seriado |
authorizedHospital | String | Código do hospital autorizado = BAU_CODIGO |
beneficiary | Object | Dados do beneficiário |
beneficiary.birthdate | String | Data de nascimento |
beneficiary.cardExpiration | String | Data de expiração da carteirinha |
beneficiary.CNS | String | Número do CNS |
beneficiary.phoneNumber | String | Telefone |
beneficiary.holderCPF | String | CPF do beneficiário ou responsável |
beneficiary.healthInsurance | Object | Dados do plano |
beneficiary.healthInsurance.code | String | Código do plano |
beneficiary.healthInsurance.description | String | Descrição do plano |
beneficiary.healthInsurance.roomType | String | Tipo de acomodação |
beneficiary.isOwner | Boolean | Se o beneficiário é o titular |
String | Nome | |
beneficiary.oldSubscriberId | String | Matrícula antiga |
beneficiary.owner | Object | Dados do titular |
beneficiary.owner.birthdate | String | Data de nascimento |
beneficiary.owner.cardExpiration | String | Data de expiração da carteirinha |
beneficiary.owner.CNS | String | Número do CNS |
beneficiary.owner.phoneNumber | String | Telefone |
beneficiary.owner.holderCPF | String | CPF do beneficiário ou responsável |
beneficiary.owner.healthInsurance | Object | Dados do plano |
beneficiary.owner.healthInsurance.code | String | Código do plano |
beneficiary.owner.healthInsurance.description | String | Descrição do plano |
beneficiary.owner.healthInsurance.roomType | String | Tipo de acomodação |
String | Nome | |
beneficiary.owner.oldSubscriberId | String | Matrícula antiga |
beneficiary.owner.subscriberId | String | Matrícula |
beneficiary.owner.companyName | String | Nome da empresa |
beneficiary.subscriberId | String | Matrícula |
beneficiary.companyName | String | Nome da empresa |
beneficiary.whenToCharge | String | Coparticipação no ato 1 = Sim e 0 = Não |
beneficiary.rejectionCauses | Array of Object | Críticas |
beneficiary.rejectionCauses[n].code | String | Código da crítica |
beneficiary.rejectionCauses[n].description | String | Descrição da crítica |
beneficiary.rejectionCauses[n].alert | String | 1 = Alerta 0 = Crítica |
billingType | String | Tipo de faturamento – Terminologia |
clinicalCondition | String | Indicação Clínica |
closingReason | String | Motivo de encerramento – Terminologia |
consultationType | String | Tipo de Consulta – Terminologia |
copaymentValue | Number | Valor de coparticipação |
copaymentError | Number | Erro de coparticipação 1 = Sim 0 = Não |
dailyAuthorizedQuantity | Number | Quantidade de diárias autorizadas |
dailyRequestedQuantity | Number | Quantidade de diárias solicitadas |
dischargedDate | String | Data de alta |
dischargedHour | String | Hora de alta |
endTreatmentDate | String | Data prevista de final do tratamento |
expectedAdmissionDate | String | Data prevista de internação |
expectedDischargedDate | String | Data prevista de alta |
expectedHospitalizationDate | String | Data prevista de internação |
healthProvider | Object | Dados do prestador |
healthProvider.healthProviderId | String | Código do prestador |
String | Nome do prestador | |
healthProvider.officialRecord | String | CPF/CNPJ do prestador |
hospitalizationDate | String | Data de internação |
hospitalizationHour | String | Hora de internação |
primaryICD | String | Código do CID Primário |
journey | String | 1 – Consulta 2 – Exame 3 – Execução 4 – Internação 9 – Tratamento odontológico 10 – Pronto Socorro 11 – Tratamento Seriado |
locationCode | String | Código do local = BB8_CODLOC |
mainAuthorizationCode | String | Número da guia principal |
newbornAttendance | Boolean | Atendimento a RN – true = Sim e false = Não |
password | String | Senha |
passwordExpireDate | String | Data de expiração da senha |
priorAuthorization | Boolean | Se é a guia principal |
procedures | Array of Object | Procedimentos |
procedures[n].auditing | Boolean | Se está em auditoria |
procedures[n].accessWay | String | Via de acesso – Terminologia |
procedures[n].authorizedQuantity | Number | Quantidade autorizada |
procedures[n].balance | Number | Saldo |
procedures[n].endingTime | String | Hora final |
procedures[n].executionDate | String | Data de execução |
procedures[n].increaseDecrease | Number | Percentual de redução/acréscimo |
procedures[n].inSerie | Boolean | Se o procedimento é seriado |
procedures[n].justification | String | Justificativa de reconsulta |
procedures[n].medicalTeam | Array of Object | Participação médica |
procedures[n].medicalTeam[n].participationDegree | String | Grau de participação |
procedures[n].medicalTeam[n].professional | String | Profissional |
procedures[n].medicalTeam[n].professional.cbos | Object | CBOS do profissional |
procedures[n].medicalTeam[n].professional.cbos.code | String | Código do CBOS – Terminologia |
procedures[n].medicalTeam[n].professional.cbos.description | String | Descrição do CBOS |
procedures[n].medicalTeam[n].professional.stateAbbreviation | String | UF do Estado |
procedures[n].medicalTeam[n].professional.idOnHealthInsurer | String | Código do profissional |
procedures[n].medicalTeam[n].professional.name | String | Nome do profissional |
procedures[n].medicalTeam[n].professional.professionalCouncil | String | Conselho do profissional |
procedures[n].medicalTeam[n].professional.professionalCouncilNumber | String | Número do conselho do profissional |
procedures[n].medicalTeam[n].professional.professionalIdentifier | String | CPF/CNPJ do profissional |
procedures[n].medicalTeam[n].sequence | String | Sequencial de referência do procedimento |
procedures[n].procedureCode | String | Código do procedimento |
procedures[n].procedureDescription | String | Descrição do procedimento |
procedures[n].procedureType | String | Tipo do procedimento 0 - Procedimento 1 - Material 2 - Medicamento 3 - Taxas 4 - Diarias 5 - OrteseProtese 6 - Pacote 7 - GasesMedicinais 8 - Alugueis 9 - Outros |
procedures[n].rejectionCauses | Array of object | Críticas do procedimento |
procedures[n].rejectionCauses[n].code | String | Código da crítica |
procedures[n].rejectionCauses[n].description | String | Descrição da crítica |
procedures[n].rejectionCauses[n].alert | String | 0 – Crítica 1 – Alerta |
procedures[n].requestedQuantity | Number | Quantidade Solicitada |
procedures[n].startingTime | String | Hora inicial |
procedures[n].status | Number | Status do procedimento 1 – Autorizado 0 – Negado |
procedures[n].tableCode | String | Código da Tabela |
procedures[n].totalWorth | Number | Valor total |
procedures[n].unitaryWorth | Number | Valor Unitário |
procedures[n].usedTechnique | String | Técnica Utilizada – Terminologia |
procedures[n].usQuantity | Number | Quantidade US |
procedures[n].toothRegion | String | Dente/Região – Terminologia |
procedures[n].surfaces | String | Faces – Separadas por “,” Terminologia |
procedures[n].franchise | String | Franquia |
professional | Object | Profissional Solicitante |
professional.cbos | Object | CBOS do profissional |
professional.cbos.code | String | Código do CBOS – Terminologia |
professional.cbos.description | String | Descrição do CBOS |
professional.stateAbbreviation | String | UF do Estado |
professional.idOnHealthInsurer | String | Código do profissional |
String | Nome do profissional | |
professional.professionalCouncil | String | Conselho do profissional |
professional.professionalCouncilNumber | String | Número do conselho do profissional |
professional.professionalIdentifier | String | CPF/CNPJ do profissional |
requestDate | String | Data da solicitação |
requestHospital | String | Hospital Solicitado |
roomType | String | Tipo de acomodação autorizada |
sourceAuthorization | Object | Dados da guia principal (mesmas propriedades do atendimento da autorização corrente - beneficiario, profissional, prestador, data de autorização, etc.) |
hospType | String | Tipo de internação – Terminologia |
hospRegime | String | Regime de internação – Terminologia |
opmePrev | Boolean | Previsão de OPME |
quimiPrev | Boolean | Previsão de Quimio |
Abaixo a resposta que o seu endpoint deve retornar:
O HAT apenas considerará o status atribuído para gravar o atendimento.
Nome | Tipo | Descrição |
authorizationStatus | String | 1 - Autorizado 2 - Parcialmente Autorizado 3 - Negado 6 - Auditoria Será substituído na decisão do HAT. Exemplo: o HAT não autorizou mas a customização sim, prevalece a customização. |
Exemplo JSONs montados: