Exam passed

Sent every time a student passes an exam. The event is prova.aprovado (exam.approved in payload version 2).

Warning

Payload version 1 is deprecated and receives fixes only. New webhooks use payload version 3, the default.

Example body

{
  "event": {
    "produto": {
      "id": 311,
      "nome": "Curso de Fotografia",
      "oferta_url": "string",
      "ordem": 0,
      "vitrine": {
        "id": 0,
        "nome": "string",
        "ordem": 0
      }
    },
    "prova": {
      "id": 57,
      "nota_minima": 70,
      "produto_id": 311,
      "titulo": "string"
    },
    "resultado": {
      "id": 9031,
      "acertos": 8,
      "erros": 2,
      "nota_final": 80
    },
    "usuario": {
      "id": 1042,
      "cargo": "string",
      "celular": "string",
      "comecou_em": "2026-09-29T12:00:00-03:00",
      "criado_em": "2026-09-29T12:00:00-03:00",
      "doc": "string",
      "email": "[email protected]",
      "gratis": false,
      "login_auto": "https://example.com",
      "login_crstk": "string",
      "nome": "Maria Souza",
      "nome_empresa": "string",
      "pontos": 0,
      "tamanho_empresa": "string",
      "ultimo_acesso_em": "2026-09-29T12:00:00-03:00",
      "utm": {
        "adcampaign": "string",
        "adid": "string",
        "fbclid": "string",
        "gclid": "string",
        "groupid": "string",
        "page_name": "string",
        "utm_content": "string",
        "utm_medium": "string",
        "utm_source": "string",
        "utm_term": "string"
      }
    }
  },
  "event_type": "prova.aprovado",
  "event_id": "01K5QW7M2Z3Y4X5W6V7U8T9S0R"
}

Fields

FieldTypeRequiredDescription
eventobjectyes
event.produtoobjectyesThe product (course) the event is about, with its showcase.
event.produto.idintegeryes
event.produto.nomestringyes
event.produto.oferta_urlstring | nullyesSales page shown to students without access.
event.produto.ordeminteger | nullyes
event.produto.vitrineobjectyesThe showcase the product belongs to.
event.produto.vitrine.idinteger | nullyes
event.produto.vitrine.nomestring | nullyes
event.produto.vitrine.ordeminteger | nullyes
event.provaobjectyesThe exam the result belongs to.
event.prova.idintegeryes
event.prova.nota_minimanumber | nullyesThe minimum grade that applied to this attempt.
event.prova.produto_idintegeryes
event.prova.titulostring | nullyes
event.resultadoobjectyesThe finished attempt.
event.resultado.idintegeryes
event.resultado.acertosintegeryesQuestions answered correctly.
event.resultado.errosintegeryesQuestions answered wrong.
event.resultado.nota_finalnumberyes
event.usuarioobjectyesThe student the event is about. tamanho_empresa, nome_empresa, cargo and utm are present only when the school enables the extra student fields.
event.usuario.idintegeryes
event.usuario.cargostringno
event.usuario.celularstring | nullyesMobile phone.
event.usuario.comecou_emstring | nullyesFirst access.
event.usuario.criado_emstring | nullyes
event.usuario.docstring | nullyesDocument (CPF).
event.usuario.emailstring | nullyes
event.usuario.gratisbooleanyesWhether the student has free access.
event.usuario.login_autostringyesLink that signs the student in when opened. Treat it as a password.
event.usuario.login_crstkstringyesThe sign-in token used by login_auto.
event.usuario.nomestring | nullyes
event.usuario.nome_empresastringno
event.usuario.pontosinteger | nullyesGamification points.
event.usuario.tamanho_empresastringno
event.usuario.ultimo_acesso_emstring | nullyesLast access; the first access when there is no later one.
event.usuario.utmobjectnoAttribution captured at sign-up. Empty strings when unknown.
event.usuario.utm.adcampaignstringno
event.usuario.utm.adidstringno
event.usuario.utm.fbclidstringno
event.usuario.utm.gclidstringno
event.usuario.utm.groupidstringno
event.usuario.utm.page_namestringno
event.usuario.utm.utm_contentstringno
event.usuario.utm.utm_mediumstringno
event.usuario.utm.utm_sourcestringno
event.usuario.utm.utm_termstringno
event_typestringyesAlways prova.aprovado.
event_idstringyesUnique id of the delivery (ULID). Retries of the same delivery keep it, so use it to ignore duplicates.

Your endpoint answers with any 2xx status to confirm the delivery. See Deliveries and retries.

On this page