Documentação da API
Guia de Integração

Autenticação OAuth 2.0 (Authorization Code Grant)

Todas as chamadas à API REST v1 do TrocaWeb são autenticadas por Bearer Tokens emitidos mediante o consentimento explícito do lojista.

Passo 1: Redirecionar o Lojista para Autorização

O seu ERP deve redirecionar o navegador do lojista para a URL de autorização:

HTTP GET
https://trocaweb.com.br/oauth/authorize?client_id=tw_app_SEU_CLIENT_ID&redirect_uri=https%3A%2F%2Fseu-erp.com.br%2Fcallback&response_type=code&scope=products:read%20products:write%20orders:read%20orders:write%20inventory:read%20inventory:write&state=xyz123

Passo 2: Trocar o Código de Autorização por Tokens

Após a aprovação do lojista, o TrocaWeb redirecionará para a sua redirect_uri com o parâmetro ?code=.... Seu backend deve então realizar uma requisição POST:

bash
curl -X POST https://trocaweb.com.br/api/oauth/token \
  -H "Content-Type: application/json" \
  -d '{
    "grant_type": "authorization_code",
    "client_id": "tw_app_SEU_CLIENT_ID",
    "client_secret": "tw_sec_SEU_CLIENT_SECRET",
    "code": "tw_code_RECEBIDO_NO_CALLBACK",
    "redirect_uri": "https://seu-erp.com.br/callback"
  }'

Resposta de Sucesso (200 OK):

json
{
  "access_token": "tw_acc_a8f9...",
  "token_type": "Bearer",
  "expires_in": 21600,
  "refresh_token": "tw_ref_9c1b...",
  "scope": "products:read products:write orders:read orders:write inventory:read inventory:write",
  "user_id": "usr_lojista_123"
}

Passo 3: Renovação com Refresh Token (Rotação Automática)

Quando o access token expirar (após 6 horas), use o refresh token para obter um novo par:

bash
curl -X POST https://trocaweb.com.br/api/oauth/token \
  -H "Content-Type: application/json" \
  -d '{
    "grant_type": "refresh_token",
    "client_id": "tw_app_SEU_CLIENT_ID",
    "client_secret": "tw_sec_SEU_CLIENT_SECRET",
    "refresh_token": "tw_ref_SEU_REFRESH_TOKEN"
  }'