Transloadit
Preços
  • Uploads de arquivos
  • Importação de arquivos
  • Processamento em lote (English)
  • Codificação de vídeo
  • Codificação de áudio
  • Processamento de imagens
  • Processamento de documentos
  • Inteligência artificial
  • Filtragem de arquivos e segurança
  • Catalogação de mídia
  • Compressão de arquivos
  • Avaliação de código
  • Exportação de arquivos
  • Smart CDN
  • Ver todos os serviços
  • Explore integrações (English)
  • Explore demos ao vivo (English)
  • Uppy (English)
  • TransloaditKit (English)
  • Android SDK (English)
  • Node.js SDK (English)
  • Python SDK (English)
  • Ruby SDK (English)
  • Go SDK (English)
  • Java SDK (English)
  • PHP SDK (English)
  • Zapier (English)
  • MCP Server (English)
  • Transloadit CLI (English)
  • Terraform (English)
  • Essenciais
  • Boas práticas
  • Perguntas frequentes (English)
  • Robots (English)
  • API
  • Formatos (English)
  • Crie seu primeiro app
  • Sobre (English)
  • Comparações (English)
  • Código aberto (English)
  • Depoimentos (English)
  • Vagas (English)
  • Segurança (English)
  • Publicações (English)
  • Notícias para devs (English)
  • Dicas para devs (English)
  • Imprensa (English)
  • Pesquisa (English)
  • Estudos de caso (English)
  • Soluções (English)
  • Guias (English)
  • Glossário (English)
  • Jurídico (English)
  • Ferramentas (English)
  • Ajudando a Coursera a levar educação a milhões de pessoas no mundo todo (English)
  • Suporte da Transloadit
  • Suporte a código aberto (English)
  • Acordo de nível de serviço (English)
EssenciaisRobotsEN (English)Perguntas frequentesEN (English)APIFormatosEN (English)Boas práticas
Tópicos
  • Endpoints
  • Códigos de resposta
  • Autenticação
  • Webhooks
  • Metadados
  • Segurança da API
  • Limite de taxa
  • Filas
  • Uploads retomáveis
Autenticação
  • Criar um token bearer
  • Criar uma nova Auth Key
  • Recuperar lista de Auth Keys
  • Recuperar escopos da Auth Key
  • Editar uma Auth Key
  • Excluir uma Auth Key
  • Recuperar o segredo de uma Auth Key
Assemblies
  • Criar uma nova Assembly
  • Obter um Assembly Status
  • Criar uma Assembly com um ID fornecido
  • Transmitir alterações da Assembly em tempo real
  • Cancelar uma Assembly em execução
  • Reexecutar uma Assembly
  • Recuperar lista de Assemblies
  • Resposta do Assembly Status
  • Recuperar estatísticas de Assemblies
Webhooks
  • Recuperar Assembly Notifications
  • Reenviar Assembly Notification
Faturamento
  • Obter a fatura de um mês
Filas
  • Obter as vagas prioritárias de Jobs em uso no momento
  • Obter estatísticas de vagas prioritárias de Job
Uploads retomáveis
  • Descobrir os recursos do tus
  • Criar um upload tus
  • Obter o offset de um upload tus
  • Enviar bytes de arquivo tus
  • Encerrar um upload tus
  • Baixar um upload tus
Credenciais de Template
  • Criar uma nova credencial de Template
  • Recuperar uma credencial de Template
  • Editar uma credencial de Template
  • Excluir uma credencial de Template
  • Obter lista de credenciais de Template
  • Recuperar tipos de credenciais de Template
Templates
  • Criar um novo Template
  • Recuperar um Template
  • Editar um Template
  • Excluir um Template
  • Recuperar lista de Templates
Gerenciamento de Ativos Digitais
  • Mover ou renomear um ativo de DAM alpha
  • Excluir um ativo do DAM alpha
  • Mover ativos do DAM em massa alpha
  • Excluir ativos do DAM em massa alpha
  • Mover um arquivo ou uma pasta de armazenamento alpha
  • Obter um ativo de armazenamento
  • Listar ativos de armazenamento

Webhooks

Configurar Webhooks

Defina notify_url nas suas Assembly Instructions, no mesmo nível de steps. Assim que a Assembly atingir um estado terminal, a Transloadit envia um POST HTTP para essa URL.

Qualquer status a partir de 200 até, mas sem incluir, 300 confirma a entrega. Redirecionamentos e erros de cliente ou de servidor são tratados como falhas. Por padrão, a Transloadit tenta novamente as falhas 5 vezes, com um fator exponencial de 1,97.

Limitar o payload da Notification

Por padrão, um Webhook inclui o Assembly Status completo. Defina notification_payload como um array contendo qualquer combinação destes filtros suportados:

  • without_params: os campos brutos de instrução da Assembly de nível superior params, template e merged_params são omitidos.
  • without_result_meta_data: meta é omitido de cada arquivo em results.
  • without_results: o objeto results de nível superior é omitido.
  • without_upload_meta_data: meta é omitido de cada arquivo em uploads.
  • without_uploads: o array uploads de nível superior é omitido.

