Login embutido
O login embutido abre telas do Cortecloud já autenticadas para um usuário do seu sistema, sem que ele digite usuário e senha. O seu backend pede à API uma URL de acesso e a entrega ao usuário, que a abre no navegador.
Há duas rotas, uma para cada tipo de usuário:
| Rota | Usuário | Tela aberta |
|---|---|---|
POST /embed/quick-service | Vendedor da central | Cadastro de um novo serviço para um marceneiro. |
POST /embed/service | Marceneiro | Whitelabel da central: o site da central dentro do Cortecloud, com a marca dela. |
As duas rotas usam a mesma autenticação das demais e respondem 201 com a URL:
{ "url": "https://..." }
Cuidados com a URL
- A URL vale para um único acesso e expira em 60 segundos. Gere-a no momento em que o usuário for abri-la, não antes.
- A URL dá acesso à conta do usuário. Entregue-a só a ele e não a registre em log nem a guarde.
- A chamada à API é feita pelo seu backend, que tem a secret key. O navegador recebe só a URL.
Novo serviço para um vendedor
Rota: POST /embed/quick-service.
A URL abre o Cortecloud autenticado como o vendedor informado, na tela de cadastro de um novo serviço para o marceneiro informado, a ser produzido na linha de produção indicada.
| Campo | Descrição |
|---|---|
companyInternalCode | Código da central. Precisa ser igual ao cabeçalho x-company-internal-code; se não for, a resposta é 401. |
productionInternalCode | Código interno da linha de produção onde as peças serão produzidas. |
sellerEmail | E-mail do vendedor que vai receber o acesso. |
sellerName | Nome do vendedor. |
carpenterEmail | E-mail do marceneiro para quem o serviço será criado. |
carpenterName | Nome do marceneiro. |
carpenterInternalCode | Código que identifica o marceneiro no seu sistema. |
Todos os campos são obrigatórios.
Antes de gerar a URL, a rota cadastra o vendedor na central e o marceneiro no Cortecloud, caso ainda não existam, e vincula o marceneiro à central com o código carpenterInternalCode. Repetir a chamada com os mesmos dados não duplica cadastros. Dois casos merecem atenção:
- se o marceneiro já tem vínculo ativo com a central, o código interno que ele já tem é mantido, e
carpenterInternalCodenão o substitui; - se o vendedor está cadastrado em outra central, ele é transferido para a central da requisição e perde o vínculo com a anterior.
{
"companyInternalCode": "CENTRAL-SP",
"productionInternalCode": "LINHA-1",
"sellerEmail": "vendedor@example.com",
"sellerName": "Fulano Vendedor",
"carpenterEmail": "marceneiro@example.com",
"carpenterName": "Beltrano Marceneiro",
"carpenterInternalCode": "CLI-0042"
}
Área do marceneiro
Rota: POST /embed/service.
A URL abre o whitelabel da central da requisição (x-company-internal-code) autenticado como o marceneiro informado. O marceneiro é cadastrado no Cortecloud se ainda não existir.
| Campo | Descrição |
|---|---|
carpenterEmail | E-mail do marceneiro que vai receber o acesso. |
carpenterName | Nome do marceneiro. |
Os dois campos são obrigatórios.
{
"carpenterEmail": "marceneiro@example.com",
"carpenterName": "Beltrano Marceneiro"
}
Erros
| Status | Situação |
|---|---|
400 | Falta um campo obrigatório, um campo está vazio ou um e-mail é inválido. |
401 | Falha de autenticação ou, em quick-service, companyInternalCode diferente de x-company-internal-code. |
404 | Em /embed/service: a central não tem whitelabel configurado. |
409 | O e-mail informado já pertence a um usuário com outro perfil, por exemplo o e-mail de um vendedor enviado como marceneiro. |
429 | A integração passou do limite de requisições. |
5xx ou outro status | Falha ao cadastrar os usuários ou ao gerar o acesso; a mensagem traz o motivo. Pode ser transitória: repita com espera crescente e um número limitado de tentativas, e escreva para suporte@serrabits.com.br se persistir. |