diff --git a/packages/checkout/sdk/src/widgets/definitions/events/sale.ts b/packages/checkout/sdk/src/widgets/definitions/events/sale.ts index fd9648edff..857eacf0c9 100644 --- a/packages/checkout/sdk/src/widgets/definitions/events/sale.ts +++ b/packages/checkout/sdk/src/widgets/definitions/events/sale.ts @@ -33,6 +33,15 @@ export type SaleSuccess = { }[]; /** The order reference id, use it to trace order throughout flow */ transactionId: string; + /** + * Settlement status of the order. For card payments this mirrors the Transak + * order status: `'PROCESSING'` while the payment is captured but the mint is + * not yet settled (typically a couple of minutes), and `'COMPLETED'` once + * settled. Undefined for crypto payments, which settle on-chain synchronously. + * Do not treat the sale as final until settlement is confirmed — reconcile + * server-side using `transactionId`. + */ + status?: string; [key: string]: unknown; }; diff --git a/packages/checkout/widgets-lib/src/widgets/sale/SaleWidgetEvents.ts b/packages/checkout/widgets-lib/src/widgets/sale/SaleWidgetEvents.ts index fa5f0e65bb..a23d8f57a2 100644 --- a/packages/checkout/widgets-lib/src/widgets/sale/SaleWidgetEvents.ts +++ b/packages/checkout/widgets-lib/src/widgets/sale/SaleWidgetEvents.ts @@ -28,6 +28,7 @@ export const sendSaleSuccessEvent = ( transactions: ExecutedTransaction[] = [], tokenIds: string[] = [], transactionId: string = '', + status?: string, ) => { const event = new CustomEvent< WidgetEvent @@ -39,6 +40,7 @@ export const sendSaleSuccessEvent = ( transactions, tokenIds, transactionId, + status, }, }, }); diff --git a/packages/checkout/widgets-lib/src/widgets/sale/hooks/useSaleEvents.ts b/packages/checkout/widgets-lib/src/widgets/sale/hooks/useSaleEvents.ts index ae1befee88..54e55dc028 100644 --- a/packages/checkout/widgets-lib/src/widgets/sale/hooks/useSaleEvents.ts +++ b/packages/checkout/widgets-lib/src/widgets/sale/hooks/useSaleEvents.ts @@ -90,6 +90,7 @@ export const useSaleEvent = () => { transactions, tokenIds, details.transactionId, + details.orderStatus, ); };