Autenticação
Todas as requisições à API Obra Play que acessam dados protegidos precisam ser autenticadas. A API suporta dois métodos: Token e JWT.
Recomendamos o Token de acesso para integrações
O token é vitalício e não expira, tornando a integração mais simples de manter. O JWT é mais indicado para aplicações que gerenciam sessões de usuário final.
Obtendo suas credenciais
As credenciais de acesso à API não são criadas por autoatendimento. Para garantir a segurança e integridade da plataforma, cada integração é provisionada diretamente pelo time da Obra Play.
Para solicitar suas credenciais, entre em contato com o suporte:
Contato
O canal oficial de suporte para integrações será informado pela Obra Play por e-mail ou WhatsApp após o início do processo de parceria.
Você receberá:
- Um usuário dedicado para a integração
- As credenciais de acesso (usuário e senha)
- Acesso aos ambientes de Staging (testes) e Produção
Ambientes
| Ambiente | Base URL |
|---|---|
| Staging (testes) | https://api-staging.obraplay.com |
| Produção | https://api.obraplay.com |
warning
Sempre valide sua integração no ambiente de Staging antes de apontar para Produção.
Método 1 — Token de Acesso (Recomendado)
Obtendo o token
POST /auth/token/login/
Content-Type: application/json
{
"username": "seu_usuario",
"password": "sua_senha"
}
Resposta:
{
"auth_token": "36434d218c36630f668af3dc089aea78ff63b98c"
}
O token é vitalício — guarde-o com segurança e reutilize em todas as requisições.
Usando o token
Adicione o header Authorization em toda requisição autenticada:
Authorization: Token 36434d218c36630f668af3dc089aea78ff63b98c
Exemplo com cURL:
curl -X GET https://api.obraplay.com/auth/users/me/ \
-H "Authorization: Token 36434d218c36630f668af3dc089aea78ff63b98c"
Revogando o token
Para invalidar o token atual:
POST /auth/token/logout/
Authorization: Token 36434d218c36630f668af3dc089aea78ff63b98c
Método 2 — JWT
Indicado para cenários onde você precisa de tokens com expiração controlada.
Obtendo o par de tokens
POST /auth/jwt/create/
Content-Type: application/json
{
"username": "seu_usuario",
"password": "sua_senha"
}
Resposta:
{
"access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
}
| Token | Finalidade | Validade |
|---|---|---|
access | Autenticar requisições | 24 horas |
refresh | Gerar novo access | 30 dias |
Usando o token de acesso
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...
Renovando o token
Quando o access expirar:
POST /auth/jwt/refresh/
Content-Type: application/json
{
"refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
}
Verificando a autenticação
Para confirmar que o token está funcionando:
GET /auth/users/me/
Authorization: Token 36434d218c36630f668af3dc089aea78ff63b98c
Resposta:
{
"id": 123,
"username": "integracao_empresa_x",
"email": "integracao@empresax.com",
"is_supplier": true
}
Códigos de erro
| Código | Significado |
|---|---|
401 Unauthorized | Token ausente, inválido ou revogado |
403 Forbidden | Token válido, mas sem permissão para o recurso |
Boas práticas de segurança
- Nunca exponha seu token em código-fonte público ou logs
- Use variáveis de ambiente para armazenar credenciais
- Todas as requisições devem usar HTTPS
- Em caso de comprometimento, entre em contato com o suporte imediatamente para revogar e reemitir as credenciais