🎉 USE O CUPOM DESCONTO.FULL | 20% OFF acima de R$ 50,00

Como corrigir REST API do WooCommerce com erro 401

Time Full Services Time Full Services
Tipo WooCommerce
Nome do erro REST API do WooCommerce com erro 401 EN: WooCommerce REST API 401 Unauthorized
Severidade Grave
Descrição O erro 401 na REST API do WooCommerce acontece quando a requisição é rejeitada por falha de autenticação, mesmo com a chave informada. Quase sempre vem do header Authorization removido pelo servidor, de Consumer Key e Secret erradas ou sem permissão, ou da chamada em HTTP sem SSL válido.

O que é a REST API do WooCommerce com erro 401?

A REST API do WooCommerce permite que sistemas externos (ERP, app, marketplace, automação) leiam e gravem pedidos, produtos e clientes da loja. Cada chamada precisa se autenticar com um par Consumer Key e Consumer Secret gerado em WooCommerce. O erro 401 Unauthorized é a resposta do site dizendo que a credencial não foi aceita: a chave não chegou, não confere, ou não tem a permissão necessária para aquela operação.

Como identificar

  • A integração recebe a resposta HTTP “401 Unauthorized” ao chamar qualquer endpoint /wp-json/wc/v3/.
  • O corpo da resposta traz o código “woocommerce_rest_authentication_error” com a mensagem de chave inválida ou ausente.
  • Em servidores Apache, a chamada por Basic Auth funciona no localhost mas devolve 401 em produção, sinal de header Authorization descartado.
  • Tentativas de POST ou PUT retornam “woocommerce_rest_cannot_create” ou 401 mesmo com a chave certa, indicando permissão somente leitura.
Antes de começar: Trate Consumer Key e Consumer Secret como senha: nunca versione em repositório público, nunca exponha no front-end e revogue chaves antigas que não estão mais em uso. Faça backup do .htaccess antes de editá-lo.

Como prevenir

  • Gere uma chave de API por integração, com a permissão mínima necessária, e revogue as que não usa mais
  • Mantenha o repasse do header Authorization configurado no servidor e sempre chame a API por HTTPS
  • Monitore os logs do WooCommerce e do WAF por respostas 401 nas rotas /wp-json/wc/ após cada atualização de plugin de segurança

Causa

  • Header Authorization removido pelo servidor (Apache com mod_rewrite ou FastCGI/PHP-FPM) antes de chegar ao WordPress, fazendo o WooCommerce não enxergar a credencial Basic Auth.
  • Consumer Key ou Consumer Secret digitada errada, revogada, ou copiada com espaço/quebra de linha extra ao colar na integração.
  • Chave de API gerada com permissão apenas de Leitura enquanto a integração tenta criar ou atualizar pedidos (POST/PUT), resultando em 401/403.
  • Requisição feita em HTTP simples (sem SSL) usando autenticação básica, que o WooCommerce só aceita com HTTPS válido na conexão.
  • Plugin de segurança ou WAF bloqueando o cabeçalho de autenticação ou as rotas /wp-json/, devolvendo 401 antes do WooCommerce processar.

Como resolver

  1. Regere e confira a chave de API: em WooCommerce > Configurações > Avançado > REST API, apague a chave suspeita e gere uma nova. Copie Consumer Key e Consumer Secret na hora (o secret só aparece uma vez) e cole sem espaços extras na integração.
  2. Defina a permissão correta da chave: ao criar a chave, escolha Leitura/Escrita se a integração precisa criar ou atualizar pedidos e produtos. Uma chave somente Leitura devolve erro em qualquer POST ou PUT.
  3. Garanta HTTPS válido na chamada: use sempre a URL com https:// e um certificado SSL válido. A autenticação básica do WooCommerce é recusada em conexões HTTP sem cadeado, o que aparece como 401.
  4. Preserve o header Authorization no Apache: em muitos servidores Apache o cabeçalho Authorization é descartado antes de chegar ao PHP. Adicione a regra de rewrite no .htaccess da raiz para repassá-lo ao WordPress (veja o código abaixo).
  5. Teste isolando segurança e WAF: faça uma chamada de teste a /wp-json/wc/v3/orders com as chaves. Se ainda der 401, desative temporariamente o plugin de segurança/WAF e refaça para confirmar se ele está bloqueando o header ou as rotas REST.
APACHE
# .htaccess da raiz do WordPress — repassa o header Authorization ao PHP
# (Apache costuma descartar esse header, quebrando o Basic Auth da REST API do WooCommerce)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*)$ - [E=HTTP_AUTHORIZATION:%1]
</IfModule>

# Alternativa para Apache com CGI/FastCGI, caso a regra acima não baste:
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

Perguntas frequentes

Por que minha chave de API correta ainda retorna 401
Na maioria dos casos o servidor Apache descarta o header Authorization antes de chegar ao PHP, então o WooCommerce nunca recebe a credencial. Adicione a regra de rewrite no .htaccess para repassar o cabeçalho e teste de novo a chamada à REST API.
Qual a diferença entre o erro 401 e o 403 na REST API do WooCommerce
O 401 Unauthorized significa que a autenticação falhou: a chave não chegou, está errada ou ausente. O 403 indica que a chave foi reconhecida, mas não tem permissão para aquela ação. Regenere a chave para o 401 e revise a permissão Leitura/Escrita para o 403.
Onde eu gero a Consumer Key e a Consumer Secret
Em WooCommerce > Configurações > Avançado > REST API, clique em Adicionar chave, escolha o usuário, a permissão e gere. O Consumer Secret aparece uma única vez, então copie e guarde com segurança no momento da criação.
A REST API do WooCommerce funciona sem SSL
Não de forma confiável. A autenticação básica usada pela API exige HTTPS com certificado válido; em HTTP simples o WooCommerce recusa a credencial e devolve 401. Instale um certificado SSL e chame sempre a URL com https para autenticar.
Meu plugin de segurança pode causar o erro 401
Sim. Plugins de segurança e WAFs costumam bloquear o header Authorization ou as rotas /wp-json/, devolvendo 401 antes do WooCommerce processar. Desative temporariamente o plugin e refaça a chamada para confirmar; se resolver, crie uma exceção para as rotas da REST API.
Recebo 401 só ao criar pedidos, mas a leitura funciona. Por quê
A chave provavelmente foi gerada com permissão somente Leitura. Operações de escrita como POST e PUT exigem permissão de Leitura/Escrita. Gere uma nova chave com o nível correto ou ajuste a permissão dela em WooCommerce > Configurações > Avançado > REST API.

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.

Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes