Skip to main content

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, link, 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.11.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for signdocs-brasil 1.11.0
File Size Uploaded
signdocs_brasil-1.11.0.tar.gz 50.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for signdocs-brasil 1.11.0
File Interpreter ABI Platform
signdocs_brasil-1.11.0-py3-none-any.whl Python 3 none any Details

Total release size: 108.7 kB

Release files / signdocs_brasil-1.11.0.tar.gz

Download URL signdocs_brasil-1.11.0.tar.gz
Size 50.6 kB
Tags Source
SHA-256 checksum
How to use checksums
0ac7e4f12296394bf4c54be99c02828f6dbfa093186f17c27de5322216e486f6
BLAKE2b-256 checksum
How to use checksums
9287983a2372edbe16459ae78f415bdf911507340a5029045ea01e5655bc8277
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.11.0-py3-none-any.whl

Download URL signdocs_brasil-1.11.0-py3-none-any.whl
Size 58.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fade0b088df943d1d6239b946b8e2c42a867759abb41f46c984dcb6c1e417cd0
BLAKE2b-256 checksum
How to use checksums
f1ad9084c42b4ccb418626ab4b5960a9908a0df5f5a938b4ea87816509231df5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

This release

1.11.0 This release

2 release files

1.10.0

2 release files

1.9.0

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page