Prepaid card- Authorization
Cortina Prepaid uses the Authorization command to notify the integrator about the result of a card tap in order to initiate the authorization process with the Cortina payment provider.
This command is essential for proceeding to transaction confirmation or rejection handling.
Request
Nayax's servers send a POST request to your configured Authoirzation endpoint, which would be of the following format:
(customer's URL)/Cortina/PrePaid/Authorization
The payload includes the full result of the card scan operation:
{
"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": {}
},
"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": {},
"GeoLocation": {}
},
"ActorInfo": {
"Id": 2001537302,
"Name": "TestPayCC V2 OP",
"OperatorId": 2001537302,
"OperatorName": "TestPayCC V2 OP _ Sub Merchant",
"MerchantId": 999999888885,
"DynamicURL": "https://www.nayax.com/alternativeURL",
"Country": {},
"GeoLocation": {},
"MCC": 455,
"SubMerchantId": 999999888886
},
"CustomData": {
"DirectActor": "String",
"Operator": "String",
"Distributor": "String",
"Actor": "String",
"Machine": "String",
"SoftDecline": "String"
},
"CardData": {
"CardNumber": "****",
"EntryMode": "MCR",
"ExpYear": "23",
"ExpMonth": "01",
"EMVData": "string",
"CVV2": "****",
"IDNumber": "****",
"RandomNumber": "string",
"BrandInfo": {},
"CardHolderName": "Test Card Holder",
"IsDebitCard": true
},
"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 |
|---|---|---|---|---|
|
| 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 | Reference to generate Nayax Number, Used as External Transaction Identification for external parties (Usually Card schemes, or App service providers).
| |
| Bool | No | Further information is unavailable. | |
| Int(16) | No | Minimum age required to allow the transaction. | |
| Bool | No | Further information is unavailable. | |
|
| 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 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 | Reflects the Machine External ID as it has been provided by the operator in Nayax's back-office system (Machine number - operator). | |
| String(50) | No | Machine Type as defined in Nayax's 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 | An Intra Region refers to a geographical diversification across countries within a single '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 Latitude as defined in Nayax's backoffice |
|
| String | No | Machine Location Longitude 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 | No | Actor level url configuration | |
|
| 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 | An Intra Region refers to a geographical diversification across countries within a single '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 Latitude as defined in Nayax's backoffice |
|
| String | No | Machine Location Longitude as defined in Nayax's backoffice |
|
| Int(32) | No | Classify merchants and businesses by the type of goods or services provided. Payment brands, issuers and acquirers. |
| String(255) | No | Sub Merchant identifier 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 | No | Soft Decline 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 | CVV2 | |
| 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 |
| Bool | No | Indication if card is Debit or Prepaid | |
|
| 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. | |
| 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 |
Response
The Authorization Response that the customer's payment method would send to Nayax's servers.
The payload should look as follows:
{
"Status": {
"Verdict": "Approved",
"Code": 0,
"StatusMessage": "string"
},
"PaymentInfo": {
"SrvTranId": 2.3658433596983443e+35,
"AuthCode": 333333,
"AuthAmount": 0.1,
"SettAmount": 0.1,
"RRN": 111111,
"Token": "string",
"AuthDateTime": 230221101008,
"SettDateTime": 230221101009,
"TraceNumber": 4444,
"AuthSource": 555555,
"AdditionalData": "string",
"IsGatewayTimeout": true
},
"Balance": {
"RegularCreditType": 0,
"RegularCredit": 0,
"RevalueCredit": 0
}
}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 | |
| String | 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. | |
|
| 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 | Yes | The original amount requested in /Authorization Request. | |
| 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.Balance | |
| 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. | |
| 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 9 hours ago