CONTEÚDO

  1. Visão Geral
  2. Exemplo de utilização
    1. Companies - Retorna o cadastro de empresas
    2. Contracts - Retorna os contratos da empresa
    3. Subcontracts - Retorna os subcontratos do contrato da empresa
  3. Tela api companies
    1. Outras Ações / Ações relacionadas
  4. Tela api companies
    1. Principais Campos e Parâmetros
  5. Tabelas utilizadas


01. VISÃO GERAL

API para a entidade companies (Empresas) do produto TOTVS Saúde Planos Linha Protheus.

Clique aqui para detalhes sobre como habilitar o serviço de APIs


API para obtenção do token de acesso às API’s REST no Protheus

De posse então do access_token obtido na api token, basta fazer a requisição à API desejada incluindo no cabeçalho o parâmetro Authorization com o valor Bearer mais o token de acesso.


02. EXEMPLO DE UTILIZAÇÃO

Retorna as empresas cadastradas da operadora informada.

/totvsHealthPlans/familyContract/v1/companies

GET

Authorization (header)

string

Cabeçalho usado para autorização das requisições (Bearer token)*required

Content-Type (header)

string

'application/json' é o formato do conteúdo*required
health-insurer-code (query)stringCódigo da operadora no sistema (BG9_CODINT)*required
login-user (query)stringFiltro de empresas pelo usuário de login do portal (BSW_LOGUSR)
group-type (query)stringFiltro de empresas pelo tipo de grupo (BG9_TIPO): 1=Pessoa Física e 2=Pessoa Jurídica
page (query)

string

Valor numérico (maior que zero) representando a página solicitada
pageSize (query)

string

Valor numérico (maior que zero) representando o total de registros retornados na consulta
order (query)

string

Lista de campos para ordenação, separada por virgula (,).
fields (query)

string

Lista com o nome das propriedades JSON que serão retornadas.
filter (query)

string

Filtros seguindo o padrão ODATA

Body


Não possui body!


local cUrl := "{{host}}/api/totvsHealthPlans/familyContract/v1" as character
local oRestClient := FWRest():new(cUrl) as object
local aHeader := {} as array
local cQueryParms := "health-insurer-code=0001" as character

aAdd(aHeader, "Content-Type: application/json; charset=UTF-8")
aAdd(aHeader, "Accept: application/json")
aAdd(aHeader, "User-Agent: Chrome/65.0 (compatible; Protheus "+getBuild()+")")

oRestClient:setPath("/companies")
oRestClient:setGetParams(cQueryParms)

if oRestClient:Get(aHeader)
  conOut("GET", oRestClient:getResult())
else
  conOut("GET", oRestClient:getLastError())
endif
hasNextbooleanIndica se ainda existem registros a serem retornados

remainingRecordsintegerQuantidade de registros ainda existem para retorno

itemsarrayLista de empresas retornadas

items.company-codestringCódigoBG9_CODIGO*required
items.descriptionstringDescriçãoBG9_DESCRI*required
items.group-typestringTipo de grupo (Pessoa física ou jurídica)BG9_TIPO*required
items.usestringUsoBG9_USO*required
items.linksarray

links relacionados ao recurso companies (Padrão HATEOAS):
rel: contracts (somente para pessoa jurídica).



{
    "items": [
        {
            "company-code": "0001",
            "description": "CONTRATOS PESSOA FISICA",
            "group-type": "1",
            "use": "1"
        },
        {
            "company-code": "0002",
            "description": "CONTRATOS PESSOA JURIDICA",
            "group-type": "2",
            "use": "1",
            "links": [
                {
                    "rel": "contracts",
                    "href": "/totvsHealthPlans/familyContract/v1/companies/0002/contracts?health-insurer-code=0001"
                }
            ]
        }
    ],
    "hasNext": false,
    "remainingRecords": 0
}
codestringCódigo identificador do erro.*required
messagestringLiteral no idioma da requisição descrevendo o erro para o usuário.*required
detailedMessagestringMensagem técnica e mais detalhada do erro.*required
detailsarrayLista de objetos de erro (recursiva) com mais detalhes sobre o erro principal.
{
    "code": "E001",
    "message": "Existem chaves obrigatórias que não foram informadas.",
    "detailedMessage": "Verifique a lista de erros no campo details para mais detalhes.",
    "details": [
        {
            "code": "E001-406",
            "message": "Chave health-insurer-code obrigatória",
            "detailedMessage": "Não foi informado no queryParams da requisição a chave health-insurer-code."
        }
    ]
}


