Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] — 2025-02-16
Added
Subscriptions & Recurring Billing
SupportsRecurringcapability interfaceSubscriptionStatusandBillingIntervalenumsPlanDTO,CanonicalSubscriptionPayload,SubscriptionItemDTOSubscription,SubscriptionItem,SubscriptionUsagemodels- Full lifecycle: create, cancel, pause, resume, update subscriptions
- 6 subscription events (
SubscriptionCreated,Renewed,Paused,Resumed,Cancelled,TrialEnding)
Tokenization
- Updated
SupportsTokenizationcontract PaymentMethodmodel with token storage, expiry, and default handlingPaymentMethodSavedandPaymentMethodDeletedevents
- Updated
Invoicing
Invoice,InvoiceItem,CreditNote,TaxRatemodelsInvoiceGeneratorandTaxCalculatorservices- State management (
markPaid(),markVoided()) and scopes
Payouts & Splits
SupportsPayoutcapability interfacePayoutRecipient,Payout,PaymentSplitmodels- Marketplace-style split payment support
Fraud & Risk
SupportsThreeDSecurecapability interfaceBlocklistEntryandRiskAssessmentmodelsRiskScorerservice with configurable factors
Analytics
RevenueAnalyticsservice (revenue summary, MRR/ARR, gateway success rates, conversion funnels)
Coupons & Discounts
CouponandCouponUsagemodels with validation- Percentage and fixed discount types
- Per-customer usage limits, minimum spend, expiry
Advanced Webhooks
WebhookRouterservice with wildcard matchingWebhookRetryPolicywith fixed, linear, and exponential backoff
Multi-Currency
ExchangeRatemodelCurrencyConverterservice with bidirectional rate resolution
Payment Method Contracts
- 5 new capability interfaces:
SupportsWallets,SupportsBankTransfer,SupportsBuyNowPayLater,SupportsQRCode,SupportsCOD
- 5 new capability interfaces:
Developer Experience
PaymentLinkmodel with auto-slug and expirySandboxSimulatorfor testing without a real gatewaySchemaValidatorfor pre-flight payload validation- 8 new VitePress documentation pages
Changed
- Service provider now registers 10 new migration stubs and 9 singleton services
Paymentmanager extended with subscription lifecycle methods
[1.0.0] — 2024-XX-XX
Added
Core Architecture
Paymentmanager with fluent API (gateway(),withProfile(),usingContext(),usingCredentials())GatewayRegistryfor managing core and addon gateway registrationsGatewayDriverContract— Core driver interface- 6 capability interfaces:
SupportsHostedRedirect,SupportsWebhookVerification,SupportsRefund,SupportsStatusQuery,SupportsTokenization,SupportsInstallments
Canonical Payload System
- 12 immutable, readonly DTOs:
CanonicalPayload,MoneyDTO,OrderDTO,OrderItemDTO,CustomerDTO,AddressDTO,UrlsDTO,ContextDTO,CanonicalRefundPayload,CanonicalStatusPayload,CredentialsDTO,GatewayResult - Auto-generated idempotency keys
- Dot-notation flattening for logging
- 12 immutable, readonly DTOs:
Credential Management
- 3 credential repositories:
EnvCredentialsRepository,DatabaseCredentialsRepository,CompositeCredentialsRepository - Multi-tenant isolation with tenant IDs
- Time-windowed credential rotation
- Priority-based resolution
- Encrypted database storage
- 3 credential repositories:
Persistence Layer
- 7 Eloquent models with ULID primary keys
- 7 migration stubs with configurable table names
- Full payment lifecycle tracking (payments, attempts, webhooks, refunds, logs)
HTTP Layer
- Universal
WebhookControllerwith signature verification and idempotency ReturnControllerandCancelControllerfor callback handling- Configurable routes with middleware support
- Universal
Logging
PaymentLoggerwith dot-notation categories- Dual output: Laravel log channels + database table
- Configurable verbosity levels (off → debug)
- Automatic redaction of sensitive keys
CLI Commands
payments:make-gateway— Generate driver skeletons (inline or --addon)payments:gateways— List all discovered gatewayspayments:credentials:sync— Validate credential presencepayments:webhooks:replay— Safely replay stored webhook events
Auto-Discovery
GatewayAddonServiceProviderfor addon packagesGatewayAddonContractfor addon metadata
Events
PaymentCreated,PaymentVerified,PaymentFailed,PaymentCancelledPaymentRefundRequested,PaymentRefunded,WebhookReceived
Exceptions
- 7 typed exceptions for specific failure scenarios