@uniipay/core
v0.1.2
Published
Unified payment gateway abstraction layer - Core contracts, types, and interfaces for multi-provider payment orchestration
Maintainers
Readme
@uniipay/core
Core types, interfaces, and contracts for the UniPay payment orchestration system.
Overview
@uniipay/core provides the foundational TypeScript types, interfaces, and error classes used across all UniPay packages. This package defines the contracts that payment gateway adapters must implement and the data structures used throughout the system.
Installation
npm install @uniipay/coreOr with pnpm:
pnpm add @uniipay/coreWhat's Included
Type Definitions
- Payment Types:
Payment,PaymentStatus,CreatePaymentInput,CreatePaymentResult - Refund Types:
Refund,RefundStatus,CreateRefundInput,RefundList - Checkout Types:
CheckoutMode,HostedCheckoutResult,SdkCheckoutResult - Customer Types:
CustomerInfo,Address - Money Types:
Money(amount and currency) - Webhook Types:
WebhookEvent,WebhookEventType,WebhookRequest,WebhookConfig - Capability Types:
AdapterCapability,AdapterCapabilities
Enums
PaymentProvider: Supported payment providers (STRIPE, RAZORPAY, PAYU, etc.)PaymentStatus: Payment lifecycle statesRefundStatus: Refund lifecycle statesCheckoutMode: Checkout integration modes (HOSTED, SDK)WebhookEventType: Normalized webhook event typesAdapterCapability: Feature flags for adapters
Interfaces
PaymentGatewayAdapter: Contract that all adapters must implementPaymentClient: Interface for the orchestrator clientPaymentClientOptions: Configuration for payment clients
Error Classes
Comprehensive error hierarchy for type-safe error handling:
- Configuration Errors:
DuplicateProviderError,MissingProviderError,InvalidResolutionStrategyError - Payment Errors:
PaymentCreationError,PaymentNotFoundError,UnsupportedCurrencyError RefundCreationError,RefundNotFoundError,PartialRefundNotSupportedError- Webhook Errors:
WebhookSignatureError,WebhookParsingError,MissingWebhookConfigError - Provider Errors:
ProviderNotFoundError,NoProviderAvailableError - Validation Errors:
ValidationError,InvalidUnipayIdError
Utility Functions
createUnipayId(): Create unified payment identifierparseUnipayId(): Parse unified payment identifierisValidUnipayId(): Validate unified payment identifier formatgetProviderFromUnipayId(): Extract provider from unified IDhasCapability(): Check adapter capabilitiessupportsCurrency(): Check currency support
Usage
This package is typically not used directly. Instead, use @uniipay/orchestrator which re-exports all core types:
import {
PaymentProvider,
PaymentStatus,
CreatePaymentInput,
// ... all core types
} from '@uniipay/orchestrator'Direct Usage (Advanced)
If you're implementing a custom adapter:
import {
PaymentGatewayAdapter,
PaymentProvider,
AdapterCapability,
CreatePaymentInput,
CreatePaymentResult,
Payment,
Refund,
WebhookEvent
} from '@uniipay/core'
export class MyCustomAdapter implements PaymentGatewayAdapter {
readonly provider = PaymentProvider.CUSTOM
readonly capabilities = {
supportedCurrencies: ['USD', 'EUR'],
features: [
AdapterCapability.HOSTED_CHECKOUT,
AdapterCapability.WEBHOOKS,
AdapterCapability.PARTIAL_REFUND
]
}
async createPayment(input: CreatePaymentInput): Promise<CreatePaymentResult> {
// Implementation
}
// ... implement other methods
}TypeScript Support
This package is written in TypeScript and includes full type definitions. It requires TypeScript >= 5.3.
Documentation
For complete documentation, visit:
Related Packages
- @uniipay/orchestrator - Payment orchestration and routing
- @uniipay/adapter-stripe - Stripe adapter
- @uniipay/adapter-razorpay - Razorpay adapter
License
MIT
Contributing
Contributions are welcome! Please see our Contributing Guide.
