Event Types

Hermon emits real-time events for contact lifecycle events, contract signing, and payments. Below are the schemas and examples for each event type.

Contact Events

contact.createdFired when a new contact (lead) is created in Hermon.
FieldTypeDescription
contact_idstringUUID of the contact
first_namestringFirst name of the contact
last_namestring | nullLast name of the contact
emailstringEmail address of the contact
phone_e164string | nullPhone number in E.164 format
sourcestringSource of the contact (e.g. LANDING_PAGE, CALENDLY)
created_atstringISO 8601 creation timestamp
updated_atstringISO 8601 last update timestamp

Example Payload

json
{
  "event_type": "contact.created",
  "event_id": "evt_01j9abc101",
  "org_id": "org_2abc",
  "created_at": "2026-04-08T12:00:00.000Z",
  "data": {
    "contact_id": "e464122e-a60d-4209-851e-b169211523bc",
    "first_name": "John",
    "last_name": "Smith",
    "email": "john@example.com",
    "phone_e164": "+14155552671",
    "source": "LANDING_PAGE",
    "created_at": "2026-04-08T12:00:00.000Z",
    "updated_at": "2026-04-08T12:00:00.000Z"
  }
}
contact.updatedFired when an existing contact details or attributes are updated.
FieldTypeDescription
contact_idstringUUID of the contact
first_namestringFirst name of the contact
last_namestring | nullLast name of the contact
emailstringEmail address of the contact
phone_e164string | nullPhone number in E.164 format
sourcestringSource of the contact (e.g. LANDING_PAGE, CALENDLY)
created_atstringISO 8601 creation timestamp
updated_atstringISO 8601 last update timestamp

Example Payload

json
{
  "event_type": "contact.updated",
  "event_id": "evt_01j9abc102",
  "org_id": "org_2abc",
  "created_at": "2026-04-08T12:05:00.000Z",
  "data": {
    "contact_id": "e464122e-a60d-4209-851e-b169211523bc",
    "first_name": "John",
    "last_name": "Smith",
    "email": "john.updated@example.com",
    "phone_e164": "+14155552671",
    "source": "LANDING_PAGE",
    "created_at": "2026-04-08T12:00:00.000Z",
    "updated_at": "2026-04-08T12:05:00.000Z"
  }
}

Contract Events

contract.signedFired when a client signs a contract.

Top-level Fields

FieldTypeDescription
contract_idstringUUID of the contract
contract_typestringContract type (e.g. STANDARD)
total_valuenumber | nullTotal contract value in major currency units
currencystringISO 4217 currency code (e.g. USD)
statusstringCurrent contract status (e.g. SIGNED)
signed_atstringISO 8601 timestamp of signing
sent_atstring | nullISO 8601 timestamp of when the contract was sent
created_atstringISO 8601 timestamp of contract creation
leadobject
FieldTypeDescription
idstringUUID of the lead
first_namestringLead's first name
last_namestringLead's last name
full_namestringConcatenated first + last name
emailstringLead's email address
phone_e164string | nullPhone number in E.164 format
sourcestringLead source enum (e.g. LANDING_PAGE)
programobject
FieldTypeDescription
idstringUUID of the program
namestringProgram display name
pricenumberProgram price in major currency units
payment_typestringPIF, INSTALMENT, SUBSCRIPTION, etc.
billing_intervalstring | nullBilling cycle — null for one-time payments
subscriptionobject | null
FieldTypeDescription
idstringUUID of the subscription
billing_intervalstringBilling cycle (e.g. MONTHLY, WEEKLY)
amount_per_cyclenumberAmount charged per cycle in major currency units
currencystringISO 4217 currency code
statusstringSubscription status (e.g. ACTIVE, CANCELLED)
payment_providerstringPayment provider (e.g. STRIPE)
billing_cycles_paidnumberNumber of billing cycles successfully charged
total_collectednumberTotal amount collected so far in major currency units
current_period_startstring | nullISO 8601 start of current billing period
current_period_endstring | nullISO 8601 end of current billing period
next_billing_datestring | nullISO 8601 date of the next scheduled charge
started_atstring | nullISO 8601 timestamp of when the subscription started

Example Payload

json
{
  "event_type": "contract.signed",
  "event_id": "evt_01j9abc123",
  "org_id": "org_2abc",
  "created_at": "2026-04-08T12:00:00.000Z",
  "data": {
    "contract_id": "uuid",
    "contract_type": "STANDARD",
    "total_value": 5000.00,
    "currency": "USD",
    "status": "SIGNED",
    "signed_at": "2026-04-08T12:00:00.000Z",
    "sent_at": "2026-04-08T11:00:00.000Z",
    "created_at": "2026-04-08T10:00:00.000Z",
    "lead": {
      "id": "uuid",
      "first_name": "John",
      "last_name": "Smith",
      "full_name": "John Smith",
      "email": "john@example.com",
      "phone_e164": "+14155552671",
      "source": "LANDING_PAGE"
    },
    "program": {
      "id": "uuid",
      "name": "12-Week Coaching",
      "price": 5000.00,
      "payment_type": "PIF",
      "billing_interval": null
    },
    "subscription": {
      "id": "uuid",
      "billing_interval": "MONTHLY",
      "amount_per_cycle": 1500.00,
      "currency": "USD",
      "status": "ACTIVE",
      "payment_provider": "STRIPE",
      "billing_cycles_paid": 1,
      "total_collected": 1500.00,
      "current_period_start": "2026-04-08T12:00:00.000Z",
      "current_period_end": "2026-05-08T12:00:00.000Z",
      "next_billing_date": "2026-05-08T12:00:00.000Z",
      "started_at": "2026-04-08T12:00:00.000Z"
    }
  }
}

