O SSO leva o usuário do seu sistema para o portal da Engage sem pedir senha. O primeiro passo é registrar, para cada usuário, o identificador que ele já tem no seu sistema — o "De/Para". Sem esse vínculo, a Engage não sabe de quem é o acesso.
Neste artigo
- Antes de começar
- Registrar o identificador
- Cuidados
- Problemas comuns
Antes de começar
- As credenciais da sua instância, reunidas em Comece por aqui: credenciais para integrar com a API da Engage, e um token gerado em Passo 2 — Obtendo o access_token (POST /auth).
- O usuário de serviço precisa da permissão Gerenciar usuários.
- O usuário final já existe na Engage. Este passo não cria usuário — para isso, veja Integração de usuários: criar e atualizar.
- Teste em homologação:
https://sandbox.engage.bz/api/v1.
Registrar o identificador
1Envie o De/Para
POST https://sandbox.engage.bz/api/v1/{customer_id}/users/identifiers?customerToken={customer_token}
Authorization: Bearer {access_token}
Content-Type: application/json
[
{
"user_login": "joao.silva",
"client_application_id": "{client_id}",
"identifier": "a3f1c2d4-55aa-4b7c-9e11-0d2b3c4d5e6f"
}
]No Postman: pasta 04 - SSO e identificadores, request De/Para — criar/atualizar identificador.

Corpo do request De/Para — criar/atualizar identificador no Postman, com valores fictícios
| Campo | Obrigatório | Exemplo | Observação |
|---|---|---|---|
user_login | Sim | joao.silva | Login do usuário que já existe na Engage |
client_application_id | Sim | {client_id} | O client_id da sua aplicação. Precisa ser o mesmo usado no Passo 2 |
identifier | Sim | a3f1c2d4-55aa-4b7c-9e11-0d2b3c4d5e6f | O identificador do usuário no seu sistema. Precisa ser não adivinhável — veja o aviso abaixo |
O corpo é sempre uma lista, mesmo para um usuário só. O customerToken vai na URL em toda chamada.
Cuidado
O identifier é o que o Passo 2 troca por uma chave de entrada no portal. Quem descobrir o identificador de um usuário pode tentar entrar como ele. Use um GUID v4 ou um hash aleatório de 128 bits ou mais, gerado por um gerador criptográfico. Nunca use ID sequencial, auto incremento, matrícula, CPF, e-mail, login ou qualquer valor derivado deles por uma regra que alguém possa reproduzir.
2Leia o resultado de cada usuário
A chamada responde HTTP 200 mesmo quando algum usuário é recusado. Cada item de results traz o seu próprio success, e o motivo da recusa vem em detail_messages[].event_code. A sua rotina precisa ler esses campos, não só o código HTTP.
Para conferir o que ficou gravado, use o request De/Para — conferir identificador gravado.
Importante
O erro mais comum desta integração é gravar o De/Para com um client_application_id e depois chamar o Passo 2 com outro client_id. Nesse caso, o SSO responde invalid_credentials mesmo com o identificador certo.
Cuidados
- Reenviar substitui. A chave do vínculo é o par
user_login+client_application_id. Reenviar o par com outroidentifiertroca o anterior, que deixa de funcionar. - Base antiga com identificadores sequenciais? Gere um valor novo e aleatório por usuário e reenvie o De/Para. O identificador antigo deixa de valer.
- O identificador é único por aplicação. Se ele já pertence a outro usuário, o registro é recusado.
- Usuário inativo não entra. O vínculo é gravado, mas o Passo 2 recusa o acesso.
- Logins internos da plataforma são recusados, como o do próprio usuário de serviço. Faça o De/Para só de usuários finais.
Problemas comuns
| O que aparece | Causa provável | O que fazer |
|---|---|---|
login_is_required | user_login vazio | Preencha o login |
login_is_invalid | O login não existe na instância | Crie o usuário antes e reenvie |
clientid_is_required | client_application_id vazio | Preencha com o client_id da aplicação |
clientid_does_not_exist | O client_id não está cadastrado nesta instância | Confira o client_id do ambiente: homologação e produção têm cadastros separados |
identificador_obrigatorio | identifier vazio | Preencha o identificador |
identificador_ja_existente | O identificador já pertence a outro usuário nesta aplicação | Garanta que o identificador é único na origem |
registro_duplicado | O mesmo par user_login + client_application_id apareceu duas vezes no envio | Remova a repetição |
edicao_identificador_usuario_interno_sistema | Tentativa de mapear um login interno da plataforma | Faça o De/Para só de usuários finais |
HTTP 400 unable_to_import_an_empty_collection | Lista vazia | Envie ao menos um item |
| HTTP 401 | Token expirado, ausente ou sem a permissão Gerenciar usuários | Gere um novo token e confira a permissão |
Próximo passo
Troque o identificador por uma chave de entrada — veja SSO — Passo 2: obter a chave de entrada (custom_sso).
Precisa de ajuda?
Escreva para meajuda@engage.bz informando o customer_id, o ambiente, o client_id e a resposta completa da chamada. Nunca envie senhas, tokens, identificadores de usuários ou o client_secret por e-mail.
Este artigo foi útil?
Que bom!
Obrigado pelo seu feedback
Desculpe! Não conseguimos ajudar você
Obrigado pelo seu feedback
Feedback enviado
Agradecemos seu esforço e tentaremos corrigir o artigo