/** * Represents a transaction involving a balance, including status and timestamps. */ export interface Transaction { /** Unique identifier (UUID) of the transaction. */ id?: string | undefined; /** The transaction amount. */ amount?: number | undefined; /** The contact's total balance for this balance definition after the transaction was applied. Only returned when the transaction actually updated the balance (i.e. it was completed or auto-completed). */ balance?: number | undefined; /** The type of the transaction. */ transactionType?: Transaction.TransactionType | undefined; /** Optional metadata associated with the transaction. */ meta?: Record | undefined; /** The current status of the transaction. */ status?: Transaction.Status | undefined; /** Unique identifier (UUID) of the associated loyalty program. */ loyaltyProgramId?: string | undefined; /** Unique identifier (UUID) of the associated balance definition. */ balanceDefinitionId?: string | undefined; /** Unique identifier of the contact associated with the transaction. */ contactId?: number | undefined; /** Optional timestamp indicating when the transaction event occurred (ISO 8601 format). */ eventTime?: string | undefined; /** Reason for rejection if the transaction was declined (nullable). */ rejectReason?: string | undefined; /** Timestamp when the transaction was rejected (nullable). */ rejectedAt?: string | undefined; /** Expiry date of the transaction (nullable). */ expirationDate?: string | undefined; /** Timestamp when the transaction was completed (nullable). */ completedAt?: string | undefined; /** Timestamp when the transaction was canceled (nullable). */ cancelledAt?: string | undefined; /** Timestamp when the transaction was created. */ createdAt?: string | undefined; /** Timestamp when the transaction was last updated. */ updatedAt?: string | undefined; } export declare namespace Transaction { /** The type of the transaction. */ const TransactionType: { readonly Credit: "credit"; readonly Debit: "debit"; }; type TransactionType = (typeof TransactionType)[keyof typeof TransactionType]; /** The current status of the transaction. */ const Status: { readonly Draft: "draft"; readonly Completed: "completed"; readonly Rejected: "rejected"; readonly Cancelled: "cancelled"; readonly Expired: "expired"; }; type Status = (typeof Status)[keyof typeof Status]; }