Payment Events

payment.paidFired when a payment is marked as paid.
FieldTypeDescription
payment_idstringUUID of the payment
contract_idstringUUID of the associated contract
contact_idstringUUID of the associated contact
amountnumberPayment amount in major currency units
currencystringISO 4217 currency code (e.g. USD)
statusstringStatus of payment (PAID, FAILED, REFUNDED)
payment_methodstring | nullPayment method/provider (e.g. STRIPE, MANUAL)
failure_reasonstring | nullReason for payment failure (if status is FAILED)
refunded_amountnumber | nullTotal amount refunded (if status is REFUNDED)
paid_atstring | nullISO 8601 timestamp of payment completion
failed_atstring | nullISO 8601 timestamp of payment failure
refunded_atstring | nullISO 8601 timestamp of refund transaction
created_atstringISO 8601 creation timestamp
updated_atstringISO 8601 last update timestamp

Example Payload

json
{
  "event_type": "payment.paid",
  "event_id": "evt_01j9abc301",
  "org_id": "org_2abc",
  "created_at": "2026-04-08T12:15:00.000Z",
  "data": {
    "payment_id": "uuid-payment-123",
    "contract_id": "uuid-contract-123",
    "contact_id": "e464122e-a60d-4209-851e-b169211523bc",
    "amount": 1500.00,
    "currency": "USD",
    "status": "PAID",
    "payment_method": "STRIPE",
    "paid_at": "2026-04-08T12:15:00.000Z",
    "created_at": "2026-04-08T12:10:00.000Z",
    "updated_at": "2026-04-08T12:15:00.000Z"
  }
}
payment.failedFired when a scheduled payment transaction fails.
FieldTypeDescription
payment_idstringUUID of the payment
contract_idstringUUID of the associated contract
contact_idstringUUID of the associated contact
amountnumberPayment amount in major currency units
currencystringISO 4217 currency code (e.g. USD)
statusstringStatus of payment (PAID, FAILED, REFUNDED)
payment_methodstring | nullPayment method/provider (e.g. STRIPE, MANUAL)
failure_reasonstring | nullReason for payment failure (if status is FAILED)
refunded_amountnumber | nullTotal amount refunded (if status is REFUNDED)
paid_atstring | nullISO 8601 timestamp of payment completion
failed_atstring | nullISO 8601 timestamp of payment failure
refunded_atstring | nullISO 8601 timestamp of refund transaction
created_atstringISO 8601 creation timestamp
updated_atstringISO 8601 last update timestamp

Example Payload

json
{
  "event_type": "payment.failed",
  "event_id": "evt_01j9abc302",
  "org_id": "org_2abc",
  "created_at": "2026-04-08T12:15:00.000Z",
  "data": {
    "payment_id": "uuid-payment-123",
    "contract_id": "uuid-contract-123",
    "contact_id": "e464122e-a60d-4209-851e-b169211523bc",
    "amount": 1500.00,
    "currency": "USD",
    "status": "FAILED",
    "failure_reason": "insufficient_funds",
    "failed_at": "2026-04-08T12:15:00.000Z",
    "created_at": "2026-04-08T12:10:00.000Z",
    "updated_at": "2026-04-08T12:15:00.000Z"
  }
}
payment.refundedFired when a payment is refunded to the client.
FieldTypeDescription
payment_idstringUUID of the payment
contract_idstringUUID of the associated contract
contact_idstringUUID of the associated contact
amountnumberPayment amount in major currency units
currencystringISO 4217 currency code (e.g. USD)
statusstringStatus of payment (PAID, FAILED, REFUNDED)
payment_methodstring | nullPayment method/provider (e.g. STRIPE, MANUAL)
failure_reasonstring | nullReason for payment failure (if status is FAILED)
refunded_amountnumber | nullTotal amount refunded (if status is REFUNDED)
paid_atstring | nullISO 8601 timestamp of payment completion
failed_atstring | nullISO 8601 timestamp of payment failure
refunded_atstring | nullISO 8601 timestamp of refund transaction
created_atstringISO 8601 creation timestamp
updated_atstringISO 8601 last update timestamp

Example Payload

json
{
  "event_type": "payment.refunded",
  "event_id": "evt_01j9abc303",
  "org_id": "org_2abc",
  "created_at": "2026-04-08T12:20:00.000Z",
  "data": {
    "payment_id": "uuid-payment-123",
    "contract_id": "uuid-contract-123",
    "contact_id": "e464122e-a60d-4209-851e-b169211523bc",
    "amount": 1500.00,
    "currency": "USD",
    "status": "REFUNDED",
    "refunded_amount": 1500.00,
    "refunded_at": "2026-04-08T12:20:00.000Z",
    "created_at": "2026-04-08T12:10:00.000Z",
    "updated_at": "2026-04-08T12:20:00.000Z"
  }
}