Skip to content

Listagem de histórico do produto

GET /products/{productId}/history

Retorna o histórico de alterações de um produto com paginação, ordenação e filtros

Descrição

Endpoint responsável por listar o histórico de alterações de um produto identificado na URL 📋.

Atua em contexto administrativo, com escopo de leitura de produtos (PRODUCT_READ), permitindo que o lojista audite mudanças feitas no cadastro (descrição, dados do produto, estoque, entre outros).

Cada registro traz quem alterou, quando, a origem e a ação executada, além dos objetos before e after com o estado anterior e posterior do trecho alterado.

Essas informações ajudam o lojista a rastrear e conferir alterações no produto no painel ⚙️.

Parâmetros

Headers Obrigatórios

HeaderValorDescrição
Content-Typeapplication/jsonNecessário quando o corpo JSON é enviado na requisição
AuthorizationBearer {userToken}Token de autenticação

Parâmetros da URL

ParâmetroTipoObrigatórioDescrição
productIdintegerSimIdentificador do produto cujo histórico será listado

Exemplo de Requisição

1curl --request GET \
2 --url "https://sua-loja-uappi.com.br/api/v3/products/{productId}/history" \
3 --header "Content-Type: application/json" \
4 --header "Authorization: Bearer SEU_TOKEN_AQUI" \
5 --data '{
6 "fields": [],
7 "order": [
8 {
9 "field": "id",
10 "order": "ASC"
11 }
12 ],
13 "condition": {
14 "type": "OR",
15 "conditions": []
16 },
17 "limit": 10,
18 "offset": 0
19 }'

✅ Resposta de Sucesso

HTTP Status: 200 OK

1{
2 "status": true,
3 "data": {
4 "registers": [
5 {
6 "id": 1,
7 "userId": 2,
8 "userName": "Admin Uappi",
9 "userEmail": "admin@email.com.br",
10 "origin": "description",
11 "action": "update-description",
12 "createdAt": "2025-09-15 17:23:24",
13 "before": {
14 "name": "",
15 "shortDescription": null,
16 "searchDescription": null,
17 "description": null,
18 "seoTitle": "",
19 "seoDescription": "",
20 "seoIndexOnGoogle": false
21 },
22 "after": {
23 "name": "Techbrand smartphone",
24 "shortDescription": "\r\n",
25 "searchDescription": "techbrand smartphone \r\n",
26 "description": "<p>Chegaram os smartphones <strong>ABC123</strong> da TechBrand...</p>",
27 "seoTitle": null,
28 "seoDescription": null,
29 "seoIndexOnGoogle": true
30 }
31 },
32 {
33 "id": 2,
34 "userId": 2,
35 "userName": "Admin Uappi",
36 "userEmail": "integration@uappi.com.br",
37 "origin": "product",
38 "action": "update-product",
39 "createdAt": "2025-09-26 20:35:44",
40 "before": {
41 "active": false
42 },
43 "after": {
44 "active": true
45 }
46 }
47 ],
48 "pagination": {
49 "limit": 10,
50 "offset": 0,
51 "pages": 4,
52 "registers": 38
53 }
54 }
55}

⚠️ Possíveis erros:

errorCodeHTTPDescrição
UAPPI_STORE_PRODUCT_NOT_FOUND404O produto solicitado não foi encontrado.

Listagem de histórico de produtos em massa

GET /products/history

Retorna o histórico de alterações de todos os produtos, sem restrição por produto específico, com paginação, ordenação e filtros

Descrição

Endpoint responsável por listar o histórico de alterações de todos os produtos cadastrados na loja, sem a necessidade de informar um productId na URL 📋.

Atua em contexto administrativo, com escopo de leitura de produtos (PRODUCT_READ), permitindo que o lojista audite mudanças feitas em qualquer produto do catálogo (descrição, dados do produto, estoque, entre outros) a partir de uma única listagem.

Cada registro traz o campo productId, indicando a qual produto aquela alteração pertence, além de quem alterou, quando, a origem e a ação executada, além dos objetos before e after com o estado anterior e posterior do trecho alterado.

Essas informações ajudam o lojista a rastrear e conferir alterações em todo o catálogo de produtos no painel ⚙️.

Parâmetros

Headers Obrigatórios

HeaderValorDescrição
Content-Typeapplication/jsonNecessário quando o corpo JSON é enviado na requisição
AuthorizationBearer {userToken}Token de autenticação

Campos de Condição Disponíveis

CampoTipoDescrição
productIdintegerFiltrar pelo ID do produto
originstringFiltra pela origem do histórico
userNamestringFiltrar pelo nome do usuário responsável pela ação
userEmailstringFiltrar pelo e-mail do usuário responsável pela ação
actionstringFiltrar por tipo de ação
createdAtstringFiltra pela data de criação do registro

Campos de Ordenação Disponíveis

CampoDescrição
idOrdenar lista por ID
createdAtOrdenar lista por data de criação

Exemplo de Requisição

