Guia de Início Rápido ===================== Este guia mostra o caminho completo desde a criação do tenant até a assinatura do primeiro documento. 1. Solicitar um Tenant ---------------------- Entre em contato com a equipe Rubrix para solicitar a criação do seu tenant. Você receberá um e-mail com as credenciais do usuário **Owner**. A partir da interface web do Rubrix, o Owner pode convidar outros usuários e atribuir papéis (``OWNER``, ``ADMIN``, ``USER``). 2. Fazer Login -------------- Autentique-se para obter um token JWT: .. code-block:: http POST /auth/login Content-Type: application/json .. code-block:: json { "email": "owner@suaempresa.com", "password": "sua-senha" } **Resposta (200):** .. code-block:: json { "token": "eyJ0eXAiOiJKV1Qi...", "expires_in": 3600 } Use o token retornado em todas as requisições subsequentes: .. code-block:: http Authorization: Bearer eyJ0eXAiOiJKV1Qi... Para verificar que a autenticação está funcionando: .. code-block:: bash curl --location 'https://rubrix.lat/core/api/auth/me' \ --header 'Authorization: Bearer ' 3. Criar uma API Key (opcional) ------------------------------- Para integrações via aplicação, crie uma API Key que pode ser usada **como alternativa ao JWT** em qualquer endpoint autenticado: .. code-block:: http POST /api-keys Content-Type: application/json Authorization: Bearer {token} .. code-block:: json { "name": "integracao-erp", "expires_at": "2027-12-31T23:59:59Z" } A API Key retornada deve ser enviada no header ``X-Api-Key``. Exemplo: .. code-block:: bash curl --location 'https://rubrix.lat/core/api/auth/me' \ --header 'X-Api-Key: ' .. warning:: Guarde o valor da API Key retornado. Ele **não será exibido novamente**. .. tip:: Ambos os métodos são intercambiáveis: onde a documentação mostra ``Authorization: Bearer {token}``, você pode substituir por ``X-Api-Key: {apiKey}``. 4. Criar um Fluxo de Assinatura -------------------------------- Envie o documento codificado em Base64 e defina os signatários: .. code-block:: http POST /flow/init Content-Type: application/json Authorization: Bearer {token} .. code-block:: json { "file_name": "contrato_servicos.pdf", "document": "JVBERi0xLjQK...", "webhook": "https://api.suaempresa.com/callback", "pools": [ { "alias": "Jurídico", "priority": 1, "signers": [ { "email": "advogado@suaempresa.com", "document": "12345678900" } ] }, { "alias": "Diretoria", "priority": 2, "signers": [ { "email": "diretor@suaempresa.com", "document": "98765432100" } ] } ] } **Resposta (201):** .. code-block:: json { "flowId": "550e8400-e29b-41d4-a716-446655440000", "status": "WAITING", "currentSigners": [ { "document": "12345678900", "email": "advogado@suaempresa.com", "signUrl": "https://rubrix.lat/sign/..." } ] } Os signatários do pool com ``priority: 1`` recebem o e-mail automaticamente. Ao concluírem, os signatários do ``priority: 2`` são notificados. .. tip:: Configure o campo ``webhook`` para receber o documento final assinado automaticamente, permitindo integração direta com seu ERP, CRM ou ferramenta de automação. 5. Acompanhar o Status ----------------------- .. code-block:: http GET /flow/status/{flowId} Authorization: Bearer {token} **Resposta (200):** .. code-block:: json { "flow_id": "550e8400-e29b-41d4-a716-446655440000", "status": "WAITING", "current_signers": ["12345678900"], "document": "https://s3.rubrix.local/temp-url..." } Valores possíveis para ``status``: ``CREATED``, ``WAITING``, ``SIGNED``. 6. Receber o Documento Final via Webhook ----------------------------------------- Quando todas as assinaturas forem concluídas, a API envia automaticamente o documento assinado para a URL de webhook configurada: .. code-block:: http POST {sua-url-de-webhook} Content-Type: application/pdf X-Flow-Id: 550e8400-e29b-41d4-a716-446655440000 [binário do PDF assinado]