@sahabaplus/moyasar
Version:
A comprehensive TypeScript SDK for integrating with the Moyasar payment gateway
103 lines • 3.61 kB
TypeScript
import type { ApiClient, Metadata, MoyasarClientTypes } from "../../shared/types/index";
import type { ListPaymentsResponse, PaymentListOptions, Payment, CreatePaymentRequest, UpdatePaymentRequest, RefundPaymentRequest, CapturePaymentRequest } from "./types";
import { PaymentStatus } from "./enums";
type PaymentServiceParams<T extends MoyasarClientTypes> = {
apiClient: ApiClient<T>;
};
export declare class PaymentService<T extends MoyasarClientTypes> {
private apiClient;
private readonly paymentUtils;
constructor(p: PaymentServiceParams<T>);
/**
* Create a new payment
*/
create(params: CreatePaymentRequest<T["metadata"]>): Promise<Payment<T["metadata"]>>;
/**
* List payments with optional filtering
*/
list(options?: PaymentListOptions): Promise<ListPaymentsResponse<T["metadata"]>>;
/**
* Retrieve a specific payment
*/
retrieve(paymentId: string): Promise<Payment<T["metadata"]>>;
/**
* Update a payment
*/
update({ paymentId, update, }: {
paymentId: string;
update: UpdatePaymentRequest<T["metadata"]>;
}): Promise<Payment<T["metadata"]>>;
/**
* Refund a payment (full or partial)
*/
refund({ paymentId, refund, }: {
paymentId: string;
refund: RefundPaymentRequest;
}): Promise<Payment<T["metadata"]>>;
/**
* Capture an authorized payment (full or partial)
*/
capture({ paymentId, capture, }: {
paymentId: string;
capture?: CapturePaymentRequest;
}): Promise<Payment<T["metadata"]>>;
/**
* Void an authorized payment
*/
void(paymentId: string): Promise<Payment<T["metadata"]>>;
/**
* Search payments by metadata
*/
searchByMetadata({ metadata, options, }: {
metadata: Metadata;
options: Omit<PaymentListOptions, "metadata">;
}): Promise<ListPaymentsResponse<T["metadata"]>>;
/**
* Get payments by status
*/
getByStatus(status: PaymentStatus, options?: Omit<PaymentListOptions, "status">): Promise<ListPaymentsResponse<T["metadata"]>>;
/**
* Get paid payments
*/
getPaid(options?: Omit<PaymentListOptions, "status">): Promise<ListPaymentsResponse<T["metadata"]>>;
/**
* Get failed payments
*/
getFailed(options?: Omit<PaymentListOptions, "status">): Promise<ListPaymentsResponse<T["metadata"]>>;
/**
* Get authorized payments
*/
getAuthorized(options?: Omit<PaymentListOptions, "status">): Promise<ListPaymentsResponse<T["metadata"]>>;
/**
* Get refunded payments
*/
getRefunded(options?: Omit<PaymentListOptions, "status">): Promise<ListPaymentsResponse<T["metadata"]>>;
/**
* Get payments by card last 4 digits
*/
getByCardLast4({ last4, options, }: {
last4: string;
options: Omit<PaymentListOptions, "last_4">;
}): Promise<ListPaymentsResponse<T["metadata"]>>;
/**
* Get payments by RRN (Retrieval Reference Number)
*/
getByRRN({ rrn, options, }: {
rrn: string;
options: Omit<PaymentListOptions, "rrn">;
}): Promise<ListPaymentsResponse<T["metadata"]>>;
/**
* Check payment capabilities (what actions can be performed)
*/
getPaymentCapabilities(paymentId: string): Promise<{
canRefund: boolean;
canCapture: boolean;
canVoid: boolean;
maxRefundAmount: number;
maxCaptureAmount: number;
}>;
private handleError;
protected parseBody(p: object): Record<string, string>;
}
export {};
//# sourceMappingURL=service.d.ts.map