payment.completedSale completed
Fired when a buyer successfully pays. Affiliate attribution is included in this event — there is no separate affiliate.sale webhook.
Fields
| Field | Type | Notes |
|---|---|---|
data.paymentIntentIdRequired | uuid | Payment intent identifier. |
data.productIdRequired | uuid | Catalog product or payment link id. |
data.productName | string | Human-readable product name at checkout time. |
data.amountRequired | number | Paid amount in data.currency. |
data.currencyRequired | string | Token symbol, e.g. USDT. |
data.networkRequired | string | Blockchain network, e.g. Polygon. |
data.saleTypeRequired | "direct" | "via_promoter" | direct = organic sale; via_promoter = affiliate-attributed (see affiliateLinkId). |
data.affiliateLinkId | uuid | null | Set when saleType is via_promoter. |
data.promoterUserId | string | null | Promoter user id when via_promoter. |
data.platformFeeRequired | number | Billixi fee (min 2.5% × amount, cap 25 USDT). |
data.affiliateFeeRequired | number | Promoter commission; 0 for direct sales. |
data.sellerAmountRequired | number | Net amount credited to seller after fees. |
Example payload
{
"id": "evt_test_37c4a3b1",
"type": "payment.completed",
"createdAt": "2026-09-15T23:55:50.053Z",
"livemode": true,
"data": {
"paymentIntentId": "b15334b5-bf79-4acb-a08e-5579f9a433f3",
"productId": "3d11f1eb-1802-43e9-8156-68350176e3db",
"productName": "Sample digital product",
"amount": 49,
"currency": "USDT",
"network": "Polygon",
"saleType": "direct",
"affiliateLinkId": null,
"promoterUserId": null,
"platformFee": 1.23,
"affiliateFee": 0,
"sellerAmount": 47.77
}
}livemode is true in this example.