Ir para o conteúdo

Evento recording.available

recording.available é enviado quando uma gravação de chamada fica pronta para download. A versão atual do contrato é 1.

Ele é independente de call.completed: uma chamada pode ser concluída antes de a gravação estar disponível. Não assuma que os dois eventos serão entregues juntos, nem em uma ordem específica.

Correlacione a gravação com a chamada

Use data.call.id para associar este evento ao evento call.completed da mesma chamada. Os dois usam o mesmo identificador público de chamada.

Envelope

Campo Tipo Presença Descrição
event string obrigatório Sempre recording.available.
eventId string obrigatório Identificador estável do evento lógico. Use-o para deduplicação de webhooks.
version integer obrigatório Versão do contrato: 1.
occurredAt string obrigatório Data/hora em que a gravação ficou disponível, em ISO 8601 UTC.
id integer obrigatório Identificador numérico da empresa na Moonu.
data object obrigatório Contêiner dos dados do evento.
data.call object obrigatório Referência pública da chamada associada.
data.call.id string obrigatório Identificador público da chamada. É igual a call.completed.data.call.id para a mesma chamada.
data.recording object obrigatório Informações para baixar a gravação.
data.recording.url string obrigatório URL temporária para download da gravação.
data.recording.expiresAt string obrigatório Data/hora de expiração desta URL, em ISO 8601 UTC.
data.recording.contentType string obrigatório Tipo MIME do arquivo disponível; atualmente audio/mpeg.

URL temporária da gravação

data.recording.url dá acesso temporário ao download da gravação. A gravação permanece armazenada de forma privada e sua aplicação não precisa de credenciais AWS para usar essa URL.

A URL atualmente vale por 4 horas a partir de sua geração. Consulte sempre data.recording.expiresAt, pois ele informa o prazo daquela URL específica.

Não trate a URL como permanente

Baixe ou processe a gravação antes de expiresAt. Não persista a URL como um link permanente. A retenção da gravação é uma política separada da validade da URL.

Retentativas e idempotência

Como nos demais webhooks Moonu, uma mesma entrega pode ser repetida. Use eventId para deduplicar o evento.

Em uma nova tentativa de recording.available, a Moonu pode gerar uma nova data.recording.url e um novo data.recording.expiresAt para que o download continue disponível. O eventId, occurredAt e data.call.id continuam representando o mesmo evento lógico.

Não use a URL como identificador de evento ou de gravação.

Consulte Entrega e autenticação para validar a assinatura e tratar retentativas.

Exemplo

Exemplo ilustrativo; a URL abaixo não é uma URL de produção:

{
  "event": "recording.available",
  "eventId": "evt_8b9c4f2d-1a65-4ef5-9b5e-1dd120d6c45b",
  "version": 1,
  "occurredAt": "2026-08-28T15:31:59Z",
  "id": 1031676,
  "data": {
    "call": {
      "id": "1787331761.0"
    },
    "recording": {
      "url": "https://example.com/recordings/temporary-download-url",
      "expiresAt": "2026-08-28T19:31:59Z",
      "contentType": "audio/mpeg"
    }
  }
}