Skip to content

Event types & payloads

Dates are local date-times without a time zone (CET), e.g. 2026-09-29T14:03:12.123. Fields without a value may be null.

Sent after every successful checkout, once the customer is created. For one-time and subscription products it’s sent even if the first charge was declined. Check the TRANSACTION event for the charge result. For delayed-charge products it’s the only event at signup.

Field Type Description
customer_id integer Customer ID.
email string Buyer’s email.
name string First name.
last_name string Last name.
status string Customer status.
product_id integer Product purchased.
subscription_timestamp datetime Signup date.
next_renewal_timestamp datetime | null Next scheduled charge.
last_time_billed datetime | null Last successful charge.
last_transaction_id_success integer | null ID of the last successful transaction.
unsubscription_timestamp datetime | null Always null for conversions.
additional_data object The additionalData you passed to the SDK.
{
"customer_id": 5812,
"email": "jane.doe@example.com",
"name": "Jane",
"last_name": "Doe",
"status": "ACTIVE",
"product_id": 12,
"subscription_timestamp": "2026-09-29T14:03:12.123",
"next_renewal_timestamp": "2026-10-29T14:03:12.123",
"last_time_billed": "2026-09-29T14:03:12.456",
"last_transaction_id_success": 99101,
"unsubscription_timestamp": null,
"additional_data": { "clickId": "abc123", "campaignId": "77" }
}

Sent every time a charge is attempted: first payment (one-time or subscription start), capture of a pre-authorization, and every renewal, whether it succeeded or failed.

Field Type Description
transaction_id integer Internal transaction ID. Use it with the transactions API.
customer_id integer Customer ID.
email string Buyer’s email.
account_id integer Your account ID.
product_id integer Product.
timestamp datetime When the charge was processed.
success boolean true if approved.
response_text string Gateway response, e.g. SUCCESS, DECLINED. See Decline codes.
amount number Amount charged.
currency_id integer Currency identifier.
mid_id integer Merchant account used.
cycle integer Billing cycle (1 = first payment).
attempts integer Attempts in the current cycle.
refund_status boolean true if the transaction is fully refunded.
status_id integer Internal numeric transaction status.
transaction_type_code integer Internal numeric transaction type.
json_response object Raw gateway response (format defined by the gateway).
{
"transaction_id": 99101,
"customer_id": 5812,
"email": "jane.doe@example.com",
"account_id": 40,
"product_id": 12,
"timestamp": "2026-09-29T14:03:12.456",
"success": true,
"response_text": "SUCCESS",
"amount": 9.99,
"currency_id": 2,
"mid_id": 7,
"cycle": 1,
"attempts": 1,
"refund_status": false,
"status_id": 1,
"transaction_type_code": 2,
"json_response": {
"type": "sale",
"amount": 9.99,
"currency": "EUR",
"response_text": "SUCCESS"
}
}

Same payload as TRANSACTION, for the new refund transaction: amount is negative and refund_status is true for full refunds.

{
"transaction_id": 99187,
"customer_id": 5812,
"email": "jane.doe@example.com",
"account_id": 40,
"product_id": 12,
"timestamp": "2026-10-02T09:15:40.001",
"success": true,
"response_text": "SUCCESS",
"amount": -9.99,
"refund_status": true
}

Sent when a customer is unsubscribed. Same fields as CONVERSION without additional_data, with status: "UNSUBSCRIBED" and unsubscription_timestamp set.

{
"customer_id": 5812,
"email": "jane.doe@example.com",
"name": "Jane",
"last_name": "Doe",
"status": "UNSUBSCRIBED",
"product_id": 12,
"subscription_timestamp": "2026-09-29T14:03:12.123",
"next_renewal_timestamp": "2026-10-29T14:03:12.123",
"last_time_billed": "2026-09-29T14:03:12.456",
"last_transaction_id_success": 99101,
"unsubscription_timestamp": "2026-10-05T18:22:03.310"
}