afrimomo-sdk
Version:
A unified SDK for African payment providers
242 lines • 6.89 kB
TypeScript
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