Saltar al contenido
Telemetry
Ciclo de vida de los ingresos

subscription_changed esquema de evento

Un evento de movimiento de ingresos emitido desde el estado de facturación comprometido. Almacene valores normalizados de planes y movimientos en lugar de cuerpos de facturas o cargas útiles de proveedores de pagos.

Revisado por el equipo de producto Telemetry en . Grano de eventos, propiedad, tipos de campos, clasificación de privacidad, carga útil de ejemplo y validación. Revisar los estándares y la propiedad

Pregunta que este contrato responde

¿Cuántos ingresos recurrentes son nuevos, ampliados, contratados, agitados o reactivados?

Campos
10
Requerido
8
Ruta de evidencia del contrato

subscription_changed: del límite propio a la consulta confiable

Trate a subscription_changed como un contrato analítico duradero: el propietario emite un grano documentado, un dispositivo prueba los campos y una consulta revisada responde a la pregunta formulada.

  1. 1

    El resultado se vuelve definitivo

    Billing service after provider reconciliation emits only after the application commits the effective subscription state and movement amount.

  2. 2

    El contrato está limitado.

    8 required fields preserve the declared grain: One committed recurring-revenue movement per account, subscription, and effective change.

  3. 3

    El accesorio está verificado

    Tipos de verificación, hora UTC, resultados alternativos, idempotencia y todos los campos seudónimos o clasificados por revisión.

  4. 4

    La pregunta esta respondida

    ¿Cuántos ingresos recurrentes son nuevos, ampliados, contratados, agitados o reactivados?

grano

Un movimiento de ingresos recurrentes comprometido por cuenta, suscripción y cambio efectivo.

propietario

Servicio de facturación después de la conciliación del proveedor.

Emitir cuando

Después de que la aplicación confirme el estado de suscripción efectivo y el monto del movimiento.

Contrato de campo

Campos escritos con límites de privacidad explícitos

Mantenga estables los nombres y tipos de campos existentes después de que las consultas de producción dependan de ellos. El contexto opcional debe permanecer limitado, documentado y justificado por una decisión específica.

CampoTipoRequeridoPrivacidadSignificado
timestamp_utctimestampyesnon-sensitiveHora UTC en el límite del resultado.
event_idstringyesnon-sensitiveIdentificador único estable utilizado para la deduplicación.
releasestringyesnon-sensitiveVersión de la aplicación o servicio que emitió el evento.
account_idstringyespseudonymousIdentificador de cuenta interno estable, nunca un correo electrónico o nombre.
subscription_idstringyespseudonymousIdentificador de suscripción interno estable.
movement_typestringyesnon-sensitiveNuevo, expansión, contracción, abandono o reactivación.
plan_beforestringnonon-sensitivePlan normalizado antes del cambio efectivo.
plan_afterstringnonon-sensitivePlan normalizado tras el cambio efectivo.
mrr_delta_usdnumberyesnon-sensitiveMovimiento de ingresos recurrente mensual firmado en USD.
effective_attimestampyesnon-sensitiveHora UTC en la que el cambio de facturación entró en vigor.

Evento JSON sintético

{
  "timestamp_utc": "2026-07-29T10:20:00Z",
  "event_id": "evt_subscription_01",
  "account_id": "acct_8f31",
  "release": "2026.07.3",
  "subscription_id": "sub_41aa",
  "movement_type": "expansion",
  "plan_before": "starter",
  "plan_after": "business",
  "mrr_delta_usd": 84,
  "effective_at": "2026-07-29T10:19:55Z"
}

Revisión de privacidad

Revisar los identificadores antes de la ingestión

Este ejemplo utiliza identificadores sintéticos. Los valores seudónimos aún pueden ser datos personales y los campos de revisión pueden exponer el contexto empresarial o del proveedor. Aplique sus propios requisitos de consentimiento, retención, acceso, residencia y eliminación.

  • account_id: pseudonymous
  • subscription_id: pseudonymous

Lista de verificación de validación

Pruebe el contrato antes de crear un panel

  • Send one known subscription_changed fixture after the documented outcome boundary.
  • Verify all 8 required fields arrive with the documented types.
  • Vuelva a intentar el mismo identificador de evento y confirme el comportamiento de deduplicación elegido.
  • Envíe un error controlado o un resultado alternativo cuando el flujo de trabajo lo admita.
  • Ejecute el SQL relacionado en una ventana fija y concilie el resultado con el dispositivo.

Errores comunes

Mantenga una fila igual a un resultado duradero

  • Emitting subscription_changed before billing service after provider reconciliation knows the final outcome.
  • Mezclar varios granos en una tabla, lo que hace que los recuentos y tasas sean ambiguos.
  • Reemplazar categorías controladas con URL sin formato, cargas útiles, mensajes o texto de error.
  • De ello depende el cambio de un tipo de campo después de las consultas y los paneles guardados.
  • Agregar identificadores sin una necesidad documentada de investigación, acceso y retención.

Usa el contrato

Consultar y operacionalizar el evento.

Contratos relacionados

Enviar un dispositivo antes del tráfico de producción.

Cree una clave API gratuita, envíe el evento sintético e inspeccione la tabla inferida antes de conectar un flujo de trabajo en vivo.

Pruebe este esquema