API de Check-in
Os exemplos abaixo mostram o header no formato de transmissão
Authorization: P2S-SIGN-V1 API_KEY:TIMESTAMP:SIGNATURE. Para calcular a assinatura no seu código, use o helper signedRequest em Autenticação.Como funciona
- Você obtém uma API Key com o scope
checkin:read(Admin > Integrações > API Keys) - Seu backend consulta o estado de check-in de um ou vários colaboradores (por CPF ou email)
- O SalesOS responde com o último check-in de hoje por colaborador — e, opcionalmente, contagens de engajamento semana/mês
O check-in continua sendo executado dentro do app SalesOS (a validação de GPS acontece no contexto do usuário). Esta API é para ler o estado de presença — combine-a com um deep link para o módulo SalesOS na ação “Fazer check-in”.
Autenticação
Todas as requisições exigem uma API Key no headerAuthorization:
Ambientes
- Produção
- Staging
Base URL:
https://api.play2sell.comReferência do Endpoint
action: checkin_status e checkin_engagement.
Cada colaborador é identificado por CPF (qualquer formato — os dígitos são normalizados) ou email. Quando os dois são enviados, o CPF prevalece.
Action: checkin_status
Último check-in de hoje por colaborador. “Hoje” é calculado no fuso horário da sua empresa (retornado comotimezone / reference_date na resposta) — nunca em UTC.
Schema da requisição
string
obrigatório
Deve ser
"checkin_status"array
obrigatório
Array de referências de colaborador (máx. 500)
string
CPF, qualquer formato (
52998224725 ou 529.982.247-25). Deve conter exatamente 11 dígitos.string
Email — usado apenas quando
cpf não é enviadoExemplo
Campos da resposta
boolean
Se o CPF/email correspondeu a um colaborador da sua empresa. Colaborador desconhecido vem como
found: false — não é erro, e o array mantém a mesma ordem da requisição.boolean
Se o colaborador tem ao menos um check-in não-rejeitado hoje (fuso da empresa).
boolean
true quando o último check-in está ativo/aprovado e o turno ainda não expirou — ou seja, o colaborador está em plantão agora.object
Check-in mais recente de hoje. Omitido quando não há nenhum.
mode é geo (presencial com GPS), home (home office) ou offline. status pode ser active, approved, pending (aguardando aprovação do líder), expired (turno encerrado normalmente) ou checkout.string
Vínculo do colaborador com a sua empresa (
active, inactive, …). Um colaborador pode ser encontrado e estar inativo.Action: checkin_engagement
Tudo quecheckin_status retorna, mais contagens de engajamento semana/mês por colaborador. Lotes limitados a 100.
string
obrigatório
Deve ser
"checkin_engagement"array
obrigatório
Array de referências de colaborador (máx. 100)
Exemplo
engagement:
checkins— check-ins na semana/mês corrente (fuso da empresa;expiredconta — é o fim normal de um turno)presence_days— dias distintos com ao menos um check-in
Modo self (sessão federada)
Se o seu app já possui uma sessão federada do SalesOS — o JWT devolvido por um login customizado, como a federation do Superapp — o mesmo endpoint responde pelo próprio usuário do token, sem API key:- A identidade vem exclusivamente do token verificado — não envie
collaborators. Requisição com esse campo é rejeitada comSELF_MODE_NO_COLLABORATORS: token de usuário nunca consulta outras pessoas. - O escopo de empresa vem da sessão; a resposta tem exatamente o mesmo formato, com um único item em
collaborators. checkin_engagementfunciona da mesma forma ({ "action": "checkin_engagement" }).
Tratamento de Erros
Todos os erros seguem a estrutura compartilhada:400 — VALIDATION_ERROR
400 — VALIDATION_ERROR
Body inválido, lote acima do limite, CPF sem 11 dígitos, ou item sem
cpf nem email. O array details aponta o index do item.403 — FORBIDDEN
403 — FORBIDDEN
API key válida, mas sem o scope
checkin:read.405 — METHOD_NOT_ALLOWED
405 — METHOD_NOT_ALLOWED
Apenas
POST é aceito.429 — RATE_LIMITED
429 — RATE_LIMITED
Muitas requisições nesta hora. Aguarde
retry_after segundos e tente de novo.500 — SERVER_ERROR
500 — SERVER_ERROR
Erro interno. Faça retry com backoff exponencial (2s, 4s, 8s).
Rate Limits
Segurança
- Somente leitura: esta API nunca cria nem altera check-ins
- Cada key é limitada a uma única empresa — CPF de outra empresa responde
found: false - Requisições assinadas com HMAC (P2S-SIGN-V1) e logadas para auditoria; documentos nunca são escritos em logs
Próximos passos
Autenticação
Aprenda a criar e gerenciar API Keys
Suporte
Precisa de ajuda? Fale com nosso time

