maib-mia-sdk


Namemaib-mia-sdk JSON
Version 1.1.1 PyPI version JSON
download
home_pageNone
SummaryPython SDK for maib MIA API
upload_time2025-09-02 11:22:25
maintainerNone
docs_urlNone
authorAlexander Minza
requires_python>=3.9
licenseNone
keywords maib moldova mia qr rtp payments api sdk python
VCS
bugtrack_url
requirements httpx
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Python SDK for maib MIA API
* maib MIA QR API docs: https://docs.maibmerchants.md/mia-qr-api
* GitHub project https://github.com/alexminza/maib-mia-sdk-python
* PyPI package https://pypi.org/project/maib-mia-sdk/

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

```shell
pip install --upgrade maib-mia-sdk
```

## Getting started
Import SDK:

```python
from maib_mia_sdk import MaibMiaSdk, MaibMiaAuthRequest, MaibMiaApiRequest
```

Add project configuration:

```python
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

```python
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

```python
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)

```python
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

```python
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

```python
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

```python
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

```python
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)
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "maib-mia-sdk",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "maib, moldova, mia, qr, rtp, payments, api, sdk, python",
    "author": "Alexander Minza",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/ca/b9/771a5e24d4e4cbd8d634f0fcd9c8ba379c2f2565b987ab5b4f7bd8d0e573/maib_mia_sdk-1.1.1.tar.gz",
    "platform": null,
    "description": "# Python SDK for maib MIA API\n* maib MIA QR API docs: https://docs.maibmerchants.md/mia-qr-api\n* GitHub project https://github.com/alexminza/maib-mia-sdk-python\n* PyPI package https://pypi.org/project/maib-mia-sdk/\n\n## Installation\nTo easily install or upgrade to the latest release, use `pip`:\n\n```shell\npip install --upgrade maib-mia-sdk\n```\n\n## Getting started\nImport SDK:\n\n```python\nfrom maib_mia_sdk import MaibMiaSdk, MaibMiaAuthRequest, MaibMiaApiRequest\n```\n\nAdd project configuration:\n\n```python\nimport os, datetime\n\nMAIB_MIA_CLIENT_ID = os.getenv('MAIB_MIA_CLIENT_ID')\nMAIB_MIA_CLIENT_SECRET = os.getenv('MAIB_MIA_CLIENT_SECRET')\nMAIB_MIA_SIGNATURE_KEY = os.getenv('MAIB_MIA_SIGNATURE_KEY')\n```\n\n## SDK usage examples\n### Get Access Token with Client ID and Client Secret\n\n```python\nmaib_mia_auth = MaibMiaAuthRequest \\\n    .create(base_url=MaibMiaSdk.SANDBOX_BASE_URL) \\\n    .generate_token(client_id=MAIB_MIA_CLIENT_ID, client_secret=MAIB_MIA_CLIENT_SECRET)\n\nmaib_mia_token = maib_mia_auth['accessToken']\n```\n\n### Create a dynamic order payment QR\n\n```python\nmaib_mia_qr_data = {\n    'type': 'Dynamic',\n    'expiresAt': (datetime.datetime.now() + datetime.timedelta(hours=24)).isoformat(),\n    'amountType': 'Fixed',\n    'amount': 50.00,\n    'currency': 'MDL',\n    'orderId': '123',\n    'description': 'Order #123',\n    'callbackUrl': 'https://example.com/callback',\n    'redirectUrl': 'https://example.com/success'\n}\n\nmaib_mia_api_request = MaibMiaApiRequest.create(base_url=MaibMiaSdk.SANDBOX_BASE_URL)\nmaib_mia_create_qr_response = maib_mia_api_request.qr_create(\n    data=maib_mia_qr_data,\n    token=maib_mia_token)\n```\n\n### Create a RTP (Request To Pay)\n\n```python\nmaib_mia_rtp_data = {\n    'alias': '3736xxxxxxx',\n    'amount': 50.00,\n    'currency': 'MDL',\n    'expiresAt': (datetime.datetime.now() + datetime.timedelta(hours=24)).isoformat(),\n    'description': f'Order #123',\n    'orderId': '123',\n    'callbackUrl': 'https://example.com/callback',\n    'redirectUrl': 'https://example.com/success'\n}\n\nmaib_mia_create_rtp_response = maib_mia_api_request.rtp_create(\n    data=maib_mia_rtp_data,\n    token=maib_mia_token)\n```\n\n### Validate callback signature\n\n```python\ncallback_data = {\n    \"result\": {\n        \"qrId\": \"c3108b2f-6c2e-43a2-bdea-123456789012\",\n        \"extensionId\": \"3fe7f013-23a6-4d09-a4a4-123456789012\",\n        \"qrStatus\": \"Paid\",\n        \"payId\": \"eb361f48-bb39-45e2-950b-123456789012\",\n        \"referenceId\": \"MIA0001234567\",\n        \"orderId\": \"123\",\n        \"amount\": 50.00,\n        \"commission\": 0.1,\n        \"currency\": \"MDL\",\n        \"payerName\": \"TEST QR PAYMENT\",\n        \"payerIban\": \"MD88AG000000011621810140\",\n        \"executedAt\": \"2025-04-18T14:04:11.81145+00:00\",\n        \"terminalId\": null\n    },\n    \"signature\": \"fHM+l4L1ycFWZDRTh/Vr8oybq1Q1xySdjyvmFQCmZ4s=\"\n}\n\nvalidate_callback_result = MaibMiaSdk.validate_callback_signature(\n    callback_data=callback_data,\n    signature_key=MAIB_MIA_SIGNATURE_KEY)\n```\n\n### Perform a test QR payment\n\n```python\nmaib_test_pay_data = {\n    'qrId': maib_mia_create_qr_response['qrId'],\n    'amount': maib_mia_qr_data['amount'],\n    'iban': 'MD88AG000000011621810140',\n    'currency': maib_mia_qr_data['currency'],\n    'payerName': 'TEST QR PAYMENT'\n}\n\nmaib_mia_test_pay_response = maib_mia_api_request.test_pay(\n    data=maib_test_pay_data,\n    token=maib_mia_token)\n```\n\n### Get payment details\n\n```python\nmaib_mia_payment_details_response = maib_mia_api_request.payment_details(\n    pay_id=maib_mia_test_pay_response['payId'],\n    token=maib_mia_token)\n```\n\n### Refund payment\n\n```python\nmaib_mia_pay_refund_data = {\n    'reason': 'Test refund reason'\n}\n\nmaib_mia_refund_details_response = maib_mia_api_request.payment_refund(\n    pay_id=maib_mia_test_pay_response['payId'],\n    data=maib_mia_pay_refund_data,\n    token=maib_mia_token)\n```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Python SDK for maib MIA API",
    "version": "1.1.1",
    "project_urls": {
        "Documentation": "https://docs.maibmerchants.md/mia-qr-api",
        "Homepage": "https://github.com/alexminza/maib-mia-sdk-python",
        "Issues": "https://github.com/alexminza/maib-mia-sdk-python/issues",
        "Repository": "https://github.com/alexminza/maib-mia-sdk-python"
    },
    "split_keywords": [
        "maib",
        " moldova",
        " mia",
        " qr",
        " rtp",
        " payments",
        " api",
        " sdk",
        " python"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b1a659960cbe6059cb412511fd6ddb87e2bdc133882796b0fe0d4f3b11738f75",
                "md5": "b9805d4dde95c4cac2305d9c35261ca2",
                "sha256": "a9dfc84ca9d4d530dccbccf09818335d98736a33ead2420c095311a114b90fcb"
            },
            "downloads": -1,
            "filename": "maib_mia_sdk-1.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b9805d4dde95c4cac2305d9c35261ca2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 21116,
            "upload_time": "2025-09-02T11:22:23",
            "upload_time_iso_8601": "2025-09-02T11:22:23.619483Z",
            "url": "https://files.pythonhosted.org/packages/b1/a6/59960cbe6059cb412511fd6ddb87e2bdc133882796b0fe0d4f3b11738f75/maib_mia_sdk-1.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cab9771a5e24d4e4cbd8d634f0fcd9c8ba379c2f2565b987ab5b4f7bd8d0e573",
                "md5": "ef81bcd0ca0e60842deb9f3d24a9f6ac",
                "sha256": "d097b1d8b8d5d5c3480b8cb20baa4ead759876baf80acac97fdd005ffb2ba122"
            },
            "downloads": -1,
            "filename": "maib_mia_sdk-1.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "ef81bcd0ca0e60842deb9f3d24a9f6ac",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 21121,
            "upload_time": "2025-09-02T11:22:25",
            "upload_time_iso_8601": "2025-09-02T11:22:25.766367Z",
            "url": "https://files.pythonhosted.org/packages/ca/b9/771a5e24d4e4cbd8d634f0fcd9c8ba379c2f2565b987ab5b4f7bd8d0e573/maib_mia_sdk-1.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-02 11:22:25",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "alexminza",
    "github_project": "maib-mia-sdk-python",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "httpx",
            "specs": []
        }
    ],
    "lcname": "maib-mia-sdk"
}
        
Elapsed time: 1.13188s