Skip to main content

Python SDK for maib MIA API

Project description

Python SDK for maib MIA API

Installation

To easily install or upgrade to the latest release, use pip:

pip install --upgrade maib-mia-sdk

Getting started

Import SDK:

from maib_mia_sdk import MaibMiaSdk, MaibMiaAuthRequest, MaibMiaApiRequest

Add project configuration:

import os, datetime

MAIB_MIA_CLIENT_ID = os.getenv('MAIB_MIA_CLIENT_ID')
MAIB_MIA_CLIENT_SECRET = os.getenv('MAIB_MIA_CLIENT_SECRET')
MAIB_MIA_SIGNATURE_KEY = os.getenv('MAIB_MIA_SIGNATURE_KEY')

SDK usage examples

Get Access Token with Client ID and Client Secret

maib_mia_auth = MaibMiaAuthRequest \
    .create(base_url=MaibMiaSdk.SANDBOX_BASE_URL) \
    .generate_token(client_id=MAIB_MIA_CLIENT_ID, client_secret=MAIB_MIA_CLIENT_SECRET)

maib_mia_token = maib_mia_auth['accessToken']

Create a dynamic order payment QR

maib_mia_qr_data = {
    'type': 'Dynamic',
    'expiresAt': (datetime.datetime.now() + datetime.timedelta(hours=24)).isoformat(),
    'amountType': 'Fixed',
    'amount': 50.00,
    'currency': 'MDL',
    'orderId': '123',
    'description': 'Order #123',
    'callbackUrl': 'https://example.com/callback',
    'redirectUrl': 'https://example.com/success'
}

maib_mia_api_request = MaibMiaApiRequest.create(base_url=MaibMiaSdk.SANDBOX_BASE_URL)
maib_mia_create_qr_response = maib_mia_api_request.qr_create(
    data=maib_mia_qr_data,
    token=maib_mia_token)

Create a RTP (Request To Pay)

maib_mia_rtp_data = {
    'alias': '3736xxxxxxx',
    'amount': 50.00,
    'currency': 'MDL',
    'expiresAt': (datetime.datetime.now() + datetime.timedelta(hours=24)).isoformat(),
    'description': f'Order #123',
    'orderId': '123',
    'callbackUrl': 'https://example.com/callback',
    'redirectUrl': 'https://example.com/success'
}

maib_mia_create_rtp_response = maib_mia_api_request.rtp_create(
    data=maib_mia_rtp_data,
    token=maib_mia_token)

Validate callback signature

callback_data = {
    "result": {
        "qrId": "c3108b2f-6c2e-43a2-bdea-123456789012",
        "extensionId": "3fe7f013-23a6-4d09-a4a4-123456789012",
        "qrStatus": "Paid",
        "payId": "eb361f48-bb39-45e2-950b-123456789012",
        "referenceId": "MIA0001234567",
        "orderId": "123",
        "amount": 50.00,
        "commission": 0.1,
        "currency": "MDL",
        "payerName": "TEST QR PAYMENT",
        "payerIban": "MD88AG000000011621810140",
        "executedAt": "2025-04-18T14:04:11.81145+00:00",
        "terminalId": null
    },
    "signature": "fHM+l4L1ycFWZDRTh/Vr8oybq1Q1xySdjyvmFQCmZ4s="
}

validate_callback_result = MaibMiaSdk.validate_callback_signature(
    callback_data=callback_data,
    signature_key=MAIB_MIA_SIGNATURE_KEY)

Perform a test QR payment

maib_test_pay_data = {
    'qrId': maib_mia_create_qr_response['qrId'],
    'amount': maib_mia_qr_data['amount'],
    'iban': 'MD88AG000000011621810140',
    'currency': maib_mia_qr_data['currency'],
    'payerName': 'TEST QR PAYMENT'
}

maib_mia_test_pay_response = maib_mia_api_request.test_pay(
    data=maib_test_pay_data,
    token=maib_mia_token)

Get payment details

maib_mia_payment_details_response = maib_mia_api_request.payment_details(
    pay_id=maib_mia_test_pay_response['payId'],
    token=maib_mia_token)

Refund payment

maib_mia_pay_refund_data = {
    'reason': 'Test refund reason'
}

maib_mia_refund_details_response = maib_mia_api_request.payment_refund(
    pay_id=maib_mia_test_pay_response['payId'],
    data=maib_mia_pay_refund_data,
    token=maib_mia_token)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

maib_mia_sdk-1.1.0.tar.gz (21.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

maib_mia_sdk-1.1.0-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

Details for the file maib_mia_sdk-1.1.0.tar.gz.

File metadata

  • Download URL: maib_mia_sdk-1.1.0.tar.gz
  • Upload date:
  • Size: 21.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for maib_mia_sdk-1.1.0.tar.gz
Algorithm Hash digest
SHA256 c0173e0d647e83f8c1c2564605f4a5816ed7979bc83643d42518ec74af73a84a
MD5 b7af858bd254f4926652133a8992b4d5
BLAKE2b-256 58281302d3a0656346e53da9663a099f87dcac440e9485630657d4cd2271d179

See more details on using hashes here.

Provenance

The following attestation bundles were made for maib_mia_sdk-1.1.0.tar.gz:

Publisher: action-pypi-publish.yml on alexminza/maib-mia-sdk-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file maib_mia_sdk-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: maib_mia_sdk-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for maib_mia_sdk-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e6c8f3bff99137eb12b256748aa3ece9ca6c2b020f754cc13f7c12f7e4dd1d05
MD5 ceb53c7cfea3c063f13eb617b792bef2
BLAKE2b-256 b1fcf863ad57f2e805d6bdc2ada91c53baaf1e760550a793e2c49c42d65c05f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for maib_mia_sdk-1.1.0-py3-none-any.whl:

Publisher: action-pypi-publish.yml on alexminza/maib-mia-sdk-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page