← Documentacao / Guias
Enviar e receber faturas através da Peppol
Conecte o ponto de acesso Peppol da sua própria empresa (Recommand, Storecove ou e-invoice.be) ao Nordlet, envie faturas e notas de crédito através da Peppol, acompanhe a respetiva entrega e converta faturas eletrónicas recebidas em faturas de compra.
A Peppol é a rede europeia para a troca de faturas eletrónicas estruturadas entre empresas e organismos públicos. Cada fatura circula desde o ponto de acesso do emissor até ao ponto de acesso do recetor. O Nordlet gera faturas e notas de crédito no formato Peppol BIS Billing 3.0, procedendo ao respetivo envio e receção através da conta do ponto de acesso da sua empresa.
A Peppol define as regras relativas à troca de documentos entre pontos de acesso, mas não o modo como o seu software comunica com o seu próprio ponto de acesso, uma vez que cada fornecedor possui a sua própria API. O Nordlet funciona com os seguintes fornecedores:
| Fornecedor | Envia | Estado de entrega | Recebe |
|---|---|---|---|
| Recommand | sim | por webhook e a pedido | sim |
| Storecove | sim | apenas por webhook | sim |
| e-invoice.be | sim | por webhook e a pedido | sim |
Sem um ponto de acesso, o Nordlet continua a gerar o ficheiro Peppol de cada fatura e nota de crédito emitida para que o possa descarregar e transmitir por outro meio; no entanto, não efetua o envio nem a receção de documentos.
O que é necessário
- Uma conta num dos fornecedores acima indicados, com a sua empresa registada na Peppol através do mesmo. Cada fornecedor cobra pelo respetivo serviço; consulte o respetivo preçário.
- No Nordlet, o número de IVA (NIF) ou número de registo da empresa, ou o respetivo ID Peppol (Conta → Empresas → ID Peppol). Cada cliente para o qual envie documentos também necessita de dispor de um destes elementos na respetiva ficha de parceiro.
Ligar o seu ponto de acesso
Aceda a Conta → Conformidade → UE → Ponto de acesso Peppol, selecione o seu fornecedor em Fornecedor, preencha os campos correspondentes conforme descrito abaixo e guarde. Deixe o campo URL base da API em vazio, a menos que o seu fornecedor lhe tenha fornecido um endereço diferente. Após guardar, a página apresenta o URL do webhook da sua empresa: https://api.nordlet.com/v1/peppol/webhooks/{provider}/{companyId}, em que {provider} é recommand, storecove ou e-invoice-be e {companyId} é o ID da sua empresa. Cada empresa no Nordlet possui o seu próprio URL de webhook.
O Nordlet apenas aceita uma chamada de webhook quando esta comprova que conhece o seu segredo de webhook, pelo que qualquer chamada proveniente de uma origem diferente da conta do seu ponto de acesso é recusada. O Nordlet apenas contacta endereços da internet pública quando acede ao seu ponto de acesso.
Recommand
- No Recommand, abra a sua empresa e copie o respetivo ID de empresa para o campo ID da conta no ponto de acesso.
- No Recommand, crie uma chave de API e copie a chave e respetivo segredo para os campos Chave de API e Segredo de API.
- Crie um texto longo e aleatório que apenas conheça, juntamente com o Recommand, e introduza-o em Segredo do webhook. Guarde.
- No Recommand, crie um webhook para a sua empresa utilizando o URL do webhook indicado pelo Nordlet e o mesmo segredo de webhook.
O Recommand assina todas as chamadas de webhook com esse segredo.
Storecove
- No Storecove, crie uma entidade jurídica para a sua empresa, configurada para enviar e receber, e copie o respetivo ID para ID da conta no ponto de acesso.
- No Storecove, em Chaves de API, crie uma chave de API e copie-a para Chave de API. Deixe o Segredo de API em vazio.
- Crie um texto longo e aleatório e introduza-o em Segredo do webhook. Guarde.
- No Storecove, configure um webhook do tipo push com o URL do webhook indicado pelo Nordlet, protegido com autenticação básica HTTP: qualquer nome de utilizador e o segredo do webhook como palavra-passe.
O Storecove não dispõe de um pedido para consultar o estado de um documento enviado, pelo que, com o Storecove, o estado de entrega provém exclusivamente do respetivo webhook e a página da fatura não apresenta o botão Verificar estado Peppol. Uma conta de testes (sandbox) do Storecove efetua envios na rede de testes da Peppol; as chaves de API de produção são obtidas através do suporte do Storecove.
e-invoice.be
- Na aplicação e-invoice.be, em Definições da API, copie a chave de API da sua empresa para Chave de API. Deixe os campos ID da conta no ponto de acesso e Segredo de API em vazio. Guarde.
- Crie um webhook através da API do e-invoice.be (
POST https://api.e-invoice.be/api/webhooks/) utilizando o URL do webhook apresentado pelo Nordlet e os eventosdocument.received,document.sentedocument.sent.failed. - Copie o
secretdevolvido pela API para o novo webhook para o campo Segredo do webhook no Nordlet e volte a guardar.
O e-invoice.be assina todas as chamadas de webhook com esse segredo. Uma empresa de testes no e-invoice.be envia por correio eletrónico os documentos que iria enviar, em vez de os transmitir através da Peppol.
Enviar uma fatura
- Emita a fatura ou nota de crédito.
- Certifique-se de que o cliente dispõe de um ID Peppol, número de IVA ou número de registo na respetiva ficha de parceiro.
- Na página da fatura, na secção Entrega, clique em Enviar via Peppol e confirme. A secção de entrega é exibida em faturas emitidas que ainda não se encontram pagas, e o botão surge apenas quando o ponto de acesso está ligado.
O Nordlet gera o ficheiro Peppol e entrega-o ao seu ponto de acesso. A página da fatura passa então a exibir uma secção de Entrega Peppol:
| Estado | Significado |
|---|---|
| pending | Entregue ao ponto de acesso; o ponto de acesso do cliente ainda não confirmou a receção |
| delivered | O ponto de acesso do cliente confirmou a receção da fatura |
| rejected | O cliente recusou a fatura; o motivo é apresentado abaixo do estado |
| failed | Não foi possível entregar a fatura; o motivo é apresentado abaixo do estado, caso o ponto de acesso o forneça |
O estado atualiza-se automaticamente quando o ponto de acesso reporta uma alteração através do respetivo webhook. A opção Verificar estado Peppol solicita imediatamente o estado atual ao Recommand ou ao e-invoice.be; no caso do e-invoice.be, lê também a resposta do cliente à fatura, sendo uma recusa (código de resposta RE) apresentada como rejeitada. Uma fatura rejeitada ou com falha pode ser reenviada após corrigir a causa subjacente. Quando o ponto de acesso recusa diretamente uma fatura, por exemplo, porque o cliente não está registado na Peppol, o Nordlet apresenta o motivo e a fatura permanece por enviar.
O botão XML Peppol situado no topo da página da fatura permite descarregar o mesmo ficheiro Peppol sem proceder ao seu envio.
Uma transmissão intracomunitária indica a data de emissão como data de entrega e o país do cliente como país de entrega, conforme exigido pelas regras da Peppol.
Receber faturas
Quando o ponto de acesso reporta um documento recebido através do respetivo webhook, o Nordlet descarrega o ficheiro Peppol a partir do ponto de acesso. As faturas e notas de crédito recebidas pela sua empresa aparecem em Compras → Captura de documentos, identificadas como recebidas via Peppol a partir do ID Peppol do emitente. O Nordlet procede à leitura direta do ficheiro Peppol, pelo que a receção não consome créditos de reconhecimento de documentos.
- Abra o documento recebido.
- Verifique o fornecedor, as datas e as linhas; selecione o fornecedor a partir dos seus parceiros ou crie-o.
- Clique em Guardar rascunho. O Nordlet cria um rascunho de fatura de compra, ou um rascunho de nota de crédito de compra no caso de uma nota de crédito recebida, com o ficheiro Peppol original anexo. Registe o documento tal como faria com qualquer outra fatura de compra.
As linhas de faturas de compra do Nordlet não podem apresentar valores negativos. Os descontos e encargos aplicáveis a todo o documento, bem como as linhas negativas, são distribuídos pelas linhas com a mesma taxa de IVA. Um montante que nenhuma linha com essa taxa de IVA possa suportar, tal como um artigo devolvido com uma taxa de IVA para a qual a fatura não tenha outra linha, é apresentado numa segunda tabela: Linhas de nota de crédito para uma fatura recebida, ou Linhas de fatura para uma nota de crédito recebida. Estas linhas são guardadas como um segundo documento para o mesmo fornecedor: uma nota de crédito de compra associada à nova fatura, numerada como "<número do documento>-CR", ou uma fatura de compra numerada como "<número do documento>-INV". Em conjunto, ambos os documentos totalizam os valores do documento recebido.
Verificar se um cliente está registado na Peppol
O pedido POST /v1/peppol/participants/lookup com um partnerId ou um participantId ("
Executar as mesmas operações através da API
| Tarefa | Chamada |
|---|---|
| Ligar o ponto de acesso | POST /v1/declarations/configs/update com system: "peppol" e o parâmetro config contendo provider (recommand, storecove ou e-invoice-be), accountId, apiKey, apiSecret, webhookSecret e opcionalmente apiBaseUrl |
| Receber o webhook do ponto de acesso | POST /v1/peppol/webhooks/{provider}/{companyId}, invocado pelo ponto de acesso |
| Descarregar o ficheiro Peppol | POST /v1/sales/invoices/peppol-xml |
| Enviar | POST /v1/sales/invoices/peppol-send (retorna 422 na ausência de ponto de acesso) |
| Ler o estado de entrega | POST /v1/sales/invoices/peppol-status (retorna 422 com o Storecove); as faturas incluem peppolMessageId, peppolStatus, peppolDetail, peppolSentAt e peppolCheckedAt |
| Localizar documentos recebidos | POST /v1/capture/documents/list; os documentos recebidos apresentam provider: "peppol" e senderId |
| Converter um documento numa fatura de compra | POST /v1/capture/documents/confirm, utilizando oppositeLines para o segundo documento |
Eventos de webhook: sale_invoice.peppol_sent, sale_invoice.peppol_delivered, sale_invoice.peppol_rejected, sale_invoice.peppol_failed e document_capture.peppol_received. Consulte as Convenções da API para obter informações sobre erros, idempotência e webhooks.