mpesajs
Version:
A Node.js SDK for seamless integration with M-Pesa payment gateway, providing easy-to-use methods for handling transactions, payments, and API interactions
50 lines (49 loc) • 1.72 kB
TypeScript
import { Auth } from './auth';
interface PayoutResponse {
ConversationID: string;
OriginatorConversationID: string;
ResponseCode: string;
ResponseDescription: string;
}
interface PayoutPayload {
OriginatorConversationID: string;
InitiatorName: string;
SecurityCredential: string;
CommandID: 'BusinessPayment' | 'SalaryPayment' | 'PromotionPayment';
PartyA: string;
PartyB: string;
Amount: number;
Remarks: string;
Occassion?: string;
QueueTimeOutURL: string;
ResultURL: string;
}
export declare class Payout {
private readonly baseUrl;
private readonly auth;
private readonly initiatorName;
private readonly securityCredential;
private readonly rateLimiter;
/**
* Creates an instance of Payout
* @param auth - Instance of Auth class for token generation
* @param initiatorName - Name of the initiator making the request
* @param securityCredential - Encrypted security credential
* @param sandbox - Whether to use sandbox environment
*/
constructor(auth: Auth, initiatorName?: string, securityCredential?: string, sandbox?: boolean);
/**
* Validates the URLs are HTTPS
* @param queueTimeoutUrl - URL for timeout notifications
* @param resultUrl - URL for result notifications
*/
private validateUrls;
private validatePhoneNumber;
private validateAmount;
/**
* Builds the payload for payout request
*/
private buildPayload;
send(amount: number, remarks: string, occasion?: string, commandId?: PayoutPayload['CommandID'], shortCode?: string, phoneNumber?: string, queueTimeoutUrl?: string, resultUrl?: string): Promise<PayoutResponse>;
}
export {};