Payment Providers
Configure payment gateways to accept online fee payments from students and parents.
Time Required: 20 minutes
Module: Fees (openeducat_fees), Payment Provider modules
User Role: System Administrator
Table of Contents
- Overview
- Supported Payment Providers
- Provider Configuration
- Testing Payments
- Security Considerations
- Troubleshooting
Overview
Payment provider integration enables:
- Online fee collection
- Multiple payment methods (cards, bank transfer, wallets)
- Automatic payment reconciliation
- Payment notifications
- Transaction records
Supported Payment Providers
Global Providers
| Provider | Card | Bank | Wallet | Setup |
|---|
| Stripe | Yes | Yes | No | Easy |
| PayPal | Yes | No | Yes | Easy |
| Razorpay | Yes | Yes | Yes | Medium |
| PayU | Yes | Yes | Yes | Medium |
| Authorize.net | Yes | No | No | Medium |
Regional Providers
| Provider | Region | Features |
|---|
| Paytm | India | UPI, Wallet, Cards |
| CCAvenue | India | NetBanking, Cards |
| Mollie | Europe | Cards, iDEAL, SEPA |
| Mercado Pago | LATAM | Local methods |
| Flutterwave | Africa | Mobile money, Cards |
Provider Configuration
Navigate to Payment Providers
- Go to Invoicing > Configuration > Payment Providers
- Or Settings > Payment Providers
General Setup Steps
- Click on provider name
- Set State to “Test” initially
- Enter credentials
- Configure options
- Save and test
- Change to “Enabled” when ready
Stripe Configuration
| Field | Where to Find | Description |
|---|
| Publishable Key | Stripe Dashboard > API Keys | Public key for frontend |
| Secret Key | Stripe Dashboard > API Keys | Private key for backend |
| Webhook Secret | Stripe Dashboard > Webhooks | For event notifications |
Steps:
- Create Stripe account at stripe.com
- Get API keys from Dashboard
- Enter keys in OpenEduCat
- Configure webhook endpoint
- Test with test cards
PayPal Configuration
| Field | Where to Find | Description |
|---|
| Client ID | PayPal Developer > Applications | Application identifier |
| Client Secret | PayPal Developer > Applications | Secret key |
| Mode | - | Sandbox/Production |
Steps:
- Create PayPal business account
- Create app in Developer Dashboard
- Get credentials
- Enter in OpenEduCat
- Test with sandbox account
Razorpay Configuration
| Field | Where to Find | Description |
|---|
| Key ID | Razorpay Dashboard > Settings > API Keys | Public key |
| Key Secret | Razorpay Dashboard > Settings > API Keys | Secret key |
Steps:
- Create Razorpay account
- Complete KYC verification
- Generate API keys
- Enter in OpenEduCat
- Configure webhook
Payment Options
For each provider, set available methods:
| Method | Provider Support |
|---|
| Credit Card | Most providers |
| Debit Card | Most providers |
| Net Banking | Regional providers |
| UPI | India providers |
| Wallet | Select providers |
| Bank Transfer | Select providers |
Currency Settings
| Setting | Description |
|---|
| Default Currency | Institution’s primary currency |
| Supported Currencies | Additional accepted currencies |
| Exchange Rate | Manual or automatic |
Transaction Limits
| Setting | Purpose |
|---|
| Minimum Amount | Prevent micro-transactions |
| Maximum Amount | Risk management |
| Daily Limit | Per-student limit |
Fee Integration
Linking to Fee Structure
- Go to OpenEduCat > Fees > Fee Structures
- Edit fee structure
- Enable Online Payment
- Select available payment providers
- Save
Student Portal Payment
Students can pay fees:
- Login to student portal
- Go to Fees section
- View pending invoices
- Click Pay Now
- Select payment method
- Complete transaction
Payment Reconciliation
After successful payment:
- Transaction recorded automatically
- Invoice marked as paid
- Receipt generated
- Email sent to student/parent
- Finance team notified
Testing Payments
Test Mode
Always test before going live:
- Set provider to Test Mode
- Use test credentials
- Test with test cards/accounts
- Verify all flows work
- Check error handling
Test Card Numbers
| Provider | Test Card | Result |
|---|
| Stripe | 4242 4242 4242 4242 | Success |
| Stripe | 4000 0000 0000 0002 | Decline |
| PayPal | Sandbox account | Success |
| Razorpay | See documentation | Various |
Test Checklist
Security Considerations
PCI Compliance
| Requirement | Implementation |
|---|
| No card storage | Use tokenization |
| HTTPS | SSL certificate required |
| Access control | Limit who sees credentials |
| Audit logs | Track all transactions |
Credential Security
| Practice | Description |
|---|
| Secure storage | Use environment variables |
| Access restriction | Admin-only access |
| Regular rotation | Change keys periodically |
| Monitoring | Watch for suspicious activity |
Data Protection
| Data | Handling |
|---|
| Card numbers | Never stored locally |
| Transaction IDs | Stored for reference |
| Payment amounts | Recorded in system |
| Student info | Protected per privacy policy |
Troubleshooting
Payment Fails
| Error | Possible Cause | Solution |
|---|
| Invalid credentials | Wrong API keys | Verify keys in provider dashboard |
| Connection error | Network issue | Check server connectivity |
| Currency mismatch | Unsupported currency | Enable currency in provider |
| Amount too low | Below minimum | Check provider minimums |
Webhook Issues
| Symptom | Solution |
|---|
| Status not updating | Verify webhook URL |
| Duplicate notifications | Check webhook configuration |
| Missing events | Ensure events are enabled |
Common Errors
| Error Code | Description | Action |
|---|
| 400 | Bad request | Check request format |
| 401 | Unauthorized | Verify credentials |
| 403 | Forbidden | Check permissions |
| 500 | Server error | Check provider status |
Provider-Specific Notes
Stripe
- Supports 135+ currencies
- Automatic receipt emails
- Dispute handling built-in
- Detailed analytics
PayPal
- Buyer protection
- International payments
- Express checkout option
- Seller protection
Razorpay
- UPI support
- EMI options
- Indian bank integration
- QR code payments
Last updated: January 2026