Skip to content

feat(webhooks): payments.webhook.received event typed as the payment fact - #95

Merged
Domantas merged 1 commit into
mainfrom
feat/payments-webhook-event
Oct 15, 2026
Merged

Domantas merged 1 commit into
mainfrom
feat/payments-webhook-event

Conversation

@Domantas

Copy link
Copy Markdown
Contributor

Adds the payments webhook event to @norbix.ai/ts/webhooks.

  • payments.webhook.received in NORBIX_WEBHOOK_EVENT_NAMES, NorbixWebhookEvents.Payments.WebhookReceived and the event groups.
  • Typed payload: CodeMashHub2.PaymentFactDto (generated type; the same fields the gateway delivers — no hand-written DTO).
  • event.metadata.payment = { provider, providerEventId, eventName } and metadata.integrationId.
  • Docs: docs/webhooks-receiver.md → Payments section.

Tests: vitest run 64 files / 1049 tests passed; type test for the payload; receiver test with the delivery shape the gateway L4 test PaymentsTriggerFiresWebhookE2ETests produces.

Gateway side: campaign audit/payments (codemash-io/gateway, branch audit/payments), tracker docs/testing/testing-plan/10-payments/status.md, item 7.

Expected release: minor (new event, no breaking change).

🤖 Generated with Claude Code

…ized payment fact (PaymentFactDto), provider ids on event.metadata.payment, docs

Every payment provider callback reaches a Norbix webhook destination as one
event, payments.webhook.received (gateway campaign audit/payments, decision
D1). The receiver now knows the name (NorbixWebhookEvents.Payments.WebhookReceived,
the catalog and the groups), types the payload as the generated
PaymentFactDto (same fields the gateway sends), and lifts integrationId and
{ provider, providerEventId, eventName } onto event.metadata.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

🚀 Release preview

Next version on merge to main: none

semantic-release dry-run output
[10:16:17 AM] [semantic-release] › ℹ  Running semantic-release version 25.0.9
[10:16:18 AM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/npm"
[10:16:18 AM] [semantic-release] › ✔  Loaded plugin "verifyConditions" from "@semantic-release/github"
[10:16:18 AM] [semantic-release] › ✔  Loaded plugin "analyzeCommits" from "@semantic-release/commit-analyzer"
[10:16:18 AM] [semantic-release] › ✔  Loaded plugin "generateNotes" from "@semantic-release/release-notes-generator"
[10:16:18 AM] [semantic-release] › ✔  Loaded plugin "prepare" from "@semantic-release/npm"
[10:16:18 AM] [semantic-release] › ✔  Loaded plugin "publish" from "@semantic-release/npm"
[10:16:18 AM] [semantic-release] › ✔  Loaded plugin "publish" from "@semantic-release/github"
[10:16:18 AM] [semantic-release] › ✔  Loaded plugin "addChannel" from "@semantic-release/npm"
[10:16:18 AM] [semantic-release] › ✔  Loaded plugin "addChannel" from "@semantic-release/github"
[10:16:18 AM] [semantic-release] › ✔  Loaded plugin "success" from "@semantic-release/github"
[10:16:18 AM] [semantic-release] › ✔  Loaded plugin "fail" from "@semantic-release/github"
[10:16:19 AM] [semantic-release] › ℹ  This test run was triggered on the branch refs/pull/95/merge, while semantic-release is configured to only publish from main, therefore a new version won’t be published.

If next_version is none, your commits don't trigger a release. Use feat: for minor (breaking changes too, until launch), fix: / perf: for patch.

@Domantas
Domantas merged commit 80a01f2 into main Oct 15, 2026
8 checks passed
@Domantas
Domantas deleted the feat/payments-webhook-event branch October 15, 2026 10:17
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 4.28.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant