Pular para o conteúdo principal

Autenticação do Portal

Liste os portais disponíveis para autenticação e atualize as credenciais de autenticação de um portal específico para uma loja.

Listar Portais para Autenticação

Antes de atualizar as credenciais de um portal, você pode listar todos os portais liberados para a loja e verificar o status de autenticação de cada um.

Endpoint

GET /dealer/{dealer_id}/portal-auth/

Método

GET

Parâmetros de URL

ParâmetroTipoDescrição
dealer_idintegerID da loja

Autenticação

Este endpoint requer autenticação via JWT. Inclua o token no header:

Authorization: Bearer {access_token}

Exemplo de Resposta

Status Code: 200 OK

[
{
"portal_id": 5,
"logo": "https://media.integradordeanuncios.com.br/media/logo/webmotors.webp",
"auth_key_id": true,
"auth_key_password": true,
"auth_key_token": false,
"auth_key_user": true,
"user": "usuario_portal",
"site_id": "12345",
"password": "senha_secreta",
"active": true,
"token": "",
"name": "Webmotors",
"is_online": true
},
{
"portal_id": 10,
"logo": "https://media.integradordeanuncios.com.br/media/logo/olx.webp",
"auth_key_id": false,
"auth_key_password": false,
"auth_key_token": true,
"auth_key_user": false,
"user": "",
"site_id": "",
"password": "",
"active": false,
"token": "token_exemplo",
"name": "OLX",
"is_online": true
}
]

Estrutura de Dados

A resposta é um array de objetos, onde cada objeto contém:

CampoTipoDescrição
portal_idintegerID único do portal no sistema
logostringURL completa do logo do portal
auth_key_idbooleanIndica se o portal requer campo site_id para autenticação
auth_key_passwordbooleanIndica se o portal requer campo password para autenticação
auth_key_tokenbooleanIndica se o portal requer campo token para autenticação
auth_key_userbooleanIndica se o portal requer campo user para autenticação
userstringUsuário configurado para autenticação (vazio se não configurado)
site_idstringID do site configurado (vazio se não configurado)
passwordstringSenha configurada para autenticação (vazia se não configurada)
activebooleanIndica se a autenticação está ativa (true) ou inativa (false)
tokenstringToken configurado para autenticação (vazio se não configurado)
namestringNome do portal
is_onlinebooleanIndica se o portal está online/ativo no sistema

Observações sobre Listagem

  • Apenas portais ativos no sistema e liberados para a loja são retornados
  • Os portais são ordenados alfabeticamente pelo nome (case-insensitive)
  • Os campos de credenciais (user, site_id, password, token) estarão vazios se a autenticação não foi configurada ainda
  • Os campos auth_key_* indicam quais tipos de credenciais o portal aceita (ID, senha, token ou usuário)
  • Use o portal_id retornado nesta lista ao atualizar as credenciais
  • Se não houver portais liberados, a resposta será um array vazio []

Possíveis Retornos de Erro na Listagem

400 Bad Request

Retornado quando o parâmetro dealer_id não é fornecido.

{
"detail": "Parâmetro ID da Loja não encontrado"
}

401 Unauthorized

Retornado quando o token de autenticação não foi fornecido ou é inválido.

{
"detail": "As credenciais de autenticação não foram fornecidas."
}

ou

{
"detail": "Token inválido ou expirado."
}

403 Forbidden

Retornado quando o usuário autenticado não tem permissão para acessar este recurso.

{
"detail": "Você não tem permissão para executar essa ação."
}

Atualizar Autenticação do Portal

Após identificar o portal desejado na listagem acima, você pode atualizar suas credenciais de autenticação.

Endpoint

POST /dealer/{dealer_id}/portal-auth/{portal_id}/

Método

POST

Parâmetros de URL

ParâmetroTipoDescrição
dealer_idintegerID da loja
portal_idintegerID do portal (use o portal_id retornado na listagem)

Autenticação

Este endpoint requer autenticação via JWT. Inclua o token no header:

Authorization: Bearer {access_token}

Corpo da Requisição

{
"user": "usuario_portal",
"site_id": "12345",
"password": "senha_secreta",
"token": "token_de_autenticacao",
"active": true,
"remove_all": false
}

Campos do Payload

CampoTipoObrigatórioDescrição
activebooleanSimIndica se a autenticação está ativa (true) ou inativa (false)
userstringNãoUsuário para autenticação no portal
site_idstringNãoID do site para autenticação no portal
passwordstringNãoSenha para autenticação no portal
tokenstringNãoToken de autenticação do portal
remove_allbooleanNãoQuando active é false, indica se deve remover todos os anúncios do portal (true) ou não (false)
Campos do Payload

Apenas o campo active é obrigatório. Todos os demais campos (user, site_id, password, token, remove_all) são opcionais e podem ser omitidos do payload.

Exemplo de Resposta

Status Code: 200 OK

{
"status": true
}

Exemplos de Uso

Ativar Autenticação com Usuário e Senha

Requisição:

{
"user": "usuario_portal",
"site_id": "12345",
"password": "senha_secreta",
"active": true
}

Resposta:

{
"status": true
}

Ativar Autenticação com Token

Requisição:

{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"active": true
}

Resposta:

{
"status": true
}

Desativar Autenticação (sem remover anúncios)

Requisição:

{
"active": false,
"remove_all": false
}

Resposta:

{
"status": true
}

Desativar Autenticação e Remover Todos os Anúncios

Requisição:

{
"active": false,
"remove_all": true
}

Resposta:

{
"status": true
}

Observações

  • O portal especificado deve estar ativo no sistema e liberado para a loja (dealer_id)
  • Quando active é true, as credenciais (user, password ou token) são salvas no sistema
  • Quando active é false, a integração é inativada
  • O campo remove_all só é considerado quando active é false
  • Se remove_all for true quando desativar, todos os anúncios do portal serão desvinculados do integrador mas permanecerão no portal

⚠️ Importante: Portais com Autenticação OAuth

Os portais Facebook, Instagram, Mercado Livre e OLX são exceções e não utilizam este endpoint para autenticação. O processo de liberação destes portais acontece exclusivamente através do método de OAuth. Para estes portais específicos, a autenticação deve ser realizada através do fluxo OAuth próprio de cada plataforma, não sendo possível utilizar este endpoint de autenticação tradicional.

Possíveis Retornos de Erro

400 Bad Request

Retornado quando há erros de validação nos dados enviados.

{
"active": ["Este campo é obrigatório."]
}

401 Unauthorized

Retornado quando o token de autenticação não foi fornecido ou é inválido.

{
"detail": "As credenciais de autenticação não foram fornecidas."
}

ou

{
"detail": "Token inválido ou expirado."
}

403 Forbidden

Retornado quando o usuário autenticado não tem permissão para acessar este recurso.

{
"detail": "Você não tem permissão para executar essa ação."
}

404 Not Found

Retornado quando:

  • O portal especificado não está liberado para a loja
  • O portal não foi encontrado no sistema
{
"status": false
}

ou

{
"detail": "Portal not found."
}