client/write scope. Authenticated the same way as every other endpoint — the same Authorization: Bearer <access token> + x-client-id pair, there is no separate webhook credential.SubscriptionConfirmation message that must be confirmed before notifications flow — no events are delivered until that handshake is actioned.?client-id=<your client id> query parameter to the subscription URL at creation (visible on the stored url); your endpoint receives it on every delivery. Any load balancer, API gateway or router in front of your endpoint must forward the query string unchanged, or deliveries will arrive without it.id, but an upstream replay of the same event generates a new one.SigningCertURL, having first confirmed that URL is an https host under amazonaws.com; never fetch an arbitrary URL taken from the payload. Then compare the envelope's TopicArn against the per-environment topic ARN Kobble issues you at onboarding. The signature alone proves only that a message originated from AWS, not that it originated from Kobble, so an endpoint that checks the signature but not the topic will accept any signed SNS message from any AWS account.ACCEPTED and transaction-accept is delivered. A dishonour after settlement arrives as a new REFUND transaction carrying the original transaction's id in external_id, while the original stays ACCEPTED — a reversal can never be detected by watching the original transaction's status.