Imóveis e Auto Peças (veículos)Importação de anúncios via APIImportação de Anúncios (Inserção/Edição/Deleção)

Importação de Anúncios (Inserção/Edição/Deleção)

Autenticação oAuth no Eu Preciso

Para utilizar a integração de anúncios via API, é necessário autenticar-se em nome de um usuário do Eu Preciso através do protocolo oAuth. A documentação da autenticação oAuth encontra-se aqui.

Na autenticação, o sistema solicitante receberá o client_id e o client_secret que deverão ser usados na URL de conexão. Durante o fluxo oAuth será requisitado que o usuário dê permissão ao integrador para gerenciar seus anúncios no Eu Preciso. No handshake do oAuth, é requisitado também o scope que a aplicação-cliente necessitará. Para utilizar o sistema de integração de anúncios via API, é preciso o scope autoupload.

Importação de Anúncios

O processo de integração de anúncios via API consiste no envio de um arquivo no formato JSON descrevendo um ou mais anúncios para inserção, edição ou deleção.

A URL usada para envio da requisição é: https://apps.eupreciso.com.br/v1.0/integradores/autoupload/import

O nosso servidor deve receber a chamada com método do tipo POST e o header enviado deverá ser: Content-type: application/json, Authorization: seu access_token. O formato do encode do JSON deverá ser UTF-8 e o tamanho do payload não pode ultrapassar 1 MB.

Inserção ou Edição de Anúncios

Para uma inserção ou edição de anúncios, é necessário montar o JSON com parâmetros básicos para quaisquer categorias, além de específicos de cada categoria e/ou subcategoria.

A seguir um JSON de exemplo com uma inserção:

{
  "ad_list": [
    {
      "id": "12345678910",
      "action": "insert",
      "category": "Autos e peças",
      "subcategory": "Carros, vans e utilitários",
      "title": "BMW X1 2022 em Excelente Estado",
      "body": "Vendo carro...",
      "operation": "venda",
      "price": 240000,
      "zipcode": 89221000,
      "showPhone": "1",
      "acceptNoValidatedChat": false,
      "images": ["..."],
      "params": {
        //inserir parâmetros específicos da subcategoria
      }
    }
  ]
}

Parâmetros Básicos

ParâmetroValoresTipoObrigatórioDescrição
access_tokenstringSimToken de acesso, segue no headers da requisição.
idRegular expression: [A-Za-z0-9_{}-]{1,19}stringSimO identificador do anúncio. Deve ser único no JSON (caso haja mais de um anúncio no JSON).
actioninsert ou deletestringSimValores para identificar qual será a ação a ser feita: insert para inserir ou editar anúncios, delete para despublicar anúncios.
categorystringSimCategoria do anúncio.
subcategorystringSimSubcategoria do anúncio.
titlestringSimTítulo do anúncio. Mínimo de 2 e máximo de 90 caracteres.
bodystringSimDescrição do anúncio. Mínimo de 2 e máximo de 6 mil caracteres.
operationvenda ou aluguelstringSimTipo de oferta do anúncio.
priceintegerNãoPreço do anúncio (não aceita centavos).
zipcodestring numéricaSimO CEP do anúncio.
showPhone"1" ou "2"stringNão (interpreta como “1” se não enviado)Exibir telefone? "1" para sim e "2" para ocultar o telefone no anúncio. Caso não envie o comando, ele será interpretado como "1" e o telefone será exibido.
paramsobjectNãoLista de parâmetros com as características do anúncio. Os valores dessa lista variam de acordo com a categoria do anúncio.
imagesURL da imagemarray de stringNãoURL de imagens que serão inseridas no anúncio do eupreciso.com.br. Não pode haver URLs repetidas neste array. Máximo de 20 imagens. Importante: a primeira imagem da lista será a imagem principal do anúncio!
youtubeURL do vídeostringNãoURL de vídeo que será inserida no anúncio do eupreciso.com.br para o caso de usuários PRO. Deve ser apenas do https://www.youtube.com/. Aceito 1 vídeo por anúncio!
instagramURL da postagem ou reels no InstagramstringNãoURL de postagem/reels do Instagram que será inserida no anúncio do eupreciso.com.br para o caso de usuários PRO. Aceito 1 postagem/reels por anúncio!
priceExchangeintegerSomente se params.exchange for “1”Preço do anúncio em caso de troca (não aceita centavos). Esse campo é obrigatório quando o params.exchange é igual a “1”, sendo utilizado na futura implementação do Eu Troco, aplicativo de trocas do Eu Preciso.
acceptNoValidatedChattrue ou falseBooleanNãoAceitar o envio de chat por pessoas não verificadas. Padrão: false.

Notas

IMPORTANTE: Na categoria de imóveis, as fotos do condomínio devem ser enviadas em campo próprio complex_images nos parâmetros específicos, caso exista o condomínio na listagem da API Eu Preciso, sob pena de envio do anúncio para correção. Maiores destalhes na seção de Imóveis.

