Repository navigation
fanvue: add 46 doc-sourced samples - #66
Merged
Merged
Conversation
New provider. Bodies verbatim from the per-family payload reference pages under api.fanvue.com/docs, harvested by harvest_fanvue.py at webhook-registry 25ace60 (hookdeck/webhook-registry#94). topic_identifier is the top-level body `type`; version `latest` (no webhook version scheme); provenance docs, 2026-10-16. Synthesized headers: content-type only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XVonNXXe8TYutXRwopoiHA
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
New provider: Fanvue (the creator-subscription platform; Hookdeck source type
FANVUE). This is the last stage of the add-a-source pipeline. Before it came the skill (hookdeck/webhook-skills#222), the registry row (hookdeck/webhook-registry#94) and the check record (hookdeck/webhook-registry-checks#20).Bodies: 46 complete example deliveries, verbatim from the per-family payload reference pages under api.fanvue.com/docs (creator/, checkout/, webhooks/app/*). They were read from the pages' Mintlify
.mdmirrors. Every one is a full{id, type, timestamp, data}envelope, none is elided, and each file'sbody.typeequals its filename andtopic.One sample per topic. Five topics have extra variant examples, and only the first in page order is exported. The variants are:
creator.payment.succeeded× 3 (paid message, renewal, tip)checkout_link.payment.succeeded× 2 (standard, BNPL)creator.fan.presence_changed× 2 (online, offline)creator.experience_subscription.deactivated× 2The harvester reports the extras by heading.
Not included:
type:creator.reward.reversed,creator.post.liked,creator.dispute.flagged,checkout_link.dispute.flagged,app.dispute.flagged,app.experience.action.payment.pending,app.experience.action.payment.failed,app.experience.action.dispute.flagged. Swappingtypeon a sibling body would ship a payload Fanvue never published.app.payment.refunded, a deprecated alias documented as "same body" asapp.refund.created. Itstypediffers and no example of it is published.purchase.new,follow.new, …). Fanvue says their body has aneventIdfield appended, but none of the eight legacy pages' examples show it, so the published bodies are incomplete by the vendor's own description. Their body also names no topic, so they wouldn't resolve againsttopic_identifier.topic_identifier:type, the top-level body field. Fanvue: "Route your handler on this field, never on a header." It resolves flat inrequestReceiver.ts, so a future capture will be named correctly for every enveloped topic. Deliveries also carry anX-Fanvue-Topicheader, but its value format is undocumented and it isn't signed, so it isn't used.Headers: only
content-type: application/jsonis synthesized (Fanvue documents it).X-Fanvue-Signatureis an HMAC over a delivery timestamp keyed with the customer's secret, so docs can't supply it.X-Fanvue-Topic's value is undocumented, so it isn't invented.Version:
latest. Fanvue has no webhook version scheme, and no body carries a version field.X-Fanvue-API-Versionis a REST API request header, not a payload version.Provenance:
latestissourced_via: docs,sourced_on: 2026-10-16. Each file carriessource.type: vendor-documentationand its page URL.Placeholder values are kept verbatim. Fanvue's examples use readable stand-ins like
"uuid": "fan-uuid"and"creator-uuid", and they're left as published.Checklist:
providers/fanvueand noscripts/fanvueharness, so no captures are displaced. Existing files changed: 0.harvest_fanvue.pyat webhook-registry25ace60) into a scratch tree is byte-identical to the committedsamples-doc/and to these files.yarn compilepasses: 152 → 153 providers, 46 fanvue topics, no collisions.yarn test: 14/14 passed.verify.py: FAIL (0).Evidence and non-assertions are in hookdeck/webhook-registry#94. Merge order: that PR first, since these files are its
samples-doc/output.🤖 Generated with Claude Code
https://claude.ai/code/session_01XVonNXXe8TYutXRwopoiHA