# 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"
}