RIA Sign API v2 + MCP

API de Assinatura Eletronica

Envie documentos para assinatura via WhatsApp em 1 chamada. Integre com IA via MCP. Validade juridica no Brasil.

REST API MCP (IA) WhatsApp Nativo Lei 14.063/2020 OAuth 2.1

Base URL

https://sign.riasistemas.com.br

Fluxo

1. Envie PDF + signatarios (1 chamada) 2. Signatario recebe no WhatsApp
3. Assina pelo celular (sem instalar nada) 4. PDF selado + webhook
5. Download do PDF assinado com certificado

Base Legal

  • Lei 14.063/2020 — Assinatura Eletronica Simples (Art. 4, II) + Avancada (Art. 4, III)
  • MP 2.200-2/2001 Art.10 §2 — Validade juridica de documentos eletronicos

Niveis de Assinatura

NivelRequisitosQuando
SimplesOTP, consentimento, trilha de auditoriaDefault
AvancadaSimples + selfie + doc identidade + carimbo de tempo RFC 3161 + assinatura ECDSA P-256Automatico quando selfie + idPhoto habilitados
Qualificada (ICP-Brasil)Certificado digital via PSC (Certillion)Quando icp: true e signatario tem certificado

Quick Start

Envie seu primeiro documento para assinatura em 30 segundos:

1. Obtenha sua API Key

Acesse o Painel de Integracao e copie sua chave (formato rsk_...).

2. Envie um documento

curl -X POST https://sign.riasistemas.com.br/api/v2/send \
  -H "Authorization: Bearer rsk_SUA_API_KEY" \
  -F "file=@contrato.pdf" \
  -F 'data={
    "subject": "Contrato de Servicos",
    "signers": [
      {
        "name": "Maria Silva",
        "phone": "+5541999999999"
      }
    ]
  }'

3. Pronto!

Maria recebe o documento no WhatsApp e assina pelo celular. Voce recebe o webhook envelope.completed quando todos assinarem.

// Resposta
{
  "id": "env_a1b2c3d4...",
  "status": "sent",
  "signers": [{
    "id": "sgn_x1y2z3...",
    "name": "Maria Silva",
    "sign_url": "https://sign.riasistemas.com.br/sign/abc123...",
    "status": "sent"
  }],
  "document": {
    "id": "doc_p1q2r3...",
    "filename": "contrato.pdf",
    "hash": "sha256:a1b2c3d4...",
    "pages": 5
  }
}

Autenticacao

