GenerateQR
Cortina DQR uses the GenerateQRcommand to notify the integrator about the consumer's product selection in order for him to send the QR generation details.
The command includes the transaction Id identification (Generated in /StartSession), required Amount, merchant, and Machine details (and more).
The Cortina payment provider shall validate the information and respond with the Dynamic QR information to be displayed on the Nayax device accordingly.
This command is essential for proceeding to authorization process.
Request
Nayax's servers send a POST request to your configured GenerateQRendpoint, which would be of the following format:
(customer's URL)/Cortina/DynamicQR/GenerateQR
The payload includes the full result of the card scan operation:
{
"ChannelId": 19,
"BasicInfo": {
"TransactionId": "236584335969834429321847829253667359,",
"Amount": 0.1,
"CurrencyCode": "USD",
"CurrencyNumeric": 376,
"SiteId": 12
},
"DeviceInfo": null,
"MachineInfo": {
"Id": 869761713,
"Name": "TestPayDynamicQR V2",
"TerminalId": 987654321,
"DecimalPlace": 2,
"Offset": 2,
"GroupId": "Beverages",
"OperatorId": 12345,
"ZipCode": 10001,
"Country": {
"Name": "United States of America",
"NumericCode": 840,
"Alpha2Code": "US",
"Alpha3Code": "USA"
}
},
"ActorInfo": {
"Id": 2001102296,
"Name": "Far East Dev Zone",
"OperatorId": 2000305191,
"OperatorName": "TanyaT_OP",
"MerchantId": 10011
},
"CustomData": {
"DirectActor": 12312312,
"Operator": 123121434134,
"Distributor": "superDistributor",
"Actor": 12312312,
"Machine": 131231348
},
"Product": [
{
"Code": 11,
"Name": "Stella",
"Price": 0.1,
"UnitOfMeasurement": "USD",
"Measurement": 1
},
{
"Code": 456,
"Name": "expensiveSprite",
"Price": 600,
"UnitOfMeasurement": "USD",
"Measurement": 0
}
]
}Request Parameters
The following table describes the parameters included in the request body:
| Field | Type | Description |
|---|---|---|
| Transaction Identifiers & Status | ||
TransactionId | String(36) | The unique identifier for this transaction.
|
NayaxTransactionId | Int(64) | The Nayax internal unique ID for the transaction, echoed in further requests. |
SrvTranId | String | The Integrator's internal transaction ID.
|
RRN | String | Reference Retrieval Number (RRN). Recommended to be visible to the consumer/card holder for support. |
Token | String(256) | A unique token for the transaction. For Nayax internal use only. |
TraceNumber | String | Trace number. For Nayax internal use only. |
AuthSource | String(5) | For Nayax internal use only. |
| Financial & Time Details | ||
Amount | Double | The payment amount (Decimal with max 3 digits for cents).
|
AuthAmount | Double | The original amount requested in the |
SettAmount | Double | The original amount requested in the |
AuthCode | String(40) | External Authorization Code (usually from the Card Issuer's bank). |
CurrencyCode | String(3) | Currency code in ISO 4217 Alpha-3 format. |
CurrencyNumeric | String(3) | Currency code in ISO 4217 Numeric-3 format. |
AuthDateTime | String | The date and time the |
SettDateTime | Double | The Settlement Date/Time. Irrelevant for the Authorization command. |
| Machine & Location Details | ||
SiteId | Int(16) | Region of the Nayax server. |
HwSerial | String | Nayax Device Hardware serial number. |
FWVersion | String | Device Firmware version. |
Type | String | Nayax Device Type. |
Id | Int(64) | Machine entity unique ID. |
Name | String(255) | Machine Name. |
TerminalId | String(255) | Terminal identifier. Contact Nayax TPOC to define. |
DecimalPlace | Int(64) | Decimal point location for amounts. |
Offset | String(255) | UTC timezone offset. |
GroupId | String | For Nayax internal use only. |
OperatorId | String(255) | Merchant ID (String format). |
ZipCode | String(255) | Machine Zip Code. |
| Country/Region ISO Codes | ||
Name | String | Country Full Name. |
NumericCode | String(3) | ISO-3166-1 Numeric-3 code. |
Alpha2Code | String(2) | ISO-3166-1 Alpha-2 code. |
Alpha3Code | String(3) | ISO-3166-1 Alpha-3 code. |
| Actor (Merchant/Operator) Details | ||
Id | Int(64) | Actor ID. |
Name | String(255) | Direct Merchant name. |
OperatorId | Int(64) | Merchant operator ID (Integer format). |
OperatorName | String | Merchant operator name. |
MerchantId | Int(64) | Merchant ID. Contact Nayax TPOC to define. |
| Actor Geo Details | ||
State | String | Actor geo state code. |
City | String(255) | Actor geo City. |
CountryCode | String | Actor geo Country code (ISO3). |
ZipCode | String(255) | Actor geo Zip code. |
Address | String(255) | Actor geo Address. |
Longitude | String | Machine Location Longitude. |
Latitude | String | Machine Location Latitude. |
| Product/Item Details | ||
Code | Int(16) | Code of the selected item. |
CatalogProductId | String(100) | External unique identifier of the selected item (the product catalog number). |
Namme | String(255) | Product name. |
Price | Double | The original Product Price in the machine's currency.
|
UnitOfMeasurement | String(64) | Product's unit of measurement (e.g., 'unit' or 'Liter'). |
Measurement | Double | Product's quantity in the unit of measurement. |
Group | String(255) | Product's group name. |
ProductGroupId | String(255) | Product's group code. |
PulseLineNumber | Int(32) | Used to support remote vend capability via pulse. Must be a positive integer $(\ge 0)$. |
| Custom Data (JSON Strings) | ||
DirectActor | String | Direct actor custom data (String in JSON format). |
Operator | String | Operator custom data (String in JSON format). |
Distributor | String | Distributor custom data (String in JSON format). |
Actor | String | Actor custom data (String in JSON format). |
Machine | String | Machine custom data (String in JSON format). |
AdditionalData | String | General custom data string in JSON format. |
Response
The GenerateQR Response that the customer's payment method would send to Nayax's servers.
The payload should look as follows:
{
"QRCode": "DynamicQrResponse_QRCode_Test",
"QRData": {
"ChannelId": "19",
"RRN": "111111",
"SrvTranId": "236584335969834429321847829253667359"
},
"Status": {
"Verdict": "Approved",
"Code": 0,
"StatusMessage": "Cortina V2 Stub Tester"
},
"additionalProperties": false
}Response Parameters
The following table describes the fields returned in the API response:
| Field | Type | Description |
|---|---|---|
| Core Identifiers & Status | ||
QRCode | String | The QR URL provided for the device display/interaction. |
ChannelId | String | Conditional for multi-channel integrations. An echo of the value provided by Nayax in the request. |
Verdict | String | The final status of the request. Must be one of the constant string values:
|
Code | Int(32) | The Decline Code. Conditional—only present if
|
StatusMessage | String(255) | A free text field containing the transaction status message or additional varying data regarding the outcome. |
CustomDeclineCode | String | Used for specifying a custom decline code (e.g., related to Soft Decline or Switch Interface). May reflect the acquirer's response code. |
SrvTranId | String | The Integrator's internal transaction ID.
|
RRN | String | Reference Retrieval Number (RRN).
|
| Financial & Time Details | ||
AuthCode | String(40) | External Authorization Code (usually from the Card Issuer's bank). |
AuthAmount | Double | The original amount requested in the |
SettAmount | Double | The original amount requested in the |
AuthDateTime | String | The date and time the |
SettDateTime | Double | The Settlement Date/Time. Irrelevant for the Authorization command. |
| System & Conditional Flags | ||
Token | String(256) | A unique token for the transaction. For Nayax internal use only. |
TraceNumber | String | Trace number. For Nayax internal use only. |
AuthSource | String(5) | For Nayax internal use only. |
AdditionalData | String | Additional data string in JSON format. Contact Nayax TPOC to define. |
IsGatewayTimeout | Bool | Indicates if a gateway timeout occurred (valid in the response). |
ProviderExternalData | String | External data from the provider in JSON format string. |
InitiateTranReference | Int(64) | Conditional: Reflects the original Nayax Transaction ID for prepaid loyalty card re-attempts. |
IsRevalueCard | Bool | Indication if card is allowed revalue. |
Updated 19 days ago