AllDotPy / AllDotPy/EasySwitch

Add support for MTN Mobile Money

Open
#27 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement good first issue help wanted
Dominant language
Python
Stars
21
Forks
17
PR merge metrics
No merged PRs in 30d

Description

Add MTN Mobile Money API Adapter

Description:

We're looking to expand EasySwitch's capabilities by adding support for MTN Mobile Money payments. This will enable developers to seamlessly integrate with one of Africa's largest mobile money platforms through our unified SDK.

Key Integration Points Needed:
  • ✅ MTN Mobile Money API authentication
  • ✅ Send payment requests
  • ✅ Check transaction status
  • ✅ Handle webhook notifications
  • ✅ Process refunds (where supported)
Expected Behavior:
# Example of ideal usage:
response = await client.send_payment(
    provider="mtn",
    amount=1000,
    phone_number="233541234567",  # MTN Ghana number format example
    currency="GHS",
    reference="order_123"
)
Technical Requirements:
  1. Base API URL: https://api.mtn.com/v1/ (sandbox available)
  2. Auth: API Key + OAuth2
  3. Required endpoints:
    • /collection/request-to-pay
    • /disbursement/transfer
    • /transaction/status
Resources for Contributors:
Contribution Guide:
  1. Fork the repository
  2. Create new branch: feat/mtn-adapter
  3. Implement in easyswitch/adapters/mtn.py
  4. Add comprehensive tests
  5. Submit PR referencing this issue

This is a great opportunity to:

  • Work with real-world payment APIs
  • Contribute to a growing open-source project
  • Get your work used by developers across Africa

Would you like to take this on? Comment below to claim the issue!

Labels: good first issue, enhancement, help wanted

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the existing Orange and Wave adapters in easyswitch/adapters and the MTN API documentation. Implement the adapter in easyswitch/adapters/mtn.py, covering authentication, collection, disbursement, status, webhooks, and supported refunds. Add comprehensive tests and verify the example unified client usage.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, payments
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.