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-eventHeaders
| Header | Value |
|---|---|
Authorization | Basic YOUR_API_KEY |
Content-Type | application/json |
Request body
| Field | Required | Description |
|---|---|---|
event_name | yes | Standard Meta event name — Lead, Subscribe, Purchase, AddToCart, CompleteRegistration, InitiateCheckout, ViewContent |
phone_number | yes | E.164 phone (e.g. +919876543210) — must match a contact whose conversation has a stored ctwa_clid |
currency | required for Purchase / Subscribe | ISO 4217, e.g. INR, USD |
value | required for Purchase / Subscribe | Numeric 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
Leadimmediately when the customer takes a qualifying action (form fill, demo booking). - Send
Purchaseon 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 aneventIDto Pixel and asevent_idhere (this endpoint accepts it as an optional field).