Official Python SDK for the SignDocs Brasil API
Project description
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 centralizada.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file signdocs_brasil-1.1.0.tar.gz.
File metadata
- Download URL: signdocs_brasil-1.1.0.tar.gz
- Upload date:
- Size: 32.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29c16541c277afe10eef1af984ca0ec48ec07967939307d3542f3a80f50dbe03
|
|
| MD5 |
23f375765f754cf7515a482eb7d708ff
|
|
| BLAKE2b-256 |
cab65167757c50444a313d4187f44b2d627b6bbbb1ff38e8c370eecb0a814eaa
|
File details
Details for the file signdocs_brasil-1.1.0-py3-none-any.whl.
File metadata
- Download URL: signdocs_brasil-1.1.0-py3-none-any.whl
- Upload date:
- Size: 44.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5abd8c6f92894a5bfdfe255003652c2ea0f316c3344c7f371e48048c81691748
|
|
| MD5 |
8ce49616497eddd537401b1908482c21
|
|
| BLAKE2b-256 |
dcb3880bc04af23d91cf4f429955bcc3063e22a40a8d2b06f43c05f884766e18
|