maib MIA QR API
EN
EN
  • Overview
    • General Technical Specifications
    • MIA QR Types
  • Endpoints
    • Authentication
      • Obtain Authentication Token
    • Payment Initiation
      • Create QR Code (Static, Dynamic)
      • Create Hybrid QR Code
        • Create Extension for QR Code by ID
    • Payment Cancellation
      • Cancel Active QR (Static, Dynamic)
      • Cancel Active QR Extension (Hybrid)
    • Payment Refund
      • Refund Completed Payment
    • Information Retrieval (GET)
      • Display List of QR Codes with Filtering Options
      • Retrieve QR Details by ID
      • Retrieve List of Payments with Filtering Options
      • Retrieve Payment Details by ID
  • Payment Simulation (Sandbox)
  • Notifications on Callback URL
  • Errors
    • API Errors
    • HTTP Status Codes
  • Glossary
  • maib e-commerce API
Powered by GitBook
On this page
  1. Endpoints
  2. Payment Initiation

Create QR Code (Static, Dynamic)

POST /v2/mia/qr

This endpoint allows the generation of a Static or Dynamic QR code, with various configuration options related to the amount, expiration, and integration into merchant systems.

Request parameters (body)

Field
Type
Required
Description

type

string(enum)

Yes

QR code type. Possible values: Static, Dynamic.

  • Static: QR code that can be reused multiple times (e.g., sticker).

  • Dynamic: QR code intended for single-use (e.g., POS terminal).

expiresAt

string(datetime)

Yes, only for Dynamic

Expiration date for a Dynamic QR code.

  • Minimum value: 1 minute

  • Maximum value: 60 days

  • Format: ISO 8601-1:2019 (e.g., "2029-10-22T10:32:28+03:00")

This field is not used for Static QR codes.

amountType

string(enum)

Yes

Type of amount. Possible values:

  • Fixed – fixed amount (uses amount)

  • Controlled – variable amount with min and max limits (amountMin and amountMax)

  • Free – available only for Static QR codes; no predefined amount (the customer enters the amount in the banking app)

amount

number(decimal)

Yes, for Fixed and Controlled

Paid amount. Must respect the condition: amountMin ≤ amount ≤ amountMax.

  • Minimum: > 0

  • Maximum: 100000

Not sent for Free amount type.

amountMin

number(decimal)

Yes, for Controlled

Minimum allowed amount.

  • Minimum: > 0

  • Maximum: less than amountMax

Not sent for Free or Fixed amount types.

amountMax

number(decimal)

Yes, for Controlled

Maximum allowed amount.

  • Minimum: greater than amountMin

  • Maximum: 100000

Not sent for Free or Fixed amount types.

currency

string(enum)

Yes

Currency in which the payment is made. Allowed value: MDL (according to ISO 4217).

description

string(500)

Yes

Order description.

orderId

string(100)

No

Merchant-side order identifier.

callbackUrl

string(1000)

No

The URL where the merchant will receive payment result data. Format: HTTPS URL.

redirectUrl

string(1000)

No

The URL to which the customer will be redirected after successful payment. Format: HTTPS URL.

terminalId

string(100)

No

Terminal ID provided by the bank.

Request example

{
    "type": "Dynamic",
    "expiresAt": "2029-10-22T10:32:28+03:00",
    "amountType": "Fixed",
    "amount": 50.00,
    "currency": "MDL",
    "description": "Order description",
    "orderId": "123",
    "callbackUrl": "https://example.com/callback",
    "redirectUrl": "https://example.com/success",
    "terminalId": "P011111"
}

Response parameters

Field
Type
Description

result.qrId

string(guid)

Unique identifier of the QR code.

result.extensionId

string(guid)

QR extension identifier.

result.orderId

string(100)

Merchant's order ID.

result.type

string(enum)

Returned QR type. Possible values: Static, Dynamic, Hybrid.

result.url

string(1000)

Generated QR link. Format: HTTPS URL

result.expiresAt

string(datetime)

QR expiration date (for Dynamic or Hybrid). Format: ISO 8601-1:2019

ok

boolean

Request status. true – no errors, false – with errors.

errors

array

Errors list (if ok is false).

errors.errorCode

string

Error code.

errors.errorMessage

string

Error message.

Response example

{
    "result": {
        "qrId": "123e4567-e89b-12d3-a456-426614174000",
        "extensionId": "40e6ba44-7dff-48cc-91ec-386a38318c68",
        "orderId": "123",
        "type": "Dynamic",
        "url": "https://example.com/qr/123e4567-e89b-12d3-a456-426614174000",
        "expiresAt": "2029-10-22T10:32:28+03:00"
    },
    "ok": true
}
PreviousPayment InitiationNextCreate Hybrid QR Code

Last updated 1 day ago