Skip to main content
All Biqli tracking paths use the same event meanings. A good data contract makes reports accurate and retries safe.

Customers

customerExternalId is required for leads and sales. It identifies one customer inside one workspace. Use a durable value from your system:
Optional profile fields are customerName, customerEmail, and customerAvatar. These fields improve the Customers interface but do not replace the external ID.

Leads

A lead is a meaningful action before or outside revenue, such as a signup, trial, qualified demo, or application.
Use a stable eventId for the logical action. Do not add a timestamp or random value when retrying the same lead.

Sales

A sale is confirmed revenue, such as an order, subscription, or renewal.

Money uses minor units

amount is a non-negative integer in the currency’s minor unit. Use a lowercase three-letter ISO currency code. Biqli returns amountUsd in USD cents when conversion is available.

Event time

Omit occurredAt to use the time Biqli receives the event. For delayed processing, send an ISO 8601 timestamp, for example:
The public API accepts times up to seven days in the past and five minutes in the future.

Metadata

Metadata is optional JSON for useful business context, such as a plan or campaign name.
Do not store passwords, credentials, card details, or unnecessary personal data in metadata. The API limits metadata size, keys, values, and nesting; see the endpoint reference for exact limits.

Idempotency rules

One logical event must keep one identity:
  • Lead: stable eventId
  • Sale: stable paymentProcessor plus invoiceId
  • REST transport: stable Idempotency-Key
Exact retries return the first result and do not repeat realtime or webhook side effects. Changed data with a reused identifier returns 409 idempotency_conflict.