Skip to main content
Cortina Prepaid uses the Sale command to notify the integrator about the result of a card tap after a product has been selected 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 Sale endpoint, which would be of the following format: (customer's URL)/Cortina/PrePaid/Sale The payload includes the full result of the card scan operation:

Request Parameters

The following table describes the parameters included in the request body:
FieldTypeDescription
Transaction Status & Core Identifiers
VerdictStringThe final status of the request. Must be one of the constant string values:
  • Approved
  • Declined
CodeInt(32)The Decline Code. Conditional—only present if Verdict is ‘Declined’. Valid decline codes include:
  • 1: Insufficient funds
  • 5: Suspected Fraud
  • 6: General system failure
  • 997: Missing mandatory parameters
  • 999: General exception
  • See full documentation for complete list of codes.
StatusMessageString(255)A free text field containing the transaction status message or additional varying data regarding the outcome.
TransactionIdString(36)The unique identifier for this transaction.
  • Echoes the encrypted ID from /StartSession if used.
  • Otherwise, the Nayax Engine generates the value.
NayaxTransactionIdInt(64)The Nayax internal unique ID for the transaction, echoed in further requests.
SrvTranIdStringThe Integrator’s internal transaction ID.
  • Conditional: Only mandatory if /StartSession was not used.
  • If used, it should be empty or echo the Transaction ID.
RRNStringReference Retrieval Number. External transaction ID for third parties. Highly recommended to be visible to the consumer/card holder.
TokenString(256)A unique transaction token. For Nayax internal use only.
TraceNumberStringThe Trace number. For Nayax internal use only.
AuthSourceString(5)For Nayax internal use only.
InitiateTranReferenceInt(64)Conditional: Reflects the original Nayax Transaction ID for prepaid loyalty card re-attempts.
Financial Details, Card Information, & Timestamps
AmountDoubleThe payment amount (Decimal with max 3 digits for cents).
  • Example: 1 cent = 0.01.
  • Currencies with no decimal places (e.g., JYN) are still represented as a double (e.g., 234.0).
AuthAmountDoubleThe original amount requested in the /SaleRequest. Conditional on /Sale Response.
SettAmountDoubleThe original amount requested in the /SaleRequest. Conditional on /Sale Response.
AuthCodeString(40)External Authorization Code (usually from the Card Issuer’s bank).
CurrencyCodeString(3)Currency code in ISO 4217 Alpha-3 format.
CurrencyNumericString(3)Currency code in ISO 4217 Numeric-3 format.
AuthDateTimeStringThe date and time the /Sale took place. Format:ddMMyyHHmmss. Conditional on /Sale Response.
SettDateTimeDoubleThe Settlement Date/Time. Conditional on /Sale Response.
CardNumberStringCard details provided based on transaction type:
  • Full Track 2 for card-present Authorization/Sale.
  • Card PAN only for other transaction types (e.g., Refund, Settlement).
EntryModeString(4)How the card details were read. Common values:
  • MCR: Magnetic Stripe Read
  • CON: Contact Chip (insert)
  • CLS: Contactless Chip (tap)
  • NFC: Phone/Mobile contactless
  • QR: QR code read
ExpYearStringCard expiration year (YY format). Conditional (only when Interface is 1 or 10).
ExpMonthStringCard expiration month (MM format). Conditional (only when Interface is 1 or 10).
EMVDataStringEMV tags data in TLV (Tag-Length-Value) format.
CVV2StringCard Verification Value 2 (CVV2).
IDNumberStringCardholder ID Number.
RandomNumberStringFurther information is unavailable.
PrimaryIdStringPrimary Brand ID.
PrimaryDescriptionStringPrimary Brand Description.
SecondaryIdStringSecondary Brand ID.
SecondaryDescriptionStringSecondary Brand Description.
CardHolderNameStringCard Holder Name.
IsDebitCardBoolIndication if card is Debit or Prepaid.
IsGatewayTimeoutBoolIndicates if a gateway timeout occurred (valid in the response).
ProviderExternalDataStringExternal data from the provider in JSON format string.
IsRevalueCardBoolIndication if card is allowed revalue.
Product & Item Details
CodeInt(16)Code of the selected item as defined in the Nayax back office or vending machine.
CatalogProductIdString(100)External unique identifier of the selected item (the product catalog number).
NameString(255)Product name as defined in Nayax’s back office.
PriceDoubleThe original Product Price in the machine’s currency. Note: The transaction amount is the billing price after adjustments.
UnitOfMeasurementString(64)Product’s unit of measurement (e.g., ‘unit’ or ‘Liter’).
MeasurementDoubleProduct’s quantity in the unit of measurement.
GroupString(255)Product’s group name as existing in the product map.
ProductGroupIdString(255)Product’s group code as existing in the product map.
PulseLineNumberInt(32)Used to support multiple machines via pulse for remote vend capability. Must be a positive integer (0)(\ge 0).
Machine & Actor Information
SiteIdInt(16)Region of the Nayax server.
MachineAuTimeStringMachine Authorization Timestamp.
TimeoutMSInt(32)Nayax Server Timeout configuration in milliseconds.
IsProductSelectedBoolIndication if the product was pre-selected.
PaymentMethodIDInt(32)Nayax identifier of the payment provider.
BillingProviderIdInt(32)Nayax identifier of the billing provider.
AuditNumberInt(64)For Nayax internal use only.
IsDeferredAuthorizationBoolFurther information is unavailable.
AgeLimitationInt(16)Minimum age required to allow the transaction.
IsSoftDeclineCompletionBoolFurther information is unavailable.
TransitTransactionTypeInt(32)The Transit Transaction Type (Enum values):
  • 1: Prefunded
  • 2: Realtime Authorization
  • 3: Post-Authorization / Aggregated Transaction
  • 7: Debt Recovery
DenyListIndicationInt(32)Indicates the effect on the consumer’s Deny List status (Enum values):
  • 0: Unknown/no effect
  • 1: Decline causes consumer to be added to the deny list.
  • 2: Approval causes consumer to be removed from the deny list.
HwSerialStringNayax Device Hardware serial number.
FWVersionStringDevice Firmware version.
TypeStringNayax Device Type.
IdInt(64)Machine entity unique ID.
NameString(255)Machine Name.
ExternalIdString(200)Machine External ID (Machine number - operator).
TypeString(50)Machine Type.
TerminalIdString(255)Terminal identifier. Contact Nayax TPOC to define.
DecimalPlaceInt(64)Decimal point location for amounts.
  • Example: 2 means amounts like 123.45.
OffsetString(255)UTC timezone offset.
GroupIdStringFor Nayax internal use only.
OperatorIdString(255)Merchant ID (String format).
RegionString(255)Machine Region.
CityString(255)Machine City.
ZipCodeString(255)Machine Zip Code.
NameStringCountry Full Name (for machine location).
NumericCodeString(3)ISO-3166-1 Numeric-3 code.
Alpha2CodeString(2)ISO-3166-1 Alpha-2 code.
Alpha3CodeString(3)ISO-3166-1 Alpha-3 code.
IntraStringThe Intra Region (geographical diversification across countries).
StateStringActor geo state code.
CityString(255)Actor geo City.
CountryCodeStringActor geo Country code (ISO3).
ZipCodeString(255)Actor geo Zip code.
AddressString(255)Actor geo Address.
LatitudeStringMachine Location Latitude.
LongitudeStringMachine Location Longitude.
IdInt(64)Actor ID.
NameString(255)Direct Merchant name.
OperatorIdInt(64)Merchant operator ID (Integer format).
OperatorNameStringMerchant operator name.
MerchantIdInt(64)Merchant ID. Contact Nayax TPOC to define.
DynamicURLStringActor level URL configuration.
MCCInt(32)Merchant Category Code (MCC), classifying the business type.
SubMerchantIdString(255)Sub Merchant identifier. Contact Nayax TPOC to define.
DirectActorStringDirect actor custom data (String in JSON format).
OperatorStringOperator custom data (String in JSON format).
DistributorStringDistributor custom data (String in JSON format).
ActorStringActor custom data (String in JSON format).
MachineStringMachine custom data (String in JSON format).
SoftDeclineStringSoft Decline custom data (String in JSON format).

Response

The Sale Response that the customer’s payment method would send to Nayax’s servers.
The payload should look as follows:

Response Parameters

The following table describes the fields returned in the API response:
FieldTypeDescription
VerdictStringThe final status of the request. Must be one of the constant string values:
  • Approved
  • Declined
CodeInt(32)The Decline Code. Conditional—only present if Verdict is ‘Declined’. Common codes include:
  • 1: Insufficient funds
  • 5: Suspected Fraud
  • 6: General system failure
  • 7: Invalid amount
  • 992: Timeout exception
  • 997: Missing mandatory parameters
  • 999: General exception
  • See full list for other status and technical errors.
StatusMessageString(255)A free text field containing the transaction status message or additional varying data regarding the outcome.
CustomDeclineCodeStringUsed for specifying a custom decline code (e.g., related to Soft Decline or Switch Interface). May reflect the acquirer’s response code.
SrvTranIdStringThe Integrator’s internal transaction ID.
  • Conditional: Required if /StartSession was not used.
  • If used, it should be empty or echo the Transaction ID.
AuthCodeString(40)The External Authorization Code (usually from the Card Issuer’s bank).
AuthAmountDoubleThe original amount requested in the /Sale Request.
SettAmountDoubleThe original amount requested in the /Sale Request.
RRNStringReference Retrieval Number. External transaction ID for third parties. Highly recommended to be visible to the consumer/card holder.
TokenString(256)A unique token for the transaction. For Nayax internal use only.
AuthDateTimeStringThe date and time the /Authorization took place. Format:ddMMyyHHmmss.
SettDateTimeDoubleThe Settlement Date/Time. Irrelevant for the Authorization command.
TraceNumberStringThe Trace number. For Nayax internal use only.
AuthSourceString(5)For Nayax internal use only.
AdditionalDataStringAdditional data string in JSON format. Contact Nayax TPOC to define.
IsGatewayTimeoutBoolIndicates if a gateway timeout occurred (valid in the response).
ProviderExternalDataStringExternal data from the provider in JSON format string.
InitiateTranReferenceInt(64)Conditional: Reflects the original Nayax Transaction ID for prepaid loyalty card re-attempts.
IsRevalueCardBoolIndication if card is allowed revalue.