The swap
What the proxy covers
The proxy is a translation layer over the same services the native API uses, not a fork — so behaviour cannot drift between the two.
Webhooks change shape
This is the one part that is not a drop-in. Meta’s webhook payload is deeply nested underentry[].changes[].value. LazyApp’s is flat:
X-LazyApp-Signature over the raw body with your endpoint secret. See verifying webhooks.
Suggested order
1
Point sends at the proxy
Change the base URL and token in one place. Verify traffic flows with an
sk_test_
key first.2
Move webhooks to LazyApp
Register an endpoint, verify signatures, and map the flat payload. This is the only
real code change.
3
Adopt what you could not do before
Once traffic is flowing, the native API gives you things the Cloud API does not:
scheduling, events that decouple your code from template names,
broadcasts with opt-out and frequency caps enforced server-side,
and Verify with fraud controls.
Keep using the proxy indefinitely if it suits you. It is a supported surface, not a
temporary shim.