Essa API tem por objetivo receber dados dos beneficiários para inclusão, alteração e exclusão, e enviar dados do beneficiários utilizando as tabelas (BA1/BA3).
Para uma boa funcionalidade do REST Protheus segue um passo a passo de como configura Documentação API TOTVS.
A inclusão de beneficiários seguira as regras estabelecidas pela API reference TOTVS , segue a estrutura de requisição, com o preenchimento dos seguintes campos:
2.a) Inclusão.

2.b) Corpo.
A classe PLMapJsBenef, será responsável pela montagem do JSON para comunicar com a API da HealthMap. O JSON será enviado com os seguintes dados:
Atributo HealthMap | Campo Protheus | Tipo |
|---|---|---|
| codigoExterno | BA1_CODINT+BA1_CODEMP+BA1_MATRIC+BA1_TIPREG+BA1_DIGITO | Caracter |
| codigoExternoEmpresa | BA1_CODEMP | Caracter |
| codigoExternoGestor | (Vazio) | Caracter |
| codigoExternoTitular | Para o Titular será Vazio, para o dependente será a chave do titular: BA1_CODINT+BA1_CODEMP+BA1_MATRIC+BA1_TIPREG+BA1_DIGITO | Caracter |
| codigoParentesco | Para o Titular será Vazio, para o dependente será BA1_GRAUPA | Caracter |
| codigosProfSaudeRef | (Vazio) | Array |
| dataNascimento | BA1_DATNAS | Caracter - Formato DD/MM/AAAA |
| docIdentificacao | (Vazio) | Caracter |
| BA1_EMAIL | Caracter | |
| enderecoBairro | BA1_BAIRRO | Caracter |
| enderecoCep | BA1_CEPUSR | Caracter |
| enderecoCodigoIbgeCidade | BA1_CODMUN | Caracter |
| enderecoDescricao | BA1_ENDERE+","+BA1_NR_END+","+BA1_COMEND | Caracter |
| enderecoNomeCidade | BA1_MUNICI | Caracter |
| enderecoUf | BA1_ESTADO | Caracter |
| listaCarteirinhas | Registros da Tabela BED do Beneficiário | Array |
| codigoConvenio | BA3_CODPLA+BA3_VERSAO | Caracter |
| dataValidade | BED_DATVAL | Caracter - Formato DD/MM/AAAA |
| numeroCarteira | BA1_CODINT+BA1_CODEMP+BA1_MATRIC+BA1_TIPREG+BA1_DIGITO | Caracter |
| listaContratante | Array | |
| codigoContratante | Para Pessoa Jurídica: | Caracter |
| codigoModalidadePagamento | BA3_MODPAG | Caracter |
| nomeContratante | Para Pessoa Jurídica: BQC_DESCRI Para Pessoa Física: BA1_NOMUSR (Nome do Titular) | Caracter |
| login | BA1_CODINT+BA1_CODEMP+BA1_MATRIC+BA1_TIPREG+BA1_DIGITO | Caracter |
| modalidade | "H" | Caracter |
| nome | BA1_NOMUSR | Caracter |
| nomeParentesco | Para o Titular será Vazio, para o dependente será BRP_DESCRI de acordo com o BA1_GRAUPA | Caracter |
| senha | (Vazio) | Caracter |
| sexo | BA1_SEXO, sendo 1 para "M" e 2 para "F" | Caracter |
| status | "A" para Ativo e "I" para Inativo, de acordo com o BA1_DATBLO | Caracter |
| telCelular | BA1_DDD+BA1_TELEFO, se o campo BA1_TIPTEL for vazio ou 3 | Caracter |
| telComercial | BA1_DDD+BA1_TELEFO, se o campo BA1_TIPTEL for 2 | Caracter |
| telResidencial | BA1_DDD+BA1_TELEFO, se o campo BA1_TIPTEL for 1 | Caracter |
| titularidade | BA1_TIPUSU | Caracter |
| listaDocumentos | Lista de Documentos Obrigatórios | Array |
| codigoDocumento | "1", para CPF | Caracter |
| numeroDocumento | BA1_CPFUSR | Caracter |
| codigoDocumento | "2", para RG | Caracter |
| numeroDocumento | BA1_DRGUSR | Caracter |
| codigoDocumento | "3", para CNS | Caracter |
| numeroDocumento | BA1_NRCRNA | Caracter |
| codigoDocumento | "4", para Identificador | Caracter |
| numeroDocumento | BA1_CODINT+BA1_CODEMP+BA1_MATRIC+BA1_TIPREG+BA1_DIGITO | Caracter |
Campo | Ação |
|---|---|
| Alias Prima. | Preencher BA1 |
| EndPoint | Solicitar pra HealthMap o Endpoint da Api de Beneficiarios |
| Classe STAMP | Preencher PLMapStpBenef |
| Classe Comu. | Preencher PLMapJsBenef |
| Login Auten. | Login de acesso da HealthMap |
| Senha Auten. | Senha de acesso da HealthMap |
| EndPoint Aut. | Solicitar pra HealthMap o Endpoint da Api de Token |
| Perg. Gerar | Preencher PLRMPEMP |
A Classe PLMapStpBenef será responsável por buscar alterações, inclusões e exclusões dos beneficiários nas tabelas BA3, BA1 e BTS pela coluna STAMP, para gravação dos pedidos na tela de Integrações, para posteriormente comunicar com a HealthMap. A periocidade da busca é configurada de acordo com o schedule.
Na questão do bloqueio do beneficiário, o sistema irá gravar o pedido com data em que o beneficiário será realmente bloqueado (Considerando também o parâmetro MV_PLDIABL), e esse pedido será enviado para a HealthMap somente após essa data.
Caso seja gerado pelo botão Gerar Pedidos, além de gerar o pedido programado para o bloqueio, também será gerado um outro pedido do beneficiário como ativo, ou seja, a HealthMap irá receber um pedido como ativo, e na data do bloqueio irá receber um pedido como Inativo.

