Who is this for?

Python developers who want to automate payments, manage wallets, or integrate Monieswitch into their backend services.

Overview

This guide covers:
  • Setting up your Python environment
  • Authenticating with the Monieswitch API
  • Making your first API request
  • Creating a payment link
  • Handling errors and best practices

Prerequisites

1

Set Up Python

Python 3.7+ installed. Download from python.org.
2

Create Monieswitch Account

A Monieswitch account. Register at Monieswitch Dashboard.
3

Get API Key

API Key from your Monieswitch dashboard.

1. Install Dependencies

We recommend using requests for HTTP requests and python-dotenv for environment variables.
pip install requests python-dotenv

2. Configure Your API Key

Create a .env file in your project directory:
MONIESWITCH_API_KEY=your_api_key_here
Never commit your .env file or API keys to source control.

3. Making Your First API Request

Here’s a sample script to fetch your merchant details from Monieswitch:
merchant_details.py
import os
import requests
from dotenv import load_dotenv

load_dotenv()

API_BASE = "https://nini.monieswitch.com"
API_KEY = os.getenv("MONIESWITCH_API_KEY")

def get_merchant_details():
    headers = {
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json"
    }
    try:
        response = requests.get(f"{API_BASE}/api/merchant/details", headers=headers)
        response.raise_for_status()
        print("Merchant Details:", response.json())
    except requests.exceptions.HTTPError as err:
        print("API Error:", err.response.status_code, err.response.json())
    except Exception as e:
        print("Request Error:", str(e))

if __name__ == "__main__":
    get_merchant_details()

create_payment_link.py
import os
import requests
from dotenv import load_dotenv

load_dotenv()

API_BASE = "https://nini.monieswitch.com"
API_KEY = os.getenv("MONIESWITCH_API_KEY")

def create_payment_link():
    headers = {
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json"
    }
    payload = {
        "amount": 5000,
        "currency": "NGN",
        "description": "Test payment link",
        "customer": {
            "email": "[email protected]"
        }
    }
    try:
        response = requests.post(f"{API_BASE}/api/payment-links", json=payload, headers=headers)
        response.raise_for_status()
        print("Payment Link Created:", response.json())
    except requests.exceptions.HTTPError as err:
        print("API Error:", err.response.status_code, err.response.json())
    except Exception as e:
        print("Request Error:", str(e))

if __name__ == "__main__":
    create_payment_link()

5. Handling Errors and Best Practices

Always check for HTTP status codes and handle exceptions. The Monieswitch API returns detailed error messages in the response body.
  • Keep your API keys secret using environment variables.
  • Validate all API responses before using the data.
  • Read the API Reference for all available endpoints and parameters.

Next Steps

  • Explore more endpoints in the API Reference
  • Learn how to accept payments with Monieswitch in PHP (guide)
  • Set up webhooks for real-time notifications