Pular para o conteúdo principal

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:

RotaUsuárioTela aberta
POST /embed/quick-serviceVendedor da centralCadastro de um novo serviço para um marceneiro.
POST /embed/serviceMarceneiroWhitelabel 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.

CampoDescrição
companyInternalCodeCódigo da central. Precisa ser igual ao cabeçalho x-company-internal-code; se não for, a resposta é 401.
productionInternalCodeCódigo interno da linha de produção onde as peças serão produzidas.
sellerEmailE-mail do vendedor que vai receber o acesso.
sellerNameNome do vendedor.
carpenterEmailE-mail do marceneiro para quem o serviço será criado.
carpenterNameNome do marceneiro.
carpenterInternalCodeCó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 carpenterInternalCode nã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.

CampoDescrição
carpenterEmailE-mail do marceneiro que vai receber o acesso.
carpenterNameNome do marceneiro.

Os dois campos são obrigatórios.

{
"carpenterEmail": "marceneiro@example.com",
"carpenterName": "Beltrano Marceneiro"
}

Erros​

StatusSituação
400Falta um campo obrigatório, um campo está vazio ou um e-mail é inválido.
401Falha de autenticação ou, em quick-service, companyInternalCode diferente de x-company-internal-code.
404Em /embed/service: a central não tem whitelabel configurado.
409O e-mail informado já pertence a um usuário com outro perfil, por exemplo o e-mail de um vendedor enviado como marceneiro.
429A integração passou do limite de requisições.
5xx ou outro statusFalha 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.