Retorna os contratos da empresa informada (somente para empresa do tipo pessoa jurídica)

/totvsHealthPlans/familyContract/v1/companies/{companyCode}/contracts

GET

Authorization (header)

string

Cabeçalho usado para autorização das requisições (Bearer token)*required

Content-Type (header)

string

'application/json' é o formato do conteúdo*required
health-insurer-code (query)stringCódigo da operadora no sistema (BT5_CODINT)*required
companyCode (path)stringCódigo da empresa no sistema (BT5_CODIGO)*required
login-user (query)stringFiltro de contratos pelo usuário de login do portal (BSW_LOGUSR)
page (query)

string

Valor numérico (maior que zero) representando a página solicitada
pageSize (query)

string

Valor numérico (maior que zero) representando o total de registros retornados na consulta
order (query)

string

Lista de campos para ordenação, separada por virgula (,).
fields (query)

string

Lista com o nome das propriedades JSON que serão retornadas.
filter (query)

string

Filtros seguindo o padrão ODATA

Body


Não possui body!


hasNextbooleanIndica se ainda existem registros a serem retornados

remainingRecordsintegerQuantidade de registros ainda existem para retorno

itemsarrayLista de contratos retornados

items.company-codestringCódigo da empresaBT5_CODIGO*required
items.contract-codestringNúmero do contratoBT5_NUMCON*required
items.contract-version-codestringVersão do contratoBT5_VERSAO*required
items.contract-datedateData do contratoBT5_DATCON*required
items.contract-typestringTipo do contratoBT5_TIPCON*required
items.description-contract-typestringDescrição do tipo do contratoBII_DESCRI*required
items.linksarray

links relacionados ao recurso contracts (Padrão HATEOAS):
rel: subcontracts


*required
{
    "items": [
        {
            "company-code": "1008",
            "contract-code": "000000000001",
            "contract-version-code": "001",
            "contract-date": "2021-02-12",
            "contract-type": "3",
            "description-contract-type": "COLETIVO EMPRESARIAL",
            "links": [
                {
                    "rel": "subcontracts",
                    "href": "/totvsHealthPlans/familyContract/v1/companies/1008/contracts/000000000001001/subcontracts?health-insurer-code=0001"
                }
            ]
        }
    ],
    "hasNext": false,
    "remainingRecords": 0
}
codestringCódigo identificador do erro.*required
messagestringLiteral no idioma da requisição descrevendo o erro para o usuário.*required
detailedMessagestringMensagem técnica e mais detalhada do erro.*required
detailsarrayLista de objetos de erro (recursiva) com mais detalhes sobre o erro principal.
{
    "code": "E001",
    "message": "Existem chaves obrigatórias que não foram informadas.",
    "detailedMessage": "Verifique a lista de erros no campo details para mais detalhes.",
    "details": [
        {
            "code": "E001-406",
            "message": "Chave companyCode obrigatória",
            "detailedMessage": "Não foi informado no pathParams da requisição a chave companyCode."
        },
        {
            "code": "E001-406",
            "message": "Chave health-insurer-code obrigatória",
            "detailedMessage": "Não foi informado no queryParams da requisição a chave health-insurer-code."
        }
    ]
}
codestringCódigo identificador do erro.*required
messagestringLiteral no idioma da requisição descrevendo o erro para o usuário.*required
detailedMessagestringMensagem técnica e mais detalhada do erro.*required
detailsarrayLista de objetos de erro (recursiva) com mais detalhes sobre o erro principal.
{
    "code": "E002",
    "message": "Empresa não encontrada na operadora.",
    "detailedMessage": "Não foi encontrada na tabela BG9 a empresa de código 1098 (BG9_CODIGO)."
}


Retorna os subcontratos do contrato informado da empresa (somente para empresa do tipo pessoa jurídica)

/totvsHealthPlans/familyContract/v1/companies/{companyCode}/contracts/{contractCode}/subcontracts

GET

Authorization (header)

string

Cabeçalho usado para autorização das requisições (Bearer token)*required

Content-Type (header)

string

