signdocs-brasil
SDK oficial em Python para a API SignDocsBrasil.
Requisitos
- Python 3.9+
- Dependências:
requests,PyJWT,cryptography
Instalação
pip install signdocs-brasil
Início Rápido
from signdocs_brasil import SignDocsBrasilClient, ClientConfig
from signdocs_brasil.models import (
CreateTransactionRequest, Policy, Signer, InlineDocument,
)
client = SignDocsBrasilClient(ClientConfig(
client_id='seu_client_id',
client_secret='seu_client_secret',
))
tx = client.transactions.create(CreateTransactionRequest(
purpose='DOCUMENT_SIGNATURE',
policy=Policy(profile='CLICK_ONLY'),
signer=Signer(
name='João Silva',
email='joao@example.com',
user_external_id='user-001',
),
document=InlineDocument(content=pdf_base64, filename='contrato.pdf'),
))
print(tx.transaction_id, tx.status)
Private Key JWT (ES256)
client = SignDocsBrasilClient(ClientConfig(
client_id='seu_client_id',
private_key=open('./private-key.pem').read(),
kid='seu-key-id',
))
Recursos Disponíveis
| Recurso | Métodos |
|---|---|
client.transactions |
create, list, get, cancel, finalize, list_auto_paginate |
client.documents |
upload, presign, confirm, download |
client.steps |
list, start, complete |
client.signing |
prepare, complete |
client.evidence |
get |
client.verification |
verify, downloads |
client.users |
enroll |
client.webhooks |
register, list, delete, test |
client.signing_sessions |
create, get_status, cancel, list, wait_for_completion |
client.envelopes |
create, get, add_session, combined_stamp |
client.document_groups |
combined_stamp |
client.health |
check, history |
Assinatura Expressa (Sessões de Assinatura)
from signdocs_brasil.models import (
CreateSigningSessionRequest, SignerRequest, PolicyRequest, DocumentRequest,
)
session = client.signing_sessions.create(CreateSigningSessionRequest(
purpose='DOCUMENT_SIGNATURE',
policy=PolicyRequest(profile='BIOMETRIC'),
signer=SignerRequest(name='João Silva', user_external_id='user-001', email='joao@example.com'),
document=DocumentRequest(content=pdf_base64, filename='contrato.pdf'),
return_url='https://meusite.com.br/assinado',
))
print(session.url) # URL da página de assinatura hospedada
Envelopes (Múltiplos Signatários)
from signdocs_brasil.models import CreateEnvelopeRequest, AddEnvelopeSessionRequest
envelope = client.envelopes.create(CreateEnvelopeRequest(
signing_mode='PARALLEL',
total_signers=2,
document_content=pdf_base64,
document_filename='contrato.pdf',
))
session1 = client.envelopes.add_session(envelope.envelope_id, AddEnvelopeSessionRequest(
signer_name='João Silva',
signer_email='joao@example.com',
policy_profile='CLICK_ONLY',
))
session2 = client.envelopes.add_session(envelope.envelope_id, AddEnvelopeSessionRequest(
signer_name='Maria Santos',
signer_email='maria@example.com',
policy_profile='CLICK_ONLY',
signer_index=2,
))
print(session1.url, session2.url)
Configuração Avançada
Session customizada
Injete um requests.Session customizado (ex: para proxying, certificados mTLS ou métricas):
import requests
from signdocs_brasil import SignDocsBrasilClient, ClientConfig
session = requests.Session()
session.verify = '/path/to/ca-bundle.crt'
client = SignDocsBrasilClient(ClientConfig(
client_id='seu_client_id',
client_secret='seu_client_secret',
session=session,
))
Logging
O SDK aceita um logging.Logger padrão do Python. São logados apenas: método HTTP, path, status code e duração. Headers de autorização, corpos de request/response e tokens nunca são logados.
import logging
from signdocs_brasil import SignDocsBrasilClient, ClientConfig
logger = logging.getLogger('signdocs')
logger.setLevel(logging.DEBUG)
logger.addHandler(logging.StreamHandler())
client = SignDocsBrasilClient(ClientConfig(
client_id='seu_client_id',
client_secret='seu_client_secret',
logger=logger,
))
Timeout por requisição
Todas as operações aceitam timeout (em milissegundos) como keyword argument, que sobrescreve o timeout padrão do client:
tx = client.transactions.get('tx_123', timeout=5000)
Documentação
Para guias completos de integração com exemplos passo-a-passo de todos os fluxos de assinatura, veja a documentação completa da API.
Release files for signdocs-brasil 1.9.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| signdocs_brasil-1.9.0.tar.gz | 45.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| signdocs_brasil-1.9.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 99.9 kB
Release files / signdocs_brasil-1.9.0.tar.gz
| Download URL | signdocs_brasil-1.9.0.tar.gz |
|---|---|
| Size | 45.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9edad6c20cb71ff2830e5a4afc55bc45a405c3e00c6006fe2770ba9c0d9cab63
|
|
BLAKE2b-256 checksum How to use checksums |
f6cc8da10e95b200565e593bf064e43fbc9441da15e8eac6bd9b6223d547d9c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / signdocs_brasil-1.9.0-py3-none-any.whl
| Download URL | signdocs_brasil-1.9.0-py3-none-any.whl |
|---|---|
| Size | 54.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5c5c71d96122530f4d3c87494a35eb51b327397445711ff1d39940988a9d6779
|
|
BLAKE2b-256 checksum How to use checksums |
2c61d4171938435401f254394a950fbfe1a05cb5bd8c1a05864e0e2c5564b766
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|