Essas APIs permitem consultar as negociações fechadas no Módulo de Negociação do IPA e obter os itens (produtos) de cada negociação, com os custos vigentes, custos negociados, indicadores e preços resultantes. O fluxo de consumo é em duas etapas: primeiro liste as negociações fechadas para obter o identificador (id) de cada uma, depois consulte os detalhes da negociação desejada.
Essas APIs são autenticadas, acesse a seção de autenticação aqui
POST https://ipa.infoprice.co/ipa-integration-app/api/ipa/v2/negotiations/find-closed
| Parâmetro | Descrição | Formato | Obrigatório |
|---|---|---|---|
search |
Texto livre para busca de negociações (ex.: nome da negociação) | string |
Não |
page |
Número da página. O padrão se não enviado é 0 | int |
Não |
size |
Tamanho da página | int |
Não |
Todos os campos do corpo são filtros opcionais. Envie {} para listar todas as negociações fechadas.
{
"product": ["97158"],
"store": ["1"],
"cluster": ["CLUSTER SUL"],
"supplier": ["FORNECEDOR ALIMENTOS LTDA"],
"owner": ["comprador@cliente.com.br"]
}
| Campo | Descrição | Tipo |
|---|---|---|
product |
Filtro por identificadores de produto | array de string |
store |
Filtro por identificadores de loja | array de string |
cluster |
Filtro por nome de cluster | array de string |
supplier |
Filtro por fornecedor | array de string |
owner |
Filtro por responsável pela negociação | array de string |
Authorization: cabeçalho contendo token obtido na request de autenticaçãoContent-Type: application/jsonAuthorization: Bearer mytokenhere111111
curl --location --request POST 'https://ipa.infoprice.co/ipa-integration-app/api/ipa/v2/negotiations/find-closed?page=0&size=20' \
--header 'Authorization: Bearer mytokenhere111111' \
--header 'Content-Type: application/json' \
--data '{}'
{
"content": [
{
"id": "3f2504e0-4f89-11d3-9a0c-0305e82c3301",
"name": "Negociação Mercearia Agosto/26",
"supplierId": 1042,
"supplier": "FORNECEDOR ALIMENTOS LTDA",
"stores": ["1", "12"],
"clusters": [],
"startDate": "2026-08-01",
"endDate": "2026-08-31",
"lastEditedDate": "2026-07-28",
"owner": "comprador@cliente.com.br",
"status": "CLOSED",
"totalProducts": 35,
"visionSaved": "STORE"
}
],
"pageable": {
"sort": [],
"offset": 0,
"pageNumber": 0,
"pageSize": 20,
"paged": true,
"unpaged": false
},
"last": true,
"totalPages": 1,
"totalElements": 1,
"size": 20,
"number": 0,
"sort": [],
"first": true,
"numberOfElements": 1,
"empty": false
}
Os campos abaixo detalhados estão dentro do objeto
content
| Campo | Descrição | Tipo |
|---|---|---|
id |
Identificador único da negociação (use no endpoint de detalhes) | string (UUID) |
name |
Nome da negociação | string |
supplierId |
Identificador do fornecedor | int |
supplier |
Nome do fornecedor | string |
stores |
Lojas contempladas pela negociação | array de string |
clusters |
Clusters de lojas contemplados pela negociação | array de string |
startDate |
Data de início da vigência | date (yyyy-MM-dd) |
endDate |
Data de fim da vigência | date (yyyy-MM-dd) |
lastEditedDate |
Data da última edição da negociação | date (yyyy-MM-dd) |
owner |
Responsável pela negociação | string |
status |
Status da negociação. Este endpoint retorna somente CLOSED |
string (ONGOING, CLOSED) |
totalProducts |
Quantidade de produtos na negociação | int |
visionSaved |
Grão em que a negociação foi gravada | string (STORE, CLUSTER, NETWORK) |
GET https://ipa.infoprice.co/ipa-integration-app/api/ipa/v2/negotiations/details
| Parâmetro | Descrição | Formato | Obrigatório |
|---|---|---|---|
ipaNegotiationId |
Identificador da negociação (campo id retornado pelo endpoint de listagem) |
UUID |
Sim |
page |
Número da página. O padrão se não enviado é 0 | int |
Não |
size |
Tamanho da página. O padrão se não enviado é 20 | int |
Não |
Authorization: cabeçalho contendo token obtido na request de autenticaçãoAuthorization: Bearer mytokenhere111111
curl --location 'https://ipa.infoprice.co/ipa-integration-app/api/ipa/v2/negotiations/details?ipaNegotiationId=3f2504e0-4f89-11d3-9a0c-0305e82c3301&page=0&size=20' \
--header 'Authorization: Bearer mytokenhere111111'
{
"content": [
{
"productsToBePricedId": "8a6b1c2d-77e0-4d8a-9f31-2b45c0aa91e2",
"productId": "97158",
"productFamilyId": "F-1021",
"description": "PAO FORMA BAUDUCCO FERM NAT 390G TRAD",
"store": "1-SUPER PRECO CERTO",
"storeId": "1",
"cluster": {
"clusterItemsCount": 4,
"clusterName": "CLUSTER SUL",
"clusterId": "77"
},
"objectiveMargin": 22.5,
"cost": 8.02,
"pmz": 8.02,
"newCost": 7.65,
"newObjectiveMargin": 24.0,
"PMZNewCost": 7.65,
"newPrice": 10.49,
"newPriceCompetitors": 10.98,
"newPriceMargin": 27.07,
"retailPrice": 12.99,
"marginRetailPrice": 38.26,
"competitivenessRetailPrice": 118.3,
"competitorsPrice": 10.98,
"marginCompetitorsPrice": 26.96,
"bestIdealPrice": 10.49,
"bestIdealPricePMZ": 7.65,
"salesTaxPercentage": 18.0,
"expensesPercent": 4.5,
"competitivenessIndicator": "COMPETITIVO",
"purchaseTaxPercentage": 12.0,
"entryCost": 7.65,
"isEdited": true,
"costIndicator": "GOOD",
"visionSaved": "STORE",
"negotiationSupplierDatapointStatus": "APPROVED",
"gtin": "7891962014756",
"stock": {
"quantity": 120,
"coverageDays": 14,
"lastUpdated": "2026-08-20"
},
"competitorStore": "CONCORRENTE CENTRO"
}
],
"pageable": {
"sort": [],
"offset": 0,
"pageNumber": 0,
"pageSize": 20,
"paged": true,
"unpaged": false
},
"last": true,
"totalPages": 2,
"totalElements": 35,
"size": 20,
"number": 0,
"sort": [],
"first": true,
"numberOfElements": 20,
"empty": false
}
Os campos abaixo detalhados estão dentro do objeto
content. Campos sem valor são retornados comonull.
| Campo | Descrição | Tipo |
|---|---|---|
productsToBePricedId |
Identificador único do item na negociação | string (UUID) |
productId |
Identificador do produto | string |
productFamilyId |
Identificador da família do produto | string |
description |
Descrição do produto | string |
store |
Nome da loja | string |
storeId |
Identificador da loja | string |
cluster |
Cluster de lojas do item (objeto com clusterId, clusterName, clusterItemsCount) |
objeto |
objectiveMargin |
Margem objetiva vigente (%) | decimal |
cost |
Custo vigente | decimal |
pmz |
Preço de margem zero com o custo vigente | decimal |
newCost |
Custo negociado | decimal |
newObjectiveMargin |
Nova margem objetiva (%) | decimal |
PMZNewCost |
Preço de margem zero com o custo negociado | decimal |
newPrice |
Novo preço de venda calculado | decimal |
newPriceCompetitors |
Preço dos concorrentes usado como referência para o novo preço | decimal |
newPriceMargin |
Margem do novo preço (%) | decimal |
retailPrice |
Preço de venda vigente | decimal |
marginRetailPrice |
Margem do preço vigente (%) | decimal |
competitivenessRetailPrice |
Competitividade do preço vigente (%) | decimal |
competitorsPrice |
Preço dos concorrentes | decimal |
marginCompetitorsPrice |
Margem sobre o preço dos concorrentes (%) | decimal |
bestIdealPrice |
Melhor preço ideal calculado | decimal |
bestIdealPricePMZ |
Preço de margem zero do melhor preço ideal | decimal |
salesTaxPercentage |
Percentual de impostos de venda (%) | decimal |
expensesPercent |
Percentual de despesas (%) | decimal |
competitivenessIndicator |
Indicador de competitividade | string |
purchaseTaxPercentage |
Percentual de impostos de compra (%) | decimal |
entryCost |
Custo de entrada | decimal |
isEdited |
Indica se o item foi editado manualmente na negociação | boolean |
costIndicator |
Indicador de qualidade do custo negociado | string (VERY_BAD, BAD, REGULAR, GOOD, VERY_GOOD) |
visionSaved |
Grão em que o item foi gravado | string (STORE, CLUSTER, NETWORK) |
negotiationSupplierDatapointStatus |
Status do item na negociação com o fornecedor | string (APPROVED, DECLINED) |
gtin |
Código GTIN do produto | string |
stock |
Estoque do produto na loja (objeto com quantity, coverageDays, lastUpdated) |
objeto |
competitorStore |
Loja concorrente de referência | string |
Essas APIs contam com recurso de paginação padrão Infoprice. Você pode consultar mais detalhes da paginação aqui
429 com o corpo abaixo. Aguarde a resposta da requisição em andamento antes de enviar a próxima.{
"status": 429,
"code": "TOO_MANY_CONCURRENT_REQUESTS",
"message": "Você já possui uma requisição em processamento.",
"path": "/api/ipa/v2/negotiations/find-closed",
"timestamp": "2026-08-26T14:32:10.123"
}
401.CLOSED (fechadas). Negociações em andamento não são retornadas.