Skip to Content
Public APISend Meta CAPI Event

Conversions API (Meta CAPI)

When a customer clicks a Click-to-WhatsApp ad, Meta sends us their ctwa_clid in the WhatsApp webhook and we store it on the conversation. The Conversions API endpoint lets your backend fire a Meta Conversion API event (Lead, Subscribe, Purchase, AddToCart, etc.) using that ctwa_clid so Meta can attribute the conversion back to the original ad — no Pixel cookie required.

This is the right tool for server-side conversion tracking of customers who came in through a CTWA ad and converted later via your own checkout, CRM, or subscription flow.

Endpoint

POST https://apis.splashifypro.com/api/v1/app/meta-ads/capi/send-event

Headers

HeaderValue
AuthorizationBasic YOUR_API_KEY
Content-Typeapplication/json

Request body

FieldRequiredDescription
event_nameyesStandard Meta event name — Lead, Subscribe, Purchase, AddToCart, CompleteRegistration, InitiateCheckout, ViewContent
phone_numberyesE.164 phone (e.g. +919876543210) — must match a contact whose conversation has a stored ctwa_clid
currencyrequired for Purchase / SubscribeISO 4217, e.g. INR, USD
valuerequired for Purchase / SubscribeNumeric value of the conversion

We hash PII (email, phone) on the server before forwarding to Meta — your backend only ships plaintext to us, the Pixel never sees it.

Lead event

curl -X POST https://apis.splashifypro.com/api/v1/app/meta-ads/capi/send-event \ -H "Authorization: Basic YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "event_name": "Lead", "phone_number": "+919876543210" }'

Purchase event

Use this on order-paid in your backend so Meta records the actual purchase value against the originating ad:

curl -X POST https://apis.splashifypro.com/api/v1/app/meta-ads/capi/send-event \ -H "Authorization: Basic YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "event_name": "Purchase", "phone_number": "+919876543210", "currency": "INR", "value": 1499.00 }'

Successful response — 200 OK

{ "success": true, "event_name": "Purchase", "ctwa_clid": "ARAkLkA8rmlFei..." }

The returned ctwa_clid is the click ID we attached the event to. If the contact came through more than one CTWA ad, we use the most recent click.

When the contact is not a CTWA conversion

If we don’t have a ctwa_clid stored for this phone number (e.g. the customer reached you organically), the call returns:

{ "success": false, "reason": "no_ctwa_click_id_for_phone" }

This is not an error — it just means there’s no ad to attribute the conversion to, so nothing is sent to Meta. Your backend can safely treat this as a no-op.

Implementation notes

  • Send Lead immediately when the customer takes a qualifying action (form fill, demo booking).
  • Send Purchase on payment success only — Meta penalizes duplicate or pending events.
  • Combine with Pixel-side events on your website for full deduplication. Meta dedups by event_id; if you want explicit dedup, generate a UUID v4 client-side, send it as an eventID to Pixel and as event_id here (this endpoint accepts it as an optional field).