Add independent payment-service (port 8012, payment_db) with foundation licensing, BYO-PSP, merchant accounts, idempotent requests, callbacks, and immutable ledger. Co-authored-by: Cursor <cursoragent@cursor.com>
72 lines
2.0 KiB
Markdown
72 lines
2.0 KiB
Markdown
# Phase 14.1 — PSP Management
|
|
|
|
| Field | Value |
|
|
| --- | --- |
|
|
| Identifier | `payment-14.1` |
|
|
| Implementation Priority | **HIGH** |
|
|
| Status | Complete |
|
|
| Service | `payment` |
|
|
| Depends On | `payment-14.0` |
|
|
|
|
> Full specification: [payment-roadmap.md](../../payment-roadmap.md#phase-14-1--psp-management)
|
|
|
|
## Purpose
|
|
|
|
Enable tenants to connect BYO-PSP credentials (ZarinPal, IDPay, NextPay, Pay.ir, Mellat, Parsian, Saman, …), test connections, and configure routing priority with adapter registry.
|
|
|
|
## Business Scope
|
|
|
|
Connect, test, suspend, and prioritize tenant-owned PSP gateways. Failover between primary and secondary PSP.
|
|
|
|
## Technical Scope
|
|
|
|
Aggregates: PspConnection, PspCredentialVaultRef, PspConnectionHealthCheck, PspRoutingPolicy. MockPspAdapter + provider-family stubs. Secret refs only in API responses.
|
|
|
|
## Dependencies
|
|
|
|
`payment-14.0`
|
|
|
|
## Out of Scope
|
|
|
|
Merchant facilitator onboarding (14.2), payment capture (14.3), callbacks (14.4), international live PSPs.
|
|
|
|
## Capabilities
|
|
|
|
`payment.psp_connections`, `payment.psp_routing`, `payment.psp_health_check`
|
|
|
|
## Permissions
|
|
|
|
`payment.psp_connections.view|create|update|delete|test|manage`, `payment.psp_routing.manage`
|
|
|
|
## Events
|
|
|
|
`payment.psp_connection.created|updated|suspended|activated|tested`, `payment.psp_routing.updated`
|
|
|
|
## API Contracts
|
|
|
|
`/api/v1/psp-connections`, `/api/v1/psp-routing-policies`, POST `.../test`
|
|
|
|
## Data Ownership
|
|
|
|
Payment owns connection and routing metadata; vault stores secrets.
|
|
|
|
## Provider Ownership
|
|
|
|
All PSP SDK calls in Payment adapters.
|
|
|
|
## Integration Rules
|
|
|
|
Credential rotation must not break in-flight requests. Adapter protocol versioned.
|
|
|
|
## Quality Gates
|
|
|
|
Secret redaction, tenant isolation, adapter contract tests.
|
|
|
|
## Definition of Done
|
|
|
|
Tenant PSP connect/test/suspend works with mock adapter; no payment requests yet.
|
|
|
|
## Future Compatibility
|
|
|
|
Region/currency on connections; Stripe/PayPal adapter slots without schema break.
|