Endpoints responsáveis pela gestão e configuração dos portfólios de produtos atribuídos aos vendedores.
Início > Portifolio de produtos
Versão: 2.0
Portfólio de Produtos
GET Portfólio de Produtos -
Categorias
Endpoint responsável por consultar a árvore de categorias vinculadas ao fornecedor.
Endpoint GET
URL
Exemplo
curl --location 'https://yandeh-seller-integration.yandeh.com.br/portfolio-produtos/categorias' \
--header 'Authorization: Bearer ...'
Sintaxe da Resposta
Se os parâmetros forem informados corretamente, o endpoint retornará os dados com status code 200.
Exemplo de retorno:
{
"status": "sucesso",
"mensagem": "Listagem de categorias realizada com sucesso!",
"data": [
{
"id": 1,
"nome": "Padrão Yandeh",
"is_padrao": true,
"categorias": [
{
"id": 1,
"nome": "MERCEARIA SECA",
"metadata": {
"menu_image_url": "https://url.jpg",
"melhores_ofertas": {
"cor": "#FF0000",
"icone": "https://url.jpg"
},
"search_mobile_image_url": "https://url.jpg",
"carrossel_home_image_url": "https://url.jpg",
"carrossel_home_mobile_image_url": "https://url.jpg"
},
"icon_name": "yandeh-mercearia_seca",
"subcategorias": [
{
"id": 126,
"mae": 1,
"nome": "MERCEARIA SECA DOCE",
"nivel": 2,
"subcategorias": [
{
"id": 57,
"mae": 126,
"nome": "BISCOITOS",
"nivel": 1,
"subcategorias": [],
"total_produtos": 555,
"arvore_categoria": 1
},
],
"total_produtos": 1351,
"arvore_categoria": 1
}
],
"arvore_categoria": 1
}
]
}
]
}
Elementos da Resposta
status: Indica o status da requisição.
Tipo: String.
mensagem: Mensagem da requisição.
Tipo: String.
id:Identificador (ID) da árvore de categorias.
Tipo: Integer.
nome: Descrição da árvore de categorias.
Tipo: String
is_padrao: Indica se a árvore de categorias é a padrão.
Tipo: Booleano.
categorias: Lista de categorias.
Tipo: Array de objetos JSON.
id: Identificador (ID) da categoria.
Tipo: Integer.
nome: Descrição da categoria.
Tipo: String.
metadata: Informações complementares da categoria.
Tipo: objeto (JSON).
menu_imagem_url: URL da imagem exibida no menu.
Tipo: String.
melhores_ofertas: Informações de exibição da categoria.
Tipo: objeto (JSON).
cor: Cor de exibição.
Tipo: String.
icone: URL da imagem do ícone exibido no menu.
Tipo: String.
search_mobile_image_url: URL da imagem exibida do carrossel para aplicativo.
Tipo: String.
carrosel_home_image_url: URL da imagem exibida do carrossel na página principal.
Tipo: String.
carrossel_home_mobile_image_url: URL da imagem exibida do carrossel na página principal para aplicativo.
Tipo: String.
icon_name: Nome do ícone.
Tipo: String.
subcategorias: Lista de subcategorias.
Tipo: Lista de json.
id: Identificador(ID) da subcategoria.
Tipo: Integer.
mae: Identificador (ID) da categoria relacionada.
Tipo: Integer.
nome: Descrição da subcategoria.
Tipo: String.
nivel: Ordem de exibição.
Tipo: Integer.
total_produtos: Quantidade total de produtos disponíveis na categoria ou subcategoria.
Tipo: Integer.
arvore_categoria: Identificador (ID) da árvore da categoria.
Tipo: Integer.
GET Portfólio de Produtos -
Indústrias e Marcas
Endpoint responsável por consultar as indústrias e marcas vinculadas ao fornecedor.
Endpoint GET
URL
Exemplo
curl --location 'https://yandeh-seller-integration.yandeh.com.br/portfolio-produtos/industrias-marcas' \
--header 'Authorization: Bearer ...'
Sintaxe da Resposta
Se os parâmetros forem informados corretamente, o endpoint retornará os dados com status code 200.
Exemplo de retorno:
{
"detail": {
"success": true,
"message": "(OK) Busca de Indrustrias e Marcas realizada com sucesso!"
},
"data": {
"success": true,
"message": "OK",
"errors": [],
"data": [
{
"industria_id": 9698,
"industria_nome": "AB MAURI",
"industria_imagem": "https://acbhGDK/IDOSJU889.jpg",
"marcas": [
{
"id": 78,
"nome": "FLEISCHMANN",
"imagem": ""https://acbhGDK/IDOSJU889.jpg",
"total_produtos": 81
},
{
"id": 150,
"nome": "OVOMALTINE",
"imagem": ""https://acbhGDK/IDOSJU889.jpg"",
"total_produtos": 27
}
],
"sum": "144"
},
{
"industria_id": 309,
"industria_nome": "ARCOR",
"industria_imagem": ""https://acbhGDK/IDOSJU889.jpg"",
"marcas": [
{
"id": 1352,
"nome": "7 BELO",
"imagem": ""https://acbhGDK/IDOSJU889.jpg"",
"total_produtos": 24
}
],
"sum": "328"
}
]
}
}
Elementos da Resposta
success: Indica o status da requisição.
Tipo: String.
message: Mensagem da requisição.
Tipo: String.
industria_id: Identificador (ID) da indústria responsável pelo produto.
Tipo: Integer.
industria_nome: Descrição da indústria responsável pelo produto.
Tipo: String
industria_imagem: URL da imagem da indústria.
Tipo: String.
marcas: Lista das marcas dos produtos vinculados a indústria.
Tipo: Array de objetos JSON.
id: Identificador (ID) da marca.
Tipo: Integer.
nome: Descrição da marca.
Tipo: String.
imagem: URL da imagem da marca.
Tipo: String
total_produtos: Quantidade total de produtos vinculados à marca..
Tipo: String.
sum:Quantidade total de produtos vinculados a indústria.
Tipo: String.
GET Portfólio de Produtos - Grupos
Endpoint para consulta das indústrias e marcas cadastrados no portfólio do vendedor.
Endpoint GET
URL
Parâmetros da requisição
Informe os parâmetros abaixo para realizar a consulta do portfólio.
tipo: Tipo de cadastro do portfólio.
-
Valores permitidos:
-
manual – cadastro por indústria ou marca
-
importacao – cadastro por produto
-
-
Parâmetro não obrigatório.
pagina: Página a ser exibida.
-
Parâmetro não obrigatório.
por_pagina: Quantidade de registros a serem exibidas por página.
-
Parâmetro não obrigatório.
Exemplo
curl --location 'https://yandeh-seller-integration.yandeh.com.br/portfolio-produtos/grupos?tipo=importacao&pagina=1&por_pagina=200' \
--header 'Authorization: Bearer ...'
Sintaxe da Resposta
Se os parâmetros forem informados corretamente, o endpoint retornará os dados com status code 200.
Exemplo de retorno:
{
"status": "sucesso",
"mensagem": "Listagem de grupos realizada com sucesso!",
"data": [
{
"id": 123,
"nome": "Grupo Produtos base",
"skus": 6640,
"imagem": "https://static.com/1737049317102-49b8-9fb7-12f6a1.png",
"created_at": "2025-01-01T00:00:00.0",
"modified_at": "2025-01-01T00:00:00.0",
"tipo_criacao": "importacao",
"todas_categorias": false,
"todas_industrias": false
}
],
"total": 73,
"paginação": {
"pagina_atual": 1,
"por_pagina": 1
}
}
Elementos da Resposta
status: Indica o status da requisição.
Tipo: String.
mensagem: Mensagem da requisição.
Tipo: String.
id: Identificador (ID) do grupo de portfólio.
Tipo: Integer.
nome: Descrição do grupo.
Tipo: String.
skus: Quantidade de produtos vinculados ao grupo.
Tipo: String.
imagem: URL da imagem do grupo.
Tipo: String.
created_at: Data de criação do grupo.
Tipo: Datetime.
modified_at: Data de modificação do grupo.
Tipo: Datetime.
tipo_criacao: Tipo do cadastro do portfólio.
Tipo: String
todas_categorias: Indica se o grupo abrange todas as categorias.
Tipo: booleano.
todas_industrias:Indica se o grupo abrange todas as indústrias.
Tipo: booleano.
total: Quantidade total de registros retornados na requisição.
Tipo: String.
paginacao:Informações da paginação.
Tipo: objeto (JSON).
pagina_atual: Número da página atual retornada na requisição.
Tipo: Integer.
por_pagina:Quantidade de registros por página retornada na requisição.
Tipo: Integer.
GET Portfólio de Produtos
Endpoint para consulta dos produtos cadastrados no portfólio do vendedor.
Endpoint GET
URL
Parâmetros da requisição
Informe os parâmetros abaixo para realizar a consulta do portfólio.
email: Endereço de e-mail do vendedor.
-
Parâmetro obrigatório.
ean_ou_dun: EAN ou DUN do produto.
-
Parâmetro não obrigatório.
produto_nome: Nome do produto. É possível informar apenas parte da descrição, e serão retornados todos os produtos que contenham a palavra informada. Exemplo: Arroz
-
Parâmetro não obrigatório.
industria_id: Identificador(ID) da indústria do produto na Yandeh.
-
Parâmetro não obrigatório.
marca_id: Identificador(ID) da marca do produto na Yandeh.
-
Parâmetro não obrigatório.
pagina: Página a ser exibida.
-
Página inicial e default 1
-
Parâmetro não obrigatório.
por_pagina: Quantidade de registros a serem exibidas por página.
-
Default 50 registros por página.
-
Máxima de 100 conciliações por página permitida.
-
Parâmetro não obrigatório.
Exemplo
curl --location 'https://yandeh-seller-integration.yandeh.com.br/portfolio-produtos/produtos-por-vendedor?email=vendedor@yahoo.com.br' \
--header 'Authorization: Bearer ...'
Sintaxe da Resposta
Se os parâmetros forem informados corretamente, o endpoint retornará os dados com status code 200.
Exemplo de retorno:
{
"status": "sucesso",
"mensagem": "Produtos encontrados com sucesso!",
"data": {
"produtos": [
{
"marca_id": 150,
"ean_ou_dun": "17898409950002",
"marca_nome": "OVOMALTINE",
"industria_id": 9698,
"produto_nome": "ACHOCOLATADO PÓ OVOMALTINE CHOCOMALTINE ",
"industria_nome": "AB MAURI",
"pallet_multiplo_dun": 0
},
{
"marca_id": 150,
"ean_ou_dun": "7898409950100",
"marca_nome": "OVOMALTINE",
"industria_id": 9698,
"produto_nome": "ACHOCOLATADO PÓ OVOMALTINE FLOCOS ",
"industria_nome": "AB MAURI",
"pallet_multiplo_dun": 2
}
],
"paginacao": {
"pagina_atual": 1,
"por_pagina": 50,
"total_itens": 1015,
"total_paginas": 21
}
}
}
Elementos da Resposta
status: Indica o status da requisição.
Tipo: String.
mensagem: Mensagem da requisição.
Tipo: String.
produtos:Lista dos produtos cadastrados no portfólio do vendedor.
Tipo: Array de objetos.
marca_id: Identificador (ID) da marca do produto.
Tipo: Integer
ean_ou_dun: EAN ou DUN do produto.
Tipo: String.
marca_nome: Nome da marca do produto.
Tipo: String.
industria_id: Identificador (ID) da indústria responsável pelo produto.
Tipo: Integer.
produto_nome: Descrição do produto.
Tipo: String.
industria_nome: Nome da indústria responsável pelo produto.
Tipo: String.
pallet_multiplo_dun: Múltiplo de venda para comercialização da embalagem.
Tipo: Integer.
pagina_atual: Número da página atual no retorno da requisição.
Tipo: Integer.
por_pagina: Número de registros retornados por página na requisição.
Tipo: Integer.
total_itens: Total de itens disponíveis na requisição.
Tipo: Integer.
total_paginas: Total de páginas disponíveis na requisição.
Tipo: Integer.
Respostas para erros
400 Bad Request - Parâmetro email não informado.
{
"mensagem": "O parâmetro \"email\" é obrigatório.",
"correlationId": "cf54fc01-5812-4939-83e4-dd6ee9f12dbc"
}
400 Bad Request - Informado no parâmetro por_pagina uma quantidade acima de 100 registros.
{
"mensagem": "O parâmetro \"por_pagina\" deve ser um número entre 1 e 100.",
"correlationId": "bc62bacf-ef39-4b44-ba0e-e7ed59b30e9e"
}
POST Portfólio de Produtos
Endpoint responsável pela criação do portfólio de produtos.
Existem duas opções de cadastro disponíveis: por importação, que permite cadastrar o portfólio por produtos (EAN ou DUN), e de forma manual, que permite a criação do portfólio com base em indústrias, marcas e categorias.
Cadastro por importação
Endpoint POST
URL
Sintaxe da Requisição
-
Tipo de requisição: POST.
-
Cabeçalho (Headers):
-
Content-Type: application/json
-
Authorization: Bearer <token>
-
-
Corpo da requisição:
Envio do JSON como exemplo abaixo:
{
"grupos": [
{
"nome": "Grupo A",
"imagem": "https://example.com/image.jpg",
"produtos": [
"7891097102967",
"7896001001152"
]
}
]
}
Exemplo
curl --location 'https://yandeh-seller-integration.yandeh.com.br/portfolio-produtos/importacao' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ...' \
--data '{
"grupos": [
{
"nome": "Grupo A",
"imagem": "https://example.com/image.jpg",
"produtos": [
"7891097102967",
"7896001001152"
]
}
]
}'
Elementos da Requisição
grupos: Lista de grupos a ser inserida.
-
Campo obrigatório.
-
Máximo de 500 grupos.
Tipo: Lista de Json.
nome: Nome do grupo.
-
Campo obrigatório.
-
Máximo de 20 caracteres.
-
Valor único.
Tipo: String.
imagem : URL da imagem do grupo.
Tipo: String.
produtos: Lista de ean de produtos a serem adicionados no grupo de portfólio.
-
Campo obrigatório.
-
Produtos não encontrados serão ignorados.
Tipo: Lista de String.
Sintaxe da Resposta
Se os parâmetros forem informados corretamente, o endpoint retornará os dados com status code 200.
Exemplo de retorno:
{
"success": true,
"message": "ok",
"resultados": [
{
"nome": "Grupo A",
"sucesso": true,
"grupoId": 123,
"produtosAssociados": 2,
"produtosIgnorados": 0
}
],
"totalProcessados": 1,
"sucessos": 1,
"falhas": 0,
"gruposCriados": [
123
]
}
207 Multi-Status - Sucesso parcial.
{
"success": true,
"message": "Alguns grupos foram criados com sucesso",
"resultados": [
{
"nome": "Grupo A",
"sucesso": true,
"grupoId": 125,
"produtosAssociados": 2,
"produtosIgnorados": 0
},
{
"nome": "Grupo B",
"sucesso": false,
"erro": "Grupo com este nome já existe",
"grupoId": null
}
],
"totalProcessados": 2,
"sucessos": 1,
"falhas": 1,
"gruposCriados": [
125
]
}
207 Multi-Status - Sucesso com produtos ignorados.
{
"success": true,
"message": "Alguns grupos foram criados com sucesso",
"resultados": [
{
"nome": "Grupo Mix",
"sucesso": true,
"grupoId": 126,
"produtosAssociados": 1,
"produtosIgnorados": 2,
"erros": {
"EAN duplicado": [
"7891097102967"
],
"Produto não encontrado": [
"9999999999999"
]
}
},
{
"nome": "Grupo Vazio",
"sucesso": false,
"erro": "Nenhum produto válido encontrado",
"grupoId": null,
"erros": {
"Produto não encontrado": [
"8888888888888"
]
}
}
],
"totalProcessados": 2,
"sucessos": 1,
"falhas": 1,
"gruposCriados": [
126
]
}
Resposta para Erros
400 Bad Request - Envio de grupos inválidos.
{
"success": false,
"message": "O grupo \" \" (índice 0) não será processado",
"resultados": [
{
"nome": " ",
"indice": 0,
"sucesso": false,
"erro": "O grupo \" \" (índice 0) não será processado",
"campo": "Nome do grupo não pode ser vazio ou conter apenas espaços"
}
],
"totalProcessados": 1,
"sucessos": 0,
"falhas": 1
}
400 Bad Request - Multiplos grupos inválidos.
{
"success": false,
"message": "Nenhum grupo pôde ser criado",
"resultados": [
{
"nome": "Grupo Err1",
"sucesso": false,
"erro": "Nenhum produto válido encontrado",
"grupoId": null,
"erros": {
"Produto não encontrado": [
"9999999999999"
]
}
},
{
"nome": "Grupo Err2",
"sucesso": false,
"erro": "Nenhum produto válido encontrado",
"grupoId": null,
"erros": {
"Produto não encontrado": [
"8888888888888"
]
}
}
],
"totalProcessados": 2,
"sucessos": 0,
"falhas": 2,
"gruposCriados": []
}
400 Bad Request - Envio de nomes vazios.
{
"success": false,
"message": "O grupo \" \" (índice 0) não será processado",
"resultados": [
{
"nome": " ",
"indice": 0,
"sucesso": false,
"erro": "O grupo \" \" (índice 0) não será processado",
"campo": "Nome do grupo não pode ser vazio ou conter apenas espaços"
}
],
"totalProcessados": 1,
"sucessos": 0,
"falhas": 1,
"gruposCriados": []
}
400 Bad Request - Erro de validação do schema.
{
"success": false,
"message": "Erro de validação",
"statusCode": 400,
"errors": [
{
"code": "too_big",
"message": "Nome do grupo deve ter no máximo 20 caracteres",
"path": [
"grupos",
0,
"nome"
]
},
{
"code": "too_small",
"message": "Grupo deve ter pelo menos 1 produto",
"path": [
"grupos",
0,
"produtos"
]
},
{
"code": "custom",
"message": "URL da imagem inválida. Deve ser uma URL válida terminando em .jpg, .jpeg ou .png",
"path": [
"grupos",
0,
"imagem"
]
},
{
"code": "too_big",
"message": "Máximo de 500 grupos por requisição",
"path": [
"grupos"
]
}
],
"data": {}
}
Cadastro manual
Endpoint POST
URL
Sintaxe da Requisição
-
Tipo de requisição: POST.
-
Cabeçalho (Headers):
-
Content-Type: application/json
-
Authorization: Bearer <token>
-
-
Corpo da requisição:
Envio do JSON como exemplo abaixo:
{
"imagem": "http://www.image.com/url.jpg",
"nome": "Grupo Produtos diversos",
"todasIndustrias": false,
"todasCategorias": false,
"arvoreCategoria": 1,
"associacoes": [
{
"industria": 1,
"marca": 2,
"categoria": 3
}
]
}
Exemplo
curl --location 'https://yandeh-seller-integration.yandeh.com.br/portfolio-produtos/manual' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ...' \
--data ' {
"imagem": "http://www.image.com/url.jpg",
"nome": "Grupo Produtos diversos",
"todasIndustrias": false,
"todasCategorias": false,
"arvoreCategoria": 1,
"associacoes": [
{
"industria": 2228,
"marca": 3552,
"categoria": 3
}
]
}'
Elementos da Requisição
imagem : URL da imagem do grupo.
-
Campo obrigatório
Tipo: String.
nome: Nome do grupo.
-
Campo obrigatório.
Tipo: String.
todasIndustrias: Indica se todas as indústrias devem ser incluídas no grupo de portfólio.
-
Campo obrigatório.
Tipo: booleano (true ou false).
todasCategorias: Indica se todas as categorias devem ser incluídas no grupo de portfólio.
-
Campo obrigatório.
Tipo: booleano (true ou false).
arvoreCategoria: Identificador (ID) da árvore de categoria.
-
Campo obrigatório.
Tipo: Integer.
associacoes: Lista de indústrias, marcas e categorias a serem adicionados no portfólio.
Tipo: array (lista) de objetos JSON.
industria: Identificador (ID) da indústria responsável pelos produtos.
-
Campo obrigatório.
Tipo: Integer.
marca: Identificador (ID) da marca dos produtos.
-
Campo obrigatório.
Tipo: Integer.
categoria: Identificador (ID) da categoria dos produtos.
-
Campo obrigatório.
Tipo: Integer.
Sintaxe da Resposta
Se os parâmetros forem informados corretamente, o endpoint retornará status code 200.
Exemplo de retorno:
{
"status": "sucesso",
"mensagem": "Dados cadastrados com sucesso!",
"grupoId": 1262
}
Respostas para erros
400 Bad Request - Campos obrigatórios não informados no payload.
{
"mensagem": "Há dados inválidos. Por favor, verifique e tente novamente.",
"detalhes": [
{
"erros": [
{
"campo": "nome",
"erro": "O campo \"nome\" é obrigatório e não pode estar vazio."
}
]
}
],
"correlationId": "030a007f-d2fe-4d6b-8b73-6000b023681d"
}
{
"mensagem": "Nome do grupo já existe",
"detalhes": []
}
400 Bad Request - Nome do categoria informada já existe.
PUT Portfólio de Produtos
Endpoint responsável pela atualização do portfólio de produtos.
Existem duas opções de atualizações disponíveis: por importação, que permite atualizar o portfólio por produtos (EAN ou DUN), e de forma manual, ou a atualização do portfólio com base em indústrias, marcas e categorias.
Atualização por importação
Endpoint PUT
URL
Sintaxe da Requisição
-
Tipo de requisição: PUT.
-
Cabeçalho (Headers):
-
Content-Type: application/json
-
Authorization: Bearer <token>
-
-
URL: O parâmetro {id_grupo} representa o identificador único do grupo que você deseja atualizar. Ele deve ser substituído pelo ID real do grupo que foi previamente registrado na Yandeh.
-
Corpo da requisição:
Envio do JSON como exemplo abaixo:
{
"grupos": [
{
"id": 123,
"nome": "Grupo A Editado",
"imagem": "https://example.com/new-image.jpg",
"produtos": [
{
"ean": "7891097102967",
"acao": "adicionar"
},
{
"ean": "7896001001152",
"acao": "remover"
}
]
},
{
"id": 124,
"nome": "Grupo B Editado",
"imagem": "https://example.com/image2.jpg",
"produtos": [
{
"ean": "1234567890123",
"acao": "adicionar"
}
]
}
]
}
Exemplo
curl --location --request PUT 'https://yandeh-seller-integration.yandeh.com.br/portfolio-produtos/importacao/1263' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ...' \
--data ' {
"grupos": [
{
"id": 123,
"nome": "Grupo A Editado",
"imagem": "https://example.com/new-image.jpg",
"produtos": [
{
"ean": "7891097102967",
"acao": "adicionar"
},
{
"ean": "7896001001152",
"acao": "remover"
}
]
},
{
"id": 124,
"nome": "Grupo B Editado",
"imagem": "https://example.com/image2.jpg",
"produtos": [
{
"ean": "1234567890123",
"acao": "adicionar"
}
]
}
]
}'
Elementos da Requisição
grupos: Lista de grupos.
-
Campo obrigatório.
-
Máxima de 500 grupos.
Tipo: Lista de JSON.
id: Id do grupo a ser modificado.
-
Campo obrigatório
Tipo: Integer.
nome: Nome do grupo.
-
Campo obrigatório.
Tipo: String.
imagem: URL da imagem do grupo.
-
Campo obrigatório
Tipo: String.
produtos: Lista de produtos a serem atualizados no grupo de portfólio.
Tipo: array (lista) de objetos JSON.
ean: Código ean ou dun do produto.
-
Campo obrigatório.
Tipo: String.
acao: Define a ação a ser executada para o produto.
-
Ações permitidas:
-
adicionar- Inclui um novo produto no portfólio.
-
remover: Remove um produto do portfólio.
-
-
Campo obrigatório.
Tipo: String.
Sintaxe da Resposta
Se os parâmetros forem informados corretamente, o endpoint retornará status code 200.
Exemplo de retorno:
{
"success": true,
"message": "ok",
"resultados": [
{
"id": 123,
"nome": "Grupo A Editado",
"sucesso": true,
"produtosAdicionados": 1,
"produtosRemovidos": 1,
"produtosIgnorados": 0
},
{
"id": 124,
"nome": "Grupo B Editado",
"sucesso": true,
"produtosAdicionados": 1,
"produtosRemovidos": 0,
"produtosIgnorados": 0
}
],
"totalProcessados": 2,
"sucessos": 2,
"falhas": 0
}
207 Multi-Status - Sucesso parcial.
{
"success": true,
"message": "Alguns grupos foram atualizados com sucesso",
"resultados": [
{
"id": 123,
"nome": "Grupo OK",
"sucesso": true,
"produtosAdicionados": 1,
"produtosRemovidos": 0,
"produtosIgnorados": 0
},
{
"nome": "Grupo Não Existe",
"indice": 1,
"sucesso": false,
"erro": "O grupo \"Grupo Não Existe\" (índice 1) não será processado",
"campo": "Grupo com ID 999 não encontrado ou não pertence ao fornecedor"
}
],
"totalProcessados": 2,
"sucessos": 1,
"falhas": 1
}
207 Multi-Status - Sucesso parcial com erros de validação.
{
"success": true,
"message": "Alguns grupos foram atualizados com sucesso",
"resultados": [
{
"id": 123,
"nome": "Grupo OK",
"sucesso": true,
"produtosAdicionados": 1,
"produtosRemovidos": 0,
"produtosIgnorados": 0
},
{
"nome": "Grupo Inválido",
"sucesso": false,
"erro": "O grupo \"Grupo Inválido\" (índice 1) não será processado",
"campo": "EAN 7891097102967 com campo ação 'adicsionar' incorreto: Ação deve ser \"adicionar\" ou \"remover\"",
"indice": 1
}
],
"totalProcessados": 2,
"sucessos": 1,
"falhas": 1
}
207 Multi-Status - Sucesso parcial com produtos ignorados.
{
"success": true,
"message": "Processamento parcial - alguns produtos foram ignorados",
"resultados": [
{
"id": 125,
"nome": "Grupo OK",
"sucesso": true,
"produtosAdicionados": 1,
"produtosRemovidos": 1,
"produtosIgnorados": 2,
"erros": {
"EAN duplicado": [
"7891097102967"
],
"Produto não encontrado": [
"9999999999999"
]
}
}
],
"totalProcessados": 1,
"sucessos": 1,
"falhas": 0
}
207 Multi-Status - Sucesso parcial com todos os produtos ignorados.
{
"success": true,
"message": "Processamento parcial - alguns produtos foram ignorados",
"resultados": [
{
"id": 126,
"nome": "Grupo Sem Sucesso",
"sucesso": false,
"erro": "Nenhum produto foi processado com sucesso",
"produtosAdicionados": 0,
"produtosRemovidos": 0,
"produtosIgnorados": 3,
"erros": {
"Produto não encontrado": [
"9999999999999",
"8888888888888",
"7777777777777"
]
}
}
],
"totalProcessados": 1,
"sucessos": 0,
"falhas": 1
}
Resposta para Erros
400 Bad Request - Envio de grupos inválidos com nomes vazios.
{
"success": false,
"message": "O grupo \" \" (índice 0) não será processado",
"resultados": [
{
"nome": " ",
"indice": 0,
"sucesso": false,
"erro": "O grupo \" \" (índice 0) não será processado",
"campo": "Nome do grupo não pode ser vazio ou conter apenas espaços"
}
],
"totalProcessados": 1,
"sucessos": 0,
"falhas": 1
}
400 Bad Request - Multiplos grupos inválidos.
{
"success": false,
"message": "O grupo \" \" (índice 0) não será processado",
"resultados": [
{
"nome": " ",
"indice": 0,
"sucesso": false,
"erro": "O grupo \" \" (índice 0) não será processado",
"campo": "Nome do grupo não pode ser vazio ou conter apenas espaços"
}
],
"totalProcessados": 1,
"sucessos": 0,
"falhas": 1
}
400 Bad Request - Erro de validação do schema.
{
"success": false,
"message": "Erro de validação",
"statusCode": 400,
"errors": [
{
"code": "invalid_type",
"message": "Deve ser um número",
"path": [
"grupos",
0,
"id"
]
},
{
"code": "too_big",
"message": "Nome do grupo deve ter no máximo 20 caracteres",
"path": [
"grupos",
1,
"nome"
]
}
],
"data": {}
}
Cadastro manual
Endpoint PUT
URL
Sintaxe da Requisição
-
Tipo de requisição: PUT.
-
Cabeçalho (Headers):
-
Content-Type: application/json
-
Authorization: Bearer <token>
-
-
URL: O parâmetro {id_grupo} representa o identificador único do grupo que você deseja atualizar. Ele deve ser substituído pelo ID real do grupo que foi previamente registrado na Yandeh.
-
Corpo da requisição:
Envio do JSON como exemplo abaixo:
{
"imagem": "http://www.image.com/url.jpg",
"nome": "Grupo Produtos diversos",
"todasIndustrias": false,
"todasCategorias": false,
"arvoreCategoria": 1,
"associacoes": [
{
"industria": 1,
"marca": 2,
"categoria": 3
}
]
}
Exemplo
curl --location --request PUT 'https://yandeh-seller-integration.yandeh.com.br/portfolio-produtos/manual/1264' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer ...' \
--data ' {
"imagem": "http://www.image.com/url.jpg",
"nome": "Grupo Produtos diversos",
"todasIndustrias": false,
"todasCategorias": false,
"arvoreCategoria": 1,
"associacoes": [
{
"industria": 2228,
"marca": 3552,
"categoria": 3
}
]
}'
Elementos da Requisição
imagem : URL da imagem do grupo.
-
Campo obrigatório
Tipo: String.
nome: Nome do grupo.
-
Campo obrigatório.
Tipo: String.
todasIndustrias: Indica se todas as indústrias devem ser atualizadas no grupo de portfólio.
-
Campo obrigatório.
Tipo: booleano (true ou false).
todasCategorias: Indica se todas as categorias devem ser atualizadas no grupo de portfólio.
-
Campo obrigatório.
Tipo: booleano (true ou false).
arvoreCategoria: Identificador (ID) da árvore de categoria.
-
Campo obrigatório.
Tipo: Integer.
associacoes: Lista de indústrias, marcas e categorias a serem atualizadas no portfólio.
Tipo: array (lista) de objetos JSON.
industria: Identificador (ID) da indústria responsável pelos produtos.
-
Campo obrigatório.
Tipo: Integer.
marca: Identificador (ID) da marca dos produtos.
-
Campo obrigatório.
Tipo: Integer.
categoria: Identificador (ID) da categoria dos produtos.
-
Campo obrigatório.
Tipo: Integer.
Sintaxe da Resposta
Se os parâmetros forem informados corretamente, o endpoint retornará status code 200.
Exemplo de retorno:
{
"status": "sucesso",
"mensagem": "Dados atualizados com sucesso!"
}
Respostas para erros
400 Bad Request - Campos obrigatórios não informados no payload.
{
"mensagem": "Há dados inválidos. Por favor, verifique e tente novamente.",
"detalhes": [
{
"erros": [
{
"campo": "nome",
"erro": "O campo \"nome\" é obrigatório e não pode estar vazio."
}
]
}
],
"correlationId": "030a007f-d2fe-4d6b-8b73-6000b023681d"
}
{
"mensagem": "Nome do grupo já existe",
"detalhes": []
}
400 Bad Request - Nome do categoria informada não pertence ao ID informado.
DELETE Portfólio de Produtos
Endpoint responsável por excluir um portfólio de produtos.
Endpoint DELETE
URL
Sintaxe da Requisição
-
Tipo de requisição: DELETE.
-
Cabeçalho (Headers):
-
Content-Type: application/json
-
Authorization: Bearer <token>
-
-
U: O parâmetro {id_grupo} representa o identificador único do grupo que você deseja remover. Ele deve ser substituído pelo ID real do grupo que foi previamente registrado na Yandeh.
Exemplo
curl --location --request DELETE 'https://yandeh-seller-integration.yandeh.com.br/portfolio-produtos/1264' \
--header 'Authorization: Bearer ...'
Sintaxe da Resposta
Se os parâmetros forem informados corretamente, o endpoint retornará status code 200.
Exemplo de retorno:
{
"status": "sucesso",
"mensagem": "Dados removidos com sucesso!"
}
Respostas para erros
400 Bad Request - ID do grupo informado inexistente.
{
"mensagem": "Não foi possível remover esse item. Verifique os dados e tente novamente."
}
GET Associação de Portfólio ao consultor
Endpoint para consulta dos grupos de portfólios associados ao vendedor.
Endpoint GET
URL
Parâmetros da requisição
Informe os parâmetros abaixo para realizar a consulta do portfólio.
consultorId: Identificador (ID) do consultor.
-
Parâmetro obrigatório.
pagina: Página a ser exibida.
-
Página inicial 1.
-
Parâmetro obrigatório.
por_pagina: Quantidade de registros a serem exibidas por página.
-
Default de 100 registros por página.
-
Parâmetro obrigatório.
Exemplo
curl --location 'https://yandeh-seller-integration.yandeh.com.br/portfolio-produtos/associacoes/consultor/6325?pagina=1&por_pagina=1000' \
--header 'Authorization: Bearer ...'
Sintaxe da Resposta
Se os parâmetros forem informados corretamente, o endpoint retornará os dados com status code 200.
Exemplo de retorno:
{
"status": "sucesso",
"mensagem": "Listagem de associações de consultor com portfólio de produtos realizada com sucesso!",
"data": [
{
"imagem": "https://static-asd-stg.dev.com.br/produtos/1756308.png",
"nome": "Produtos diversos",
"tipo": "grupo_produto",
"agrupamento_produto_id": 1227,
"id": 1042
}
],
"total": 1
}
Elementos da Resposta
status: Indica o status da requisição.
Tipo: String.
mensagem: Mensagem da requisição.
Tipo: String.
data:Lista dos grupos cadastrados no portfólio do vendedor.
Tipo: Array de objetos.
imagem: URL da imagem do grupo.
Tipo: String.
nome: Nome do grupo do portfólio.
Tipo: String.
tipo: Classificação do grupo.
Tipo: String.
agrupamento_produto_id: Identificador (ID) do agrupamento de produtos.
Tipo: Integer.
Id: Identificador (ID) do grupo.
Tipo: Integer.
total: Total de registros da requisição.
Tipo: Integer.
Respostas para erros
404 Not Found - Informar um ID inexistente de consultor.
{
"mensagem": "Consultor não encontrado.",
"detalhes": []
}
POST Associação de Portfólio ao consultor
Endpoint para cadastrar a associação de grupos de portfólio a consultores.
Endpoint POST
URL
Sintaxe da Requisição
-
Tipo de requisição: POST.
-
Cabeçalho (Headers):
-
Content-Type: application/json
-
Authorization: Bearer <token>.
-
-
Corpo da requisição:
Envio do JSON como exemplo abaixo:
{
"consultorId": 1234,
"grupoProdutos": [
12345
]
}
Exemplo
curl --location 'https://yandeh-seller-integration.yandeh.com.br/portfolio-produtos/associacao/consultor' \
--header 'Authorization: Bearer ...' \
--header 'Content-Type: application/json' \
--data '{
"consultorId": 1234,
"grupoProdutos": [
1234
]
}'
Elementos da Requisição
consultorId: Identificador (ID) do consultor.
-
Campo obrigatório
Tipo: Integer.
grupoProdutos: Identificador (ID) do grupo.
-
Campo obrigatório.
Tipo: Integer.
Sintaxe da Resposta
Se os parâmetros forem informados corretamente, o endpoint retornará status code 200.
Exemplo de retorno:
{
"status": "sucesso",
"mensagem": "Criação de associações de consultor com portfólio de produtos realizada com sucesso!",
"data": {}
}
Respostas para erros
404 Not Found - Informar um ID inexistente de consultor.
{
"mensagem": "Consultor não encontrado.",
"detalhes": []
}
404 Not Found - Informar um grupo de produtos inexistente.
{
"mensagem": "Agrupamento de Produtos com o id 12345 não encontrado",
"detalhes": []
}
DELETE Associações de Portfólio de Produtos com Consultor
Última Atualização: 06/02/2025
Este endpoint é utilizado para remover as associações de portfólios de produtos por consultor.
Endpoint DELETE
https://yandeh-seller-integration.yandeh.com.br/portifolio-produtos/associacao/{associacaoId}/consultor/{consultorId}
Parâmetros da requisição
Ex: /associacao/{associacaoId}/consultor/{consultorId}
*associacaoId: Integer.
Id da associação.
*consultorId: Integer
Id do consultor.
Sintaxe da Resposta
Caso ocorra tudo certo com a requisição e retorne o status code 200, essa será a resposta que você receberá:
status
Indica se a requisição foi bem-sucedida.
Tipo: String.
mensagem
Descrição da operação realizada.
Tipo: String.
Respostas para erros
Caso ocorra algum erro durante a requisição, os possíveis erros são:
404 Not Found
Caso o id do consultor não seja encontrado na base:
404 Not Found
Caso o portfólio não seja localizado na base:
POST Upload de Imagem
Última Atualização: 03/02/2025
Endpoint responsável por subir imagens para serem utilizadas na criação de grupos de produtos ou campanhas.
Endpoint POST
Sintaxe da Requisição
Para que a requisição do método POST seja bem-sucedida, é necessário que
seja enviada uma requisição do tipo "multipart/form-data", com uma imagem para o produto.
No header deve ser informado o content-type e a Authorization: Exemplo:
No body, informar o form-data com os conteúdos:
Imagem
Imagem nos formatos PNG, JPEG ou JPG (Mín.: 150x150 px; Máx.: 500 x 500 px).
Tipo: File.
Sintaxe da Resposta
Caso ocorra tudo certo com a requisição e retorne o status code 200, você receberá um retorno parecido com esse:
status
Indica se a requisição foi bem-sucedida.
Tipo: String.
mensagem
Descrição da operação realizada.
Tipo: String.
data
Dados do retorno.
Tipo: Objeto.
url
URL de acesso à imagem.
Tipo: String.
Respostas para erros
Caso ocorra algum erro durante a requisição, os possíveis erros são:
400 Bad Request
Caso o formato do arquivo seja diferente de "png", "jpeg" e "jpg":
400 Bad Request
Caso a imagem possua dimensões inadequadas: