CRM Bonus · Authentication Profile
Crm Bonus Authentication
Authentication
CRM Bonus secures its APIs with http across 1 declared security scheme, as derived from its OpenAPI definitions.
CompanyRetailLoyaltyCashbackCRMRetail MediaE-commerceBrazilWhatsAppCustomer DataData IngestionPoint of Sale
Methods: http
Schemes: 1
OAuth flows:
API key in:
Security Schemes
HTTPBearer http
scheme: bearer
Source
Authentication Profile
generated: '2026-08-12'
method: searched
source: openapi/crm-bonus-oto-data-api-openapi.yml
docs: https://ajuda.otocrm.com.br/support/solutions/articles/150000031734-cadastro-r%C3%A1pido-via-api
summary:
types:
- http
http_schemes:
- bearer
oauth2_flows: []
api_key_in: []
scopes: 0
note: >-
Single-scheme, single-credential model. No OAuth 2.0, no OpenID Connect, no
API-key header, no mTLS, and therefore no scope surface — which is why this
repo emits no scopes/ artifact.
schemes:
- name: HTTPBearer
type: http
scheme: bearer
bearer_format: JWT
description: |-
Você deverá enviar sua chave privada
no cabeçalho HTTP `Authorization`, com o padrão `Bearer <token>`. Exemplo:
```
GET / HTTP/1.1
Host: data-api.otocrm.com.br
Authorization: Bearer abcdef123456
```
applied_to: >-
All 12 /v1/* ingestion operations declare security: [{HTTPBearer: []}].
POST /auth/login is the one unauthenticated operation.
sources:
- openapi/crm-bonus-oto-data-api-openapi.yml
token_issuance:
self_service: false
process: >-
"Solicite ao time de suporte o token de acesso para utilização da API
pública" — the access token is requested from Oto/CRMBonus support. There is
no developer portal, no key-management console and no self-serve sign-up.
per_environment: true
per_environment_note: >-
Production and homologação require separate credentials
("Ambos os ambientes requerem credenciais específicas").
login_endpoint:
operation_id: login_auth_login_post
path: POST /auth/login
request: 'LoginRequest {username, password}'
response: 'TokenResponse {access_token, expires_in}'
token_type: JWT
expires_in: 3600
claims_note: >-
The operation description states the JWT carries user information and
permissions, and that credentials are validated against a `users`
collection. Those permissions are not exposed as OAuth scopes and are not
documented anywhere public.
failure_modes:
- status: 401
meaning: Credenciais inválidas
- status: 403
meaning: Conta de usuário inativa
- status: 500
meaning: Erro interno por exceção não esperada
runtime_behaviour:
missing_credential:
status: 403
body: '{"detail": "Not authenticated"}'
observed: '2026-08-12'
note: >-
403 rather than 401, and no WWW-Authenticate challenge header is returned.
A client that branches on 401 for "needs auth" will mis-handle this API.
transport:
https_only: true
hsts: 'max-age=31536000; includeSubDomains'
other_surfaces:
- name: CRMBonus Giftback / Vale Bonus API
host: api.crmbonus.com
documented: false
auth: >-
Partner-issued token. Third-party integration docs state the brand must ask
the CRM&Bônus team to create a token, scoped to stores and with CPF
collection enabled. No public reference, no published header name, no spec.
note: >-
Recorded for completeness; not part of the derived scheme set because no
machine-readable contract exists for it.
gaps:
- No OAuth 2.0 or OIDC — no /.well-known/openid-configuration on any host (404).
- No documented token rotation, revocation or expiry policy for support-issued tokens.
- No WWW-Authenticate header on an unauthenticated request.