BitelioBitelio

Record authenticated commerce intent

Merchant server only, secret API key with retention:edit AND contacts:edit. Verify the authenticated buyer before mapping Bitelio integrationId/contactId/orderId. Requires enabled tracking and an active order-scoped program with no withdrawal or erased feedback. Shopify product/variant GIDs must belong to that integration. occurredAt must be within the last 24 hours and not in the future. Immutable eventId deduplication rejects changed payloads; 120 requests/project/minute. Public pixel events do not establish trusted purchase intent. Does not create consent or answer surveys. Decision evidence expires in 2–48 hours; the cleanup worker then removes temporary diagnostic history.

POST
/v1/retention/commerce-intents

Authorization

ApiKeyAuth

AuthorizationBearer <token>

API Key authentication. Secret keys (sk_*) are required for all endpoints except /v1/track. Public keys (pk_*) only work with the /v1/track endpoint for client-side event tracking. The project is automatically derived from the key.

In: header

Request Body

application/json

integrationId*string
Length1 <= length <= 100
contactId*string
Length1 <= length <= 100
orderId*string
Length1 <= length <= 100
eventId*string
Match^[a-zA-Z0-9._:-]+$
Length1 <= length <= 128
kind*string
Value in"VIEWED_PRODUCT" | "ADDED_TO_CART" | "CHECKOUT_STARTED" | "CHECKOUT_ABANDONED" | "CHECKOUT_COMPLETED"
occurredAt*string
Formatdate-time
products*
Items1 <= items <= 20
[key: string]?never

Response Body

application/json

curl -X POST "https://bitelio-api.heltia.com/v1/retention/commerce-intents" \  -H "Content-Type: application/json" \  -d '{    "integrationId": "string",    "contactId": "string",    "orderId": "string",    "eventId": "string",    "kind": "VIEWED_PRODUCT",    "occurredAt": "2019-08-24T14:15:22Z",    "products": [      {        "productId": "string"      }    ]  }'
{
  "id": "string",
  "accepted": true,
  "duplicate": true,
  "expiresAt": "2019-08-24T14:15:22Z"
}
Empty
Empty
Empty
Empty
Empty