UNPKG

thawani-nodejs

Version:

Node.js library for Thawani Payment Gateway

133 lines (132 loc) 3.74 kB
export { ThawaniClient } from './client'; export { Config } from './config'; export type { ThawaniConfig } from './config'; export { BaseResource } from './resources/base'; export { Checkout } from './resources/checkout'; export { Customers } from './resources/customers'; export { PaymentIntents } from './resources/payment-intents'; export { PaymentMethods } from './resources/payment-methods'; export { Payments } from './resources/payments'; export { Refunds } from './resources/refunds'; export { WebhookHandler } from './resources/webhooks'; export interface Metadata { [key: string]: any; } export interface PaginationParams { limit?: number; skip?: number; } export type Currency = 'OMR'; export interface Product { name: string; unit_amount: number; quantity: number; } export interface CheckoutSessionParams { client_reference_id: string; mode: 'payment' | 'subscription'; products?: Product[]; customer_id?: string; success_url: string; cancel_url: string; save_card_on_success?: boolean; expire_in_minutes?: number; plan_id?: string; metadata: Metadata; } export interface CheckoutSession { session_id: string; client_reference_id: string; customer_id?: string; products: Product[]; total_amount: number; currency: Currency; success_url: string; cancel_url: string; payment_status: 'unpaid' | 'paid' | 'cancelled'; mode: 'payment' | 'subscription'; invoice: string; metadata: Metadata; created_at: string; expire_at: string; } export interface CustomerParams { client_customer_id: string; } export interface Customer { id: string; customer_client_id: string; } export interface PaymentIntentParams { payment_method_id?: string; amount: number; client_reference_id: string; return_url: string; metadata: Metadata; } export interface PaymentIntent { id: string; client_reference_id: string; amount: number; currency: Currency; payment_method?: string; next_action?: { type: 'redirect'; url: string; return_url: string; }; status: 'requires_payment_method' | 'requires_action' | 'requires_confirmation' | 'succeeded' | 'cancelled'; metadata: Metadata; created_at: string; expire_at: string; } export interface PaymentMethod { id: string; bin: number; masked_card: string; expiry_month: number; expiry_year: number; nickname?: string; brand: 'Visa' | 'MasterCard'; card_type: 'Debit' | 'Credit'; } export interface Payment { activity: string; payment_id: string; masked_card: string; card_type: string; status: 'inProcess' | 'successful' | 'failed'; amount: number; fee: number; refunded: boolean; refunds: Refund[]; payment_intent?: string; checkout_invoice?: string; created_at: string; reason?: string; } export interface RefundParams { payment_id: string; reason: string; metadata: Metadata; amount?: number; } export interface Refund { amount: number; refund_id: string; payment_id: string; status: 'successful' | 'failed'; reason: string; metadata: Metadata; created_at: string; } export interface WebhookEvent { timestamp: string; signature: string; body: any; } export { ThawaniError, APIError, AuthenticationError, ValidationError } from './utils/errors'; export { HttpClient } from './utils/http-client'; export { validateRequired, validateAmount, validateExpiry, validateMetadata, validateProducts } from './utils/validation'; export { API_BASE_URL, CHECKOUT_URL, API_ENDPOINTS, DEFAULT_TIMEOUT } from './constants'; export declare const VERSION = "1.0.0";