OpenChart
Free Desktop charting with Claude or Codex. Describe alerts, research chart moves, and choose your data providers.
Accept payments from Zimbabwe and around the world
FinanceTypeScript · PLpgSQLGitHub @Munyah17OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Payment Gateway To Replace Paynow
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗A unified payment gateway platform for Zimbabwe and African markets.
ZeePay provides developers with a single API integration to accept payments through multiple payment methods including EcoCash, InnBucks, Omari, Visa, Mastercard, and more.
Payments without the pain.
zeepay/
├── src/
│ ├── app/ # Next.js app directory
│ │ ├── api/v1/ # API endpoints
│ │ │ ├── payments/ # Payment endpoints
│ │ │ ├── refunds/ # Refund endpoints
│ │ │ ├── webhooks/ # Webhook endpoints
│ │ │ ├── payment-methods/
│ │ │ └── simulator/ # Payment simulator
│ │ ├── checkout/ # Hosted checkout pages
│ │ └── dashboard/ # Merchant dashboard
│ ├── lib/
│ │ ├── auth/ # Authentication utilities
│ │ ├── database/ # Database client & schema
│ │ ├── providers/ # Payment provider adapters
│ │ ├── services/ # Business logic services
│ │ ├── utils/ # Utility functions
│ │ └── webhooks/ # Webhook engine
│ └── types/ # TypeScript type definitions
├── sdk/ # JavaScript/TypeScript SDK
├── docs/ # Documentation
│ └── openapi.yaml # OpenAPI specification
└── package.json
git clone <repository-url>
cd zeepay
npm install
.env.local file (see .env.example for reference):NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
JWT_SECRET=your_jwt_secret_here
ENCRYPTION_KEY=your_encryption_key_here
NODE_ENV=development
# Apply the database schema
# Copy the contents of src/lib/database/schema.sql and run it in your Supabase SQL editor
npm run dev
The application will be available at http://localhost:3000
import ZeePay from 'zeepay-sdk';
const zeePay = new ZeePay({
apiKey: 'zp_test_your_api_key_here'
});
const payment = await zeePay.payments.create({
amount: 10,
currency: 'USD',
reference: 'invoice_1042'
});
console.log(payment.checkoutUrl);
// Redirect customer to payment.checkoutUrl
POST /api/v1/payments - Create a paymentGET /api/v1/payments - List paymentsGET /api/v1/payments/:id - Get a paymentPOST /api/v1/payments/:id - Cancel a paymentPOST /api/v1/refunds - Create a refundGET /api/v1/refunds/:id - Get a refundGET /api/v1/payment-methods - List available payment methodsPOST /api/v1/webhooks - Create webhook endpointGET /api/v1/webhooks - List webhooksGET /api/v1/webhooks/:id - Get webhookPATCH /api/v1/webhooks/:id - Update webhookDELETE /api/v1/webhooks/:id - Delete webhookGET /api/v1/webhooks/:id/deliveries - Get webhook delivery historyFor complete API documentation, see docs/openapi.yaml
Creates and retrieves payments with idempotency support.
Mobile-first payment page with payment method selection.
Signed, retryable webhook delivery with event history.
Extensible provider interface for adding new payment methods.
Test payment scenarios without processing real money.
Key tables:
merchants - Merchant accountsmerchant_users - Dashboard usersapi_keys - API key managementpayments - Canonical payment recordspayment_attempts - Individual payment attemptsrefunds - Refund recordswebhook_endpoints - Webhook configurationwebhook_events - Durable event recordswebhook_deliveries - Delivery trackingidempotency_keys - Duplicate request protectionSee src/lib/database/schema.sql for complete schema.
npm install zeepay-sdk
import ZeePay from 'zeepay-sdk';
const zeePay = new ZeePay({
apiKey: process.env.ZEEPAY_API_KEY
});
// Create payment
const payment = await zeePay.payments.create({
amount: 10,
currency: 'USD',
reference: 'invoice_1042',
returnUrl: 'https://myapp.com/success',
cancelUrl: 'https://myapp.com/cancel'
});
// Redirect to checkout
window.location.href = payment.checkoutUrl;
See sdk/README.md for complete SDK documentation.
const webhook = await zeePay.webhooks.create({
url: 'https://myapp.com/webhooks/zeepay',
events: ['payment.succeeded', 'payment.failed', 'payment.refunded']
});
// Save webhook.secret securely
console.log(webhook.secret);
import crypto from 'crypto';
function verifyWebhookSignature(payload, signature, secret) {
const expectedSignature = `sha256=${crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex')}`;
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expectedSignature)
);
}
npm test
npm run build
npm run lint
Merchant Application
|
| ZeePay API
v
ZeePay API Layer
|
Payment Engine
|
Payment Router
/ | \
Cards Mobile Money Wallets
| | |
Acquirer EcoCash Other
| InnBucks Providers
v v v
Payment Providers
|
Confirmed Result
|
ZeePay Webhooks
|
v
Merchant Application
Contributions are welcome! Please follow these steps:
MIT License - see LICENSE file for details
Built with: