{
  "info": {
    "name": "Hub B2B API",
    "description": "Collection oficial para integração com a API pública do Hub B2B.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    { "key": "baseUrl", "value": "https://teste.myplux.com.br/api" },
    { "key": "access_token", "value": "" },
    { "key": "client_id", "value": "" },
    { "key": "client_secret", "value": "" },
    { "key": "refresh_token", "value": "" },
    { "key": "sku", "value": "ERP-001" },
    { "key": "produto_uuid", "value": "" },
    { "key": "imagem_ordem", "value": "0" },
    { "key": "tabela_preco", "value": "Atacado" },
    { "key": "forma_pagamento_uuid", "value": "" },
    { "key": "forma_pagamento_id", "value": "12" },
    { "key": "numero_pedido", "value": "PED-0001" }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [{ "key": "token", "value": "{{access_token}}", "type": "string" }]
  },
  "item": [
    {
      "name": "Autenticação",
      "item": [
        {
          "name": "Obter token OAuth",
          "request": {
            "auth": { "type": "noauth" },
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"grant_type\": \"authorization_code\",\n  \"client_id\": \"{{client_id}}\",\n  \"client_secret\": \"{{client_secret}}\",\n  \"code\": \"CODIGO_DA_AUTORIZACAO\",\n  \"redirect_uri\": \"https://seu-app.com/callback\"\n}"
            },
            "url": "{{baseUrl}}/oauth/token"
          }
        },
        {
          "name": "Renovar token OAuth",
          "request": {
            "auth": { "type": "noauth" },
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"grant_type\": \"refresh_token\",\n  \"client_id\": \"{{client_id}}\",\n  \"client_secret\": \"{{client_secret}}\",\n  \"refresh_token\": \"{{refresh_token}}\"\n}"
            },
            "url": "{{baseUrl}}/oauth/token"
          }
        },
        {
          "name": "Revogar token",
          "request": {
            "auth": { "type": "noauth" },
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"token\": \"{{access_token}}\",\n  \"client_id\": \"{{client_id}}\",\n  \"client_secret\": \"{{client_secret}}\"\n}"
            },
            "url": "{{baseUrl}}/oauth/revoke"
          }
        },
        {
          "name": "Perfil autenticado",
          "request": { "method": "GET", "url": "{{baseUrl}}/usuarios/me" }
        }
      ]
    },
    {
      "name": "Produtos",
      "item": [
        {
          "name": "Listar produtos",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/produtos?sku=&nome=&categoria=&status=&page=1"
          }
        },
        {
          "name": "Criar produto",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sku\": \"{{sku}}\",\n  \"codigo_barras\": \"7891234567890\",\n  \"nome\": \"Produto Exemplo\",\n  \"categoria\": \"Geral\",\n  \"subcategoria\": \"Linha A\",\n  \"descricao\": \"Descrição do produto\",\n  \"marca\": \"Marca Exemplo\",\n  \"custo\": 50,\n  \"preco_venda\": 99.90,\n  \"quantidade_estoque\": 10,\n  \"estoque_minimo\": 2,\n  \"unidade\": \"UN\",\n  \"altura_cm\": 10,\n  \"largura_cm\": 20,\n  \"comprimento_cm\": 30,\n  \"peso_kg\": 1.5,\n  \"imagem\": \"https://erp.exemplo.com/imgs_produtos/produto.jpg\",\n  \"status\": \"ativo\"\n}"
            },
            "url": "{{baseUrl}}/produtos"
          }
        },
        {
          "name": "Detalhar produto por SKU",
          "request": { "method": "GET", "url": "{{baseUrl}}/produtos/{{sku}}" }
        },
        {
          "name": "Atualizar produto por SKU",
          "request": {
            "method": "PATCH",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"nome\": \"Produto Exemplo Atualizado\",\n  \"preco_venda\": 109.90,\n  \"quantidade_estoque\": 25,\n  \"status\": \"ativo\"\n}"
            },
            "url": "{{baseUrl}}/produtos/{{sku}}"
          }
        },
        {
          "name": "Excluir produto por SKU",
          "request": { "method": "DELETE", "url": "{{baseUrl}}/produtos/{{sku}}" }
        },
        {
          "name": "Enviar imagem por URL",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://erp.exemplo.com/imgs_produtos/produto.jpg\"\n}"
            },
            "url": "{{baseUrl}}/produtos/{{sku}}/imagens"
          }
        },
        {
          "name": "Remover imagem",
          "request": { "method": "DELETE", "url": "{{baseUrl}}/produtos/{{sku}}/imagens/{{imagem_ordem}}" }
        },
        {
          "name": "Publicar produto",
          "request": { "method": "POST", "url": "{{baseUrl}}/produtos/{{sku}}/publicar" }
        },
        {
          "name": "Republicar produto",
          "request": { "method": "POST", "url": "{{baseUrl}}/produtos/{{sku}}/republicar" }
        },
        {
          "name": "Tipos de publicação",
          "request": { "method": "GET", "url": "{{baseUrl}}/produtos/tipos-publicacao" }
        },
        {
          "name": "Atributos do produto",
          "request": { "method": "GET", "url": "{{baseUrl}}/produtos/{{sku}}/atributos" }
        },
        {
          "name": "Salvar atributos do produto",
          "request": {
            "method": "PUT",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"atributos\": []\n}" },
            "url": "{{baseUrl}}/produtos/{{sku}}/atributos"
          }
        },
        {
          "name": "Preços por quantidade",
          "request": { "method": "GET", "url": "{{baseUrl}}/produtos/{{sku}}/precos-quantidade" }
        },
        {
          "name": "Salvar preços por quantidade",
          "request": {
            "method": "PUT",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"faixas\": [\n    { \"quantidade_minima\": 10, \"preco\": 89.90 }\n  ]\n}" },
            "url": "{{baseUrl}}/produtos/{{sku}}/precos-quantidade"
          }
        },
        {
          "name": "Custos do produto",
          "request": { "method": "GET", "url": "{{baseUrl}}/produtos/{{sku}}/custos" }
        },
        {
          "name": "Automações de preço",
          "request": { "method": "GET", "url": "{{baseUrl}}/produtos/{{sku}}/automacoes-preco" }
        },
        {
          "name": "Salvar automações de preço",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"automacoes\": [\n    { \"tipo\": \"margem\", \"valor\": 20, \"ativo\": true }\n  ]\n}" },
            "url": "{{baseUrl}}/produtos/{{sku}}/automacoes-preco"
          }
        }
      ]
    },
    {
      "name": "Tabelas de Preço",
      "item": [
        {
          "name": "Listar tabelas",
          "request": { "method": "GET", "url": "{{baseUrl}}/tabelas-preco" }
        },
        {
          "name": "Criar tabela",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"nome\": \"{{tabela_preco}}\",\n  \"descricao\": \"Tabela importada do ERP\",\n  \"status\": \"ativo\"\n}" },
            "url": "{{baseUrl}}/tabelas-preco"
          }
        },
        {
          "name": "Atualizar tabela",
          "request": {
            "method": "PATCH",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"nome\": \"{{tabela_preco}}\",\n  \"descricao\": \"Tabela atualizada\",\n  \"status\": \"ativo\"\n}" },
            "url": "{{baseUrl}}/tabelas-preco/{{tabela_preco}}"
          }
        },
        {
          "name": "Excluir tabela",
          "request": { "method": "DELETE", "url": "{{baseUrl}}/tabelas-preco/{{tabela_preco}}" }
        },
        {
          "name": "Produtos da tabela",
          "request": { "method": "GET", "url": "{{baseUrl}}/tabelas-preco/{{tabela_preco}}/produtos" }
        },
        {
          "name": "Salvar preços em lote",
          "request": {
            "method": "PUT",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"itens\": [\n    { \"produto_uuid\": \"{{produto_uuid}}\", \"valor\": 99.90 }\n  ]\n}" },
            "url": "{{baseUrl}}/tabelas-preco/{{tabela_preco}}/produtos"
          }
        },
        {
          "name": "Upsert tabela e valor por SKU",
          "request": {
            "method": "PUT",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"nome\": \"{{tabela_preco}}\",\n  \"descricao\": \"Lista importada do ERP\",\n  \"status\": \"ativo\",\n  \"valor\": 99.90\n}" },
            "url": "{{baseUrl}}/tabelas-preco/{{tabela_preco}}/produtos/{{sku}}"
          }
        },
        {
          "name": "Tabelas do produto",
          "request": { "method": "GET", "url": "{{baseUrl}}/produtos/{{sku}}/tabelas-preco" }
        },
        {
          "name": "Definir valor individual",
          "request": {
            "method": "PUT",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"valor\": 99.90\n}" },
            "url": "{{baseUrl}}/produtos/{{sku}}/tabelas-preco/{{tabela_preco}}"
          }
        }
      ]
    },
    {
      "name": "Formas de Pagamento",
      "item": [
        {
          "name": "Listar formas de pagamento",
          "request": {
            "method": "GET",
            "description": "Lista formas. Resposta inclui id estável para o ERP.",
            "url": "{{baseUrl}}/formas-pagamento?ativo=1"
          }
        },
        {
          "name": "Detalhar forma de pagamento por ID",
          "request": {
            "method": "GET",
            "description": "Busca por ID numérico (forma_pagamento_id do pedido) ou UUID.",
            "url": "{{baseUrl}}/formas-pagamento/{{forma_pagamento_id}}"
          }
        },
        {
          "name": "Criar forma de pagamento",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"nome\": \"Cartão 3x\",\n  \"tipo\": \"parcelado\",\n  \"quantidade_parcelas\": 3,\n  \"taxa_tipo\": \"percentual\",\n  \"taxa_valor\": 2.99,\n  \"ativo\": true\n}"
            },
            "url": "{{baseUrl}}/formas-pagamento"
          }
        },
        {
          "name": "Atualizar forma de pagamento",
          "request": {
            "method": "PATCH",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"nome\": \"Cartão 3x\",\n  \"tipo\": \"parcelado\",\n  \"quantidade_parcelas\": 3,\n  \"taxa_tipo\": \"percentual\",\n  \"taxa_valor\": 2.49,\n  \"ativo\": true\n}"
            },
            "url": "{{baseUrl}}/formas-pagamento/{{forma_pagamento_uuid}}"
          }
        },
        {
          "name": "Excluir forma de pagamento",
          "request": { "method": "DELETE", "url": "{{baseUrl}}/formas-pagamento/{{forma_pagamento_uuid}}" }
        }
      ]
    },
    {
      "name": "Pedidos",
      "item": [
        {
          "name": "Listar pedidos",
          "request": { "method": "GET", "url": "{{baseUrl}}/pedidos" }
        },
        {
          "name": "Exportar pedidos para ERP",
          "request": {
            "method": "GET",
            "description": "Resposta inclui canal_venda (plataforma da loja ou Manual).",
            "url": "{{baseUrl}}/pedidos/exportacao?somente_nao_importados=1&status=novo,em_separacao,faturado,enviado,concluido&page=1&per_page=50"
          }
        },
        {
          "name": "Próximo número",
          "request": { "method": "GET", "url": "{{baseUrl}}/pedidos/proximo-numero" }
        },
        {
          "name": "Criar pedido",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"data_pedido\": \"2026-07-15\",\n  \"cliente_nome\": \"Cliente Exemplo\",\n  \"cliente_documento\": \"00000000000\",\n  \"cliente_email\": \"cliente@exemplo.com\",\n  \"status\": \"novo\",\n  \"prioridade\": \"normal\",\n  \"forma_pagamento_uuid\": \"{{forma_pagamento_uuid}}\",\n  \"desconto\": 0,\n  \"frete\": 10,\n  \"itens\": [\n    {\n      \"sku\": \"{{sku}}\",\n      \"produto_nome\": \"Produto Exemplo\",\n      \"quantidade\": 1,\n      \"valor_unitario\": 99.90\n    }\n  ]\n}"
            },
            "url": "{{baseUrl}}/pedidos"
          }
        },
        {
          "name": "Detalhar pedido",
          "request": { "method": "GET", "url": "{{baseUrl}}/pedidos/{{numero_pedido}}" }
        },
        {
          "name": "Atualizar pedido",
          "request": {
            "method": "PATCH",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"status\": \"em_separacao\",\n  \"prioridade\": \"alta\"\n}" },
            "url": "{{baseUrl}}/pedidos/{{numero_pedido}}"
          }
        },
        {
          "name": "Marcar pedido como importado",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"erp_import_id\": \"ERP-123\",\n  \"erp_import_status\": \"importado\",\n  \"erp_import_message\": \"Venda criada no ERP.\",\n  \"status\": \"em_separacao\"\n}"
            },
            "url": "{{baseUrl}}/pedidos/{{numero_pedido}}/marcar-importado"
          }
        },
        {
          "name": "Excluir pedido",
          "request": { "method": "DELETE", "url": "{{baseUrl}}/pedidos/{{numero_pedido}}" }
        }
      ]
    }
  ]
}
