API de Missões
Os exemplos abaixo mostram o cabeçalho no formato de rede
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ê recebe uma API Key com o escopo
missions:read(Admin > Integrações > API Keys) - Seu backend consulta o estado das missões de um ou vários colaboradores (por CPF ou e-mail)
- O SalesOS responde com as missões de hoje por colaborador — contadores de progresso, a lista completa e a próxima missão ativa
As missões avançam pela atividade dentro do SalesOS: o motor escuta eventos (uma visita agendada, uma venda fechada) e incrementa a missão correspondente. Esta API é para ler esse estado — combine com um deep link para o módulo do SalesOS na hora da ação.
Autenticação
Todas as requisições exigem uma API Key no cabeçalhoAuthorization:
Ambientes
- Produção
- Staging
URL base:
https://api.play2sell.comReferência do endpoint
action: missions_status e missions_summary.
Cada colaborador é identificado por CPF (em qualquer formato — os dígitos são normalizados) ou e-mail. Quando os dois são enviados, o CPF prevalece.
Ação: missions_status
As missões cuja janela de período contém o dia de hoje, por colaborador. “Hoje” é calculado no fuso horário da sua empresa (devolvido emtimezone / reference_date na resposta) — nunca em UTC.
Esquema da requisição
string
obrigatório
Deve ser
"missions_status"array
obrigatório
Lista de referências de colaboradores (máximo 500 — 100 quando
include_missions está ligado)boolean
padrão:"false"
Devolve a lista completa
missions[]. Desligado por padrão: cada colaborador tem várias missões, então um lote grande com a lista ligada vira uma resposta de megabytes. progress e next_mission vêm sempre.string
CPF, em qualquer formato (
52998224725 ou 529.982.247-25). Deve conter exatamente 11 dígitos.string
E-mail — usado apenas quando o
cpf está ausenteExemplo
Campos da resposta
A recompensa é paga em parcelas, então “conquistado” e “ainda a conquistar” são números diferentes. Uma missão de 100 pontos com meta 5 credita 20 a cada passo. Depois de um passo, o colaborador conquistou 20 e ainda tem 80 a conquistar —
points_earned conta os 20, points_available conta os 80. Somar os 100 cheios nos dois lados contaria os mesmos pontos duas vezes.Ação: missions_summary
Tudo o quemissions_status devolve, mais os contadores de conclusão da semana e do mês. Útil para uma faixa de “seu mês até aqui”.
As missões são contadas no período a que pertencem (a janela delas), não na data em que foram aprovadas — então uma missão aprovada com atraso continua contando na semana em que foi conquistada.
Exemplo
missions_summary varre um mês de registros por colaborador, por isso o limite de lote é 100 em vez de 500.Modo self (sessão federada)
Quando o seu app já tem um token de usuário federado do SalesOS, envie-o comoAuthorization: Bearer <jwt> e omita collaborators. A resposta cobre apenas o próprio usuário do token.
Tratamento de erros
Todos os erros seguem a mesma estrutura:400 — VALIDATION_ERROR
400 — VALIDATION_ERROR
Corpo inválido, lote acima do limite, CPF sem 11 dígitos, ou item sem
cpf e sem email. A lista details aponta o index do item.400 — SELF_MODE_NO_COLLABORATORS
400 — SELF_MODE_NO_COLLABORATORS
Uma lista
collaborators foi enviada junto com um token de usuário. Omita-a, ou use uma API Key de parceiro.403 — FORBIDDEN
403 — FORBIDDEN
API Key válida, mas sem o escopo
missions:read.405 — METHOD_NOT_ALLOWED
405 — METHOD_NOT_ALLOWED
Apenas
POST é aceito.429 — RATE_LIMITED
429 — RATE_LIMITED
Requisições demais nesta hora. Aguarde
retry_after segundos e tente de novo.500 — SERVER_ERROR
500 — SERVER_ERROR
Erro interno. Tente novamente com espera progressiva (2s, 4s, 8s).
Limites de uso
Segurança
- Somente leitura: esta API nunca cria, avança ou provisiona missões
- Cada chave pertence a uma única empresa — um CPF de outra empresa responde
found: false - As requisições são assinadas por HMAC (P2S-SIGN-V1) e registradas para auditoria; documentos nunca são gravados nos logs
Próximos passos
API de Check-in
Leia a presença em serviço para completar a mesma tela inicial
Autenticação
Aprenda a criar e gerenciar API Keys