Os replays de Notification reutilizam os filtros fornecidos na requisição original da Assembly. Filtros definidos apenas em um Template não são preservados no replay, então um replay pode incluir dados omitidos da Notification inicial. Forneça notification_payload na requisição original da Assembly quando os replays precisarem usar os mesmos filtros.

Verificar a assinatura

Os Webhooks de Assembly usam o media type application/x-www-form-urlencoded. O campo transloadit contém o Assembly Status JSON serializado exato, e o campo signature contém o HMAC hexadecimal em minúsculas desse conteúdo.

Para verificar um Webhook:

  1. Leia os campos de formulário transloadit e signature sem modificar a string do payload.
  2. Calcule um digest hexadecimal HMAC-SHA1 sobre a string transloadit exata, usando o Auth Secret confiável selecionado conforme descrito abaixo.
  3. Compare o digest calculado com signature usando uma comparação timing-safe.
  4. Faça o parse de transloadit como JSON somente depois que as assinaturas coincidirem.

A Notification inicial de uma Assembly usa o Auth Secret da Auth Key que autenticou a criação dela, inclusive quando ela foi criada por um Assembly Replay. Os replays de Notification primeiro buscam a Auth Key registrada no Assembly Status como api_auth_key_id. Se essa chave não estiver registrada, não puder ser resolvida, tiver sido excluída, ou se a busca por ela falhar, o replay de Notification usa, em vez disso, o Auth Secret de quem fez a chamada autenticada do replay.

Os Assembly Replays mantêm o api_auth_key_id histórico da Assembly pai. Por exemplo, se a chave A criar uma Assembly e a chave B fizer o replay dela, a Notification inicial da nova Assembly é assinada com o segredo de B. Fazer o replay dessa Notification pode usar o segredo de A, mesmo quando B chama os dois endpoints de replay e ambas as chaves continuam ativas. Mantenha disponíveis para o seu verificador os segredos aplicáveis da Assembly pai e da criação por replay; não presuma que toda entrega de uma mesma Assembly usa o mesmo segredo.

Selecione os segredos de verificação a partir de configuração confiável no servidor, para o Workspace e a Assembly esperados, e não a partir de campos do payload não verificado. Quando mais de um segredo configurado for aplicável, aceite a requisição somente se a assinatura dela corresponder a um desses segredos confiáveis. Se nenhum corresponder, rejeite a requisição; não pule a verificação para aceitar um replay.

Diferentemente das assinaturas atuais de requisições da API, o signature do Webhook é um digest sha1 sem prefixo, por compatibilidade retroativa. Trate o payload como não confiável e rejeite a requisição quando qualquer um dos dois campos estiver ausente, quando a assinatura estiver malformada ou quando a comparação falhar.

Use um dos helpers de verificação dos nossos SDKs quando houver um disponível. Se você mesmo implementar a verificação, não reserialize o JSON já parseado antes de calcular o HMAC: os espaços em branco e a ordem das chaves do objeto fazem parte da sequência de bytes assinada.

import { createHmac, timingSafeEqual } from 'node:crypto'

// authSecret must come from trusted server-side configuration.
function verifyTransloaditWebhook({ authSecret, payload, signature }) {
  if (typeof payload !== 'string' || typeof signature !== 'string') return false
  if (!/^[0-9a-f]+$/.test(signature)) return false

  const expected = createHmac('sha1', authSecret).update(payload, 'utf8').digest()
  if (signature.length !== expected.length * 2) return false
  const received = Buffer.from(signature, 'hex')

  return received.length === expected.length && timingSafeEqual(received, expected)
}
Página anterior ← AutenticaçãoPróxima página Metadados →
Falar com o suporte⁠

TransloaditVerificando status…

Produto

  • Serviços
  • Preços
  • Demonstrações EN (English)
  • Ferramentas EN (English)
  • Segurança EN (English)
  • Suporte

Empresa

  • Sobre EN (English)/Imprensa EN (English)
  • Blog EN (English)/Vagas EN (English)
  • Comparações EN (English)/Matriz de conformidade EN (English)
  • Pesquisa EN (English)
  • Código aberto EN (English)
  • Soluções EN (English)

Documentação

  • Primeiros passos
  • Transcodificação EN (English)
  • Perguntas frequentes EN (English)
  • API
  • Guias EN (English)/Dicas para devs EN (English)
  • Formatos suportados EN (English)

Mais

  • Status da plataforma⁠
  • Fórum da comunidade⁠
  • StackOverflow⁠
  • Uppy EN (English)
  • tus⁠

© 2009–2026 Transloadit-II GmbH

Privacidade EN (English)Termos EN (English)Aviso legal EN (English)
EnglishDeutschEspañolPortuguês (Brasil)