Repository navigation
feat: add volume-webhooks skill - #214
Merged
Merged
Conversation
garethx
force-pushed
the
feat/volume-webhooks
branch
from
October 8, 2026 09:22
5b80c55 to
642a925
Compare
garethx
marked this pull request as ready for review
October 8, 2026 09:22
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.
Adds
volume-webhooksfor Volume (getvolume.com / volumepay.io), the UK open-banking pay-by-bank provider.Scheme note: asymmetric RSA, not HMAC
Authorization: SHA256withRSA <base64 signature>https://api[.sandbox].volumepay.io/.well-known/signature/pem). The endpoint returns bare base64 SPKI with no PEM armour. Keys are cached for 1h, and the handler fails closed if the key can't be fetched.paymentStatus:COMPLETED,SETTLED(virtual accounts only) orFAILED.This matches Hookdeck core's
VolumeController(same header prefix, padding, key endpoints and 1h cache; PUT+POST on the source type).Verified: Volume's docs publish two curl samples signed with the sandbox key. Both verify against the live sandbox key with PKCS#1 v1.5 and fail with PSS or a one-byte change. The test suites use them as fixtures, with the sandbox public key embedded so the tests make no network calls. Please don't switch to PSS or HMAC in review.
The static source IPs in
references/setup.mdare verbatim from Volume's webhooks page. The skill presents them as optional extra protection on top of the signature check.Testing
validate-provider.sh volume-webhookspasses🤖 Generated with Claude Code