# Integração Kovi <> 55PBX ## __Dicionário JSON__ | Nome | Tipo | Descrição | --------------------- | ----------------- | ------------- | valid_national_id | Boolean | CPF Válido? | groups_pool | { [Int]: String } | Grupo a ser direcionado caso para cada dígito apertado | message_tts | String | Mensagem para ser lida | callback_endpoint | String | Url a ser acionada quando usuário interage ## __Autenticação__ Autenticação via header `Authorizarion: Bearer {token}` Onde o token será passado diretamente para o responsável técnico. Todos os endpoints nessa documentação utilizam o mesmo formato de autenticação assim como o mesmo token fornecido. Ex.: token = `SECRET_TOKEN` `Authorizarion: Bearer SECRET_TOKEN` # Endpoint consulta de CPF ### Mensagem padrão __IMPORTANTE:__ Caso o retorno da API não seja 200 ou não apresente o campo `message_tts` a mensagem abaixo deverá ser enviada para o usuário. __Para dúvidas sobre o aluguel com a Kóvi, por favor acesse ajuda ponto kóvi ponto com ponto br. Obrigado por ligar para a Kóvi.__ ### Request url: `https://api.kovi.us/utils/ura` method: __POST__ body: ```JSON { "CPF": "12345678900" } ``` ### Responses: #### 401 Request sem Authorization header Body: ```JSON { "errors": ["You must pass Authorization header"] } ``` Request com Authorization header inválido Body: ```JSON { "errors": ["Invalid token"] } ``` --- #### 500 Request inesperada pelo servidor ou erro interno Body: ```JSON {"message": "Internal server error"} ``` --- #### 200 body: ```JSON { "valid_national_id": true, "message_tts": "Olá bom dia...", "groups_pool": { "1": "GROUP_1", "2": "GROUP_2", }, "callback_endpoint": "http://sampleurl.com" } ``` # Possíveis fluxos ## __FLUXO 1: Usuário insere um CPF inválido__ ### __Evidência__ 1. valid_national_id = false ### __Ação__ __55PBX__: 1. Lê mensagem 2. Retorna para inserção de CPF ### __Retorno__ ```JSON { "national_id": "12345678900", "valid_national_id": false, "message_tts": "CPF Inválido, por favor, digite novamente." } ``` ## __FLUXO 2: Usuário recebe uma mensagem que não necessita de interação__ ### __Evidência__ 1. `valid_national_id = true` 2. `has_booking = false` ### __Ação__ __55PBX__: 1. Lê mensagem 2. Encerra ligação ### __Retorno__ ```JSON { "national_id": "12345678900", "valid_national_id": true, "message_tts": "Para dúvidas sobre o aluguel com a Kovi, por favor acesse ajuda ponto kovi ponto com ponto br. Obrigado por ligar para a Kovi." } ``` ## __FLUXO 3: Usuário recebe uma mensagem que não necessita de interação__ ### __Evidência__ 1. `valid_national_id = true` 2. `groups_pool` != null 3. `callback_endpoint` != null ### __Ação__ __55PBX__ 1. Lê mensagem 2. Aguarda input do usuário 1. Caso usuário não aperte nenhuma opção voltar para o passo 1 2. Caso usuário aperte uma opção ir para passo 3 3. Direciona o número selecionado para o pool correto baseado no campo `groups_pool` 4. Envia para endpoint `callback_endpoint` a opção selecionada pelo usuário (ler especificações do endereço de callback) ### __Retorno__ ```JSON { "valid_national_id": true, "message_tts": "Identificamos que você possui 5 débitos com a Kóvi, acabamos de enviar para você o link para você acessar e regularizar a sua situação. Para emergência, pressione 1. Para pagamentos, pressione 2. Para sinistros, pressione 3. Para manutenção, pressione 4.", "groups_pool": { "1": "EMERGENCY", "2": "MY_PLAN", "3": "ACCIDENT", "4": "MAINTENANCE", }, "callback_endpoint": "http://sampleurl.com" } ```` # Endpoint callback ### Request O valor enviado no `pool` é o nome do pool corresponte ao número selecionado pelo usuário. url: `https://api.kovi.us/utils/ura/callback` method: __POST__ body: ```JSON { "CPF": "12345678900", "pool": "EMERGENCY" } ``` ### Response body: ```JSON { "success": true } ``` ### Interações ```JSON { "INVALID_NATIONAL_ID": "CPF desconhecido, por favor, digite novamente.", "DEFAULT_MESSAGE": "Para dúvidas sobre o aluguel com a Kovi, por favor acesse ajuda ponto kovi ponto com ponto br. Obrigado por ligar para a Kovi.", "SIGNUP": { "DOCS_PENDING": "O seu cadastro está em andamento, mas estamos aguardando o envio do seu comprovante de residência. Obrigado por ligar para a Kovi.", "DOCS_CHECKING": "Neste momento estamos verificando os seus documentos, aguarde o nosso contato por email e WhatsApp. Obrigado por ligar para a Kovi.", "PAYMENT_PENDING": "O seu cadastro está em andamento, mas estamos aguardando você fazer a seleção do seu plano com a Kovi, para mais informações sobre planos acesse ajuda ponto kovi ponto com ponto br. Obrigado por ligar para a Kovi.", "PAYMENT_PENDING_PAYMENT": "Estamos aguardando o pagamento dos valores relacionados ao seu aluguel. Obrigado por ligar para a Kovi", "DELIVERY_PENDING": "Nosso time está verificando a disponibilidade de veículos para fazer o agendamento. Entraremos em contato em breve. Obrigado por ligar para a Kovi", "DELIVERY_SCHEDULED": "Seu agendamento já foi realizado e será no dia {day} de {month} as {hour} horas. Verifique seu email para mais informações. Obrigado por ligar para a Kovi." }, "BOOKING_WITH_DEBITS": "Identificamos que você possui {debit_count} débitos com a Kóvi. Acabamos de enviar para você o link para acessar, e regularizar a sua situação. Para emergência, pressione 1. Para desbloqueio de veículos, pressione 2. Para pagamentos, pressione 3. Para sinistros, pressione 4. Para manutenção, pressione 5.", "BOOKING_NO_DEBITS": "Para emergência, pressione 1. Para pagamentos, pressione 2. Para sinistros, pressione 3. Para manutenção, pressione 4." } ```