Portais ativos
Lista os sites de integração (portais) cadastrados no sistema que estão ativos (statusativo = true), com os metadados usados pelo integrador (URLs, limites, flags de from/to, credenciais de autenticação quando aplicável, etc.).
Equivalente a filtrar a lista de sites apenas pelos registros ativos; o mesmo viewset atende portal e site na API v3.
Endpoint
GET /v3/catalog/portal/active
Método
GET
Autenticação
JWT obrigatório:
Authorization: Bearer {access_token}
Parâmetros de consulta
Os filtros do IntegrationSiteFilter são aplicados antes do recorte de ativos. Além deles, a action aceita filtro por categoria para portais que suportam mapeamento de versão (from/to).
| Parâmetro | Tipo | Descrição |
|---|---|---|
active | boolean | Filtra pelo campo statusativo. Na prática, combinar com active=false tende a retornar lista vazia, pois a action sempre exige registros ativos. |
has_leads_receiver | boolean | Filtra portais com receptor de leads habilitado (has_leads_receiver no modelo). |
version_from_category | integer | Opcional. Restringe a portais que possuem fluxo de versão from/to para a categoria: 1 automóvel (has_from_to_version_car), 2 motocicleta (has_from_to_version_motorcycle), 3 caminhão (has_from_to_version_truck). Valores alinhados a ConstVeiculoCategoria no backend. |
Exemplos
Portais ativos que suportam from/to de versão para automóvel:
GET /v3/catalog/portal/active?version_from_category=1
Portais ativos com receptor de leads:
GET /v3/catalog/portal/active?has_leads_receiver=true
Ordenação
Resultados ordenados pelo nome do portal (integradorsitenome), sem distinção de maiúsculas/minúsculas.
Resposta
Status: 200 OK
Corpo: array de objetos. Cada item segue exatamente os campos do IntegrationSiteSerializer, na ordem abaixo.
Campos de retorno
| Campo | Tipo | Descrição |
|---|---|---|
id | integer | Identificador do portal (integradorsiteid). |
name | string | Nome do site/portal. |
url | string (URL) | null | URL base do site (pode ser vazio no cadastro). |
active | boolean | Indica se o portal está ativo; neste endpoint será sempre true. |
max_photo | integer | null | Limite máximo de fotos permitidas pelo portal. |
logo | string (URL) | null | URL pública do logotipo (get_logo_url()). |
is_online | boolean | Integração online (API/WebService) em vez de batch por XML. |
send_payload_audit | boolean | Se o sistema pode enviar payload para auditoria (ex.: Slack) ou abertura de chamado. |
has_url_for_stock | boolean | Se o portal oferece URL para exibir o estoque da loja. |
s3_xml_folder | string | null | Nome da pasta no S3 para XML de integração. |
s3_xml_one_per_dealer | boolean | Se há um arquivo XML por loja. |
auth_key_id | boolean | Indica se o portal exige credencial do tipo ID; detalhes na seção Tipos de credencial. |
auth_key_password | boolean | Indica se exige credencial do tipo senha; ver seção abaixo. |
auth_key_token | boolean | Indica se exige credencial do tipo token; ver seção abaixo. |
auth_key_user | boolean | Indica se exige credencial do tipo usuário; ver seção abaixo. |
has_auth_token_expire | boolean | Se a autenticação usa token com expiração. |
auth_token_expire_time | integer | Tempo de expiração do token em minutos (0 se não aplicável). |
description | string | null | Texto descritivo/sobre o portal. |
is_free | boolean | Se o portal é gratuito (true) ou pago (false). |
is_km_optional | boolean | Se o envio da quilometragem pode ser opcional. |
max_len_title | integer | Tamanho máximo do título aceito pelo site. |
allow_custom_title | boolean | Se o site permite título customizado. |
format_url | boolean | Se o integrador formata/gera a URL do anúncio para o portal. |
standard_message | string | null | Mensagem ou alerta padrão para exibição no front. |
has_from_to_brand_car | boolean | De-para de marca na base de automóveis. |
has_from_to_model_car | boolean | De-para de modelo (carro). |
has_from_to_version_car | boolean | De-para de versão (carro). |
has_from_to_model_by_body_car | boolean | De-para de modelo por tipo de carroceria (carro). |
has_from_to_version_car_by_year | boolean | De-para de versão de carro por ano. |
has_from_to_brand_motorcycle | boolean | De-para de marca (moto). |
has_from_to_model_motorcycle | boolean | De-para de modelo (moto). |
has_from_to_version_motorcycle | boolean | De-para de versão (moto). |
has_from_to_brand_truck | boolean | De-para de marca (caminhão). |
has_from_to_model_truck | boolean | De-para de modelo (caminhão). |
has_from_to_version_truck | boolean | De-para de versão (caminhão). |
Tipos de credencial
Os campos auth_key_id, auth_key_password, auth_key_token e auth_key_user são chaves booleanas que identificam quais tipos de credencial o portal espera que sejam informados no fluxo de integração ou autenticação (por exemplo, ao liberar o portal para a loja ou ao enviar dados para a API do site).
- Elas não trazem os valores reais (ID, senha, token ou usuário) — apenas sinalizam o formato ou categoria de dado necessário.
- Quando o valor é
true, aquele tipo de credencial precisa ser informado (ou é obrigatório no cadastro/configuração da integração com aquele portal). - Quando é
false, aquele tipo não integra o conjunto de credenciais esperado para aquele portal.
Em muitos portais mais de um campo pode ser true ao mesmo tempo (por exemplo, usuário e senha). Use a combinação retornada para montar corretamente o formulário ou o payload de credenciais no seu sistema.
Exemplo
[
{
"id": 5,
"name": "Webmotors",
"url": "https://www.webmotors.com.br",
"active": true,
"max_photo": 20,
"logo": "https://media.example.com/logo/webmotors.webp",
"is_online": true,
"send_payload_audit": false,
"has_url_for_stock": true,
"s3_xml_folder": null,
"s3_xml_one_per_dealer": false,
"auth_key_id": true,
"auth_key_password": true,
"auth_key_token": false,
"auth_key_user": true,
"has_auth_token_expire": false,
"auth_token_expire_time": 0,
"description": "Portal de classificados.",
"is_free": false,
"is_km_optional": false,
"max_len_title": 60,
"allow_custom_title": true,
"format_url": true,
"standard_message": null,
"has_from_to_brand_car": true,
"has_from_to_model_car": true,
"has_from_to_version_car": true,
"has_from_to_model_by_body_car": false,
"has_from_to_version_car_by_year": false,
"has_from_to_brand_motorcycle": false,
"has_from_to_model_motorcycle": false,
"has_from_to_version_motorcycle": false,
"has_from_to_brand_truck": false,
"has_from_to_model_truck": false,
"has_from_to_version_truck": false
}
]
Erros comuns
401 Unauthorized
Token ausente ou inválido.
{
"detail": "As credenciais de autenticação não foram fornecidas."
}
403 Forbidden
Usuário sem permissão para o método (improvável em GET para usuário autenticado válido).
Referência de implementação: CatalogIntegrationSiteViewSet.active em api/v3/catalog/views.py, rota registrada em api/v3/catalog/urls.py (portal e site), serialização IntegrationSiteSerializer em api/v3/catalog/serializers.py.