{"openapi":"3.1.0","info":{"title":"@beanshealth/tiss","version":"1.0.0","description":"API do pacote @beanshealth/tiss - Padrao TISS v4.01.00 para Troca de Informacao em Saude Suplementar. Marketing permissionado LGPD-compliant para hospitais brasileiros.","contact":{"name":"Beans Health","url":"https://tiss.beanshealth.com.br","email":"contato@beanshealth.com.br"},"license":{"name":"MIT","url":"https://github.com/beanshealth/tiss"}},"servers":[{"url":"https://tiss.beanshealth.com.br","description":"Producao"}],"paths":{"/api/marketing/consent":{"post":{"summary":"Registrar consentimento de marketing (LGPD)","description":"Cria registro de consentimento opt-in com validacao de dados. Se SENDGRID_API_KEY configurada, envia email de double opt-in automaticamente.","operationId":"createConsent","tags":["Marketing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","email","consentType"],"properties":{"name":{"type":"string","minLength":3,"description":"Nome completo"},"email":{"type":"string","format":"email","description":"E-mail do paciente"},"phone":{"type":"string","description":"Telefone/WhatsApp (10-11 digitos)"},"consentType":{"type":"string","enum":["newsletter","recall","promocao","pesquisa"],"description":"Tipo de consentimento"},"specialty":{"type":"string","description":"Especialidade de interesse"},"hospitalId":{"type":"string","description":"ID do hospital"},"receiveEmail":{"type":"boolean","default":true},"receiveWhatsApp":{"type":"boolean","default":false},"contactFrequency":{"type":"string","enum":["diario","semanal","quinzenal","mensal"],"default":"semanal"}}},"examples":{"recall":{"summary":"Recall pos-consulta","value":{"name":"Maria Silva","email":"maria@hospital.com","consentType":"recall","specialty":"cardiologia","phone":"(11) 99999-9999","contactFrequency":"semanal"}},"newsletter":{"summary":"Newsletter mensal","value":{"name":"Joao Santos","email":"joao@hospital.com","consentType":"newsletter","contactFrequency":"mensal"}}}}}},"responses":{"200":{"description":"Consentimento registrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsentResponse"}}}},"400":{"description":"Dados invalidos","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Erro interno"}}}},"/api/marketing/confirm":{"get":{"summary":"Pagina de confirmacao de email (double opt-in)","description":"Retorna pagina HTML de confirmacao. O token e gerado pelo endpoint de consentimento.","operationId":"getConfirmPage","tags":["Marketing"],"parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string"},"description":"Token de confirmacao (UUID)"}],"responses":{"200":{"description":"Pagina HTML de confirmacao","content":{"text/html":{}}}}},"post":{"summary":"Confirmar email (double opt-in)","operationId":"confirmEmail","tags":["Marketing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["token"],"properties":{"token":{"type":"string"}}}}}},"responses":{"200":{"description":"Email confirmado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmResponse"}}}},"400":{"description":"Token invalido ou ausente"}}}},"/api/marketing/unsubscribe":{"post":{"summary":"Descadastrar contato (LGPD Art. 18)","description":"Revoga consentimento de marketing. Referencia LGPD: Art. 18, par. 2 - Direito de revogar consentimento a qualquer momento.","operationId":"unsubscribe","tags":["Marketing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"contactId":{"type":"string","description":"ID do contato"},"email":{"type":"string","description":"Email do contato"}}}}}},"responses":{"200":{"description":"Descadastro realizado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnsubscribeResponse"}}}},"400":{"description":"contactId ou email obrigatorio"}}}}},"components":{"schemas":{"ConsentResponse":{"type":"object","properties":{"success":{"type":"boolean"},"record":{"type":"object","properties":{"id":{"type":"string","description":"UUID do registro de consentimento"},"email":{"type":"string"},"name":{"type":"string"},"consentType":{"type":"string","enum":["newsletter","recall","promocao","pesquisa"]}}}}},"ConfirmResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnsubscribeResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"lgpdReference":{"type":"string","description":"Art. 18, par. 2 - Lei 13.709/2018"}}},"Error":{"type":"object","properties":{"success":{"type":"boolean","example":false},"errors":{"type":"array","items":{"type":"string"}}}}}},"tags":[{"name":"Marketing","description":"Marketing permissionado LGPD-compliant - consentimento, double opt-in, descadastro"}]}