Docs
Dashboard Create account

Python examples

Initiate a payment

import os, requests

resp = requests.post(
    'https://nixpay.supreonix.com/api/v1/payments/stk-push',
    headers={'Authorization': f"Bearer {os.environ['NIXPAY_SECRET_KEY']}"},
    json={
        'amount': 500,
        'phone': '254712345678',
        'account_reference': 'INV-1042',
    },
    timeout=30,
)
data = resp.json()
if not data['ok']:
    raise RuntimeError(data['error']['message'])

Verify a webhook (Flask)

import hmac, hashlib, os
from flask import Flask, request

app = Flask(__name__)

@app.post('/nixpay/webhook')
def webhook():
    raw = request.data
    expected = 'sha256=' + hmac.new(
        os.environ['NIXPAY_WEBHOOK_SECRET'].encode(), raw, hashlib.sha256
    ).hexdigest()

    if not hmac.compare_digest(expected, request.headers.get('X-NixPay-Signature', '')):
        return '', 400

    event = request.get_json()
    # fulfil the order
    return '', 200

NixPay documentation · A Supreonix product Back to introduction