Skip to main content
POST
https://api.linquid.io
/
conversions
/
s2s
Server-to-Server Postback
curl --request POST \
  --url https://api.linquid.io/conversions/s2s \
  --header 'Authorization: Bearer <token>'

Server-to-Server Postback

Track conversions from your server for more accurate attribution, especially with ad blockers.

Request

curl -X POST https://api.linquid.io/conversions/s2s \
  -H "Content-Type: application/json" \
  -d '{
    "click_id": "lw_ck_abc123",
    "event": "purchase",
    "value": 99.99,
    "currency": "USD",
    "order_id": "ORD-12345"
  }'
S2S postbacks don’t require authentication - the click_id provides attribution.

Body Parameters

ParameterTypeRequiredDescription
click_idstringYesClick ID from redirect
eventstringNoEvent type (default: conversion)
valuenumberNoMonetary value
currencystringNoISO currency code
order_idstringNoUnique order ID
timestampstringNoISO 8601 timestamp

Response

{
  "success": true,
  "data": {
    "conversionId": "conv_xyz789",
    "attributed": true,
    "linkId": "link_abc123",
    "campaignId": "campaign_def456"
  }
}

Event Types

EventDescription
conversionGeneric conversion
purchaseCompleted purchase
signupUser registration
leadLead form submission
installApp installation

Postback URL Template

For affiliate networks, configure a postback URL:
https://api.linquid.io/conversions/s2s?click_id={click_id}&event=purchase&value={payout}

Available Macros

MacroDescription
{click_id}Linquid click ID
{value}Conversion value
{currency}Currency code
{order_id}Order ID
{event}Event type

Deduplication

Include order_id to prevent duplicate conversions:
{
  "click_id": "lw_ck_abc",
  "event": "purchase",
  "value": 99.99,
  "order_id": "ORD-12345"
}
If the same order_id is sent again, the response indicates:
{
  "success": true,
  "data": {
    "conversionId": "conv_existing",
    "attributed": true,
    "duplicate": true
  }
}

Error Responses

Invalid Click ID

{
  "success": false,
  "error": {
    "code": "INVALID_CLICK_ID",
    "message": "Click ID not found or expired"
  }
}

Expired Attribution Window

{
  "success": false,
  "error": {
    "code": "ATTRIBUTION_EXPIRED",
    "message": "Click is outside attribution window"
  }
}