Pular para o conteúdo principal

Registrar novas marcas

Este endpoint é utilizado para registrar um lote de marcas de uma vez. É ideal para sistemas que precisam sincronizar uma grande quantidade de dados de marca.

POST /v1/batch/brands

  • Authorization: Basic Auth contendo a chave publica e secreta disponibilizadas para o cliente.
    • Exemplo: Basic <base64-encoded-credentials>

Exemplo de Autorização

Para gerar o valor de Authorization, você precisa codificar suas credenciais (public_key:secret_key) em base64. Por exemplo, se sua chave pública for public_key e sua chave secreta for secret_key, você deve codificar public_key:secret_key em base64.

echo -n 'public_key:secret_key' | base64

Corpo da Requisição

O corpo da requisição deve ser uma lista de objetos de marca, cada um contendo os seguintes campos:

CampoTipoNullableDescrição
externalReferencestringSimReferência externa da marca para rastreabilidade. Se não fornecida, será gerada automaticamente.
namestringNãoNome da marca.
titlestringNãoTítulo da marca.
descriptionstringNãoDescrição detalhada da marca.
punctuationintNãoPontuação para ordenação.
similarTermsstringSimTermos similares para busca.

Exemplo de Corpo da Requisição

[
{
"externalReference": "brand-1",
"name": "Coca-Cola",
"title": "Coca-Cola",
"description": "Marca líder em bebidas",
"punctuation": 1,
"similarTerms": "refrigerante, bebida gaseificada"
},
{
"externalReference": "brand-2",
"name": "Nestlé",
"title": "Nestlé",
"description": "Marca global de alimentos",
"punctuation": 1,
"similarTerms": "chocolate, café, leite"
}
]

Processamento Assíncrono

O processamento das marcas é realizado de forma assíncrona através do Azure Service Bus. Isso significa que:

  1. A requisição retorna imediatamente com um operationId
  2. As marcas são processadas em background
  3. Notificações sobre o progresso são enviadas via webhook
  4. Cada marca é processada independentemente

Respostas

  • 200: Retorna sucesso da operação. A resposta incluirá detalhes sobre o processamento da lista de marcas.
  • 400: Retorna erro de requisição inválida. Isso geralmente ocorre devido a dados de entrada mal formatados ou faltando.
  • 500: Retorna erro interno do servidor. Indica problemas no processamento da requisição no servidor.

Exemplo de Resposta para Sucesso (200)

{ "operationId": "402fe685-2060-432b-ac57-223eb2e680f3" }

Exemplo de Resposta para Erro (400)

{
"error": "Invalid request",
"details": "The name field is missing in one of the brand items."
}

Mensagem de notificação webhook

Quando a operação é processada, mensagens são enviadas para os endpoints de notificação registrados pelo webhook. As mensagens são enviadas para cada marca processada.

{
"operationId": "54d6a979-5f62-4e17-9d4c-dbd9f5ede403",
"relatedEntity": "Brand",
"eventType": 4,
"data": {
"externalReference": "brand-1",
"name": "Coca-Cola",
"title": "Coca-Cola",
"description": "Marca líder em bebidas",
"punctuation": 1,
"similarTerms": "refrigerante, bebida gaseificada"
},
"contractAccountId": "9f36a666-acd5-4987-a47f-3de247f65d82"
}
  • OperationId: Identificador único da operação.
  • RelatedEntity: Entidade relacionada ao evento (Brand).
  • EventType: Tipo de evento.
    • Os tipos possíveis para marca são:
      • Brand_Created = 4
      • Brand_Updated = 5
      • Brand_Deleted = 6
  • Data: Dados específicos do evento.
  • ContractAccountId: Identificador da conta do contrato.
  • Error: Detalhes do erro caso exista algum.