Payment-provider routes
PayPal does not post directly to the Core API. PayPal events are received and
signature-verified by Integration Services (
paypal-transmission-sig + the configured
webhook id), which then forwards a normalised event to POST /payment/webhook/generic.
Fulfillment routes
The raw-body rule
Signature verification for Stripe and MamoPay runs over the exact bytes the provider sent. If a proxy, body parser, or middleware re-serialises the JSON before it reaches the handler, verification fails even though the payload is semantically identical. If you are terminating or forwarding these events in your own infrastructure before they reach Droplinked, forward the body unmodified, and forward the signature header unmodified with it.What a response code means to the sender
That
400 / 503 split is deliberate: an internal fault must never be reported as a
permanent rejection, because that drops a genuine money event on the floor.
Replay and duplicate delivery
Providers retry. Assume at-least-once delivery and design for duplicates. Two mechanisms exist on our side, and it is worth knowing which one is load-bearing:- Event-id dedupe — a per-provider cache keyed on the provider’s event id, with a 24-hour window. It absorbs a provider retry that lands on the same application instance. It is in-process: it does not span instances and does not survive a restart, so do not treat it as a guarantee.
- Forward-only order state — the durable one. Order state machines do not rewind. A
stale
AUTHORIZEDevent arriving afterCAPTUREDis dropped rather than applied, and re-applying a terminal transition is a no-op.
Outbound webhooks
Droplinked can also dispatch events to a merchant-registered endpoint, with a per-subscription signing secret that can be rotated, and a delivery log keyed<subscriptionId>:<eventId> so a redelivery is not double-counted. This surface is not
self-serve today — ask your Droplinked counterpart if you need it.
Related
- Order lifecycle — where in the flow the webhook lands
- Idempotency and retries
- Errors