@fenil265/fundly-payment-sdk
Version:
Fundly Payment SDK for seamless integration with Fundly Pay systems.
94 lines • 2.61 kB
TypeScript
/**
* Analytics Types
* Defines the interface for payment analytics tracking
*/
export type PaymentMode = 'CHEQUE' | 'CASH' | 'STATIC_QR' | 'DYNAMIC_QR' | 'PAYMENT_LINK' | 'UPI';
export type PaymentStatus = 'INITIATED' | 'LINK_GENERATED' | 'QR_GENERATED' | 'SUCCESS' | 'FAILED';
/**
* Base event data for all payment events
*/
export interface PaymentEventData {
paymentMode: PaymentMode;
amount: number;
invoiceCount: number;
invoiceIds?: string;
salesmanId?: number;
salesmanName?: string;
salesmanPhone?: string;
paymentStatus: PaymentStatus;
transactionId?: string;
timestamp: string;
paymentType?: string;
paymentDate?: string | null;
transactionDate?: string;
transactionDateFormatted?: string;
distributorId?: string;
distributorName?: string;
chemistId?: string;
chemistName?: string;
chemistCode?: string;
mobileNumber?: string;
partyCode?: string;
upiTxnRefNo?: string | null;
}
/**
* Payment link generated event data
*/
export interface PaymentLinkGeneratedEventData extends PaymentEventData {
paymentLink: string;
}
/**
* Payment QR generated event data
*/
export interface PaymentQRGeneratedEventData extends PaymentEventData {
qrExpiry: number;
}
/**
* Payment failed event data
*/
export interface PaymentFailedEventData extends PaymentEventData {
error?: string;
}
/**
* Analytics provider interface
* Implement this interface to create custom analytics providers
*/
export interface IAnalyticsProvider {
/**
* Set user identity for analytics tracking
* This should be called after user login to associate all subsequent events with the user
*/
setUserIdentity?(identity: string, profileData?: Record<string, unknown>): void;
/**
* Track payment initiated event
*/
trackPaymentInitiated(data: PaymentEventData): void;
/**
* Track payment link generated event
*/
trackPaymentLinkGenerated(data: PaymentLinkGeneratedEventData): void;
/**
* Track payment QR generated event
*/
trackPaymentQRGenerated(data: PaymentQRGeneratedEventData): void;
/**
* Track payment success event
*/
trackPaymentSuccess(data: PaymentEventData): void;
/**
* Track payment failed event
*/
trackPaymentFailed(data: PaymentFailedEventData): void;
}
/**
* Analytics configuration
*/
export interface AnalyticsConfig {
enabled?: boolean;
provider?: IAnalyticsProvider;
clevertap?: {
accountId: string;
region?: string;
};
}
//# sourceMappingURL=types.d.ts.map