Parâmetros Específicos

CategoriaSubcategoria
ImóveisApartamentos
ImóveisCasas
ImóveisTerrenos, sítios e fazendas
Autos e peçasCarros, vans e utilitários
Autos e peçasMotos
  • As peças e os veículos são cadastrados sob a mesma categoria no Eu Preciso, sendo que a identificação será dada em params, conforme será demonstrado nessa documentação.
  • Outras categorias ainda não são suportadas pela API EU PRECISO.
  • As subcategorias não listadas ainda estão sendo implementadas e não são suportadas pela API EU PRECISO.

Pagamento

Os anúncios no Eu Preciso são grátis, independentemente da quantidade, mas o usuário deve ter um plano PRO ativo para usar a integração de terceiros.

A seguir um JSON de exemplo com uma deleção:

{
  "ad_list": [
    {
      "id": "12345678910",
      "action": "delete"
    }
  ]
}

Deleção de Anúncios

Para uma deleção, basta enviar o id e a action delete.

O access_token deve ser sempre enviado no headers da requisição Authorization.

O anúncio permanecerá publicado a menos que uma operação de deleção seja enviada para o Eu Preciso com o id utilizado em sua inserção. Portanto recomendamos atenção redobrada para o integrador enviar a deleção para o Eu Preciso, para evitar que anúncios de produtos já vendidos continuem publicados - prejudicando a experiência do anunciante e do comprador.

ATENÇÃO: Os vendedores com Recursos PRO possuem renovação automática. Por isso é importante manter a base de anúncios atualizada. Uma semana antes do vencimento é possível desativar a renovação automática, conforme descrito na seção renovação.

Exemplos de JSONs de retorno da API:

{
  "token": "78dvsfb4ZdTpMllCgIEqUbWWiOhT",
  "statusCode": 0,
  "statusMessage": "The ads were imported and will be processed",
  "errors": []
}
{
  "token": null,
  "statusCode": -4,
  "statusMessage": "An ad had problems on import",
  "errors": [
    {
      "id": "78192371",
      "status": "error",
      "messages": [
        {
          "category": "NO_REGION"
        }
      ]
    }
  ]
}

Retorno Esperado

O formato do retorno de nosso servidor será do tipo JSON, que contém a seguinte estrutura:

ParâmetroValorDescrição
tokenRetorna uma string com um token a ser usado para posteriormente acessar o status da importação.
statusMessageExplica o retorno síncrono da importação, com detalhamento de erros da validação síncrona.
statusCodeIdentifica o retorno síncrono da importação.
errorsarrayRetorna uma lista de erros.

Os statusCode e statusMessage possíveis são os seguintes:

CódigoMensagemDescrição
0The ads were imported and will be processedNo caso, os anúncios foram validados sincronamente. Não é garantia de publicação, dado que há a validação assíncrona posterior (moderação, etc).
-1Unexpected errorErro inesperado.
-2The request was blockedUsuário não pode importar pois está bloqueado temporariamente por excesso de requisições.
-3There is no ad to importNão há anúncios para importar.
-4An ad had problems on importSe um anúncio falhar em sua validação, a importação é cancelada.
-5Import is downO serviço de importação está desativado.
-6Without permissionUsuário sem permissão.
-7Trying to import “n” ad(s), but user just have slot for “f” more.O usuário está tentando importar “n” anúncios, mas só pode importar mais “f”.
-8Trying to import “n” ad(s), only “f” were imported and will be processed. The following ads were ignored due to limit exceeded: “t”Tentando importar “n” anúncios, só “f” foram importados e serão processados. Os seguintes anúncios foram ignorados devido ao limite tempo “t” excedido.

No caso do erro do tipo -4, alguma validação síncrona aconteceu e, por isso, algum dos anúncios deixou de ser importado com sucesso. Os possíveis motivos são os seguintes:

CódigoDescrição
UNDEFINED_AD_IDAnúncio enviado sem ID
NO_IMAGEAnúncio enviado sem imagens
NO_REGIONCEP enviado corresponde a região inválida
NO_REGIONCEP enviado em formato inválido
ERROR_FUEL_4_DEPRECATEDTentando enviar o valor 4 - Gás Natural ou outro valor inválido no campo fuel
ERROR_FINANCIAL_INVALIDTentando enviar o valor 1 - Financiado ou outro valor inválido no parâmetro financial
ERROR_CAR_FEATURE_2_INVALIDTentando enviar o valor 2 - Direção hidráulica no parâmetro car_features
ERROR_CAR_TYPE_1_OR_4_INVALIDTentando enviar o valor 1 ou 4 no parâmetro cartype
ERROR_VEHICLE_TAG_INVALIDPlaca não enviada ou em formato inválido
ERROR_VEHICLE_BRAND_INVALIDMarca não enviada ou em formato inválido
ERROR_VEHICLE_MODEL_INVALIDModelo não enviado ou em formato inválido
ERROR_VEHICLE_VERSION_INVALIDVersão não enviada ou em formato inválido