A autenticação externa do Portal Prestador permite que aplicações terceiras possam se integrar e incorporar (embed ou via request) funcionalidades do portal em suas próprias interfaces. Esta documentação detalha o processo de autenticação, os campos necessários, o fluxo de operação e exemplos de implementação.
O processo de autenticação externa consiste em:
POST https://portal.totvs.com.br/totvs-hgp-haw-auth/api/external-authentication |
Content-Type: application/json |
curl --location 'http://52.20.6.162:8080/totvs-hgp-haw-auth/api/external-authentication' \ --header 'Accept: /' \ --header 'Accept-Language: pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7' \ --header 'Cache-Control: no-cache' \ --header 'Connection: keep-alive' \ --header 'Content-Type: application/json' \ --header 'Origin: https://pmedfake.totvs.com.br:4433' \ --header 'Pragma: no-cache' \ --header 'Referer: https://pmedfake.totvs.com.br:4433/' \ --header 'Sec-Fetch-Dest: empty' \ --header 'Sec-Fetch-Mode: cors' \ --header 'Sec-Fetch-Site: same-site' \ --header 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36' \ --header 'sec-ch-ua: "Chromium";v="134", "Not:A-Brand";v="24", "Google Chrome";v="134"' \ --header 'sec-ch-ua-mobile: ?0' \ --header 'sec-ch-ua-platform: "Windows"' \ --data '{ "user": "31921", "password": "174b063a7d7e684004d94f4965b52ad9", "cnpjClinic": "03.151.186/0001-78", "clinic": 10026, "provider": 31921, "beneficiaryCard": "01200108959000048" }' |
O corpo da requisição deve conter os seguintes campos em formato JSON:
Campo | Tipo | Obrigatório | Descrição |
---|---|---|---|
user | String | Sim | Nome de usuário registrado no Portal Prestador |
password | String | Sim | Senha do usuário (hash MD5) |
cnpjClinic | String | Não | CNPJ da clínica apenas números (obrigatório apenas se não informar clinic) |
clinic | Number | Não | Código da clínica (obrigatório apenas se não informar cnpjClinic) |
provider | Number | Não | Código do prestador |
beneficiaryCard | String | Não | Número do cartão de beneficiário |
Exemplo de corpo da requisição:
{ "user": "nome.usuario", "password": "174b063a7d7e684004d94f4965b52ad9", "cnpjClinic": "03151186000178", "clinic": 10026, "provider": 31921, "beneficiaryCard": "01200108959000048" } |
Observação: A senha deve ser enviada em formato hash MD5.
{ "companyId": "120", "secretary": "daniel.jose", "beneficiaryCard": "01200108959000048", "provider": 31921, "clinic": 10026, "authorized": true, "token": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIwMjAwMTBhQUlXWVhaQ2ZUSjNDY21aWmNxVnFRMzMiLCJpYXQiOjE3NDM1MTEyNTMsImlzc3VlciI6ImRhdGFzdWwiLCJpc3MiOiJkYXRhc3VsIiwianRpIjoiMGE2NDYyNzMtZjNkZC00ODY5LWIyMDEtNGU2YTVhNmQ1MDllIiwiZXhwIjoxNzQzNTEzMDUzLCJhdWQiOiJsb2NhbGhvc3QuODI4MCIsInNjb3BlIjpbIi9wb3J0cHJlc3QiXX0.GPHI8uvCB7APDiB_3g7DWVB25sBOi_GV7xGJ2B2lsYu3oVW0CRVVEoq6hT1bkJBkTcDHnOtUrNrDL761V56IqUJdXQ3OO_ToZv3t94nu4VERGNYWgqPkLHohQvnLjdlFAS5mkjVdZ545L-jOyHGrDuVzf9VzqkjpGVnfJBgkajYar1BJePtf9oiFWkBu8Pn5OxeQVFjhFI07WKHlPomEfnDYLSj6g8yTyitbo_aM4nO82EMiJGVSkBYbBqZJdmS2IzmRAA27Pam5KCUkYKl3INnlUu1P0FVwgiF4EZdklMMYRIybseYetfwboYmpyWsoBE2WMjHsGhOgGlfZSnY0ig", "hybridToken": "eyJhbGciOiJIUzI1NiJ9.eyJwYXNzd29yZCI6IjE3NGIwNjNhN2Q3ZTY4NDAwNGQ5NGY0OTY1YjUyYWQ5Iiwic2VjcmV0YXJ5IjoiZGFuaWVsLmpvc2UiLCJiZW5lZmljaWFyeUNhcmQiOiIwMTIwMDEwODk1OTAwMDA0OCIsInByb3ZpZGVyIjozMTkyMSwiY2xpbmljIjoxMDAyNiwiZXhwIjoxNzQzNTE0ODU5LCJpYXQiOjE3NDM1MTEyNTl9.QKNHJLfAyxYgrHbCZhptRs6wM41VGnwel2LS93HyzEI", "datasulToken": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJhY2FhZmM1ZS04NWYyLTA3YmYtNDIxNC01ZDk5MmMwOTRkODYiLCJpYXQiOjE3NDM1MTEyNTcsImlzc3VlciI6ImRhdGFzdWwiLCJpc3MiOiJkYXRhc3VsIiwianRpIjoiZWZlNDI2NmUtZmZmMi00NjJjLWE0MzktNmY2M2M1ODFlNzgxIiwiZXhwIjoxNzQzNTEzMDU3LCJhdWQiOiJsb2NhbGhvc3QuODI4MCIsImNvbXBhbnlJZCI6ImQyZTk4NzQ4LTE4MTgtYjA5OC05ZTE0LWZlZDkzODg4NGNiMyIsInNjb3BlIjpbIi9oc3YiLCIvdHJlcCJdfQ.eMngMva-zBHzmvrFdQxX4RG0Ey2i_I5SIRNwS0amAfj2XUrDfzAzV6spGcbdHQeBjftghhYJWWR0HP2Y1DLgUGs8KGAfQJFtu9om0hmWH72P1faI_CtIV9qG0VchVwkYpVw91KnCiCyayo8_uDP3cARKCQOuHasxebsKzXDn76Q-2u_rBUPEZhC7jGK-QIaNQX5ELUA4MWaJs5p58B0VsTX_LJbAtzfQbNv_ttFTZJUUzX7dorOOyYAv_LI7UikfWs1QGUQyx8_q962GvtgY6a9DlcLtXwfuxIr6-_4y8NldilHPYemGbfRumU5fqcfZ9lCwD0_wxpB9oIranL589w", "externalToken": "eyJhbGciOiJIUzI1NiJ9.eyJwYXNzd29yZCI6IjE3NGIwNjNhN2Q3ZTY4NDAwNGQ5NGY0OTY1YjUyYWQ5IiwiY29tcGFueUlkIjoiMTIwIiwic2VjcmV0YXJ5IjoiZGFuaWVsLmpvc2UiLCJiZW5lZmljaWFyeUNhcmQiOiIwMTIwMDEwODk1OTAwMDA0OCIsInByb3ZpZGVyIjozMTkyMSwiY2xpbmljIjoxMDAyNiwiZXhwIjoxNzQzNTE0ODU5LCJsb2dpbkRhdGEiOnsiY29tcGFueUlkIjoiMTIwIiwic2VjcmV0YXJ5IjoiZGFuaWVsLmpvc2UiLCJiZW5lZmljaWFyeUNhcmQiOiIwMTIwMDEwODk1OTAwMDA0OCIsInByb3ZpZGVyIjozMTkyMSwiY2xpbmljIjoxMDAyNiwiYXV0aG9yaXplZCI6dHJ1ZSwidG9rZW4iOiJleUpoYkdjaU9pSlNVekkxTmlKOS5leUp6ZFdJaU9pSXdNakF3TVRCaFFVbFhXVmhhUTJaVVNqTkRZMjFhV21OeFZuRlJNek1pTENKcFlYUWlPakUzTkRNMU1URXlOVE1zSW1semMzVmxjaUk2SW1SaGRHRnpkV3dpTENKcGMzTWlPaUprWVhSaGMzVnNJaXdpYW5ScElqb2lNR0UyTkRZeU56TXRaak5rWkMwME9EWTVMV0l5TURFdE5HVTJZVFZoTm1RMU1EbGxJaXdpWlhod0lqb3hOelF6TlRFek1EVXpMQ0poZFdRaU9pSnNiMk5oYkdodmMzUXVPREk0TUNJc0luTmpiM0JsSWpwYklpOXdiM0owY0hKbGMzUWlYWDAuR1BISTh1dkNCN0FQRGlCXzNnN0RXVkIyNXNCT2lfR1Y3eEdKMkIybHNZdTNvVlcwQ1JWVkVvcTZoVDFia0pCa1RjREhuT3RVck5yREw3NjFWNTZJcVVKZFhRM09PX1RvWnYzdDk0bnU0VkVSR05ZV2dxUGtMSG9oUXZuTGpkbEZBUzVta2pWZFo1NDVMLWpPeUhHckR1VnpmOVZ6cWtqcEdWbmZKQmdrYWpZYXIxQkplUHRmOW9pRldrQnU4UG41T3hlUVZGamhGSTA3V0tIbFBvbUVmbkRZTFNqNmc4eVR5aXRib19hTTRuTzgyRU1pSkdWU2tCWWJCcVpKZG1TMkl6bVJBQTI3UGFtNUtDVWtZS2wzSU5ubFV1MVAwRlZ3Z2lGNEVaZGtsTU1ZUkl5YnNlWWV0Zndib1ltcHlXc29CRTJXTWpIc0doT2dHbGZaU25ZMGlnIiwiaHlicmlkVG9rZW4iOiJleUpoYkdjaU9pSklVekkxTmlKOS5leUp3WVhOemQyOXlaQ0k2SWpFM05HSXdOak5oTjJRM1pUWTROREF3TkdRNU5HWTBPVFkxWWpVeVlXUTVJaXdpYzJWamNtVjBZWEo1SWpvaVpHRnVhV1ZzTG1wdmMyVWlMQ0ppWlc1bFptbGphV0Z5ZVVOaGNtUWlPaUl3TVRJd01ERXdPRGsxT1RBd01EQTBPQ0lzSW5CeWIzWnBaR1Z5SWpvek1Ua3lNU3dpWTJ4cGJtbGpJam94TURBeU5pd2laWGh3SWpveE56UXpOVEUwT0RVNUxDSnBZWFFpT2pFM05ETTFNVEV5TlRsOS5RS05ISkxmQXl4WWdySGJDWmhwdFJzNndNNDFWR253ZWwyTFM5M0h5ekVJIiwiZGF0YXN1bFRva2VuIjoiZXlKaGJHY2lPaUpTVXpJMU5pSjkuZXlKemRXSWlPaUpoWTJGaFptTTFaUzA0TldZeUxUQTNZbVl0TkRJeE5DMDFaRGs1TW1Nd09UUmtPRFlpTENKcFlYUWlPakUzTkRNMU1URXlOVGNzSW1semMzVmxjaUk2SW1SaGRHRnpkV3dpTENKcGMzTWlPaUprWVhSaGMzVnNJaXdpYW5ScElqb2laV1psTkRJMk5tVXRabVptTWkwME5qSmpMV0UwTXprdE5tWTJNMk0xT0RGbE56Z3hJaXdpWlhod0lqb3hOelF6TlRFek1EVTNMQ0poZFdRaU9pSnNiMk5oYkdodmMzUXVPREk0TUNJc0ltTnZiWEJoYm5sSlpDSTZJbVF5WlRrNE56UTRMVEU0TVRndFlqQTVPQzA1WlRFMExXWmxaRGt6T0RnNE5HTmlNeUlzSW5OamIzQmxJanBiSWk5b2MzWWlMQ0l2ZEhKbGNDSmRmUS5lTW5nTXZhLXpCSHptdnJGZFF4WDRSRzBFeTJpX0k1U0lSTndTMGFtQWZqMlhVckRmekF6VjZzcEdjYmRIUWVCamZ0Z2hoWUpXV1IwSFAyWTFETGdVR3M4S0dBZlFKRnR1OW9tMGhtV0g3MlAxZmFJX0N0SVY5cUcwVmNoVndrWXBWdzkxS25DaUN5YXlvOF91RFAzY0FSS0NRT3VIYXN4ZWJzS3pYRG43NlEtMnVfckJVUEVaaEM3akdLLVFJYU5RWDVFTFVBNE1XYUpzNXA1OEIwVnNUWF9MSmJBdHpmUWJOdl90dEZUWkpVVXpYN2Rvck9PeVlBdl9MSTdVaWtmV3MxUUdVUXl4OF9xOTYyR3Z0Z1k2YTlEbGNMdFh3ZnV4SXI2LV80eThObGRpbEhQWWVtR2JmUnVtVTVmcWNmWjlsQ3dEMF93eHBCOW9JcmFuTDU4OXciLCJleHRlcm5hbFRva2VuIjoiIiwiZXJyb3JDb2RlIjowLCJlcnJvck1lc3NhZ2UiOiIiLCJjbnBqQ2xpbmljIjoiIn0sImlhdCI6MTc0MzUxMTI1OX0.gPQhPMok27aAD0tG11VTk_LAI7Y1U_zRiU_uFtHiCUI", "errorCode": 0, "errorMessage": "", "cnpjClinic": "" } |
//Decoded Header { "alg": "RS256" } //Decoded Payload { "sub": "acaafc5e-85f2-07bf-4214-5d992c094d86", "iat": 1742470961, "issuer": "datasul", "iss": "datasul", "jti": "becefb13-bcc5-4ed0-a0d5-e1e75ec28c14", "exp": 1742472761, "aud": "localhost.8280", "companyId": "d2e98748-1818-b098-9e14-fed938884cb3", "scope": [ "*" ] } |
//Decoded Header { "alg": "HS256" } //Decoded Payload { "password": "174b063a7d7e684004d94f4965b52ad9", "secretary": "daniel.jose", "beneficiaryCard": "01200108959000048", "provider": 31921, "clinic": 10026, "exp": 1742474562, "iat": 1742470962 } |
//Decoded Header { "alg": "RS256" } //Decoded Payload { "sub": "020010aAIWYXZCfTJ3CcmZZcqVqQ33", "iat": 1743511253, "issuer": "datasul", "iss": "datasul", "jti": "0a646273-f3dd-4869-b201-4e6a5a6d509e", "exp": 1743513053, "aud": "localhost.8280", "scope": [ "/portprest" ] } |
//Decode Header { "alg": "HS256" } //Decode Payload { "password": "174b063a7d7e684004d94f4965b52ad9", "companyId": "120", "secretary": "daniel.jose", "beneficiaryCard": "01200108959000048", "provider": 31921, "clinic": 10026, "exp": 1743514859, "loginData": { "companyId": "120", "secretary": "daniel.jose", "beneficiaryCard": "01200108959000048", "provider": 31921, "clinic": 10026, "authorized": true, "token": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIwMjAwMTBhQUlXWVhaQ2ZUSjNDY21aWmNxVnFRMzMiLCJpYXQiOjE3NDM1MTEyNTMsImlzc3VlciI6ImRhdGFzdWwiLCJpc3MiOiJkYXRhc3VsIiwianRpIjoiMGE2NDYyNzMtZjNkZC00ODY5LWIyMDEtNGU2YTVhNmQ1MDllIiwiZXhwIjoxNzQzNTEzMDUzLCJhdWQiOiJsb2NhbGhvc3QuODI4MCIsInNjb3BlIjpbIi9wb3J0cHJlc3QiXX0.GPHI8uvCB7APDiB_3g7DWVB25sBOi_GV7xGJ2B2lsYu3oVW0CRVVEoq6hT1bkJBkTcDHnOtUrNrDL761V56IqUJdXQ3OO_ToZv3t94nu4VERGNYWgqPkLHohQvnLjdlFAS5mkjVdZ545L-jOyHGrDuVzf9VzqkjpGVnfJBgkajYar1BJePtf9oiFWkBu8Pn5OxeQVFjhFI07WKHlPomEfnDYLSj6g8yTyitbo_aM4nO82EMiJGVSkBYbBqZJdmS2IzmRAA27Pam5KCUkYKl3INnlUu1P0FVwgiF4EZdklMMYRIybseYetfwboYmpyWsoBE2WMjHsGhOgGlfZSnY0ig", "hybridToken": "eyJhbGciOiJIUzI1NiJ9.eyJwYXNzd29yZCI6IjE3NGIwNjNhN2Q3ZTY4NDAwNGQ5NGY0OTY1YjUyYWQ5Iiwic2VjcmV0YXJ5IjoiZGFuaWVsLmpvc2UiLCJiZW5lZmljaWFyeUNhcmQiOiIwMTIwMDEwODk1OTAwMDA0OCIsInByb3ZpZGVyIjozMTkyMSwiY2xpbmljIjoxMDAyNiwiZXhwIjoxNzQzNTE0ODU5LCJpYXQiOjE3NDM1MTEyNTl9.QKNHJLfAyxYgrHbCZhptRs6wM41VGnwel2LS93HyzEI", "datasulToken": "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJhY2FhZmM1ZS04NWYyLTA3YmYtNDIxNC01ZDk5MmMwOTRkODYiLCJpYXQiOjE3NDM1MTEyNTcsImlzc3VlciI6ImRhdGFzdWwiLCJpc3MiOiJkYXRhc3VsIiwianRpIjoiZWZlNDI2NmUtZmZmMi00NjJjLWE0MzktNmY2M2M1ODFlNzgxIiwiZXhwIjoxNzQzNTEzMDU3LCJhdWQiOiJsb2NhbGhvc3QuODI4MCIsImNvbXBhbnlJZCI6ImQyZTk4NzQ4LTE4MTgtYjA5OC05ZTE0LWZlZDkzODg4NGNiMyIsInNjb3BlIjpbIi9oc3YiLCIvdHJlcCJdfQ.eMngMva-zBHzmvrFdQxX4RG0Ey2i_I5SIRNwS0amAfj2XUrDfzAzV6spGcbdHQeBjftghhYJWWR0HP2Y1DLgUGs8KGAfQJFtu9om0hmWH72P1faI_CtIV9qG0VchVwkYpVw91KnCiCyayo8_uDP3cARKCQOuHasxebsKzXDn76Q-2u_rBUPEZhC7jGK-QIaNQX5ELUA4MWaJs5p58B0VsTX_LJbAtzfQbNv_ttFTZJUUzX7dorOOyYAv_LI7UikfWs1QGUQyx8_q962GvtgY6a9DlcLtXwfuxIr6-_4y8NldilHPYemGbfRumU5fqcfZ9lCwD0_wxpB9oIranL589w", "externalToken": "", "errorCode": 0, "errorMessage": "", "cnpjClinic": "" }, "iat": 1743511259 } |
O sistema identifica automaticamente o papel do usuário baseado nas credenciais:
O sistema possui um mecanismo que bloqueia o usuário após múltiplas tentativas de login malsucedidas.
import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent implements OnInit { token: string = ''; title = 'consome-portal-app'; async ngOnInit() { const token = await this.autenticate(); if (token) { this.token = token; } this.initializeEventListeners(); } removeExistentsScripts(){ let existingScript = document.getElementById("port-prest-external-integration"); if (existingScript) { existingScript.remove(); // Remove o script caso já exista } } protected consultationRegister() { this.removeExistentsScripts(); let scriptToken = document.createElement("script"); scriptToken.setAttribute("src", "https://portal.totvs.com.br/totvs-hgp-portal-prestador/external-integration/consultation-register.js"); scriptToken.setAttribute("type", "text/javascript"); scriptToken.setAttribute("id", "port-prest-external-integration"); scriptToken.setAttribute("token", `${this.token}`); scriptToken.setAttribute("target", "#divIframe"); document.getElementsByTagName('body')[0]?.appendChild(scriptToken); } protected examRequest() { this.removeExistentsScripts(); let scriptToken = document.createElement("script"); scriptToken.setAttribute("src", "https://portal.totvs.com.br/totvs-hgp-portal-prestador/external-integration/exam-request.js"); scriptToken.setAttribute("type", "text/javascript"); scriptToken.setAttribute("id", "port-prest-external-integration"); scriptToken.setAttribute("token", `${this.token}`); scriptToken.setAttribute("target", "#divIframe"); document.getElementsByTagName('body')[0]?.appendChild(scriptToken); } private async autenticate() { const bodyRequest = JSON.stringify({ "user": "daniel.jose", "password": "174b063a7d7e684004d94f4965b52ad9", "clinic": 10026, "cnpjClinic": "03.151.186/0001-78", "provider": 31921, "beneficiaryCard": "01200108959000048" }); const options = { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: bodyRequest }; const result = await fetch('https://portal.totvs.com.br/totvs-hgp-haw-auth/api/external-authentication', options) ?? ""; const { externalToken } = await result.json(); return externalToken; } private initializeEventListeners(){ window.addEventListener("message", (event) => { // Verifique a origem da mensagem para evitar problemas de segurança if (event.origin !== "https://portal.totvs.com.br") return; if (event.data.event === "savedConsultationRegister") { console.log("Registro de consulta: ", event.data); alert("O Registro de consulta foi salvo com sucesso!"); } if (event.data.event === "examRequestFinish") { console.log("Solicitação de exame: ", event.data); alert("O Solicitação de exame foi salvo com sucesso!"); } }); } } |
<h1> <div id="divIframe" #divIframe> </div> </h1> |
Após obter o token de autenticação, você pode incorporar o Portal Prestador de duas maneiras:
protected consultationRegister() { this.removeExistentsScripts(); let scriptToken = document.createElement("script"); scriptToken.setAttribute("src", "https://portal.totvs.com.br/totvs-hgp-portal-prestador/external-integration/consultation-register.js"); scriptToken.setAttribute("type", "text/javascript"); scriptToken.setAttribute("id", "port-prest-external-integration"); scriptToken.setAttribute("token", `${this.token}`); scriptToken.setAttribute("target", "#divIframe"); document.getElementsByTagName('body')[0]?.appendChild(scriptToken); } |
Exemplo do iframe do registro de consulta:
protected examRequest() { this.removeExistentsScripts(); let scriptToken = document.createElement("script"); scriptToken.setAttribute("src", "https://portal.totvs.com.br/totvs-hgp-portal-prestador/external-integration/exam-request.js"); scriptToken.setAttribute("type", "text/javascript"); scriptToken.setAttribute("id", "port-prest-external-integration"); scriptToken.setAttribute("token", `${this.token}`); scriptToken.setAttribute("target", "#divIframe"); document.getElementsByTagName('body')[0]?.appendChild(scriptToken); } |
Exemplo do iframe do solicitação de exames:
//O token a passar é a propriedade token de retorno da autenticação externa do portal prestador curl --location 'https://portal.totvs.com.br/dts/datasul-rest/resources/prg/portprest/v1/elegibility' \ --header 'authorization: Bearer eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIwMjAwMTBhQUlXWVhaQ2ZUSjNDY21aWmNxVnFRMzMiLCJpYXQiOjE3NDM1MTE5OTQsImlzc3VlciI6ImRhdGFzdWwiLCJpc3MiOiJkYXRhc3VsIiwianRpIjoiNWFiN2ZkYTgtMDUzNy00YzRmLWE5OWEtN2I5NWYzYjA2YTI4IiwiZXhwIjoxNzQzNTEzNzk0LCJhdWQiOiJsb2NhbGhvc3QuODI4MCIsInNjb3BlIjpbIi9wb3J0cHJlc3QiXX0.UomeuerSlOou9gNz_9ZVhTFrmb96ZvTL1EKd4CejT_-r8sZhPLTW1vT2eN-XPZutgoKPlo4l_LeKytnJcuDTd7w48L2fJaNf_vXXdxS9hvwFjMqEmL_S_zhNIGg1y5Ikw9FPXG4nJO6SgMFtgTNhi7n6vtwaBbTDntH0MnoK6qLPkAhNeKMwnQ2PcphcQ7n9UJed9mdyzW1lS_KJuBzWDiPPSisQbgicN9VnMjKEwBe2Bk_nF-8KFQiLNAjRlF1bXXsdvzROQPKdyheDZkz3wtgX5E31W32khV0ffCdyuwBcCqADWa0zi2ZHIsSPp8BCVEOPZ6CPGgLtiUD4BQFZeQ' \ --header 'Content-Type: application/json' \ --header 'x-totvs-hgp-portal-prestador-clinic: 10026' \ --data '{ "provider": 31921, "healthInsurerProvider": 120, "completeCardNumber": "01200108959000048" }' |
{ "total": 1, "hasNext": false, "items": [ { "code": "3040", "description": "609 - Periodo de movimentacao fechado, impossivel incluir/modificar movime" } ] } |