About PayMux
PayMux is an open-source payment gateway multiplexer and webhook router designed to allow multiple applications to safely share a single payment gateway account. It provides each application with its own isolated API credentials, webhook destination, and data view, while the merchant maintains a single account and notification URL. This solution is particularly useful for managing payments across different applications without complex integrations or data conflicts.
Key Features:
- Shared Payment Gateway: Enables multiple applications to use one merchant account securely.
- Isolated Credentials: Each application receives unique API credentials and webhook destinations.
- Centralized Notifications: Manages all gateway notifications in one place, ensuring they are verified and attributed correctly.
- Normalized Events: Delivers consistent event data to each application, signed for security.
- Transaction Management: Supports payment creation, status synchronization, cancellations, expirations, refunds, and partial refunds.
- Disbursement: Facilitates secure outbound payments with configurable limits and approval workflows.
- Dashboard: Provides an operations dashboard for managing payments, payouts, events, and gateways, with a responsive design for various devices.
- Security: Implements robust security measures including signature verification, encrypted credentials, and secure password hashing.
- Gateway Agnostic: Designed with an architecture that supports multiple payment gateways, with Midtrans currently supported.
Technical Details:
- Built with Go and utilizes PostgreSQL for data storage.
- The dashboard is developed using React, TypeScript, and Vite.
- Supports Docker for deployment.
- Employs security protocols like HMAC-SHA256, AES-256-GCM, and Argon2id.
- Integrates with Prometheus for metrics.
Use Cases:
- E-commerce platforms managing multiple storefronts.
- SaaS providers offering integrated payment solutions.
- Developers needing to consolidate payment processing across different services.