Atualizações de Produtos

Firma.dev API v1.9.0: Verificação OTP, Substituição de Documento de Modelo e Atualizações de Esquema

Gráfico de tema escuro mostrando "API v1.9.0" em negrito branco com sublinhado roxo e ícones de segurança, atualizações e desenvolvimento

v1.9.0 é uma versão focada construída sobre a v1.8.0 sem alterações disruptivas. Se está integrado hoje, nada fica quebrado. Duas novas funcionalidades estão agora disponíveis quando precisar delas: verificação OTP de Email do Assinante e Substituição de Documento de Modelo.

O que há na v1.9.0

O que

Tipo

Detalhes

Verificação OTP de Email do Assinante

Nova funcionalidade + campo de esquema

require_otp_verification no pedido de assinatura, espaço de trabalho e configurações da empresa

Substituição de Documento de Modelo

Nova funcionalidade + endpoint

POST /templates/{id}/replace-document

Ambas as alterações são aditivas. Nenhum campo foi removido, nenhum comportamento de endpoint foi alterado, nenhuma migração é necessária da v1.8.0.

Novo: Verificação OTP de Email do Assinante

A configuração require_otp_verification adiciona um passo de verificação de identidade antes de um assinante poder aceder a um documento. Quando ativada, os assinantes veem uma tela de verificação ao abrir o seu link de assinatura, recebem um código de 6 dígitos no seu email, e devem inseri-lo antes do documento carregar.

A configuração é um campo de estado triplo: true, false, ou null. Nulo significa herdar do nível acima. A cadeia de subscrição executa-se por empresa → espaço de trabalho → modelo → pedido de assinatura, sendo o pedido de assinatura o de maior prioridade.

Nível

Campo

Comportamento

Empresa

require_otp_verification

Padrão básico para todos os espaços de trabalho

Configurações do Espaço de Trabalho

require_otp_verification

Sobrescreve a empresa; null herda da empresa

Modelo

require_otp_verification

Sobrescreve o espaço de trabalho; null herda do espaço de trabalho

Configurações de Pedido de Assinatura

require_otp_verification

Maior prioridade; null herda do modelo/espaço de trabalho

Ativar OTP ao nível do espaço de trabalho

PATCH /workspace-settings/{workspace_id}
{
  "settings": {
    "require_otp_verification": true
  }
}
PATCH /workspace-settings/{workspace_id}
{
  "settings": {
    "require_otp_verification": true
  }
}
PATCH /workspace-settings/{workspace_id}
{
  "settings": {
    "require_otp_verification": true
  }
}

Todos os pedidos de assinatura neste espaço de trabalho agora requerem OTP por padrão.

Sobrescrever OTP desligado para um pedido de assinatura específico

PATCH /signing-requests/{id}
{
  "settings": {
    "require_otp_verification": false
  }
}
PATCH /signing-requests/{id}
{
  "settings": {
    "require_otp_verification": false
  }
}
PATCH /signing-requests/{id}
{
  "settings": {
    "require_otp_verification": false
  }
}

Este pedido ignora OTP independentemente das configurações do espaço de trabalho.

Alterações no Esquema

Objeto

Campo

Tipo

SigningRequestSettings

require_otp_verification

boolean | null

WorkspaceSettings

require_otp_verification

boolean | null

Novo: Substituir Documento de Modelo

O novo endpoint POST /templates/{id}/replace-document permite trocar o PDF subjacente num modelo enquanto mantém todas as posições de campo, atribuições de assinante e configurações intactas.

O documento de substituição deve satisfazer dois requisitos de validação: mesma contagem de páginas que o original e dimensões da página dentro de uma tolerância de 1pt. Estas restrições existem para garantir que as posições dos campos permanecem válidas após a troca. Se qualquer uma das verificações falhar, a API devolve um 400 com um erro claro.

const fs = require("fs");

const base64PDF = fs.readFileSync("./updated-contract.pdf").toString("base64");

const response = await fetch(
  `https://api.firma.dev/v1/templates/${templateId}/replace-document`,
  {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${apiKey}`,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({ document: base64PDF })
  }
);

const updatedTemplate = await response.json();
const fs = require("fs");

const base64PDF = fs.readFileSync("./updated-contract.pdf").toString("base64");

const response = await fetch(
  `https://api.firma.dev/v1/templates/${templateId}/replace-document`,
  {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${apiKey}`,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({ document: base64PDF })
  }
);

const updatedTemplate = await response.json();
const fs = require("fs");

const base64PDF = fs.readFileSync("./updated-contract.pdf").toString("base64");

const response = await fetch(
  `https://api.firma.dev/v1/templates/${templateId}/replace-document`,
  {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${apiKey}`,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({ document: base64PDF })
  }
);

const updatedTemplate = await response.json();

Casos de erro:

Status

Causa

400

Incompatibilidade de contagem de páginas

400

Incompatibilidade das dimensões da página (excede tolerância de 1pt)

400

PDF inválido ou corrompido

Novos Endpoints

Método

Caminho

Descrição

POST

/templates/{id}/replace-document

Substituir PDF de modelo preservando todas as posições de campo

Atualizando da v1.8.0

Nenhuma ação necessária. A checklist:

  • Nenhum campo removido de qualquer objeto existente

  • Nenhuma alteração de comportamento para endpoints existentes

  • require_otp_verification por padrão é null (herda), então as integrações existentes não são afetadas até que a defina explicitamente

  • POST /templates/{id}/replace-document é um novo endpoint, não uma substituição de nada

A documentação completa da API está em docs.firma.dev. O changelog completo da API está em docs.firma.dev/guides/api-changelog.

Obtenha sua chave de API e comece a construir gratuitamente, sem necessidade de cartão de crédito.

  1. Cabeçalho

Imagem de Fundo

Pronto para adicionar assinaturas eletrónicas à sua aplicação?

Comece gratuitamente. Não é necessário cartão de crédito. Pague apenas €0,029 por envelope quando estiver pronto para começar ao vivo.

Imagem de Fundo

Pronto para adicionar assinaturas eletrónicas à sua aplicação?

Comece gratuitamente. Não é necessário cartão de crédito. Pague apenas €0,029 por envelope quando estiver pronto para começar ao vivo.

Imagem de Fundo

Pronto para adicionar assinaturas eletrónicas à sua aplicação?

Comece gratuitamente. Não é necessário cartão de crédito. Pague apenas €0,029 por envelope quando estiver pronto para começar ao vivo.