1curl --request GET \
2 --url "{{MAIN_URL}}/products/history" \
3 --header "Content-Type: application/json" \
4 --header "Authorization: Bearer SEU_TOKEN_AQUI" \
5 --data '{
6 "fields": [],
7 "order": [
8 {
9 "field": "id",
10 "order": "ASC"
11 }
12 ],
13 "condition": {
14 "type": "OR",
15 "conditions": []
16 },
17 "limit": 10,
18 "offset": 0
19 }'

✅ Resposta de Sucesso

HTTP Status: 200 OK

1{
2 "status": true,
3 "data": {
4 "registers": [
5 {
6 "id": 1,
7 "productId": 501,
8 "userId": 2,
9 "userName": "Admin Uappi",
10 "userEmail": "admin@email.com.br",
11 "origin": "description",
12 "action": "update-description",
13 "before": {
14 "name": "",
15 "shortDescription": null,
16 "searchDescription": null,
17 "description": null,
18 "seoTitle": "",
19 "seoDescription": "",
20 "seoIndexOnGoogle": false
21 },
22 "after": {
23 "name": "Techbrand smartphone",
24 "shortDescription": "\r\n",
25 "searchDescription": "techbrand smartphone \r\n",
26 "description": "<p>Chegaram os smartphones <strong>ABC123</strong> da TechBrand...</p>",
27 "seoTitle": null,
28 "seoDescription": null,
29 "seoIndexOnGoogle": true
30 },
31 "createdAt": "2025-09-15 17:23:24"
32 },
33 {
34 "id": 2,
35 "productId": 730,
36 "userId": 2,
37 "userName": "Admin Uappi",
38 "userEmail": "integration@uappi.com.br",
39 "origin": "product",
40 "action": "update-product",
41 "before": {
42 "active": false
43 },
44 "after": {
45 "active": true
46 },
47 "createdAt": "2025-09-26 20:35:44"
48 }
49 ],
50 "pagination": {
51 "limit": 10,
52 "offset": 0,
53 "pages": 4,
54 "registers": 38
55 }
56 }
57}

⚠️ Possíveis erros:

Por se tratar de uma listagem em massa, sem productId na URL, este endpoint não possui um erro de produto não encontrado — o único erro específico deste contexto é a validação dos campos de condição/ordenação informados.

errorCodeHTTPDescrição
UAPPI_CORE_INVALID_SEARCH_FIELD400Um dos campos de condição ou ordenação informados na requisição não é válido para esta listagem.

Detalhe do histórico do produto

GET /products/{productId}/history/{historyId}

Retorna um registro específico do histórico de alterações de um produto

Descrição

Endpoint responsável por retornar o detalhe de um evento do histórico de um produto 📋.

Atua em contexto administrativo, com escopo de leitura de produtos (PRODUCT_READ), permitindo que o lojista consulte uma alteração pontual com os valores antes e depois da mudança.

Os identificadores productId e historyId vêm na URL. Não é necessário enviar corpo na requisição.

O retorno inclui autor, data, origem, ação e os objetos before / after, cuja estrutura depende do tipo de alteração (descrição, produto, estoque, etc.).

Essas informações permitem que o lojista analise em profundidade uma mudança específica no cadastro do produto ⚙️.

Parâmetros

Headers Obrigatórios

HeaderValorDescrição
AuthorizationBearer {userToken}Token de autenticação

Parâmetros da URL

ParâmetroTipoObrigatórioDescrição
productIdintegerSimIdentificador do produto
historyIdintegerSimIdentificador do registro de histórico

Exemplo de Requisição

1curl --request GET \
2 --url "{{MAIN_URL}}/products/{productId}/history/{historyId}" \
3 --header "Authorization: Bearer SEU_TOKEN_AQUI"

✅ Resposta de Sucesso

HTTP Status: 200 OK

1{
2 "status": true,
3 "data": {
4 "id": 300,
5 "userId": 2,
6 "userName": "Admin Uappi",
7 "userEmail": "integration@uappi.com.br",
8 "origin": "description",
9 "action": "update-description",
10 "createdAt": "2025-09-15 17:23:24",
11 "before": {
12 "name": "",
13 "shortDescription": null,
14 "searchDescription": null,
15 "description": null,
16 "seoTitle": "",
17 "seoDescription": "",
18 "seoIndexOnGoogle": false
19 },
20 "after": {
21 "name": "Techbrand smartphone",
22 "shortDescription": "\r\n",
23 "searchDescription": "techbrand smartphone \r\n",
24 "description": "<p>Chegaram os smartphones <strong>ABC123</strong> da TechBrand...</p>",
25 "seoTitle": null,
26 "seoDescription": null,
27 "seoIndexOnGoogle": true
28 }
29 }
30}

⚠️ Possíveis erros:

errorCodeHTTPDescrição
UAPPI_STORE_HISTORY_NOT_FOUND404O histórico solicitado não foi encontrado.
UAPPI_STORE_PRODUCT_NOT_FOUND404O produto solicitado não foi encontrado.

Uappi é a melhor opção para o crescimento da sua loja!

;