'application/json' é o formato do conteúdo*required
health-insurer-code (query)stringCódigo da operadora no sistema (BQC_CODIGO)*required
companyCode (path)stringCódigo da empresa no sistema (BQC_CODIGO)*required
contractCode (path)stringContrato da empresa (BQC_NUMCON+BQC_VERCON)*required
login-user (query)stringFiltro de subcontratos pelo usuário de login do portal (BSW_LOGUSR)
page (query)

string

Valor numérico (maior que zero) representando a página solicitada
pageSize (query)

string

Valor numérico (maior que zero) representando o total de registros retornados na consulta
order (query)

string

Lista de campos para ordenação, separada por virgula (,).
fields (query)

string

Lista com o nome das propriedades JSON que serão retornadas.
filter (query)

string

Filtros seguindo o padrão ODATA

Body


Não possui body!


hasNextbooleanIndica se ainda existem registros a serem retornados

remainingRecordsintegerQuantidade de registros ainda existem para retorno

itemsarrayLista de subcontratos retornados

items.subcontract-codestringNumero do subcontratoBQC_SUBCON*required
items.subcontract-version-codestringVersão do subcontratoBQC_VERSUB*required
items.descriptionstringDescrição do subcontratoBQC_DESCRI*required
items.subcontract-datedateData do subcontratoBQC_DATCON*required
items.expiration-datedateData de validade do subcontratoBQC_VALID
{
    "items": [
        {
            "subcontract-code": "000000001",
            "subcontract-version-code": "001",
            "description": "SUBCONTRATO USO GERAL",
            "subcontract-date": "2021-02-12",
            "expiration-date": ""
        },
        {
            "subcontract-code": "000000002",
            "subcontract-version-code": "001",
            "description": "COBRANCA PATRONAL COMPARTILHADA",
            "subcontract-date": "2021-02-12",
            "expiration-date": ""
        }
    ],
    "hasNext": false,
    "remainingRecords": 0
}
codestringCódigo identificador do erro.*required
messagestringLiteral no idioma da requisição descrevendo o erro para o usuário.*required
detailedMessagestringMensagem técnica e mais detalhada do erro.*required
detailsarrayLista de objetos de erro (recursiva) com mais detalhes sobre o erro principal.
{
    "code": "E001",
    "message": "Existem chaves obrigatórias que não foram informadas.",
    "detailedMessage": "Verifique a lista de erros no campo details para mais detalhes.",
    "details": [
        {
            "code": "E001-406",
            "message": "Chave companyCode obrigatória",
            "detailedMessage": "Não foi informado no pathParams da requisição a chave companyCode."
        },
        {
            "code": "E001-406",
            "message": "Chave contractCode obrigatória",
            "detailedMessage": "Não foi informado no pathParams da requisição a chave contractCode."
        },
        {
            "code": "E001-406",
            "message": "Chave health-insurer-code obrigatória",
            "detailedMessage": "Não foi informado no queryParams da requisição a chave health-insurer-code."
        }
    ]
}
codestringCódigo identificador do erro.*required
messagestringLiteral no idioma da requisição descrevendo o erro para o usuário.*required
detailedMessagestringMensagem técnica e mais detalhada do erro.*required
detailsarrayLista de objetos de erro (recursiva) com mais detalhes sobre o erro principal.
{
    "code": "E002",
    "message": "Empresa não encontrada na operadora.",
    "detailedMessage": "Não foi encontrada na tabela BG9 a empresa de código 1098 (BG9_CODIGO)."
}
codestringCódigo identificador do erro.*required
messagestringLiteral no idioma da requisição descrevendo o erro para o usuário.*required
detailedMessagestringMensagem técnica e mais detalhada do erro.*required
detailsarrayLista de objetos de erro (recursiva) com mais detalhes sobre o erro principal.
{
    "code": "E003",
    "message": "Contrato da empresa não encontrado.",
    "detailedMessage": "Não foi encontrado na tabela BT5 o contrato de código 000000000003001 (BT5_NUMCON+BT5_VERSAO)."
}

03. TELA API COMPANIES

Outras Ações / Ações relacionadas

AçãoDescrição
Não se aplicaNão se aplica

04. TELA API COMPANIES

Principais Campos e Parâmetros

CampoDescrição
BG9_CODIGOCódigo da empresa no sistema
BG9_CODINTCódigo da operadora saúde no sistema
BQC_NUMCON+BQC_VERCONChave do contrato

05. TABELAS UTILIZADAS