Guide: Provider Verification Matrix

Overview

Syllecta treats provider verification as a contract, not a marketing label. A provider is only listed as production-supported when the inbound signature rules, replay guard, dedupe id, and failure behavior are explicit and tested.

Current Status

ProviderStatusRaw body verificationConstant-time compareTimestamp guardDedupe id
StripeSupportedYesYesYes, 5 minutes by defaultevent.id
ShopifySupportedYesYesNo provider timestamp; dedupe protects repeated deliveriesX-Shopify-Webhook-Id, fallback payload id
GitHubSupportedYesYesNo provider timestamp; delivery id dedupe protects repeatsX-GitHub-Delivery, fallback payload id
Generic HMACSupportedYesYesYes, 5 minutes by defaultpayload id or eventId
PayPalControlled rolloutYes, current tenant verifier requires PayPal transmission headers and max-ageYes for the current verifierYes, 5 minutes by defaultpayload id
BraintreeReserved / not production-enabledNot enabled yetNot enabled yetNot enabled yetNot enabled yet

Required Headers

ProviderRequired headersMissing or malformed signature
StripeStripe-Signature: t=...,v1=...400 invalid signature
ShopifyX-Shopify-Hmac-Sha256; recommended X-Shopify-Topic, X-Shopify-Webhook-Id400 invalid signature
GitHubX-Hub-Signature-256: sha256=...; recommended X-GitHub-Event, X-GitHub-Delivery400 invalid signature
Generic HMACX-Syllecta-Signature: t=...,v1=...400 invalid signature
PayPalPayPal-Transmission-Id, PayPal-Transmission-Time, PayPal-Transmission-Sig, PayPal-Auth-Algo, PayPal-Cert-Url400 invalid signature
Braintreebt_signature, bt_payload expected by the future official Braintree parser400 invalid signature until enabled

PayPal and Braintree

PayPal and Braintree are intentionally documented separately. PayPal sends transmission headers and is verified through a PayPal webhook-id strategy. Braintree uses bt_signature and bt_payload parsing through the Braintree gateway contract. The Braintree route is reserved so tenants cannot accidentally rely on PayPal-style verification for Braintree traffic.

Before live PayPal/Braintree traffic is accepted for a tenant, the provider-specific verifier must be enabled and tested against that tenant's real provider configuration.

Test Coverage

The Cloud API has table-driven coverage for:

  • valid signatures for supported providers;
  • modified body after signature generation;
  • stale timestamps where the provider contract includes a timestamp;
  • replayed event ids through dedupe behavior;
  • wrong tenant/provider secret;
  • malformed or missing signature headers.

Provider References