Autenticação
A API de Integração SalesOS usa o esquema de requisições assinadas P2S-SIGN-V1 no headerAuthorization. As API Keys têm escopo em um único tenant, são hasheadas com bcrypt e suportam rate limiting e listas de IPs permitidos.
Ambientes
- Production
- Staging
URL Base:
https://api.play2sell.comDashboard: https://dashboard.play2sell.comApp: https://app.play2sell.comInício Rápido
1. Crie uma API Key
Acesse Integracoes > API Keys no Dashboard SalesOS:- Clique em Criar API Key
- Nomeie sua chave (ex.: “Sincronização CRM Noturna”, “Integração Formulário Website”)
- Selecione o escopo:
default:sync - Clique em Criar
- Copie os dois valores imediatamente — só são exibidos uma vez:
- API Key — identificador público, ex.
sk_live_a1b2c3d4... - API Key Secret — usado para assinar requisições, nunca é enviado pela rede
- API Key — identificador público, ex.
2. Assine e Envie uma Requisição
Para chamadas server-to-server, monte o headerAuthorization como P2S-SIGN-V1 API_KEY:TIMESTAMP:SIGNATURE. A SIGNATURE é o HMAC-SHA256 hex de uma cadeia de chaves derivada em 5 passos:
k1 = HMAC_SHA256(key=API_KEY_SECRET, msg=API_KEY)k2 = HMAC_SHA256(key=k1, msg=TIMESTAMP)k3 = HMAC_SHA256(key=k2, msg=METHOD)k4 = HMAC_SHA256(key=k3, msg=PATH)SIG = HMAC_SHA256_HEX(key=k4, msg=PAYLOAD_SHA256_HEX)
TIMESTAMP é Unix epoch em segundos, válido por 30 segundos. PAYLOAD_SHA256_HEX é o SHA-256 hex em minúsculas do corpo bruto da requisição (use o digest da string vazia e3b0c4...b855 quando não houver body).
- Node.js
- Python
- Bash
3. Verifique a Resposta
Sucesso (200):Propriedades da API Key
Formatos de Chave
O SalesOS usa dois prefixos de chave para distinguir ambientes:Erros de Autenticação
Toda recusa da camada de autenticação tem o mesmo formato:error é uma string legível e code é estável — ramifique pelo code, nunca pelo texto.
Exemplo: Chave sem o escopo necessário
missing_scopes só aparece neste caso.
Rate Limits
Cada API key possui um contador de rate limit independente que é reiniciado a cada hora:
Como funciona:
- Cada requisição autenticada e autorizada conta na janela da chave (recusas de autenticação não contam)
- A janela é de uma hora a partir da primeira requisição
- Hoje o limite é medido, mas não bloqueia. Quando o bloqueio for ligado, o excesso responderá
429comcode: "rate_limited"e o headerRetry-Afterem segundos — trate isso desde já
Boas Práticas de Segurança
- Use variáveis de ambiente — Armazene
SALESOS_API_KEYem variáveis de ambiente ou em um gerenciador de segredos, nunca no código-fonte - Rotacione as chaves periodicamente — Crie uma nova chave, atualize sua integração e depois revogue a antiga
- Use listas de IPs permitidos — Se sua integração roda a partir de IPs fixos, restrinja a chave apenas a esses IPs
- Monitore o uso — Verifique os logs de uso da API no Dashboard para padrões inesperados
- Use
sk_test_para desenvolvimento — Chaves de teste isolam seu ambiente de desenvolvimento da produção - Revogue chaves comprometidas imediatamente — Acesse Dashboard > Admin > API Keys > Revogar
Exemplo de rotação de chaves
Proximos Passos
Integracao Padrao
Comece a enviar atividades para o SalesOS
API Keys
Gerencie chaves programaticamente

