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.3.tar.gz (21.3 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.3-py3-none-any.whl (21.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for maib_mia_sdk-1.1.3.tar.gz
Algorithm Hash digest
SHA256 284c0a12011d36cbbb33fa93fef4c8a72a890fc4c2ead2557f970b3c993b5dbd
MD5 9f76fb846782f269093369bd2e7187a5
BLAKE2b-256 98da00159db674e86439b257f50ede4a48f34e503581e3cbccdeeec5d1f5b96d

See more details on using hashes here.

Provenance

The following attestation bundles were made for maib_mia_sdk-1.1.3.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.3-py3-none-any.whl.

File metadata

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

File hashes

Hashes for maib_mia_sdk-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ff6f3a6a778986b7d636c58515a380e04ddd646331d7fa6d41028af3f1f2eeb4
MD5 2b08f1835a02621d887af00c42d752ad
BLAKE2b-256 9dc50b43394f8d587969a4fbadc21f1caee8fb9ad00817205c14d47fcf659ad1

See more details on using hashes here.

Provenance

The following attestation bundles were made for maib_mia_sdk-1.1.3-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