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)
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 (usesamount
)Controlled
– variable amount with min and max limits (amountMin
andamountMax
)Free
– available only forStatic
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
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
}
Last updated