DynamicQR- Refund
Cortina DQR uses the Refund command to notify the integrator about the refund request in order to initiate the refund process with the Cortina payment provider.
Said request would be triggered via either of the following options:
- Nayax's Dynamic Transaction Monitor by selecting the relevant transaction, right-clicking on it and then selecting "Request Refund".
- Nayax's Lynx API- via the Refund command
Request
Nayax's servers send a POST request to your configured Refundendpoint, which would be of the following format:
(customer's URL)/Cortina/DynamicQR/Refund
The payload includes the full result of the card scan operation:
{
"ReasonCode": 0,
"ReasonText": "string",
"BasicInfo": {
"TransactionId": "N99O4XURDQYJZIK4OTCAWF1RHHA40TZWVCRB",
"NayaxTransactionId": 3584697384,
"Amount": 5,
"CurrencyCode": "ILS",
"CurrencyNumeric": "376",
"SiteId": 1,
"MachineAuTime": "071221132914",
"TimeoutMS": 15000,
"IsProductSelected": true,
"PaymentMethodID": 1,
"BillingProviderId": 1,
"AuditNumber": 342,
"NayaxRRN": "111111",
"IsDeferredAuthorization": true,
"AgeLimitation": 18,
"IsSoftDeclineCompletion": true,
"TransitElement": {
"TransitTransactionType": 1,
"DenyListIndication": 0
}
},
"DeviceInfo": {
"HwSerial": "0434324119376526",
"FWVersion": "4.0.0.22-RC01 - Aug 25 2021",
"Type": "Onyx"
},
"MachineInfo": {
"Id": 106791869,
"Name": "Itai_TestPayCC V2",
"ExternalId": "OperatorExternalID",
"Type": "machine type",
"TerminalId": "8888888844",
"DecimalPlace": 2,
"Offset": "3.00",
"GroupId": "String",
"OperatorId": 2001537302,
"Region": "EU",
"City": "Abbeville",
"ZipCode": "22448Z",
"Country": {
"Name": "UNITED STATES",
"NumericCode": "840",
"Alpha2Code": "US",
"Alpha3Code": "USA",
"Intra": "Europe"
},
"GeoLocation": {
"State": "Alabama",
"City": "Zambezi",
"CountryCode": "ZM",
"ZipCode": "234234",
"Address": "River",
"Latitude": 51.0003431,
"Longitude": 23.745245
}
},
"ActorInfo": {
"Id": 2001537302,
"Name": "TestPayCC V2 OP",
"OperatorId": 2001537302,
"OperatorName": "TestPayCC V2 OP _ Sub Merchant",
"MerchantId": 999999888885,
"DynamicURL": "https://www.nayax.com/alternativeURL",
"Country": {
"Name": "UNITED STATES",
"NumericCode": "840",
"Alpha2Code": "US",
"Alpha3Code": "USA",
"Intra": "Europe"
},
"GeoLocation": {
"State": "Alabama",
"City": "Zambezi",
"CountryCode": "ZM",
"ZipCode": "234234",
"Address": "River",
"Latitude": 51.0003431,
"Longitude": 23.745245
},
"MCC": 455,
"SubMerchantId": 999999888886
},
"CustomData": {
"DirectActor": "String",
"Operator": "String",
"Distributor": "String",
"Actor": "String",
"Machine": "String",
"SoftDecline": "String"
},
"PaymentInfo": {
"SrvTranId": "3584697388",
"AuthCode": "333333",
"AuthAmount": 5.5,
"SettAmount": 5.5,
"RRN": "111111",
"Token": "string",
"AuthDateTime": "071221133300",
"SettDateTime": "071221133330",
"TraceNumber": "4444",
"AuthSource": "string",
"AdditionalData": "string",
"IsGatewayTimeout": false,
"ProviderExternalData": "string",
"InitiateTranReference": 11223344,
"IsRevalueCard": false
}
}Request Parameters
The table below describes all the parameters of the request:
Catergory | Field | Type | Required | Description |
|---|---|---|---|---|
| Int(16) | Yes | Valid cancel code (a code from this list): 1 - Insufficient funds 2 - Transaction ID unknown 3 - Cardholder exceeded daily / weekly / monthly transaction count limit 4 - Cardholder exceeded transaction amount limit 5 - Suspected Fraud 6 - General system failure 7 - Invalid amount 8 - Request cannot be parsed (format error) 9 - Transaction not allowed to cardholder 40 - For Nayax internal use only. 990 - CertificateFileName not found 991 - Failed to decipher message body 992 - Timeout exception 994 - Card Brand not supported 996 - Transaction ID Unknown / Duplicate Transaction ID (Start Session Error) 997 - Missing mandatory parameters 998 - Validation / request cannot be parsed 999 - General exception 1010 - Public Key Certificate not found 1011 - Method not Implemented | |
| String | No | The verbal explanation to the code (as seen above) | |
|
| String(36) | Yes | The unique identifier for this transaction. If /StartSession has been used then this will echo the transaction Id encrypted in 'TranIDCipher'. |
| Int(64) | Yes | Nayax Internal Unique identifier for the transaction which will be echoed in further requests. | |
| Double | Yes | Decimal (max 3 digits for cents)
| |
| String(3) | Yes | Currency according to ISO4217 Attribute format: Alpha-3. | |
| String(3) | Yes | Currency according to ISO4217 Attribute format: Numeric-3. | |
| Int(16) | No | Region of the Nayax server. | |
| String | No | Machine Authorization Timestamp | |
| Int(32) | No | Nayax Server T/O configuration, in milliseconds | |
| Bool | No | indication if the product was pre-selected | |
| Int(32) | No | Nayax identifier of the payment provider | |
| Int(32) | No | Nayax identifier of the billing provider | |
| Int(64) | No | For Nayax internal use only | |
| String | No | This Value shall be echoed in the /Inquiry request. Reference to generate Nayax Number, Used as External Transaction Identification for external parties (Usually Card schemes, or App service providers). | |
| Bool | No | N/A | |
| Int(16) | No | Minimum age required to allow the transaction. | |
| Bool | No | N/A | |
|
| Int(32) | No | Enum: 1 2 3 7 1 - Prefunded 2 - Realtime Authorization 3 - Post-Authorization 7 - Debt Recovery |
|
| Int(32) | No | Enum: 0 1 2 0 - unknown/ no effect 1 - Decline will cause consumer to be added to the deny list 2 - Approval shall cause the consumer to be removed from deny list. |
|
| String | No | Nayax Device Hardware serial number as embedded on the device |
| String | No | Device Firmware version | |
| String | No | Nayax Device Type | |
|
| Int(64) | Yes | Machine entity unique ID allocated in Nayax'S backoffice. |
| String(255) | Yes | Machine Name as defined in Nayax'S backoffice | |
| String(200) | No | Optional filed, it reflects the Machine External ID as it has been provided by the operator in the Nayax back-office system (Machine number - operator). | |
| String(50) | No | Machine Type as defined in the Nayax backoffice | |
| String(255) | No | Terminal identifier as defined in Nayax's backoffice. | |
| Int(64) | No | Decimal point location for amounts used on this machine. | |
| String(255) | No | UTC timezone offset | |
| String | No | For Nayax internal use only. | |
| String(255) | No | Merchant ID as defined in Nayax's backoffice | |
| String(255) | No | Region as defined in Nayax's backoffice | |
| String(255) | No | Machine city as defined in Nayax's backoffice | |
| String(255) | No | Machine zipcode as defined in Nayax's backoffice | |
|
| String | Yes | Country Full Name |
|
| String(3) | Yes | ISO-3166-1 format: Numeric-3 code |
|
| String(2) | Yes | ISO-3166-1 format: Alpha-2 code |
|
| String(3) | Yes | ISO-3166-1 format: Alpha-3 code |
|
| String | Yes | String Mandatory An Intra Region refers to a geographical diversification across countries within a single 'Intra region'. E.g. 'France' is country within the 'European Union' Intra Region. |
|
| String | No | Actor geo state code as defined in Nayax's backoffice |
|
| String(255) | No | City as defined in Nayax's backoffice |
|
| String | No | Country code (ISO3) as defined in Nayax's backoffice |
|
| String(255) | No | Zip code as defined in Nayax's backoffice |
|
| String(255) | No | Address as defined in Nayax's backoffice |
|
| String | No | Machine Location Longitude as defined in Nayax's backoffice |
|
| String | No | Machine Location Latitude as defined in Nayax's backoffice |
|
| Int(64) | Yes | Actor ID as saved as defined in Nayax's backoffice |
| String(255) | Yes | Direct Merchant name as defined in Nayax's backoffice | |
| Int(64) | No | Merchant operator ID as defined in Nayax's backoffice | |
| String | No | Merchant operator name as defined in Nayax's backoffice | |
| Int(64) | No | Merchant ID as defined in Nayax's backoffice. | |
|
| String | Yes | Country Full Name |
|
| String(3) | Yes | ISO-3166-1 format: Numeric-3 code |
|
| String(2) | Yes | ISO-3166-1 format: Alpha-2 code |
|
| String(3) | Yes | ISO-3166-1 format: Alpha-3 code |
|
| String | No | Actor geo state code as defined in Nayax's backoffice |
|
| String(255) | No | City as defined in Nayax's backoffice |
|
| String | No | Country code (ISO3) as defined in Nayax's backoffice |
|
| String(255) | No | Zip code as defined in Nayax's backoffice |
|
| String(255) | No | Address as defined in Nayax's backoffice |
|
| String | No | Machine Location Latitude as defined in Nayax's backoffice |
|
| String | No | Machine Location Longitude as defined in Nayax's backoffice |
|
| String | No | Direct actor custom data (String in json format) |
| String | No | Operator custom data (String in json format) | |
| String | No | Distributor custom data (String in json format) | |
| String | No | Actor custom data (String in json format) | |
| String | No | Machine custom data (String in json format) | |
|
| String | Yes | For card present Authorization and Sale, the full Track2 will be sent in this field. For card not present, Settlement, Cancel, Void, Refund - The card PAN only will be sent. |
| String(4) | Yes | MCR - Card number read from the card magnetic stripe. CON - Card details read from the chip via the contact interface (insert). CLS - Card details read from the chip via the contactless interface (tap). NFC - Card details read from the phone via the contactless interface (phone tap). CLM - Card track2 read from the chip via the contactless interface (contactless magstripe\legacy mode). MIF\MIFH - MIFARE\MIFARE received as Hexadecimal. QR - Card number read from a QR by the DOT Other values may also be sent in specific edge case, for more information please consult your Nayax POC. | |
| String | No | Conditional- only when Interface is 1 or 10, (YY) | |
| String | No | Conditional- only when Interface is 1 or 10, (YY) | |
| String | No | String of emv tags in TLV format | |
| String | No | IDNumber | |
| String | No | Further information is unavailable. | |
|
| String | No | Primary Brand Id |
| String | No | Primary Brand Description | |
| String | No | Secondary Brand Id | |
| String | No | Secondary Brand Description | |
|
| String | No | Card Holder Name |
|
| String | No | The Integrator's internal transaction id. Conditional, only if /StartSession was not Used. If /StartSession was used, this should be either empty or Echo the Transaction ID sent in the request. |
| String(40) | No | External (usually Card issuer's) Authorization Code | |
| Double | No | Conditional on /Authorization response, optional otherwise. The original amount requested in /Authorization requested. | |
| Double | No | The original amount requested in /Settlement or /Sale process. | |
| String | No | Reference Retrieval Number, Used as External Transaction Identification for external parties (Usually Card schemes) | |
| String(256) | No | A unique token for the transaction. For Internal Nayax use only | |
| String | Yes | The date time string of when the /Authorization took place Format: ddMMyyHHmmss | |
| Double | No | Irrelevant for the Authorization command. | |
| String | No | Trace number. For Internal Nayax use only | |
| String(5) | No | For Internal Nayax use only | |
| String | No | String in JSON format. | |
| Bool | No | Was there was a gateway timeout (valid in response) | |
| String | No | String in JSON format. | |
| String | No | String in JSON format. | |
| Bool | No | Indication if card is allowed revalue |
Response
The Refund Response that the customer's payment method would send to Nayax's servers.
The payload should look as follows:
{
"Status": {
"Verdict": "string",
"Code": 0,
"StatusMessage": "string",
"CustomDeclineCode": "string"
},
"PaymentInfo": {
"SrvTranId": "3584697388",
"AuthCode": "333333",
"AuthAmount": 5.5,
"SettAmount": 5.5,
"RRN": "111111",
"Token": "string",
"AuthDateTime": "071221133300",
"SettDateTime": "071221133330",
"TraceNumber": "4444",
"AuthSource": "string",
"AdditionalData": "string",
"IsGatewayTimeout": false,
"ProviderExternalData": "string",
"InitiateTranReference": 11223344,
"IsRevalueCard": false
}
}Response Parameters
Catergory | Field | Type | Required | Description |
|---|---|---|---|---|
|
| Sting | Yes | Const string values: |
| Int(32) | No | Conditional - Only if verdict value is declined Valid decline codes (must be a code from this list): 1 - Insufficient funds 2 - Transaction ID unknown 3 - Cardholder exceeded daily / weekly / monthly transaction count limit 4 - Cardholder exceeded transaction amount limit 5 - Suspected Fraud 6 - General system failure 7 - Invalid amount 8 - Request cannot be parsed (format error) 9 - Transaction not allowed to cardholder 40 - For Nayax internal use only. 990 - CertificateFileName not found 991 - Failed to decipher message body 992 - Timeout exception 994 - Card Brand not supported 996 - Transaction ID Unknown / Duplicate Transaction ID (Start Session Error) 997 - Missing mandatory parameters 998 - Validation / request cannot be parsed 999 - General exception 1010 - Public Key Certificate not found 1011 - Method not Implemented | |
| Sting(255) | No | Transaction status message free text field / additional varying data | |
| Sting | No | This field is used for specifying a custom decline code (i.e. Soft Decline or Switch Interface). The value might be the same as the acquirer's response code or composed by other data. | |
|
| Sting | No | The Integrator's internal transaction id. Conditional, only if /StartSession was not Used. If /StartSession was used, this should be either empty or Echo the Transaction ID sent in the request. |
| Sting(40) | No | External (usually Card issuer's) Authorization Code | |
| Double | No | The original amount requested in GenerateQR request. | |
| Double | No | Conditional on Inquiry , optional for all other cases. In most cases - the original amount requested in /Settlement or /Sale process. | |
| String | No | Reference Retrieval Number, Used as External Transaction Identification for external parties (Usually Card schemes) From support perspective - It is highly recommended that this ID shall be the one visible to the end consumer/Card holder. Note: Inquiry response the RRN value must match the preceding Value sent in the /GenerateQR response. | |
| String(256) | No | A unique token for the transaction. | |
| String | No | The date time string of when the /Authorization or /Sale took place Format: ddMMyyHHmmss | |
| String | No | The date time string of when the /Settlement or /Sale took place Format: ddMMyyHHmmss | |
| String | No | For Internal Nayax use only | |
| String(5) | No | For Internal Nayax use only | |
| String | No | String in JSON format. | |
| Bool | No | Was there was a gateway timeout (valid in response) | |
| String | No | String in JSON format. | |
| Int(64) | No | Conditional, in case of re-attempt of using a prepaid loyalty card on a terminal in a given transaction, this field will reflect which transaction (Nayax Transaction ID) this attempt originally belongs to. | |
| Bool | No | Indication if card is allowed revalue | |
|
| Int(32) | No | Enum: 0 1 0 - transactions 1 - amount |
| Double | No | Regular Credit amount or amounts of transactions based on RegularCreditType Decimal place 2 | |
| Int(32) | No | Revalue credit amount - Only if card is configured a revalue-able Decimal place 2 |
Updated about 1 hour ago