Documentação da API
Bem-vindo à documentação oficial da API PopStore v2. Nossa API é baseada em REST, utiliza JSON para requisições e respostas, e utiliza códigos de status HTTP padrão.
A URL base para todas as requisições é: https://api2.popstore.com.br
Autenticação
A API utiliza autenticação via Bearer Token. Este token identifica sua loja (Store ID) e garante a segurança das transações.
Você deve incluir o token no cabeçalho Authorization de todas as requisições.
Authorization: Bearer {sua_api_key}
Listar Produtos
GETRetorna uma lista de produtos cadastrados na loja.
Parâmetros (Query String)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| page | int | Não | Número da página (Padrão: 1) |
| limit | int | Não | Itens por página (Padrão: 100) |
| id | int | Não | ID específico do produto |
| search | string | Não | Busca por nome ou referência |
| collection_id | int | Não | ID da coleção |
| category_id | int | Não | ID da categoria |
| manufacturer | int | Não | ID do fabricante/marca |
URL de Requisição
200 OK
{
"data": [
{
"id": 185743,
"name": "Vestido Francisca Midi C/Alca Larga Vermelho",
"code": "54759024",
"date_created": "15/12/2025 11:01:29",
"brand": "Miss Misses",
"brand_id": 216,
"collection": "Miss & Misses Verão 2026",
"collection_id": 1390,
"weight": "0.600",
"height": 35,
"width": 25,
"depth": 7,
"ncm": "62044200",
"ucom": "UN",
"utrib": "UN",
"status": {
"retail": 1,
"wholesale": 1
},
"discount_percent": {
"retail": 0,
"wholesale": 0
},
"options": [
{
"id": 1287728,
"color": "Vermelho",
"size": "P",
"code": "5475902402",
"ean": "5475902402",
"ean_system": "100012877284",
"price": {
"retail": 395.90,
"wholesale": 179.90
},
"sale_price": {
"retail": 395.90,
"wholesale": 179.90
},
"quantity": {
"available": 2,
"hold": 0,
"total": 2
}
},
{
"id": 1287729,
"color": "Vermelho",
"size": "M",
"code": "5475902403",
"ean": "5475902403",
"ean_system": "100012877291",
"price": {
"retail": 395.90,
"wholesale": 179.90
},
"sale_price": {
"retail": 395.90,
"wholesale": 179.90
},
"quantity": {
"available": 3,
"hold": 1,
"total": 4
}
}
],
"photos": [
{
"url": "https://popstore.com.br/.../produto.webp"
}
],
"videos": [
{
"url": "https://popstore.com.br/.../produto.mp4"
}
],
"description": "Descrição do produto..."
}
]
}
Atualizar Estoque
PUTAtualiza a quantidade de estoque de um produto ou variante específica. Suporta atualização individual ou em lote (enviando um array de itens). A quantidade informada deve ser a contagem física total. O sistema automaticamente desconta itens reservados em pedidos.
Parâmetros (Body / JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| product_id | int | Sim | ID do produto pai |
| quantity | int | Sim | Quantidade física contada |
| stock_id | int | * | ID da variante (opcional se enviar code ou ean) |
| code | string | * | SKU da variante (opcional se enviar stock_id ou ean) |
| ean | string | * | Código de barras (opcional se enviar stock_id ou code) |
Exemplo de Requisição (JSON)
[
{
"product_id": 185743,
"stock_id": 1287728,
"quantity": 50
},
{
"product_id": 185743,
"code": "5475902403",
"quantity": 35
}
]
200 OK
{
"status": "ok",
"results": [
{
"status": "ok",
"data": {
"product_id": 185743,
"stock_id": 1287728,
"old_quantity": 10,
"quantity": {
"available": 45,
"hold": 5,
"total": 50
}
}
},
{
"status": "ok",
"data": {
...
}
}
]
}
Atualizar Preços
PUT
Atualiza os preços de venda e atacado de todas as opções de um produto, identificado pelo product_id ou code (Store Code).
Parâmetros (Body / JSON)
| Campo | Tipo | Opcional | Descrição |
|---|---|---|---|
| product_id | int | Não* | ID do produto pai. |
| code | string | Não* | Código da loja (Store Code). |
| price.retail | float | Sim | Novo Preço de Varejo (para todas as opções). |
| price.wholesale | float | Sim | Novo Preço de Atacado (para todas as opções). |
product_id OU code. Se ambos forem enviados, o ID tem prioridade.
Exemplo de Requisição (Batch)
[
{
"product_id": 185743,
"price": {
"retail": 150.00,
"wholesale": 80.00
}
},
{
"code": "REF123",
"price": {
"retail": 199.90
}
}
]
200 OK
{
"status": "ok",
"results": [
{
"status": "ok",
"data": {
"product_id": 185743,
"price": {
"retail": 150.00,
"wholesale": 80.00
}
}
},
...
]
}
Atualizar Descontos
PUT
Atualiza os descontos do produto (Retail e Wholesale).
Você pode enviar o percentual de desconto diretamente no objeto discount ou o preço final desejado no objeto sale_price (o sistema calculará o percentual necessário baseado no preço atual do produto).
Parâmetros (Body / JSON)
| Campo | Tipo | Opcional | Descrição |
|---|---|---|---|
| product_id | int | Não* | ID do produto pai. |
| code | string | Não* | Código da loja (Store Code). |
| discount.retail | float | Sim** | % Desconto Varejo (0-100). |
| discount.wholesale | float | Sim** | % Desconto Atacado (0-100). |
| sale_price.retail | float | Sim** | Preço final desejado (Varejo). Sistema calculará % desconto. |
| sale_price.wholesale | float | Sim** | Preço final desejado (Atacado). Sistema calculará % desconto. |
product_id OU code. Se ambos forem enviados, o ID tem prioridade.** Se enviar
discount e sale_price, o valor de discount (percentual) tem precedência.
Exemplo de Requisição
[
{
"product_id": 185743,
"discount": {
"retail": 10,
"wholesale": 0
}
},
{
"code": "REF123",
// Calcular desconto para chegar no preço final
"sale_price": {
"retail": 135.00
}
}
]
200 OK
{
"status": "ok",
"results": [
{
"status": "ok",
"updated_fields": ["discount_retail"],
"data": {
"product_id": 185743,
"store_code": "REF123",
"discount_percent": {
"retail": 10,
"wholesale": 0
}
}
}
]
}
Criar Produto
POSTCria um novo produto na loja. Este endpoint permite o cadastro completo, incluindo variações (SKUs), fotos e preços.
Parâmetros do Body (JSON)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| code | string | Sim | Código de referência (SKU pai) único do produto. |
| name | string | Sim | Nome/Título do produto. |
| description | string | Não | Descrição detalhada do produto (HTML permitido). |
| price_cost | float | Não | Preço de custo. |
| price_whlesale | float | Não | Preço de atacado. |
| price_retail | float | Não | Preço de varejo. |
| variants | array | Não | Lista de variações (tamanho/cor). Veja o exemplo. |
| photos | array | Não | Lista de fotos (URL ou Base64). |
Exemplo de Requisição
application/json"code": "VEST-VERAO-24", "name": "Vestido Floral Verão", "description": "<p>Vestido leve 100% viscose.</p>", "price_cost": 45.00, "price_wholesale": 90.00, "price_retail": 189.90, "weight": "0.350", "variants": [ { "code": "VEST-VERAO-24-P", "ean": "7890000001", "color_name": "Vermelho", "color_html": "#FF0000", "size": "P", "stock": 10 }, { "code": "VEST-VERAO-24-M", "ean": "7890000001", "color_name": "Vermelho", "color_html": "#FF0000", "size": "M", "stock": 15 } ], "photos": [ { "url": "https://site.com/foto1.jpg" "width": 800 "height": 1200 } ]
200 OK
{
"return": {
"status": "ok",
"data": {
"id": 54821
}
}
}
400 Bad Request
{
"return": {
"status": "error",
"error": "code is empty"
}
}
Listar Pedidos
GETRetorna uma lista de pedidos realizados na loja filtrados por um intervalo de datas.
Parâmetros (Query String)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| date_from | string | Não | Data inicial (dd/mm/YYYY) |
| date_to | string | Não | Data final (dd/mm/YYYY) |
| page | int | Não | 1 |
| limit | int | Não | 100 |
| order_id | int | Não | Número do Pedido |
| sort | string | Não | ASC / DESC |
Status do Pedido
O campo status pode retornar um dos seguintes valores:
URL de Requisição
200 OK
{
"data": [
{
"id": 900044,
"created_at": "11/12/2025 16:54:26",
"type": "retail",
"status": "Approved",
"name": "Nome Sobrenome",
"cpf": "00000000000",
"company_name": "Empresa",
"cnpj": "00000000000000",
"ie": "00000000000",
"email": "[email protected]",
"phone": "(11) 999999999",
"zip_code": "99999999",
"address": "Rua Teste",
"number": "1000",
"address2": "Complemento",
"neighborhood": "Centro",
"city": "São Paulo",
"state": "São Paulo",
"state_iso": "SP",
"country": "Brasil",
"country_iso": "BR",
"shipping_type": "CORREIOS - SEDEX",
"payment_method": "PIX",
"sub_total": 379.74,
"discount": 37.97,
"shipping": 10.00,
"total": 351.77,
"items": [
{
"name": "Vestido Floral Verão",
"code": "VEST-VERAO-24-P",
"color": "Vermelho",
"size": "M",
"ean": "7890000001",
"quantity": 1,
"cost": 45.00,
"price": 90.00
}
]
},
{
// ... demais pedidos
}
]
}