Saltar al contenido
Telemetry
Operaciones de ingresos

invoice_payment_completed esquema de evento

Un evento de resultado de pago que mantiene los identificadores de proveedores como seudónimos y separa el monto facturado de las definiciones de ingresos recurrentes.

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

¿Qué importes facturados tienen éxito, fracasan o se recuperan?

Campos
9
Requerido
8
Ruta de evidencia del contrato

invoice_payment_completed: del límite propio a la consulta confiable

Trate a invoice_payment_completed 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 webhook handler after idempotent processing emits only after the provider event is verified and persisted.

  2. 2

    El contrato está limitado.

    8 required fields preserve the declared grain: One terminal payment attempt.

  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

    ¿Qué importes facturados tienen éxito, fracasan o se recuperan?

grano

Un intento de pago terminal.

propietario

Controlador de webhook de facturación después del procesamiento idempotente

Emitir cuando

Después de que el evento del proveedor se verifique y persista.

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.
invoice_idstringyespseudonymousIdentificador de factura de proveedor interno o hash.
amount_usdnumberyesnon-sensitiveMonto normalizado con reglas monetarias documentadas.
attempt_countnumberyesnon-sensitiveNúmero de secuencia del intento de pago.
statusstringyesnon-sensitiveResultado pagado, fallido o recuperado.
failure_categorystringnoreviewCategoría gruesa segura para proveedores, nunca datos de tarjeta o bancarios.

Evento JSON sintético

{
  "timestamp_utc": "2026-07-28T14:24:51Z",
  "event_id": "evt_payment_01",
  "account_id": "acct_8f31",
  "release": "2026.07.2",
  "invoice_id": "invoice_67ad",
  "amount_usd": 2400,
  "attempt_count": 1,
  "status": "paid"
}

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
  • invoice_id: pseudonymous
  • failure_category: review

Lista de verificación de validación

Pruebe el contrato antes de crear un panel

  • Send one known invoice_payment_completed 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 invoice_payment_completed before billing webhook handler after idempotent processing 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