diff --git a/pytrustnfe/nfse/ginfes/__init__.py b/pytrustnfe/nfse/ginfes/__init__.py
index 80e969b..fb27677 100644
--- a/pytrustnfe/nfse/ginfes/__init__.py
+++ b/pytrustnfe/nfse/ginfes/__init__.py
@@ -3,9 +3,12 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import os
-import suds
+from requests import Session
+from zeep import Client
+from zeep.transports import Transport
+from requests.packages.urllib3 import disable_warnings
+
from pytrustnfe.xml import render_xml, sanitize_response
-from pytrustnfe.client import get_authenticated_client
from pytrustnfe.certificado import extract_cert_and_key_from_pfx, save_cert_key
from pytrustnfe.nfe.assinatura import Assinatura
@@ -33,19 +36,21 @@ def _send(certificado, method, **kwargs):
cert, key = extract_cert_and_key_from_pfx(
certificado.pfx, certificado.password)
cert, key = save_cert_key(cert, key)
- client = get_authenticated_client(base_url, cert, key)
- try:
- xml_send = kwargs['xml']
- header = '3' #noqa
- response = getattr(client.service, method)(header, xml_send)
- except suds.WebFault as e:
- return {
- 'sent_xml': xml_send,
- 'received_xml': e.fault.faultstring,
- 'object': None
- }
-
- response, obj = sanitize_response(response)
+
+ header = '3' #noqa
+
+ disable_warnings()
+ session = Session()
+ session.cert = (cert, key)
+ session.verify = False
+ transport = Transport(session=session)
+
+ client = Client(base_url, transport=transport)
+
+ xml_send = kwargs['xml']
+ response = client.service[method](header, xml_send)
+
+ response, obj = sanitize_response(response.encode('utf-8'))
return {
'sent_xml': xml_send,
'received_xml': response,
diff --git a/requirements.txt b/requirements.txt
index 92f9079..63f4786 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -15,3 +15,4 @@ reportlab
pytest
pytest-cov
pytz
+zeep
diff --git a/setup.py b/setup.py
index 4bf323b..c5686a4 100644
--- a/setup.py
+++ b/setup.py
@@ -2,7 +2,7 @@
from setuptools import setup, find_packages
-VERSION = "0.9.20"
+VERSION = "0.9.21"
setup(
@@ -53,6 +53,7 @@ later (LGPLv2+)',
'suds-jurko-requests >= 1.2',
'reportlab',
'pytz',
+ 'zeep',
],
tests_require=[
'pytest',