UNPKG

@tecafrik/africa-payment-sdk

Version:

A single SDK to integrate all african payment providers seamlessly

117 lines 4.08 kB
/// <reference types="node" /> import EventEmitter2 from "eventemitter2"; import { PaymentEvent } from "./payment-events"; interface PaymentProvider { checkoutMobileMoney(options: MobileMoneyCheckoutOptions): Promise<CheckoutResult>; checkoutCreditCard(options: CreditCardCheckoutOptions): Promise<CheckoutResult>; checkoutRedirect(options: RedirectCheckoutOptions): Promise<CheckoutResult>; payoutMobileMoney(options: MobileMoneyPayoutOptions): Promise<PayoutResult>; refund(options: RefundOptions): Promise<RefundResult>; useEventEmitter(eventEmitter: EventEmitter2): void; handleWebhook(body: Buffer | string | Record<string, unknown>, options?: HandleWebhookOptions): Promise<PaymentEvent | null>; } declare enum PaymentMethod { WAVE = "WAVE", ORANGE_MONEY = "ORANGE_MONEY", CREDIT_CARD = "CREDIT_CARD" } declare enum Currency { XOF = "XOF" } type BasicCheckoutOptions = { amount: number; description: string; currency: Currency; transactionId: string; accountNumber?: string; employeeId?: number | null; customer: { firstName: string; lastName: string; email?: string; }; metadata?: Record<string, unknown>; successRedirectUrl?: string; failureRedirectUrl?: string; }; type BasicMobileMoneyCheckoutOptions = BasicCheckoutOptions & { customer: BasicCheckoutOptions["customer"] & { phoneNumber: string; }; }; type WaveCheckoutOptions = BasicMobileMoneyCheckoutOptions & { paymentMethod: PaymentMethod.WAVE; operationCode?: "PAY_WITH_WAVE" | "WAVE_TO_ACCOUNT"; }; type OrangeMoneyCheckoutOptions = BasicMobileMoneyCheckoutOptions & { paymentMethod: PaymentMethod.ORANGE_MONEY; operationCode?: "PAY_WITH_OM" | "OM_TO_ACCOUNT"; authorizationCode?: string; }; type CreditCardCheckoutOptions = BasicCheckoutOptions & { paymentMethod: PaymentMethod.CREDIT_CARD; customer: BasicCheckoutOptions["customer"] & { phoneNumber?: string; }; cardNumber?: string; cardExpirationMonth?: string; cardExpirationYear?: string; cardCvv?: string; }; type RedirectCheckoutOptions = BasicCheckoutOptions & { paymentMethod: PaymentMethod; successRedirectUrl: string; failureRedirectUrl: string; }; type MobileMoneyCheckoutOptions = WaveCheckoutOptions | OrangeMoneyCheckoutOptions; type CheckoutResult = { transactionId: string; transactionReference: string; transactionStatus: TransactionStatus; transactionAmount: number; transactionCurrency: Currency; redirectUrl?: string; }; declare enum TransactionStatus { PENDING = "PENDING", SUCCESS = "SUCCESS", FAILED = "FAILED", CANCELLED = "CANCELLED" } type RefundOptions = { transactionId: string; refundedTransactionReference: string; refundedAmount?: number; providerName?: string; }; type RefundResult = { transactionId: string; transactionReference: string; transactionStatus: TransactionStatus; transactionAmount: number; transactionCurrency: Currency; }; type MobileMoneyPayoutOptions = { paymentMethod: PaymentMethod.WAVE | PaymentMethod.ORANGE_MONEY; amount: number; currency: Currency; recipient: { phoneNumber: string; }; transactionId: string; transactionReference: string; metadata?: Record<string, unknown>; }; type PayoutResult = { transactionId: string; transactionReference: string; transactionStatus: TransactionStatus; transactionAmount: number; transactionCurrency: Currency; }; type HandleWebhookOptions = { headers?: Record<string, string>; providerName?: string; }; export { PaymentProvider, PaymentMethod, Currency, BasicCheckoutOptions, BasicMobileMoneyCheckoutOptions, WaveCheckoutOptions, OrangeMoneyCheckoutOptions, CreditCardCheckoutOptions, RedirectCheckoutOptions, MobileMoneyCheckoutOptions, CheckoutResult, TransactionStatus, RefundOptions, RefundResult, HandleWebhookOptions, MobileMoneyPayoutOptions, PayoutResult, }; //# sourceMappingURL=payment-provider.interface.d.ts.map