Documentação da API v1 · Conheça a Naut
v1

Publicar ou despublicar um produto

Move o produto entre os estados do catálogo. Transição que o estado atual não permite recusa, em vez de acontecer pela metade.

POSThttps://api.navenaut.com/products/{productId}/status

Autenticação

A sessão do painel autentica esta rota, e ela é lida de forma autoritativa: não há parâmetro em que o chamador aponte para outra conta.

Esta rota não exige escopo nomeado — o que não quer dizer que ela seja aberta: sem a credencial acima ela recusa.

Exige sessão de vendedor. O dono do produto vem do vínculo da sessão, nunca da requisição.

Parâmetros

Caminho

NomeTipoDescrição
productIdobrigatóriotexto (uuid)O identificador do produto no seu catálogo.

Corpo da requisição

application/json.

CampoTipoDescrição
statusobrigatórioum de: `active`, `inactive`O estado para o qual mover o produto.
{
  "status": "active"
}

Respostas

200 · sucesso

{
  "acceptedMethods": [
    "pix"
  ],
  "affiliateProgram": {
    "clickModel": "first",
    "commissionBps": 1,
    "cookieDays": 30,
    "description": "exemplo",
    "enabled": true,
    "manualApproval": true,
    "onBump": true,
    "onUpsell": true,
    "rules": "exemplo",
    "supportEmail": "comprador@exemplo.com.br"
  },
  "archivedAt": "2026-01-15T12:00:00.000Z",
  "billingType": "one_time",
  "category": "Saúde e Esportes",
  "createdAt": "2026-01-15T12:00:00.000Z",
  "deliveryInstructions": "exemplo",
  "deliveryMode": "members",
  "description": "exemplo",
  "id": "0f2a4e6c-91c4-4e1b-9a3d-5b7c2e8f4a06",
  "imageUrl": "https://loja.exemplo.com.br/webhooks",
  "installmentExtraBps": 0,
  "installmentLimit": 1,
  "name": "Loja Exemplo",
  "offers": [
    {
      "createdAt": "2026-01-15T12:00:00.000Z",
      "id": "0f2a4e6c-91c4-4e1b-9a3d-5b7c2e8f4a06",
      "interval": {
        "count": 1,
        "unit": "week"
      },
      "name": "Loja Exemplo",
      "position": 1,
      "price": {
        "amountCents": 129900,
        "currency": "BRL"
      },
      "principal": true,
      "publicId": "7K3M9X",
      "status": "active"
    }
  ],
  "parts": [
    {
      "beneficiaryId": "0f2a4e6c-91c4-4e1b-9a3d-5b7c2e8f4a06",
      "bps": 1,
      "priority": 0,
      "role": "coprodutor",
      "shareKind": "proportional"
    }
  ],
  "pixRecoveryEmailEnabled": true,
  "price": {
    "amountCents": 129900,
    "currency": "BRL"
  },
  "publicId": "7k3m9x",
  "showAllOffers": true,
  "statementDescriptor": "exemplo",
  "status": "draft",
  "updatedAt": "2026-01-15T12:00:00.000Z",
  "warrantyDays": 7
}

404 · não encontrado

O produto não existe, ou não é seu.

409 · conflito

O estado atual não permite essa transição.

422 · corpo inválido

Produto recorrente sem oferta ativa não se publica.

Erros desta rota

StatusCódigoQuandoO que fazer
422PRODUCT_OFFERS_INVALIDO produto é recorrente e não tem nenhuma oferta ativa: publicá-lo deixaria uma vitrine que nada vende.Reative ou crie uma oferta e peça a publicação de novo. O produto segue no estado em que estava.
404PRODUCT_NOT_FOUNDO identificador não existe, ou o produto é de outra conta. As duas causas respondem igual de propósito: distinguir revelaria a existência de produto alheio.Confira o identificador na listagem de produtos. Repetir não muda o resultado, e o estado do produto não mudou.
409PRODUCT_STATUS_TRANSITION_INVALIDO produto existe e o estado atual dele não admite a transição pedida: publicar o que já está publicado, ou arquivar o que já foi arquivado.Leia o estado atual antes de pedir a transição. Repetir a mesma transição devolve sempre 409, e o produto segue como está.

Os códigos são estáveis e fazem parte do contrato. A lista completa, com todos os vocabulários, está na tabela de erros.