EnterSignalGuide

Fact Events

Fact Events describe how entities are changed. It also helps abstracts away bespoke enterprise integrations, and consolidates thousands of data streams behind a single data stream API.

The Fact Event Envelope

All fact events have the same envelope, of the following format.

{
  "meta": {
    "version": 1, // envelope version
    "id": "evt_01HRB9QF1WQ8KJD4X7TZ9VG1K2",
    "entity_id": "ent_4X7TZ9V9QF1WQ9QF1WQ",
    "event_time": "2025-07-13T23:15:00.000Z",
    "partner": "american_express",
    "categories": ["financial_services"],
    "type": "offer".
    "title": "American Express Platinum Offer",
    "description": "Airport‑lounge access and 5× points on travel.",
    "audience": ["travel"],
    "schema_uri": "/v1/schemas/amex/financial_product/v1.json",
  },
  "entity_payload": {
    // ...
  }
}

The Strongly Typed Entity Payload

An event “updates” an entity.

entity_payload is effectively the latest snapshot of the entity. In other words, you could get the latest entity snapshot by querying for the latest event_time given an entity_id.

Note that the entity payload is validated against the versioned schema referenced in the schema_uri field, which can be fetched via a simple API call. Also see the example schema below.

{
  "meta": {
    "version": 1, // envelope version
    "id": "evt_01HRB9QF1WQ8KJD4X7TZ9VG1K2",
    "entity_id": "ent_4X7TZ9V9QF1WQ9QF1WQ",
    "event_time": "2025-07-13T23:15:00.000Z",
    // ....
    "schema_uri": "/v1/schemas/amex/financial_product/v1.json",
  },
  "entity_payload": {
    "annualPercentageRate": {
      "minValue": 20.99,
      "maxValue": 27.99,
      "unitCode": "APR"
    },
    "annualFee": 695,
    "signUpBonus": "100 000 Membership Rewards® points after $6 000 spend in 6 months",
    "applicationURL": "https://www.americanexpress.com/us/credit-cards/card-application/apply/platinum-card/28810-10-0?pmccode=137&intlink=US-Axp-Shop-Consumer-PDP-Platinum-Prospect-ApplyNow-Intro&eep=28810&gbraid=0AAAAADfV22vZc_ZlC6yJ97IH8_5sB22U3&gclid=EAIaIQobChMI047_tfnCjgMVSiBECB2J6S14EAAYASAAEgIc-vD_BwE&utm_acid=5407860559&utm_adgid=145040663274&utm_adid=758292040022&utm_cmpid=18510627008&utm_term=%2Bamex+%2Bplatinum+%2Boffer&utm_tgtid=kwd-1810812030648",
    "compliance": {
      "offerValidThrough": "2025-09-30",
      "cfpbDisclosureID": "US‑CFPB‑2025‑07‑PLAT"
    }
  }
}

The Entity Schema

EnterSignal schemas are versioned and documented. See below for an example.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://schemas.entersignal.com/amex/financial_product/v1.json",
  "title": "Credit‑Card Offer",
  "type": "object",
  "required": [
    "annualPercentageRate",
    "annualFee",
    "signUpBonus",
    "applicationURL",
    "compliance"
  ],
  "additionalProperties": false,

  "properties": {
    "annualPercentageRate": {
      "type": "object",
      "required": [
        "@type",
        "minValue",
        "maxValue",
        "unitCode"
      ],
      "additionalProperties": false,
      "properties": {
        "@type": {
          "const": "QuantitativeValue",
          "description": "Schema.org type identifier"
        },
        "minValue": {
          "type": "number",
          "minimum": 0,
          "description": "Lowest possible annual percentage rate, inclusive"
        },
        "maxValue": {
          "type": "number",
          "minimum": 0,
          "description": "Highest possible annual percentage rate, inclusive"
        },
        "unitCode": {
          "type": "string",
          "enum": ["APR"],
          "description": "ISO‑4217‑style code for the rate unit"
        }
      },
      "allOf": [
        {
          "if": { "required": ["minValue", "maxValue"] },
          "then": {
            "properties": {
              "maxValue": {
                "exclusiveMinimum": { "$data": "1/minValue" }
              }
            }
          }
        }
      ]
    },

    "annualFee": {
      "type": "number",
      "minimum": 0,
      "description": "Annual card fee in the issuer’s billing currency"
    },

    "signUpBonus": {
      "type": "string",
      "minLength": 1,
      "description": "Plain‑language description of introductory bonus"
    },

    "applicationURL": {
      "type": "string",
      "format": "uri",
      "description": "Canonical URL of the online application"
    },

    "compliance": {
      "type": "object",
      "required": [
        "offerValidThrough",
        "cfpbDisclosureID"
      ],
      "additionalProperties": false,
      "properties": {
        "offerValidThrough": {
          "type": "string",
          "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
          "description": "ISO‑8601 calendar date (YYYY‑MM‑DD) on which the offer expires"
        },
        "cfpbDisclosureID": {
          "type": "string",
          "pattern": "^[A-Z]{2}-CFPB-[0-9]{4}-[0-9]{2}-[A-Z]+$",
          "description": "Issuer‑provided reference that maps to the CFPB‑mandated disclosure"
        }
      }
    }
  }
}