Integração via API
3 - Consultar
3.2 - Chamada Assíncrona

Chamada de Forma assíncrona

A segunda — e mais utilizada — opção para consumir um de nossos produtos é atráves de uma chamada assíncrona. Isso significa que ao realizar a requisição, logo em seguida receberá uma resposta parcial com um ID (identificador) para recuperar a resposta completa quando o processamento dos dados estiver finalizado.

Nesse paradigma, a resposta parcial é recebida em menos de 1 segundo.
No entanto, é necessária a utilização da Chamada de Status ou Dados para verificar a conclusão do processamento dos dados.

Recomendamos a utilização dessa chamada em todos casos que seja possível fazer o controle de conclusão em um fluxo alternativo.

Montando a requisição

Método da requisição

GET

Endereço da requisição

Homologação:

https://apipreview.aboutcar.com.br/v1/integration/inquiries/ESPECIAL/ABC1234

Produção:

https://api.aboutcar.com.br/v1/integration/inquiries/ESPECIAL/ABC1234

Cabeçalho da requisição

{
    "Authorization": "Bearer token",
    "Content-Type": "application/json"
}

No parâmetro Authorization você vai informar o valor do token recuperado anteriormente.

Por exemplo:

{
    "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MTFmYThlMWQ3NTZmYmNmYmNkZDE2NGMiLCJlbWFpbCI6InRlc3RAYWJvdXRjYXIuY29tLmJyIiwiaWF0IjoxNzAyNjU3MTExLCJleHAiOjE3MDI2ODU5MTF9.nw3W7jBulG_QW5cF_KTMdsCy-sB_c-FE47FUAgOzbFQ",
    "Content-Type": "application/json"
}

Respostas da requisição

200 - Sucesso

{
    "id": "657caf08255ca770829ae3d0",
    "plate": "ABC1234",
    "partner": true,
    "quick": false,
    "integration": true,
    "type": "ESPECIAL",
    "tags": [],
    "photos": [],
    "status": "PROCESSING",
    "notifiedAt": "2023-12-15T19:54:48.348Z",
    "executedAt": "2023-12-15T19:54:48.349Z",
    "createdAt": "2023-12-15T19:54:48.350Z",
    "updatedAt": "2023-12-15T19:54:48.350Z",
    "product": {
        "name": "Especial",
        "code": "ESPECIAL",
        "value": 47.9
    }
}

As propriedades id e status são importantes aqui. O status informa o estágio da execução e o id é necessário na chamada de Status ou Dados para conseguir verificar a conclusão do processamento dos dados.

401 - Não autorizado

{
    "message": "Unauthorized!"
}

Exemplos da requisição

HTTP

GET /v1/integration/inquiries/ESPECIAL/ABC1234 HTTP/1.1
Host: apipreview.aboutcar.com.br
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MTFmYThlMWQ3NTZmYmNmYmNkZDE2NGMiLCJlbWFpbCI6InRlc3RAYWJvdXRjYXIuY29tLmJyIiwiaWF0IjoxNzAyNjU3MTExLCJleHAiOjE3MDI2ODU5MTF9.nw3W7jBulG_QW5cF_KTMdsCy-sB_c-FE47FUAgOzbFQ

cURL

curl --location 'https://apipreview.aboutcar.com.br/v1/integration/inquiries/ESPECIAL/ABC1234' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MTFmYThlMWQ3NTZmYmNmYmNkZDE2NGMiLCJlbWFpbCI6InRlc3RAYWJvdXRjYXIuY29tLmJyIiwiaWF0IjoxNzAyNjU3MTExLCJleHAiOjE3MDI2ODU5MTF9.nw3W7jBulG_QW5cF_KTMdsCy-sB_c-FE47FUAgOzbFQ'

JavaScript

const myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MTFmYThlMWQ3NTZmYmNmYmNkZDE2NGMiLCJlbWFpbCI6InRlc3RAYWJvdXRjYXIuY29tLmJyIiwiaWF0IjoxNzAyNjU3MTExLCJleHAiOjE3MDI2ODU5MTF9.nw3W7jBulG_QW5cF_KTMdsCy-sB_c-FE47FUAgOzbFQ");
 
const requestOptions = {
  method: 'GET',
  headers: myHeaders,
  redirect: 'follow'
};
 
fetch("https://apipreview.aboutcar.com.br/v1/integration/inquiries/ESPECIAL/ABC1234", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

NodeJs

const axios = require('axios');
 
const config = {
  method: 'get',
  maxBodyLength: Infinity,
  url: 'https://apipreview.aboutcar.com.br/v1/integration/inquiries/ESPECIAL/ABC1234',
  headers: { 
    'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MTFmYThlMWQ3NTZmYmNmYmNkZDE2NGMiLCJlbWFpbCI6InRlc3RAYWJvdXRjYXIuY29tLmJyIiwiaWF0IjoxNzAyNjU3MTExLCJleHAiOjE3MDI2ODU5MTF9.nw3W7jBulG_QW5cF_KTMdsCy-sB_c-FE47FUAgOzbFQ'
  }
};
 
axios.request(config)
  .then((response) => {
    console.log(JSON.stringify(response.data));
  })
  .catch((error) => {
    console.log(error);
  });

PHP

<?php
 
$curl = curl_init();
 
curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://apipreview.aboutcar.com.br/v1/integration/inquiries/ESPECIAL/ABC1234',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MTFmYThlMWQ3NTZmYmNmYmNkZDE2NGMiLCJlbWFpbCI6InRlc3RAYWJvdXRjYXIuY29tLmJyIiwiaWF0IjoxNzAyNjU3MTExLCJleHAiOjE3MDI2ODU5MTF9.nw3W7jBulG_QW5cF_KTMdsCy-sB_c-FE47FUAgOzbFQ'
  ),
));
 
$response = curl_exec($curl);
 
curl_close($curl);
echo $response;

Java

Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.get("https://apipreview.aboutcar.com.br/v1/integration/inquiries/ESPECIAL/ABC1234")
  .header("Authorization", "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MTFmYThlMWQ3NTZmYmNmYmNkZDE2NGMiLCJlbWFpbCI6InRlc3RAYWJvdXRjYXIuY29tLmJyIiwiaWF0IjoxNzAyNjU3MTExLCJleHAiOjE3MDI2ODU5MTF9.nw3W7jBulG_QW5cF_KTMdsCy-sB_c-FE47FUAgOzbFQ")
  .asString();