Skip to main content

Python xml signer and webservice requester

Project description

Description

Lib created in order to sign XML content for SOAP Envelops when a signature is required. This library is intended to be used within WebServices that require certificate signature values inside the XML body. Pure Python coded. Its features consist in extracting .CERT or .PEM files and PrivateKeys to add values on Signatures elements as SignatureValue and X509Certificate with rsa-sha1 encryption type, compliant with http://www.w3.org/2000/09/xmldsig. Sign a XML file or buffered string using A1 or A3 certificate, PKCS1_v1_5 supported by RFC3447. It serializes the data to request SOAP RPC services. Creates POST requests on WebServices as NFe and NFSe.

Table of Contents

made-with-python Build Status Coverage Status PyPI license


Installation

Pip install

  • Firstly, install library with pip:
pip install starkbank-nfe

  • Or clone this repo and install library:
git clone https://github.com/starkbank/nfe
python setup.py install

Features

Using the following libs:

  • lxml, pyCrypto, requests, ssl, rsa

Usage

Using this lib:

We can create a new Rps, Consult Nfes and Cancel Nfes
# coding: utf-8
from gateways.saopaulo import SaopauloGateway

certificateContent = open("./certificate.crt", "rb").read()
privateKeyContent = open("./rsaKey.pem").read()

###Create Nfe:

nota = {
    "CPFCNPJRemetente": "01234567890987",
    "InscricaoPrestador":  "01234567",
    "SerieRPS": "TESTE",
    "NumeroRPS": "9117092019",
    "TipoRPS": "RPS",
    "DataEmissao": "2019-07-09",
    "StatusRPS": "N",
    "TributacaoRPS": "T",
    "ValorServicos": "1",
    "ValorDeducoes": "0",
    "ValorPIS": "0",
    "ValorIR": "0",
    "ValorCSLL": "0",
    "ValorCOFINS": "0",
    "ValorINSS": "0",
    "CodigoServico": "05895",
    "AliquotaServicos": "2",
    "ISSRetido": "false",
    "CPFCNPJTomador": "01234567654321",
    "RazaoSocialTomador": "SOME COMPANY NAME",
    "Logradouro": "Rua Um",
    "NumeroEndereco": "123",
    "ComplementoEndereco": "Centro",
    "Bairro": "Vila Unica",
    "Cidade": "3550308",
    "UF": "SP",
    "CEP": "00000000",
    "EmailTomador": "none@none.com",
    "Discriminacao": "Teste de emissao de NFS-e de boletos prestados",
}

print(SaopauloGateway.sendRps(
    privateKeyContent=privateKeyContent,
    certificateContent=certificateContent,
    **nota
))

###How to delete a Nfe:

nota = {
    "CPFCNPJRemetente": "01234567890123",
    "InscricaoPrestador": "01234567",
    "NumeroNFe": "001"
}

print(SaopauloGateway.cancelRps(
    privateKeyContent=privateKeyContent,
    certificateContent=certificateContent,
    **nota
))

###Consult sent Nfes

parameters = {
    "CPFCNPJRemetente": "01234567890123",
    "InscricaoPrestador": "01234567",
    "dtInicio": "2019-09-15",
    "dtFim": "2019-09-18",
}

print(SaopauloGateway.consultNfes(
    privateKeyContent=privateKeyContent,
    certificateContent=certificateContent,
    **parameters
))

Contributing

Get started

  • Step 1

    • 🍴 Fork this repo!
  • Step 2

    • 🔨🔨 Clone this repo to your local machine using https://github.com/starkbank/nfe
  • Step 3


Support

Reach out to me at one of the following places!


License

PyPI license

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

starkbank-nfe-0.1.5.tar.gz (22.6 kB view details)

Uploaded Source

File details

Details for the file starkbank-nfe-0.1.5.tar.gz.

File metadata

  • Download URL: starkbank-nfe-0.1.5.tar.gz
  • Upload date:
  • Size: 22.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for starkbank-nfe-0.1.5.tar.gz
Algorithm Hash digest
SHA256 2d4293369108698d97bac4e9698f4520d3bd72c9177598c6e8ca5fea5909790c
MD5 a1a3d5ffc552c1efd976f6ee4cb7ef0b
BLAKE2b-256 c84216900f93885507065010b549d4ac3f31f6c903563bad161f0b88657d7049

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page