UNPKG

afrimomo-sdk

Version:

A unified SDK for African payment providers

242 lines 6.89 kB
export * from "./common"; export * from "./auth"; export * from "./collection"; export * from "./disbursement"; export declare namespace OneKhusaTypes { type Environment = "DEVELOPMENT" | "PRODUCTION"; interface PaginationParams { page?: number; size?: number; } interface PaginatedResponse<T> { content: T[]; pageable: { pageNumber: number; pageSize: number; sort: { empty: boolean; sorted: boolean; unsorted: boolean; }; offset: number; paged: boolean; unpaged: boolean; }; last: boolean; totalPages: number; totalElements: number; first: boolean; size: number; number: number; sort: { empty: boolean; sorted: boolean; unsorted: boolean; }; numberOfElements: number; empty: boolean; } interface ErrorResponse { errorMessage: string; statusCode: number; errorObject?: string; } type DisbursementStatus = "PENDING" | "APPROVED" | "REVIEWED" | "REJECTED" | "CANCELLED" | "PROCESSING" | "COMPLETED" | "FAILED"; type CollectionStatus = "PENDING" | "COMPLETED" | "FAILED" | "CANCELLED" | "EXPIRED"; type PaymentMethod = "MOBILE_MONEY" | "BANK_TRANSFER"; type Currency = "MWK" | "USD" | "ZAR" | "ZMW" | "TZS" | "KES" | "UGX"; interface Recipient { name: string; phone: string; email?: string; accountNumber?: string; bankCode?: string; } interface ApiResponse<T> { success: boolean; message?: string; data?: T; } interface TokenRequest { grant_type: "client_credentials"; client_id: string; client_secret: string; } interface TokenResponse { access_token: string; token_type: string; expires_in: number; scope?: string; } interface CachedToken { accessToken: string; expiresAt: number; } interface InitiateCollectionRequest { amount: number; currency: Currency; phone: string; paymentMethod: PaymentMethod; reference?: string; description?: string; callbackUrl?: string; metadata?: Record<string, string>; } interface CollectionResponse { id: string; tan: string; amount: number; currency: Currency; status: CollectionStatus; phone: string; paymentMethod: PaymentMethod; reference?: string; description?: string; createdAt: string; updatedAt: string; expiresAt?: string; metadata?: Record<string, string>; } interface CollectionTransaction { id: string; collectionId: string; tan: string; amount: number; fee?: number; currency: Currency; status: CollectionStatus; phone: string; paymentMethod: PaymentMethod; reference?: string; description?: string; providerReference?: string; failureReason?: string; createdAt: string; updatedAt: string; completedAt?: string; metadata?: Record<string, string>; } interface GetCollectionTransactionsParams { page?: number; size?: number; status?: CollectionStatus; startDate?: string; endDate?: string; } type CollectionTransactionsResponse = PaginatedResponse<CollectionTransaction>; interface SingleDisbursementRequest { amount: number; currency: Currency; recipient: Recipient; paymentMethod: PaymentMethod; reference?: string; description?: string; callbackUrl?: string; metadata?: Record<string, string>; } interface SingleDisbursementResponse { id: string; amount: number; fee?: number; currency: Currency; status: DisbursementStatus; recipient: Recipient; paymentMethod: PaymentMethod; reference?: string; description?: string; providerReference?: string; failureReason?: string; createdAt: string; updatedAt: string; approvedAt?: string; reviewedAt?: string; completedAt?: string; metadata?: Record<string, string>; } interface BatchDisbursementItem { amount: number; currency: Currency; recipient: Recipient; paymentMethod: PaymentMethod; reference?: string; description?: string; metadata?: Record<string, string>; } interface AddBatchDisbursementRequest { name: string; description?: string; items: BatchDisbursementItem[]; callbackUrl?: string; } interface BatchDisbursementResponse { id: string; name: string; description?: string; status: DisbursementStatus; totalAmount: number; totalFee?: number; currency: Currency; itemCount: number; successCount?: number; failedCount?: number; createdAt: string; updatedAt: string; approvedAt?: string; reviewedAt?: string; completedAt?: string; } interface BatchTransaction { id: string; batchId: string; amount: number; fee?: number; currency: Currency; status: DisbursementStatus; recipient: Recipient; paymentMethod: PaymentMethod; reference?: string; description?: string; providerReference?: string; failureReason?: string; createdAt: string; updatedAt: string; completedAt?: string; metadata?: Record<string, string>; } interface GetBatchesParams { page?: number; size?: number; status?: DisbursementStatus; startDate?: string; endDate?: string; } interface GetBatchTransactionsParams { page?: number; size?: number; status?: DisbursementStatus; } type BatchesResponse = PaginatedResponse<BatchDisbursementResponse>; type BatchTransactionsResponse = PaginatedResponse<BatchTransaction>; interface ApprovalRequest { comment?: string; } interface ReviewRequest { comment?: string; } interface RejectionRequest { reason: string; } interface CancellationRequest { reason?: string; } interface TransferFundsRequest { sourceAccount?: string; } interface TransferFundsResponse { success: boolean; message: string; transactionId?: string; } } export default OneKhusaTypes; //# sourceMappingURL=index.d.ts.map