A classe PLMapJsBenef, será responsável pela montagem do JSON para comunicar com a API da HealthMap. O JSON será enviado com os seguintes dados:
Atributo HealthMap | Campo Protheus | Tipo |
|---|---|---|
| codigoExterno | BA1_CODINT+BA1_CODEMP+BA1_MATRIC+BA1_TIPREG+BA1_DIGITO | Caracter |
| codigoExternoEmpresa | BA1_CODEMP | Caracter |
| codigoExternoGestor | (Vazio) | Caracter |
| codigoExternoTitular | Para o Titular será Vazio, para o dependente será a chave do titular: BA1_CODINT+BA1_CODEMP+BA1_MATRIC+BA1_TIPREG+BA1_DIGITO | Caracter |
| codigoParentesco | Para o Titular será Vazio, para o dependente será BA1_GRAUPA | Caracter |
| codigosProfSaudeRef | (Vazio) | Array |
| dataNascimento | BA1_DATNAS | Caracter - Formato DD/MM/AAAA |
| docIdentificacao | (Vazio) | Caracter |
| BA1_EMAIL | Caracter | |
| enderecoBairro | BA1_BAIRRO | Caracter |
| enderecoCep | BA1_CEPUSR | Caracter |
| enderecoCodigoIbgeCidade | BA1_CODMUN | Caracter |
| enderecoDescricao | BA1_ENDERE+","+BA1_NR_END+","+BA1_COMEND | Caracter |
| enderecoNomeCidade | BA1_MUNICI | Caracter |
| enderecoUf | BA1_ESTADO | Caracter |
| listaCarteirinhas | Registros da Tabela BED do Beneficiário | Array |
| codigoConvenio | BA3_CODPLA+BA3_VERSAO | Caracter |
| dataValidade | BED_DATVAL | Caracter - Formato DD/MM/AAAA |
| numeroCarteira | BA1_CODINT+BA1_CODEMP+BA1_MATRIC+BA1_TIPREG+BA1_DIGITO | Caracter |
| listaContratante | Array | |
| codigoContratante | Para Pessoa Jurídica: | Caracter |
| codigoModalidadePagamento | BA3_MODPAG | Caracter |
| nomeContratante | Para Pessoa Jurídica: BQC_DESCRI Para Pessoa Física: BA1_NOMUSR (Nome do Titular) | Caracter |
| login | BA1_CODINT+BA1_CODEMP+BA1_MATRIC+BA1_TIPREG+BA1_DIGITO | Caracter |
| modalidade | "H" | Caracter |
| nome | BA1_NOMUSR | Caracter |
| nomeParentesco | Para o Titular será Vazio, para o dependente será BRP_DESCRI de acordo com o BA1_GRAUPA | Caracter |
| senha | (Vazio) | Caracter |
| sexo | BA1_SEXO, sendo 1 para "M" e 2 para "F" | Caracter |
| status | "A" para Ativo e "I" para Inativo, de acordo com o BA1_DATBLO | Caracter |
| telCelular | BA1_DDD+BA1_TELEFO, se o campo BA1_TIPTEL for vazio ou 3 | Caracter |
| telComercial | BA1_DDD+BA1_TELEFO, se o campo BA1_TIPTEL for 2 | Caracter |
| telResidencial | BA1_DDD+BA1_TELEFO, se o campo BA1_TIPTEL for 1 | Caracter |
| titularidade | BA1_TIPUSU | Caracter |
| listaDocumentos | Lista de Documentos Obrigatórios | Array |
| codigoDocumento | "1", para CPF | Caracter |
| numeroDocumento | BA1_CPFUSR | Caracter |
| codigoDocumento | "2", para RG | Caracter |
| numeroDocumento | BA1_DRGUSR | Caracter |
| codigoDocumento | "3", para CNS | Caracter |
| numeroDocumento | BA1_NRCRNA | Caracter |
| codigoDocumento | "4", para Identificador | Caracter |
| numeroDocumento | BA1_CODINT+BA1_CODEMP+BA1_MATRIC+BA1_TIPREG+BA1_DIGITO | Caracter |
Exemplo:
{
"enderecoCep": "",
"codigoExternoEmpresa": "1008",
"codigoExternoGestor": "",
"status": "A",
"listaDocumentos": [
{
"codigoDocumento": "1",
"numeroDocumento": "74827314233"
},
{
"codigoDocumento": "2",
"numeroDocumento": "489494262"
},
{
"codigoDocumento": "3",
"numeroDocumento": "287611986630008"
},
{
"codigoDocumento": "4",
"numeroDocumento": "00011008000019017"
}
],
"modalidade": "H",
"titularidade": "T",
"telCelular": "",
"docIdentificacao": "",
"codigoParentesco": "",
"nomeParentesco": "",
"enderecoCodigoIbgeCidade": "",
"enderecoNomeCidade": "",
"enderecoUf": "",
"telComercial": "",
"dataNascimento": "03/09/1988",
"codigoExterno": "00011008000019017",
"senha": "",
"codigoExternoTitular": "",
"listaCarteirinhas": [
{
"numeroCarteira": "00011008000019017",
"dataValidade": "25/10/2023",
"codigoConvenio": "0001001"
}
],
"codigosProfSaudeRef": [],
"telResidencial": "",
"enderecoBairro": "",
"sexo": "M",
"listaContratante": [
{
"codigoContratante": "00011008000000000001001000000003001",
"codigoModalidadePagamento": "1",
"nomeContratante": "SUBCONTRATO USO GERAL"
}
],
"nome": "PAULO VINICIUS BARBOSA",
"email": "",
"login": "00011008000019017",
"enderecoDescricao": ""
}
|
Para alterar o JSON, poderá ser utilizado o Ponto de Entrada PLMPJSBE (DT PE Manipular JSON de Envio de Beneficiários para a HealthMap).

Atualização do Arquivo SX1 (Pergunte):
| Grupo | Ordem | Pergunta | Variável | Tipo | Tamanho | Decimal | Objeto | Consulta Padrão |
|---|---|---|---|---|---|---|---|---|
| PLRMPEMP | 01 | Grupo/Empresa De ? | MV_PAR01 | C | 4 | 0 | 1 - Edit | B7APLS |
| PLRMPEMP | 02 | Grupo/Empresa Ate ? | MV_PAR02 | C | 4 | 0 | 1 - Edit | B7APLS |
Atualização do Arquivo SX6 (Parâmetros):
| Var | Tipo | Descrição | Conteúdo (Default) |
|---|---|---|---|
| MV_PLDTVIR | C - Caracter | Data de Validade da Carteirinha Virtual no Json de Beneficiários na Integração do TOTVS Saúde Planos | "01/01/2100" |
| MV_PLCTVIR | L - Lógico | Habilita o Envio da Validade da Carteira Virtual para os Beneficiários no Json de Integrações. | .F. |