Introdução
Se você vende serviços pelo WooCommerce — consultoria, cursos online, desenvolvimento, design, suporte técnico — sabe bem a dor de emitir NFS-e manualmente a cada pedido. Você acessa o portal da prefeitura, preenche os dados do tomador, informa o valor, escolhe o código de serviço... e repete isso para cada venda. Com o plugin Emitare NFS-e para WooCommerce, isso acaba.
Neste guia você vai aprender a instalar e configurar o plugin para que a NFS-e seja emitida automaticamente assim que um pedido é concluído — sem intervenção manual, sem copiar dados, sem abrir o portal da prefeitura.
O que você vai conseguir: ao final deste tutorial, toda vez que um cliente finalizar um pedido no seu WooCommerce e o status mudar para "Concluído", a NFS-e será emitida automaticamente via Emitare e o número da nota ficará salvo nos metadados do pedido no WordPress.
Pré-requisitos
Antes de começar, confirme que você tem:
- WordPress 6.0+ com WooCommerce 7.0+ instalado e ativo
- PHP 8.0 ou superior no servidor
- Conta na Emitare — crie gratuitamente em emitare.com.br/app
- Empresa cadastrada na Emitare com CNPJ da prestadora
- Certificado A1 (.pfx) enviado para a Emitare
- API Key gerada no dashboard da Emitare
Atenção: a Emitare precisa do certificado digital A1 da sua empresa para assinar os XMLs enviados à prefeitura. Se você ainda não tem um certificado A1, adquira com uma autoridade certificadora (Certisign, Serasa, Soluti etc.) antes de continuar.
Instalação passo a passo
Criar conta e obter a API Key
Acesse emitare.com.br/app e crie sua conta gratuita. Após confirmar o e-mail, acesse o dashboard e vá em Configurações > API Keys > Gerar nova chave. Copie a chave — você vai precisar dela na configuração do plugin.
Cadastrar a empresa e fazer upload do certificado
No dashboard da Emitare, vá em Empresas > Adicionar empresa. Informe o CNPJ, razão social, inscrição municipal e o código IBGE do município do prestador. Em seguida, vá em Certificados > Upload e envie o arquivo .pfx com a senha. O certificado é armazenado com criptografia AES-256-GCM.
Instalar o plugin no WordPress
No painel do WordPress, navegue até Plugins > Adicionar Novo. Pesquise por "Emitare NFS-e WooCommerce". Clique em Instalar Agora e depois em Ativar. O plugin aparecerá no menu lateral do WordPress Admin.
Configurar o plugin
Acesse WooCommerce > Emitare NFS-e no menu do WordPress. Preencha os campos conforme abaixo. Veja a seção de configuração para detalhes de cada campo.
Testar em modo sandbox
Ative a opção "Modo Sandbox (homologação)" e crie um pedido de teste no WooCommerce. Mude o status do pedido para "Concluído" e verifique no dashboard da Emitare se a NFS-e foi criada em ambiente de homologação (sem efeito fiscal).
Ir para produção
Após validar os testes, desative o modo sandbox no plugin. Confirme que o certificado A1 cadastrado na Emitare é o de produção (não de homologação). A partir desse momento, toda conclusão de pedido emite uma NFS-e real.
Configuração detalhada do plugin
Após instalar e ativar, acesse WooCommerce > Emitare NFS-e. Os campos disponíveis são:
API Key: sk_live_xxxxxxxxxxxxxxxxxxxx # Gerada no dashboard da Emitare (Configurações > API Keys) Company ID: 3f7a1b2c-4d5e-6f7a-8b9c-0d1e2f3a4b5c # UUID da empresa cadastrada na Emitare Ambiente: ☐ Sandbox (homologação) ☑ Produção Emitir NFS-e quando pedido mudar para: ☑ Concluído ☐ Processando ☐ Personalizado Código do Serviço (LC 116/2003): 01.05 # Consulte a lista de serviços do seu município Alíquota ISS (%): 5.00 # Alíquota do ISS do município do prestador Discriminação do Serviço: {{product_name}} — Pedido WooCommerce #{{order_id}} # Variáveis disponíveis: {{product_name}}, {{order_id}}, # {{customer_name}}, {{order_total}} Salvar NFS-e nos metadados do pedido: ☑ Sim — recomendado
Mapeando o CNPJ do tomador
O plugin extrai automaticamente os dados do tomador a partir do endereço de cobrança do pedido no WooCommerce. Para que o CNPJ/CPF seja preenchido corretamente, adicione um campo personalizado de CPF/CNPJ ao checkout. Recomendamos o plugin Brazilian Market on WooCommerce (gratuito), que já inclui campos de CPF, CNPJ, IE e outros dados fiscais exigidos pelas prefeituras.
Código de exemplo do plugin (uso avançado)
Se quiser personalizar o comportamento do plugin via código PHP (em um tema filho ou plugin personalizado), use o filtro emitare_nfse_payload antes da emissão:
/** * Personalizar payload da NFS-e antes de enviar para a Emitare. * Útil para ajustar código de serviço por categoria de produto. */ add_filter('emitare_nfse_payload', function($payload, $order) { // Exemplo: alíquota diferente por categoria de produto foreach ($order->get_items() as $item) { $product_id = $item->get_product_id(); if (has_term('consultoria', 'product_cat', $product_id)) { $payload['servico']['codigoServico'] = '17.01'; $payload['servico']['aliquota'] = 3.0; } } // Adicionar observação personalizada $payload['servico']['discriminacao'] .= ' | Ref: Pedido #' . $order->get_id(); return $payload; }, 10, 2);
Testando a integração
Com o modo sandbox ativo, siga estes passos para validar:
- Crie um produto de serviço no WooCommerce (ex.: "Consultoria 1h — R$ 300")
- Faça um pedido de teste (use os dados do seu próprio CNPJ como tomador)
- No painel do WordPress, vá em WooCommerce > Pedidos e abra o pedido
- Mude o status para "Concluído"
- Aguarde de 5 a 30 segundos e atualize a página do pedido
- Você verá a caixa "Emitare NFS-e" com o número da nota de homologação
- Confirme no dashboard da Emitare que a nota aparece em status "Autorizada"
Dica: se a NFS-e aparecer com status "Rejeitada" nos testes, verifique o código de serviço (deve ser válido para o município do prestador) e confirme que a inscrição municipal está correta no cadastro da empresa.
Onde fica o número da NFS-e no pedido?
Após a emissão, o plugin salva os seguintes metadados no pedido do WooCommerce:
_emitare_nfse_numero— número da NFS-e emitida_emitare_nfse_codigo_verificacao— código de verificação da prefeitura_emitare_nfse_link— link para visualizar a nota no portal da prefeitura_emitare_nfse_emitida_em— data e hora da emissão
Você pode exibir esses dados na página de confirmação do pedido ou no e-mail de conclusão usando o hook woocommerce_order_details_after_order_table.