Todas as rotas /api/* e /mcp requerem autenticacao via API Key no header HTTP:

Authorization: Bearer rsk_sua_api_key_aqui

As chaves sao geradas no Painel de Integracao. O prefixo rsk_ identifica chaves do RIA Sign. Apenas o hash SHA-256 da chave e armazenado.

Para clientes MCP (ChatGPT, Claude), use OAuth 2.1 com PKCE — o usuario autoriza via telefone+OTP sem expor a API Key.

Respostas de Erro

StatusDescricao
401API Key ausente ou invalida
402Documentos com pagamento pendente (soft limit)
403API Key desativada

Enviar PDF para Assinatura

Envio completo em 1 chamada: upload do PDF + dados dos signatarios + envio automatico via WhatsApp.

POST /api/v2/send API Key
Cria envelope, faz upload do PDF, gera tokens e envia para os signatarios em uma unica chamada. Aceita PDF e DOCX (convertido automaticamente).

Form Fields (multipart/form-data)

CampoTipoDescricao
fileFile obrigatorioDocumento PDF ou DOCX
dataJSON string obrigatorioDados do envio (ver abaixo)

Campos do JSON data

CampoTipoDescricao
subjectstring obrigatorioTitulo do documento
signersarray obrigatorioLista de signatarios (min. 1)
messagestring opcionalMensagem para os signatarios
webhookUrlstring opcionalURL para receber eventos (webhook)
callbackUrlstring opcionalRedirecionar signatario apos assinar
selfieboolean opcionalExigir selfie (ativa Assinatura Avancada)
idPhotoboolean opcionalExigir foto do documento de identidade (frente+verso)
otpboolean opcionalVerificacao por codigo OTP de 6 digitos
icpboolean opcionalSolicitar assinatura qualificada ICP-Brasil (certificado digital)
remindersinteger opcionalQuantidade de lembretes automaticos via WhatsApp (0=desabilitado, 3=recomendado)
expiresstring opcionalExpiracao: "30d", "7d" ou ISO 8601
metadataobject opcionalMetadados livres (retornados nos webhooks)

Objeto signer

CampoTipoDescricao
namestring obrigatorioNome completo
phonestring obrigatorio*Telefone com DDI (ex: +5541999999999). *Obrigatorio se sem email.
emailstring opcionalEmail (fallback se sem WhatsApp)
cpfstring opcionalCPF do signatario
rolestring opcionalPapel (ex: contratante, contratado, testemunha)
orderinteger opcionalOrdem de assinatura (1, 2, 3...)

Exemplo

curl -X POST https://sign.riasistemas.com.br/api/v2/send \
  -H "Authorization: Bearer rsk_sua_api_key" \
  -F "file=@contrato.pdf" \
  -F 'data={
    "subject": "Contrato de Prestacao de Servicos",
    "signers": [
      {"name": "Maria Silva", "phone": "+5541999999999", "role": "contratante"},
      {"name": "Joao Santos", "phone": "+5541988888888", "role": "contratado"}
    ],
    "selfie": true,
    "idPhoto": true,
    "reminders": 3,
    "webhookUrl": "https://meusite.com/webhook"
  }'

Resposta (201)

{
  "id": "env_a1b2c3d4...",
  "status": "sent",
  "signers": [
    {
      "id": "sgn_x1y2z3...",
      "name": "Maria Silva",
      "phone": "+5541999999999",
      "sign_url": "https://sign.riasistemas.com.br/sign/abc123...",
      "status": "sent",
      "order": 1
    },
    {
      "id": "sgn_w4v5u6...",
      "name": "Joao Santos",
      "phone": "+5541988888888",
      "sign_url": "https://sign.riasistemas.com.br/sign/def456...",
      "status": "sent",
      "order": 2
    }
  ],
  "document": {
    "id": "doc_p1q2r3...",
    "filename": "contrato.pdf",
    "hash": "sha256:a1b2c3d4...",
    "pages": 5
  }
}

Enviar com Template

Envie contratos usando templates pre-criados, texto livre (analisado por IA) ou templates manuais com placeholders. Sem precisar de PDF — o documento e gerado automaticamente.

POST /api/v2/send-template API Key
Envia documento usando template. Suporta 3 modos de operacao.

Modo 1 — Template salvo

Use um template ja criado no sistema.

{
  "template_id": "tpl_abc123",
  "signers": [{"name": "Maria", "phone": "+5541999999999", "role": "locatario"}],
  "fields": {"VALOR_ALUGUEL": "R$ 2.500,00", "ENDERECO": "Rua das Flores, 123"}
}

Modo 2 — Texto livre (IA)

Envie o texto do contrato e a IA extrai automaticamente os placeholders e papeis dos signatarios.

{
  "text": "CONTRATO DE PRESTACAO DE SERVICOS\n\nPelo presente, Maria Silva (contratante) contrata Joao Santos (contratado) para...",
  "signers": [
    {"name": "Maria Silva", "phone": "+5541999999999"},
    {"name": "Joao Santos", "phone": "+5541988888888"}
  ]
}

Modo 3 — Template manual

Texto com placeholders no formato [NOME_DO_CAMPO].

{
  "template_text": "Eu, [NOME_CONTRATANTE], CPF [CPF_CONTRATANTE], contrato [NOME_CONTRATADO] para...",
  "signers": [
    {"name": "Maria", "phone": "+5541999999999", "role": "contratante"},
    {"name": "Joao", "phone": "+5541988888888", "role": "contratado"}
  ]
}

Campos comuns (todos os modos)

CampoTipoDescricao
signersarray obrigatorioSignatarios (name, phone/email, role)
subjectstring opcionalTitulo (inferido do template/IA)
fieldsobject opcionalValores para preencher placeholders ({"CAMPO": "valor"})
selfieboolean opcionalExigir selfie
icpboolean opcionalSolicitar ICP-Brasil
remindersinteger opcionalLembretes automaticos (0-5)
expiresstring opcionalExpiracao ("30d" ou ISO 8601)

Resposta (201)

{
  "id": "env_a1b2c3d4...",
  "status": "sent",
  "subject": "Contrato de Servicos",
  "template_mode": true,
  "ai_analyzed": true,
  "warnings": [],
  "signers": [
    {
      "id": "sgn_x1y2z3...",
      "name": "Maria Silva",
      "role": "contratante",
      "sign_url": "https://sign.riasistemas.com.br/sign/abc123...",
      "status": "sent"
    }
  ]
}

Nota: O campo warnings aparece quando ha papeis com campos pessoais sem signatario atribuido.

Gerar Contrato com IA

Use inteligencia artificial para gerar contratos completos com placeholders e papeis sugeridos.

POST /api/v2/generate API Key
Gera contrato juridico completo. Retorna texto com placeholders para revisao antes de enviar.

Body (JSON)

CampoTipoDescricao
typestring obrigatorioTipo do contrato
descriptionstring opcionalDescricao com detalhes (obrigatorio para tipo personalizado)

Tipos disponiveis

TipoDescricao
procuracao_simplesProcuracao simples
contrato_servicosContrato de prestacao de servicos
contrato_aluguelContrato de aluguel
contrato_compra_vendaContrato de compra e venda
declaracaoDeclaracao
autorizacaoAutorizacao
ndaAcordo de confidencialidade
reciboRecibo
contrato_emprestimoContrato de emprestimo
personalizadoTipo personalizado (descreva na descricao)

Exemplo

curl -X POST https://sign.riasistemas.com.br/api/v2/generate \
  -H "Authorization: Bearer rsk_sua_api_key" \
  -H "Content-Type: application/json" \
  -d '{"type": "contrato_servicos", "description": "Desenvolvimento de site institucional, valor R$5.000, prazo 30 dias"}'

Resposta (200)

{
  "name": "Contrato de Prestacao de Servicos",
  "template_text": "CONTRATO DE PRESTACAO DE SERVICOS\n\nPelo presente instrumento...\n[NOME_CONTRATANTE]...",
  "placeholders": {
    "NOME_CONTRATANTE": {"label": "Nome do Contratante", "auto": "name"},
    "CPF_CONTRATANTE": {"label": "CPF do Contratante", "auto": "cpf"},
    "VALOR": {"label": "Valor do Servico"}
  },
  "suggested_signers": [
    {"role": "contratante", "description": "Parte contratante", "placeholders": ["NOME_CONTRATANTE", "CPF_CONTRATANTE"]},
    {"role": "contratado", "description": "Prestador de servicos", "placeholders": ["NOME_CONTRATADO", "CPF_CONTRATADO"]}
  ]
}

Dica: Use o resultado com /api/v2/send-template (Modo 3) para enviar o contrato gerado.

POST /api/v2/templates/:id/edit API Key
Editar template existente usando linguagem natural. A IA aplica as alteracoes mantendo a estrutura.

Body (JSON)

CampoTipoDescricao
editstring obrigatorioDescricao da alteracao (ex: "Adicionar clausula de multa de 10%")

Resposta (200)

{
  "id": "tpl_a1b2c3d4...",
  "name": "Contrato de Servicos",
  "template_text": "...(texto atualizado)...",
  "placeholders": {...},
  "suggested_signers": [...],
  "change_summary": "Adicionada clausula 8 com multa de 10% por atraso."
}

Gerenciamento

Endpoints para listar, consultar, baixar e gerenciar envelopes e templates.

GET /api/v2/envelopes API Key
Listar envelopes com paginacao.
Query ParamTipoDefaultDescricao
limitinteger20Maximo de resultados
offsetinteger0Deslocamento para paginacao
GET /api/v2/envelopes/:id API Key
Detalhe completo do envelope: status, signatarios (com URLs de assinatura), documento e timestamps.

Resposta

{
  "id": "env_a1b2c3d4...",
  "status": "sent",
  "subject": "Contrato de Servicos",
  "created_at": "2026-04-15T12:00:00Z",
  "signers": [
    {
      "id": "sgn_x1y2z3...",
      "name": "Maria Silva",
      "phone": "+5541999999999",
      "role": "contratante",
      "status": "signed",
      "sign_url": "https://sign.riasistemas.com.br/sign/abc123...",
      "viewed_at": "2026-04-15T12:05:00Z",
      "signed_at": "2026-04-15T12:08:00Z"
    }
  ],
  "document": {
    "id": "doc_p1q2r3...",
    "filename": "contrato.pdf",
    "hash": "sha256:a1b2c3d4...",
    "signed_hash": "sha256:e5f6g7h8...",
    "pages": 5
  }
}
GET /api/v2/envelopes/:id/pdf API Key
Download do PDF assinado (selado com certificado, QR code e trilha de auditoria). Disponivel apenas quando status = completed.

Retorna o arquivo PDF diretamente (Content-Type: application/pdf).

POST /api/v2/envelopes/:id/remind API Key
Enviar lembrete para signatarios que ainda nao assinaram.

Resposta (200)

{
  "reminded": [
    {"name": "Joao Santos", "status": "sent", "channel": "whatsapp"}
  ]
}
DELETE /api/v2/envelopes/:id API Key
Cancelar envelope. Nao e possivel cancelar envelopes ja concluidos (completed).
GET /api/v2/templates API Key
Listar modelos de contrato salvos.
GET /api/v2/templates/:id API Key
Detalhe do template com texto completo, placeholders e papeis sugeridos.

Servidor MCP

O RIA Sign implementa o Model Context Protocol (MCP), permitindo que assistentes de IA como ChatGPT, Claude e outros clientes MCP enviem documentos para assinatura diretamente pela conversa.

O que e MCP?

O MCP e um protocolo padrao que conecta modelos de IA a servicos externos via JSON-RPC 2.0. O RIA Sign expoe ferramentas (tools) que qualquer cliente MCP pode chamar para criar, enviar e gerenciar documentos de assinatura.

Conexao

MetodoURLDescricao
POSThttps://sign.riasistemas.com.br/mcpJSON-RPC 2.0 — chamadas de ferramentas
GEThttps://sign.riasistemas.com.br/mcpSSE — Server-Sent Events

Autenticacao MCP

Use Authorization: Bearer rsk_... (API Key direta) ou um token obtido via OAuth 2.1. A autenticacao e necessaria apenas para tools/callinitialize e tools/list funcionam sem auth.

Protocolo

Versoes suportadas: 2025-11-25 (default) e 2025-03-26.

Exemplo — Inicializar

curl -X POST https://sign.riasistemas.com.br/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2025-03-26",
      "clientInfo": {"name": "MeuApp", "version": "1.0"}
    }
  }'

Exemplo — Listar ferramentas

curl -X POST https://sign.riasistemas.com.br/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

Exemplo — Chamar ferramenta

curl -X POST https://sign.riasistemas.com.br/mcp \
  -H "Authorization: Bearer rsk_sua_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "generate_contract",
      "arguments": {
        "type": "contrato_servicos",
        "description": "Site institucional, R$5000, 30 dias"
      }
    }
  }'

Ferramentas MCP (19)

Todas as ferramentas disponiveis via tools/call:

Envio

send_structured_contract
PREFERIDO quando o LLM redige o documento — recebe template_text + placeholders + suggested_signers prontos. Servidor pula analise IA. Mais rapido e deterministico.
send_document
Envia PDF existente para assinatura (aceita file_id, file_url ou file_base64)
upload_file
Upload reutilizavel (24h TTL) — retorna file_id para usar em send_document. Aceita multipart, file_url ou file_base64.
request_upload_url
Retorna URL pre-assinada para PUT direto (sem Authorization header). Util para ambientes sandbox que nao podem passar binarios pela tool call.
send_template
Envia usando template salvo (template_id)
send_contract_text
Envia texto puro de contrato (IA do servidor analisa). Use quando o texto vem de fonte externa, nao redigido pelo LLM cliente.

Inteligencia Artificial

generate_contract
Gera contrato juridico com IA (10 tipos)
analyze_contract
Analisa texto e extrai campos/roles (read-only)
edit_template
Edita template com instrucoes em linguagem natural

Gerenciamento

list_envelopes
Lista envelopes (filtro por status, paginacao)
get_envelope
Detalhes do envelope com signatarios e URLs
download_signed_pdf
URL de download do PDF assinado
cancel_envelope
Cancela envelope (nao pode cancelar concluidos)
send_reminder
Lembrete via WhatsApp para pendentes

Templates e Contatos

list_templates
Lista modelos de contrato salvos
get_template
Detalhe do modelo (texto, placeholders, roles)
save_template
Salva novo modelo de contrato
list_contacts
Contatos salvos (CRM)
get_usage
Uso atual do plano (docs enviados/limite)

Agent Skill — Authoring Playbook

O RIA Sign publica uma Skill oficial (formato Anthropic) que ensina assistentes de IA (Claude, ChatGPT) a redigir contratos com a estrutura correta para a tool send_structured_contract: como nomear placeholders, quando usar CEP+ViaCEP, regras de assinatura, anti-duplicacao, validacao de signatarios e preview obrigatorio antes do envio.

📘 Repositorio publico:
https://github.com/RIA-Sistemas/ria-sign-skill
raw.githubusercontent.com/.../SKILL.md

O que a Skill cobre

  • Prime Directive: minimizar campos de digitacao manual por signatario. Hierarquia: inline → auto → CEP+ViaCEP → shared → date picker → manual (ultimo recurso).
  • Placeholders: tipos (auto, type, input_type, shared), naming UPPER_SNAKE_CASE, regras de reuso.
  • Enderecos: padrao de 7 placeholders com CEP unico input + auto-fill ViaCEP. Comarca/foro derivada do 1º signatario.
  • Valores monetarios: 1 placeholder [VALOR] em formato "R$ X.XXX,XX (extenso)" — nunca separar numerico e por extenso.
  • Datas: auto:date (hoje, automatico) vs input_type:date (date picker do Flow).
  • Signatarios: minimo de partes por tipo de documento, ordem (sequencial vs paralelo), regra do remetente, testemunhas, representante legal, tripartite.
  • Pre-send safety: preview obrigatorio + confirmacao explicita antes de disparar WhatsApp irreversivel.
  • 4 exemplos gold-standard (locacao, recibo, procuracao, NDA bilateral) e 18 anti-patterns categorizados.

Como usar com seu cliente MCP

Clientes MCP modernos (Claude.ai, Claude Desktop, ChatGPT) podem carregar a Skill automaticamente quando o RIA Sign for instalado pelo diretorio oficial da Anthropic. Para uso manual ou em outros clientes, baixe o SKILL.md do repositorio publico e carregue como system context antes de pedir ao LLM para redigir um documento.

OAuth 2.1

Para clientes MCP (ChatGPT, Claude, etc.), o RIA Sign suporta OAuth 2.1 com PKCE. O usuario autoriza via telefone + OTP no WhatsApp — sem precisar da API Key.

Endpoints

MetodoPathDescricao
GET/oauth/authorizePagina de autorizacao (telefone + OTP ou API Key)
POST/oauth/authorizeSubmit de API Key (formulario)
POST/oauth/authorize-otpFluxo telefone + OTP (request/verify)
POST/oauth/tokenTroca codigo por access token
POST/oauth/registerRegistro dinamico de cliente (RFC 7591)

Descoberta (Well-Known)

URLDescricao
/.well-known/oauth-authorization-serverMetadata do servidor OAuth (RFC 8414)
/.well-known/oauth-protected-resourceMetadata do recurso protegido

Fluxo de Autorizacao

1. Cliente MCP chama /oauth/register (opcional — registro dinamico)
2. Redireciona usuario para /oauth/authorize?client_id=...&redirect_uri=...
3. Usuario informa telefone Recebe OTP no WhatsApp Digita codigo
4. Redireciona para redirect_uri com ?code=xxx
5. Cliente troca o codigo: POST /oauth/token access_token
6. Usa o token: Authorization: Bearer {access_token}

Exemplo — Registrar cliente

curl -X POST https://sign.riasistemas.com.br/oauth/register \
  -H "Content-Type: application/json" \
  -d '{"client_name": "MeuApp", "redirect_uris": ["https://meuapp.com/callback"]}'

// Resposta
{"client_id": "client_abc123...", "redirect_uris": ["https://meuapp.com/callback"]}

Exemplo — Trocar codigo por token

curl -X POST https://sign.riasistemas.com.br/oauth/token \
  -H "Content-Type: application/json" \
  -d '{
    "grant_type": "authorization_code",
    "code": "authcode_xxx...",
    "client_id": "client_abc123",
    "redirect_uri": "https://meuapp.com/callback",
    "code_verifier": "PKCE_VERIFIER_AQUI"
  }'

// Resposta
{
  "access_token": "rsk_...",
  "token_type": "bearer",
  "expires_in": 2592000
}

PKCE (S256)

Recomendado para seguranca. Envie code_challenge na autorizacao e code_verifier na troca do token. Metodo suportado: S256 (SHA-256 + base64url).

Webhooks

Receba notificacoes em tempo real sobre eventos do envelope. Configure o webhookUrl ao criar o envelope.

Eventos

EventoDescricao
envelope.sentEnvelope enviado para os signatarios
signer.viewedSignatario abriu o documento
signer.signedSignatario assinou (inclui channel: web ou whatsapp_flow)
signer.declinedSignatario recusou (inclui reason)
signer.reminderLembrete automatico enviado
envelope.completedTodos assinaram, PDF selado (inclui document_hash)

Payload

Header X-RiaSign-Event indica o tipo. Header X-RiaSign-Signature contem o HMAC-SHA256 para verificacao.

{
  "event": "signer.signed",
  "envelope_id": "env_a1b2c3d4...",
  "signer": {
    "name": "Maria Silva",
    "phone": "+5541999999999",
    "signed_at": "2026-04-15T14:43:06Z"
  },
  "channel": "whatsapp_flow",
  "timestamp": "2026-04-15T14:43:06Z"
}

Exemplo — envelope.completed

{
  "event": "envelope.completed",
  "envelope_id": "env_a1b2c3d4...",
  "document_hash": "sha256:e5f6g7h8...",
  "signers": [
    {"name": "Maria Silva", "signed_at": "2026-04-15T14:43:06Z"},
    {"name": "Joao Santos", "signed_at": "2026-04-15T15:02:18Z"}
  ],
  "timestamp": "2026-04-15T15:02:18Z"
}

Verificacao de Assinatura

const crypto = require('crypto');
const signature = crypto
  .createHmac('sha256', suaApiKey)
  .update(requestBody)
  .digest('hex');

if (signature === headers['x-riasign-signature']) {
  // Webhook autentico
}

Retry

Em caso de falha (timeout ou status >= 400), o webhook e reenviado com backoff:

  • 1a tentativa: imediato
  • 2a tentativa: +2 segundos
  • 3a tentativa: +5 segundos

Codigos de Erro

A API retorna erros em JSON com o campo error:

{"error": "Envelope not found"}
StatusDescricao
400Parametros invalidos ou faltando
401API Key ausente ou invalida
402Limite de uso atingido (documentos com pagamento pendente)
403API Key desativada
404Recurso nao encontrado
502Falha na analise de IA (tente novamente)

IDs

Todos os IDs usam prefixos para identificacao:

PrefixoRecurso
env_Envelope
doc_Documento
sgn_Signatario
tpl_Template
key_API Key

Exemplos de Integracao

Node.js

const fs = require('fs');

const form = new FormData();
form.append('file', new Blob([fs.readFileSync('contrato.pdf')]), 'contrato.pdf');
form.append('data', JSON.stringify({
  subject: 'Contrato de Servicos',
  signers: [{name: 'Maria Silva', phone: '+5541999999999'}],
  selfie: true,
  webhookUrl: 'https://meusite.com/webhook',
}));

const res = await fetch('https://sign.riasistemas.com.br/api/v2/send', {
  method: 'POST',
  headers: {'Authorization': 'Bearer rsk_sua_api_key'},
  body: form,
});

const envelope = await res.json();
console.log('Envelope criado:', envelope.id);
// Signatarios recebem no WhatsApp automaticamente

Python

import requests, json

with open('contrato.pdf', 'rb') as f:
    res = requests.post(
        'https://sign.riasistemas.com.br/api/v2/send',
        headers={'Authorization': 'Bearer rsk_sua_api_key'},
        files={'file': ('contrato.pdf', f, 'application/pdf')},
        data={'data': json.dumps({
            'subject': 'Contrato de Servicos',
            'signers': [{'name': 'Maria Silva', 'phone': '+5541999999999'}],
            'selfie': True,
        })}
    )

envelope = res.json()
print(f'Envelope criado: {envelope["id"]}')

MCP (Claude / ChatGPT)

Configure o RIA Sign como servidor MCP no seu cliente:

// claude_desktop_config.json (exemplo)
{
  "mcpServers": {
    "ria-sign": {
      "url": "https://sign.riasistemas.com.br/mcp",
      "transport": "streamable-http"
    }
  }
}

Depois, basta pedir ao assistente: "Gere um contrato de servicos e envie para Maria Silva (+5541999999999)".

RIA Sign — Assinatura Eletronica com Validade Juridica

Inicio · Painel · Precos · Seguranca · Termos · Privacidade