diff --git a/pytrustnfe/nfe/templates/NFeDistribuicaoDFe.xml b/pytrustnfe/nfe/templates/NFeDistribuicaoDFe.xml
index cd3fc38..9762e86 100644
--- a/pytrustnfe/nfe/templates/NFeDistribuicaoDFe.xml
+++ b/pytrustnfe/nfe/templates/NFeDistribuicaoDFe.xml
@@ -8,4 +8,7 @@
{{ chave_nfe }}
+
+ {{ nsu }}
+
diff --git a/pytrustnfe/xml/schemas/distDFeInt_v1.01.xsd b/pytrustnfe/xml/schemas/distDFeInt_v1.01.xsd
new file mode 100644
index 0000000..5497aa7
--- /dev/null
+++ b/pytrustnfe/xml/schemas/distDFeInt_v1.01.xsd
@@ -0,0 +1,297 @@
+
+
+
+
+ Tipo número sequencial único
+
+
+
+
+
+
+
+ Tipo quantidade de NSU
+
+
+
+
+
+
+
+
+ Tipo Versão dos leiautes do Web Service NFeDistribuicaoDFe
+
+
+
+
+
+
+
+
+ Tipo Ambiente
+
+
+
+
+
+
+
+
+
+ Tipo Código da UF da tabela do IBGE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo Código de orgão (UF da tabela do IBGE + 90 RFB)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tipo Número do CNPJ
+
+
+
+
+
+
+
+
+
+ Tipo Número do CPF
+
+
+
+
+
+
+
+
+
+ Tipo Versão do Aplicativo
+
+
+
+
+
+
+
+
+ Tipo Código da Mensagem enviada
+
+
+
+
+
+
+
+
+
+ Tipo Motivo
+
+
+
+
+
+
+
+
+ Tipo string genérico
+
+
+
+
+
+
+
+
+ Tipo Chave da Nota Fiscal Eletrônica
+
+
+
+
+
+
+
+
+
+ Tipo Número do Protocolo de Status
+
+
+
+
+
+
+
+
+
+ Data e Hora, formato UTC (AAAA-MM-DDThh:mm:ssTZD, onde TZD = +hh:mm ou -hh:mm)
+
+
+
+
+
+
+
+
+ Tipo Inscrição Estadual do Emitente // alterado EM 24/10/08 para aceitar ISENTO
+
+
+
+
+
+
+
+
+
+ Tipo Decimal com 15 dígitos, sendo 13 de corpo e 2 decimais
+
+
+
+
+
+
+
+
+ Schema de pedido de distribuição de DF-e de interesse
+
+
+
+
+
+
+ Identificação do Ambiente:
+ 1 - Produção
+ 2 - Homologação
+
+
+
+
+
+ Código da UF do Autor
+
+
+
+
+
+ CNPJ do interessado no DF-e
+
+
+
+
+ CPF do interessado no DF-e
+
+
+
+
+
+
+ Grupo para distribuir DF-e de interesse
+
+
+
+
+
+ Último NSU recebido pelo ator. Caso seja informado com zero, ou com um NSU muito antigo, a consulta retornará unicamente as informações resumidas e documentos fiscais eletrônicos que tenham sido recepcionados pelo Ambiente Nacional nos últimos 3 meses.
+
+
+
+
+
+
+
+ Grupo para consultar um DF-e a partir de um NSU específico
+
+
+
+
+
+ Número Sequencial Único. Geralmente esta consulta será utilizada quando identificado pelo interessado um NSU faltante. O Web Service retornará o documento ou informará que o NSU não existe no Ambiente Nacional. Assim, esta consulta fechará a lacuna do NSU identificado como faltante.
+
+
+
+
+
+
+
+ Grupo para consultar uma NF-e a partir da chave de acesso
+
+
+
+
+
+ Chave de acesso da NF-e a ser consultada
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pytrustnfe/xml/validate.py b/pytrustnfe/xml/validate.py
index 3f672ba..4564f1a 100644
--- a/pytrustnfe/xml/validate.py
+++ b/pytrustnfe/xml/validate.py
@@ -7,12 +7,22 @@ import os
from lxml import etree
PATH = os.path.dirname(os.path.abspath(__file__))
-SCHEMA = os.path.join(PATH, 'schemas/enviNFe_v4.00.xsd')
def valida_nfe(xml_nfe):
- nfe = etree.fromstring(xml_nfe)
- esquema = etree.XMLSchema(etree.parse(SCHEMA))
- esquema.validate(nfe)
+ xsd = 'schemas/enviNFe_v4.00.xsd'
+ return valida_esquema(xml_nfe, xsd)
+
+
+def valida_distribuicao(xml):
+ xsd = 'distDFeInt_v1.01.xsd'
+ return valida_esquema(xml, xsd)
+
+
+def valida_esquema(xml, xsd_name):
+ xsd = os.path.join(PATH, xsd_name)
+ xml_etree = etree.fromstring(xml)
+ esquema = etree.XMLSchema(etree.parse(xsd))
+ esquema.validate(xml_etree)
erros = [x.message for x in esquema.error_log]
return "\n".join(erros)