Prerequisites
| Requirement | Minimum version |
|---|---|
| Ruby on Rails | 7.0 |
| Ruby | 3.1 |
| Simiz account | Create one free |
Installation
Run the generator
config/initializers/simiz.rb— configuration filedb/migrate/*_create_simiz_transactions.rb— migration for the transactions table
Mount the engine
Add to your This registers the webhook endpoint at
config/routes.rb:/simiz/webhooks.Configuration
The initializer atconfig/initializers/simiz.rb:
Usage
Creating a transaction
Checking transaction status
Processing refunds
Webhook handling
The engine handles webhook signature verification automatically. Subscribe to events using Active Support Notifications:Supported payment methods
| Method | Type | Status |
|---|---|---|
| Orange Money | Mobile Money | Available |
| MTN Mobile Money | Mobile Money | Available |
| Wave | Mobile Money | Coming Soon |
| Moov Money | Mobile Money | Coming Soon |
| Airtel Money | Mobile Money | Coming Soon |
| M-Pesa | Mobile Money | Coming Soon |
Supported currencies
| Currency | Code | Countries |
|---|---|---|
| Central African CFA Franc | XAF | Cameroon, Central African Republic, Chad, Congo, Equatorial Guinea, Gabon |
| West African CFA Franc | XOF | Benin, Burkina Faso, Ivory Coast, Guinea-Bissau, Mali, Niger, Senegal, Togo |
| Ghanaian Cedi | GHS | Ghana |
| Nigerian Naira | NGN | Nigeria |
| Kenyan Shilling | KES | Kenya |
| Ugandan Shilling | UGX | Uganda |
| Rwandan Franc | RWF | Rwanda |
| Tanzanian Shilling | TZS | Tanzania |
Webhook events
| Event | Description |
|---|---|
transaction.created | Transaction initiated |
transaction.processing | Being processed by the provider |
transaction.completed | Payment successful |
transaction.failed | Payment failed |
transaction.cancelled | Cancelled by customer |
transaction.expired | Payment window expired |
refund.created | Refund initiated |
refund.completed | Refund completed |
refund.failed | Refund failed |
Test mode
Set the following environment variables or Rails credentials:sandbox.api.simiz.io and no real money is charged.
Full sandbox documentation
See all test numbers and scenarios in the Sandbox Testing guide.
Troubleshooting
- Webhook signature invalid
- Gem not loading
- API key errors
Solutions:
- Verify your webhook secret in credentials or environment variables
- Ensure the engine is mounted and the webhook endpoint is accessible
- Check that no Rack middleware is modifying the raw request body
Next steps
Webhook Verification
Learn about webhook configuration and signature verification.
API Reference
Explore the full Simiz API.
Sandbox Testing
Test all payment scenarios before going live.
Support
Need help? Contact our support team.
Changelog
Version history
Version history
| Version | Date | Changes |
|---|---|---|
1.0.0 | 2026-03-01 | Initial release — mobile money payments, webhooks, sandbox |

