Files
adyen-openapi/json/TerminalAPI-v1.json
Adyen Automation b3e1d42132 spec release
2023-12-11 13:09:29 +01:00

4767 lines
188 KiB
JSON

{
"openapi": "3.1.0",
"info": {
"version": "1",
"title": "Adyen Terminal API",
"description": "The Adyen Terminal API lets you make payments, issue refunds, collect shopper information, and perform other shopper-terminal interactions using a payment terminal supplied by Adyen."
},
"servers": [
{
"description": "with cloud integration",
"url": "https://terminal-api-test.adyen.com/sync"
},
{
"description": "with cloud integration",
"url": "https://terminal-api-test.adyen.com/async"
},
{
"description": "with local-hosting",
"url": "<local-terminal-IP-address>"
}
],
"paths": {
"/login": {
"post": {
"description": "It conveys Information related to the session (period between a Login and the following Logout) to process. Content of the Login Request message.",
"summary": "Login Request",
"security": [
{
"BasicAuth": []
},
{
"ApiKeyAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoginRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoginResponse"
}
}
},
"description": "It conveys Information related to the Login to process. Content of the Login Response message."
}
}
}
},
"/logout": {
"post": {
"description": "Empty. Content of the Logout Request message.",
"summary": "Logout Request",
"security": [
{
"BasicAuth": []
},
{
"ApiKeyAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LogoutRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LogoutResponse"
}
}
},
"description": "It conveys the result of the Logout. Content of the Logout Response message."
}
}
}
},
"/enableservice": {
"post": {
"description": "It conveys the services that will be enabled for the POI Terminal without the request of the Sale System, and a possible invitation for the Customer to start the services. Content of the Enable Service Request message.",
"summary": "EnableService Request",
"security": [
{
"BasicAuth": []
},
{
"ApiKeyAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnableServiceRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EnableServiceResponse"
}
}
},
"description": "It conveys the result of the Enable Service processing. Content of the Enable Service Response message."
}
}
}
},
"/admin": {
"post": {
"description": "Empty. Content of the Custom Admin Request message.",
"summary": "Admin Request",
"security": [
{
"BasicAuth": []
},
{
"ApiKeyAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdminRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AdminResponse"
}
}
},
"description": "It conveys the result of the Custom Admin. Content of the Custom Admin Response message."
}
}
}
},
"/payment": {
"post": {
"description": "Request sent to terminal to initiate payment. It conveys Information related to the Payment transaction to process. Content of the Payment Request message.",
"summary": "Payment Request",
"security": [
{
"BasicAuth": []
},
{
"ApiKeyAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaymentRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PaymentResponse"
}
}
},
"description": "It conveys Information related to the Payment transaction processed by the POI System. Content of the Payment Response message."
}
}
}
},
"/cardacquisition": {
"post": {
"description": "It conveys Information related to the payment and loyalty cards to read and analyse. This message pair is usually followed by a message pair (e.g. payment or loyalty) which refers to this Card Acquisition message pair. Content of the Card Acquisition Request message.",
"summary": "CardAcquisition Request",
"security": [
{
"BasicAuth": []
},
{
"ApiKeyAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CardAcquisitionRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CardAcquisitionResponse"
}
}
},
"description": "It conveys Information related to the payment and loyalty cards read and processed by the POI System and entered by the Customer. Content of the Card Acquisition Response message."
}
}
}
},
"/loyalty": {
"post": {
"description": "It conveys Information related to the Loyalty transaction to process. Content of the Loyalty Request message.",
"summary": "Loyalty Request",
"security": [
{
"BasicAuth": []
},
{
"ApiKeyAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoyaltyRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoyaltyResponse"
}
}
},
"description": "It conveys Information related to the Loyalty transaction processed by the POI System. Content of the Loyalty Response message."
}
}
}
},
"/storedvalue": {
"post": {
"description": "It conveys Information related to the Stored Value transaction to process. Content of the Stored Value Request message.",
"summary": "StoredValue Request",
"security": [
{
"BasicAuth": []
},
{
"ApiKeyAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StoredValueRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StoredValueResponse"
}
}
},
"description": "It conveys Information related to the Stored Value transaction processed by the POI System. Content of the Stored Value Response message."
}
}
}
},
"/reversal": {
"post": {
"description": "It conveys Information related to the reversal of a previous payment or a loyalty transaction. Content of the Reversal Request message.",
"summary": "Reversal Request",
"security": [
{
"BasicAuth": []
},
{
"ApiKeyAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReversalRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReversalResponse"
}
}
},
"description": "It conveys Information related to the reversal processed by the POI System. Content of the Reversal Response message."
}
}
}
},
"/reconciliation": {
"post": {
"description": "It conveys Information related to the Reconciliation requested by the Sale System. Content of the Reconciliation Request message.",
"summary": "Reconciliation Request",
"security": [
{
"BasicAuth": []
},
{
"ApiKeyAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReconciliationRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReconciliationResponse"
}
}
},
"description": "It conveys Information related to the Reconciliation transaction processed by the POI System. Content of the Reconciliation Response message."
}
}
}
},
"/gettotals": {
"post": {
"description": "It conveys information from the Sale System related to the scope and the format of the totals to be computed by the POI System. Content of the Get Totals Request message.",
"summary": "GetTotals Request",
"security": [
{
"BasicAuth": []
},
{
"ApiKeyAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetTotalsRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetTotalsResponse"
}
}
},
"description": "It conveys Information related to the Reconciliation transaction processed by the POI System. Content of the Reconciliation Response message."
}
}
}
},
"/balanceinquiry": {
"post": {
"description": "It conveys Information related to the account for which a Balance Inquiry is requested. Content of the Balance Inquiry Request message.",
"summary": "BalanceInquiry Request",
"security": [
{
"BasicAuth": []
},
{
"ApiKeyAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BalanceInquiryRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BalanceInquiryResponse"
}
}
},
"description": "It conveys the balance and the identification of the associated payment, loyalty or stored value account. Content of the Balance Inquiry Response message."
}
}
}
},
"/transactionstatus": {
"post": {
"description": "It conveys Information requested for status of the last or current Payment, Loyalty or Reversal transaction. Content of the TransactionStatus Request message.",
"summary": "TransactionStatus Request",
"security": [
{
"BasicAuth": []
},
{
"ApiKeyAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TransactionStatusRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TransactionStatusResponse"
}
}
},
"description": "It conveys Information related to the status of the last or current Payment, Loyalty or Reversal transaction. Content of the TransactionStatus Response message."
}
}
}
},
"/diagnosis": {
"post": {
"description": "It conveys Information related to the target POI for which the diagnosis is requested. Content of the Diagnosis Request message.",
"summary": "Diagnosis Request",
"security": [
{
"BasicAuth": []
},
{
"ApiKeyAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DiagnosisRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DiagnosisResponse"
}
}
},
"description": "It conveys the result of the requested diagnosis and a possible message to display on a logical device. Content of the Diagnosis Response message."
}
}
}
},
"/display": {
"post": {
"description": "It conveys the data to display and the way to process the display. It contains the complete content to display. It might contain an operation (the DisplayOutput element) per Display Device type. Content of the Display Request message.",
"summary": "Display Request",
"security": [
{
"BasicAuth": []
},
{
"ApiKeyAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DisplayRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DisplayResponse"
}
}
},
"description": "It conveys the result of the display, parallel to the message request, except if response not required and absent. Content of the Display Response message."
}
}
}
},
"/input": {
"post": {
"description": "It conveys data to display and the way to process the display, and contains the complete content to display. In addition to the display on the Input Device, it might contain an operation (the DisplayOutput element) per Display Device type. Content of the Input Request message.",
"summary": "Input Request",
"security": [
{
"BasicAuth": []
},
{
"ApiKeyAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InputRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InputResponse"
}
}
},
"description": "It conveys the result of the input or the result of the outputs, parallel to the message request, except if response not required and absent. Content of the Input Response message."
}
}
}
},
"/print": {
"post": {
"description": "It conveys the data to print and the way to process the print. It contains the complete content to print. Content of the Print Request message.",
"summary": "Print Request",
"security": [
{
"BasicAuth": []
},
{
"ApiKeyAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PrintRequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PrintResponse"
}
}
},
"description": "It conveys the result of the print, parallel to the message request, except if response not required and absent. Content of the Print Response message."
}
}
}
},
"/cardreaderapdu": {
"post": {
"description": "It contains the APDU request to send to the chip of the card, and a possible invitation message to display on the CashierInterface or the CustomerInterface. Content of the Card Reader APDU Request message.",
"summary": "CardReaderAPDU Request",
"security": [
{
"BasicAuth": []
},
{
"ApiKeyAuth": []
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CardReaderAPDURequest"
}
}
}
},
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CardReaderAPDUResponse"
}
}
},
"description": "It contains the result of the requested service, APDU response sent by the chip of the card in response to the APDU request. Content of the Card Reader APDU Response message."
}
}
}
}
},
"components": {
"schemas": {
"TerminalEnvironment": {
"type": "string",
"enum": [
"Attended",
"SemiAttended",
"Unattended"
]
},
"GenericProfile": {
"type": "string",
"enum": [
"Basic",
"Extended",
"Standard"
]
},
"ServiceProfiles": {
"type": "array",
"items": {
"type": "string",
"enum": [
"Batch",
"CardReader",
"Communication",
"Loyalty",
"OneTimeRes",
"PIN",
"Reservation",
"Sound",
"StoredValue",
"Synchro"
]
}
},
"SaleCapabilities": {
"type": "array",
"items": {
"type": "string",
"enum": [
"CashierDisplay",
"CashierError",
"CashierInput",
"CashierStatus",
"CustomerAssistance",
"CustomerDisplay",
"CustomerError",
"CustomerInput",
"EMVContactless",
"ICC",
"MagStripe",
"POIReplication",
"PrinterDocument",
"PrinterReceipt",
"PrinterVoucher"
]
}
},
"TokenRequestedType": {
"type": "string",
"enum": [
"Customer",
"Transaction"
]
},
"CustomerOrderReq": {
"type": "array",
"items": {
"type": "string",
"enum": [
"Both",
"Closed",
"Open"
]
}
},
"TrackFormat": {
"type": "string",
"enum": [
"AAMVA",
"ISO"
]
},
"EntryMode": {
"type": "array",
"items": {
"type": "string",
"enum": [
"Contactless",
"File",
"ICC",
"Keyed",
"MagStripe",
"Manual",
"Mobile",
"RFID",
"Scanned",
"SynchronousICC",
"Tapped"
]
}
},
"Result": {
"type": "string",
"enum": [
"Failure",
"Partial",
"Success"
]
},
"ErrorCondition": {
"type": "string",
"enum": [
"Aborted",
"Busy",
"Cancel",
"DeviceOut",
"InProgress",
"InsertedCard",
"InvalidCard",
"LoggedOut",
"MessageFormat",
"NotAllowed",
"NotFound",
"PaymentRestriction",
"Refusal",
"UnavailableDevice",
"UnavailableService",
"UnreachableHost",
"WrongPIN"
]
},
"GlobalStatus": {
"type": "string",
"enum": [
"Busy",
"Maintenance",
"OK",
"Unreachable"
]
},
"PrinterStatus": {
"type": "string",
"enum": [
"NoPaper",
"OK",
"OutOfOrder",
"PaperJam",
"PaperLow"
]
},
"POICapabilities": {
"type": "array",
"items": {
"type": "string",
"enum": [
"CashHandling",
"CashierDisplay",
"CashierError",
"CashierInput",
"CustomerDisplay",
"CustomerError",
"CustomerInput",
"EMVContactless",
"ICC",
"MagStripe",
"PrinterDocument",
"PrinterReceipt",
"PrinterVoucher"
]
}
},
"Device": {
"type": "string",
"enum": [
"CashierDisplay",
"CashierInput",
"CustomerDisplay",
"CustomerInput"
]
},
"InfoQualify": {
"type": "string",
"enum": [
"CustomerAssistance",
"Display",
"Document",
"Error",
"Input",
"POIReplication",
"Receipt",
"Sound",
"Status",
"Voucher"
]
},
"OutputFormat": {
"type": "string",
"enum": [
"BarCode",
"MessageRef",
"Text",
"XHTML"
]
},
"Color": {
"type": "string",
"enum": [
"Black",
"Blue",
"Cyan",
"Green",
"Magenta",
"Red",
"White",
"Yellow"
]
},
"CharacterWidth": {
"type": "string",
"enum": [
"DoubleWidth",
"SingleWidth"
]
},
"CharacterHeight": {
"type": "string",
"enum": [
"DoubleHeight",
"HalfHeight",
"SingleHeight"
]
},
"CharacterStyle": {
"type": "string",
"enum": [
"Bold",
"Italic",
"Normal",
"Underline"
]
},
"Alignment": {
"type": "string",
"enum": [
"Centred",
"Justified",
"Left",
"Right"
]
},
"BarcodeType": {
"type": "string",
"enum": [
"Code128",
"Code25",
"EAN13",
"EAN8",
"PDF417",
"QRCode",
"UPCA"
]
},
"MenuEntryTag": {
"type": "string",
"description": "Characteristics related to the selection of a menu entry.",
"enum": [
"NonSelectable",
"NonSelectableSubMenu",
"Selectable",
"SubMenu"
]
},
"TransactionAction": {
"type": "string",
"description": "Action to realise on a transaction.",
"enum": [
"AbortTransaction",
"StartTransaction"
]
},
"ServicesEnabled": {
"type": "array",
"items": {
"type": "string",
"enum": [
"CardAcquisition",
"Loyalty",
"Payment"
]
}
},
"UnitOfMeasure": {
"type": "string",
"enum": [
"Case",
"Centilitre",
"Centimetre",
"Foot",
"Gram",
"Inch",
"Kilogram",
"Kilometre",
"Litre",
"Meter",
"Mile",
"Other",
"Ounce",
"Pint",
"Pound",
"Quart",
"UKGallon",
"USGallon",
"Yard"
]
},
"PaymentType": {
"type": "string",
"enum": [
"CashAdvance",
"CashDeposit",
"Completion",
"FirstReservation",
"Instalment",
"IssuerInstalment",
"Normal",
"OneTimeReservation",
"PaidOut",
"Recurring",
"Refund",
"UpdateReservation"
]
},
"PaymentInstrumentType": {
"type": "string",
"enum": [
"Card",
"Cash",
"Check",
"Mobile",
"StoredValue"
]
},
"TypeCode": {
"type": "string",
"enum": [
"Company",
"Personal"
]
},
"StoredValueAccountType": {
"type": "string",
"enum": [
"GiftCard",
"Other",
"PhoneCard"
]
},
"IdentificationType": {
"type": "string",
"enum": [
"AccountNumber",
"BarCode",
"ISOTrack2",
"PAN",
"PhoneNumber"
]
},
"LoyaltyUnit": {
"type": "string",
"enum": [
"Monetary",
"Point"
]
},
"IdentificationSupport": {
"type": "string",
"enum": [
"HybridCard",
"LinkedCard",
"LoyaltyCard",
"NoCard"
]
},
"InstalmentType": {
"type": "string",
"enum": [
"DeferredInstalments",
"EqualInstalments",
"InequalInstalments"
]
},
"PeriodUnit": {
"type": "string",
"enum": [
"Annual",
"Daily",
"Monthly",
"Weekly"
]
},
"LoyaltyHandling": {
"type": "string",
"enum": [
"Allowed",
"Forbidden",
"Processed",
"Proposed",
"Required"
]
},
"ForceEntryMode": {
"type": "array",
"items": {
"type": "string",
"enum": [
"CheckReader",
"Contactless",
"File",
"ICC",
"Keyed",
"MagStripe",
"Manual",
"RFID",
"Scanned",
"SynchronousICC",
"Tapped"
]
}
},
"DocumentQualifier": {
"type": "string",
"enum": [
"CashierReceipt",
"CustomerReceipt",
"Document",
"Journal",
"SaleReceipt",
"Voucher"
]
},
"AuthenticationMethod": {
"type": "array",
"items": {
"type": "string",
"enum": [
"Bypass",
"ManualVerification",
"MerchantAuthentication",
"OfflinePIN",
"OnlinePIN",
"PaperSignature",
"SecureCertificate",
"SecureNoCertificate",
"SecuredChannel",
"SignatureCapture",
"UnknownMethod"
]
}
},
"LoyaltyTransactionType": {
"type": "string",
"enum": [
"Award",
"AwardRefund",
"Rebate",
"RebateRefund",
"Redemption",
"RedemptionRefund"
]
},
"StoredValueTransactionType": {
"type": "string",
"enum": [
"Activate",
"Duplicate",
"Load",
"Reserve",
"Reverse",
"Unload"
]
},
"ReversalReason": {
"type": "string",
"description": "Reason of the payment or loyalty reversal..",
"enum": [
"CustCancel",
"Malfunction",
"MerchantCancel",
"Unable2Compl"
]
},
"ReconciliationType": {
"type": "string",
"enum": [
"AcquirerReconciliation",
"AcquirerSynchronisation",
"PreviousReconciliation",
"SaleReconciliation"
]
},
"TransactionType": {
"type": "string",
"enum": [
"Award",
"CashAdvance",
"CompletedDeffered",
"CompletedReservation",
"Credit",
"Debit",
"Declined",
"Failed",
"FirstReservation",
"IssuerInstalment",
"OneTimeReservation",
"Rebate",
"Redemption",
"ReverseAward",
"ReverseCredit",
"ReverseDebit",
"ReverseRebate",
"ReverseRedemption",
"UpdateReservation"
]
},
"TotalDetails": {
"type": "array",
"items": {
"type": "string",
"enum": [
"OperatorID",
"POIID",
"SaleID",
"ShiftNumber",
"TotalsGroupID"
]
}
},
"AccountType": {
"type": "string",
"enum": [
"CardTotals",
"Checking",
"CreditCard",
"Default",
"EpurseCard",
"Investment",
"Savings",
"Universal"
]
},
"MessageCategory": {
"type": "string",
"enum": [
"Abort",
"Admin",
"BalanceInquiry",
"CardAcquisition",
"CardReaderAPDU",
"Diagnosis",
"Display",
"EnableService",
"Event",
"GetTotals",
"Input",
"InputUpdate",
"Login",
"Logout",
"Loyalty",
"Payment",
"Print",
"Reconciliation",
"Reversal",
"StoredValue",
"TransactionStatus"
]
},
"MessageType": {
"type": "string",
"enum": [
"Notification",
"Request",
"Response"
]
},
"MessageClass": {
"type": "string",
"enum": [
"Device",
"Event",
"Service"
]
},
"EventToNotify": {
"type": "string",
"description": "Event the POI notifies to the Sale System.",
"enum": [
"Abort",
"BeginMaintenance",
"CardInserted",
"CardRemoved",
"Completed",
"CustomerLanguage",
"EndMaintenance",
"Initialised",
"KeyPressed",
"OutOfOrder",
"Reject",
"SaleAdmin",
"SaleWakeUp",
"SecurityAlarm",
"Shutdown",
"StopAssistance"
]
},
"InputCommand": {
"type": "string",
"enum": [
"DecimalString",
"DigitString",
"GetAnyKey",
"GetConfirmation",
"GetFunctionKey",
"GetMenuEntry",
"Password",
"SiteManager",
"TextString"
]
},
"ResponseMode": {
"type": "string",
"enum": [
"Immediate",
"NotRequired",
"PrintEnd",
"SoundEnd"
]
},
"SoundFormat": {
"type": "string",
"enum": [
"MessageRef",
"SoundRef",
"Text"
]
},
"SoundAction": {
"type": "string",
"enum": [
"SetDefaultVolume",
"StartSound",
"StopSound"
]
},
"PINFormat": {
"type": "string",
"enum": [
"ISO0",
"ISO1",
"ISO2",
"ISO3"
]
},
"PINRequestType": {
"type": "string",
"description": "Type of PIN Service.",
"enum": [
"PINEnter",
"PINVerify",
"PINVerifyOnly"
]
},
"SaleToIssuerData": {
"type": "object",
"description": "The POI System receives this information and sends it to the Acquirer for the Issuer without any change. Sale information intended for the Issuer.",
"properties": {
"StatementReference": {
"type": "string",
"pattern": "^.+$",
"description": "Information to print on the bank statement."
}
}
},
"TrackData": {
"type": "object",
"description": "ISO 7813 - ISO 4909. Generic data structure for a card track, used when the magstripe card reader is located on the Sale Terminal, or for magstripe Card Reader device request. The data structure is also used to store the line at the bottom of a bank check. Magnetic track or magnetic ink characters line.",
"properties": {
"TrackNumb": {
"type": "integer",
"minimum": 1,
"maximum": 3,
"default": 2
},
"TrackFormat": {
"$ref": "#/components/schemas/TrackFormat"
},
"TrackValue": {
"type": "string",
"pattern": "^.{1,104}$"
}
},
"required": [
"TrackValue"
]
},
"SensitiveCardData": {
"type": "object",
"description": "This data structure could be CMS protected (EnvelopedData). In this case the data structure SensitiveCardData is replaced by the data structure ProtectedCardData of type ContentInformationType. When this data is protected, the exact content is unknown by the Sale System, and might include all the information which are required by an external backup POI Server to make a batch payment transaction in case of problem with the POI System. Sensitive information related to the payment card, entered or read by the Sale System.",
"properties": {
"PAN": {
"type": "integer",
"minimum": 8,
"maximum": 28
},
"CardSeqNumb": {
"type": "integer",
"minimum": 2,
"maximum": 3,
"description": "if EntryMode is File, Keyed or Manual."
},
"ExpiryDate": {
"type": "integer",
"minimum": 4,
"maximum": 4,
"description": "if EntryMode is File."
},
"TrackData": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TrackData"
}
}
}
},
"PaymentToken": {
"type": "object",
"description": "Surrogate of the PAN (Primary Account Number) of the payment card to identify the payment mean of the customer. It allows, for a merchant, to identify the customer.",
"properties": {
"TokenRequestedType": {
"$ref": "#/components/schemas/TokenRequestedType"
},
"TokenValue": {
"type": "string",
"pattern": "^.+$"
},
"ExpiryDateTime": {
"type": "string",
"format": "date-time",
"description": "Expiry date and time. Limits the validity of a payment token."
}
},
"required": [
"TokenRequestedType",
"TokenValue"
]
},
"CustomerOrder": {
"type": "object",
"description": "Customer order attached to a customer, recorded in the POI system. Allows the management of customer orders by the POI, for instance in a multi-channel or a click and collect sale transaction.",
"properties": {
"CustomerOrderID": {
"type": "string",
"pattern": "^.+$",
"description": "Additional and optional identification of a customer order."
},
"SaleReferenceID": {
"type": "string",
"pattern": "^.+$"
},
"OpenOrderState": {
"type": "boolean",
"default": true
},
"StartDate": {
"type": "string",
"format": "date-time",
"description": "Date time of the beginning of an operation."
},
"EndDate": {
"type": "string",
"format": "date-time",
"description": "Date time of the end of an operation."
},
"ForecastedAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"CurrentAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0,
"description": "Total amount of all completed transactions of a customer order."
},
"Currency": {
"type": "string",
"pattern": "^[A-Z]{3,3}$",
"description": "Currency of a monetary amount."
},
"AccessedBy": {
"type": "string",
"pattern": "^.+$"
},
"AdditionalInformation": {
"type": "string",
"pattern": "^.+$",
"description": "Unqualified information."
}
},
"required": [
"SaleReferenceID",
"StartDate",
"ForecastedAmount",
"CurrentAmount"
]
},
"AllowedProduct": {
"type": "object",
"description": "Product that is payable by the payment card. Product codes that are payable by the payment card.",
"properties": {
"ProductCode": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "Product code of item purchased with the transaction."
},
"EanUpc": {
"type": "integer",
"description": "Standard product code of item purchased with the transaction."
},
"ProductLabel": {
"type": "string",
"pattern": "^.+$",
"description": "Product name of an item purchased with the transaction."
},
"AdditionalProductInfo": {
"type": "string",
"pattern": "^.+$",
"description": "Additionl information related to the line item."
}
},
"required": [
"ProductCode"
]
},
"CardData": {
"type": "object",
"description": "Allows acquisition of the card data by the Sale System before the Payment, CardAcquisition or BalanceInquiry request to the POI. It could also be sent in the CardAcquisition response, to be processed by the Sale System. Information related to the payment card used for the transaction.",
"properties": {
"PaymentBrand": {
"type": "string",
"pattern": "^.+$",
"description": "If card PAN is readable ."
},
"MaskedPan": {
"type": "string",
"pattern": "^.+$"
},
"PaymentAccountRef": {
"type": "string",
"pattern": "^.+$"
},
"EntryMode": {
"$ref": "#/components/schemas/EntryMode"
},
"CardCountryCode": {
"type": "integer",
"minimum": 3,
"maximum": 3,
"description": "If available in the card."
},
"ProtectedCardData": {
"type": "string",
"description": "SensitiveCardData protected by CMS EnvelopedData."
},
"SensitiveCardData": {
"$ref": "#/components/schemas/SensitiveCardData"
},
"AllowedProductCode": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"AllowedProduct": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AllowedProduct"
}
},
"PaymentToken": {
"$ref": "#/components/schemas/PaymentToken"
},
"CustomerOrder": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CustomerOrder"
}
}
}
},
"TransactionIDType": {
"type": "object",
"description": "Identification of a transaction for the Sale System or the POI System.",
"properties": {
"TransactionID": {
"type": "string",
"pattern": "^.+$"
},
"TimeStamp": {
"type": "string",
"format": "date-time"
}
},
"required": [
"TransactionID",
"TimeStamp"
]
},
"SaleTerminalData": {
"type": "object",
"description": "In the Login Request, if a Sale Terminal is involved in the login. In other messages, when a logical device is out of order (SaleCapabilites), or when the other data have changed since or were not in the Login. Information related to the software and hardware feature of the Sale Terminal.",
"properties": {
"TotalsGroupID": {
"type": "string",
"pattern": "^.{1,16}$",
"description": "If present, default value for all transaction."
}
}
},
"SaleData": {
"type": "object",
"description": "Data associated to the Sale System, with a particular value during the processing of the payment by the POI, including the cards acquisition. Data related to the Sale System.",
"properties": {
"OperatorID": {
"type": "string",
"pattern": "^.+$"
},
"OperatorLanguage": {
"type": "string",
"pattern": "^[a-z]{2,2}$",
"description": "if different from the Login."
},
"ShiftNumber": {
"type": "string",
"pattern": "^.+$",
"description": "if different from the Login and see Login .SaleData."
},
"SaleTransactionID": {
"$ref": "#/components/schemas/TransactionIDType"
},
"SaleReferenceID": {
"type": "string",
"pattern": "^.+$",
"description": "If payment reservation."
},
"SaleTerminalData": {
"$ref": "#/components/schemas/SaleTerminalData"
},
"TokenRequestedType": {
"$ref": "#/components/schemas/TokenRequestedType"
},
"CustomerOrderID": {
"type": "string",
"pattern": "^.+$",
"description": "Additional and optional identification of a customer order."
},
"CustomerOrderReq": {
"$ref": "#/components/schemas/CustomerOrderReq"
},
"SaleToPOIData": {
"type": "string",
"pattern": "^.+$",
"description": "Stored with the transaction."
},
"SaleToAcquirerData": {
"type": "string",
"pattern": "^.+$",
"description": "Send to the Acquirer if present."
},
"SaleToIssuerData": {
"$ref": "#/components/schemas/SaleToIssuerData"
}
},
"required": [
"SaleTransactionID"
]
},
"POIData": {
"type": "object",
"description": "In the Message Response, identification of the POI transaction. Data related to the POI System.",
"properties": {
"POITransactionID": {
"$ref": "#/components/schemas/TransactionIDType"
},
"POIReconciliationID": {
"type": "integer",
"description": "If Result is Success."
}
},
"required": [
"POITransactionID"
]
},
"SaleSoftware": {
"type": "object",
"description": "Information related to the software of the Sale System which manages the NEXO Sale to POI protocol.",
"properties": {
"ManufacturerID": {
"type": "string",
"pattern": "^.+$"
},
"ApplicationName": {
"type": "string",
"pattern": "^.+$"
},
"SoftwareVersion": {
"type": "string",
"pattern": "^.+$"
},
"CertificationCode": {
"type": "string",
"pattern": "^.+$"
}
},
"required": [
"ManufacturerID",
"ApplicationName",
"SoftwareVersion",
"CertificationCode"
]
},
"CoinsOrBills": {
"type": "object",
"description": "Indicates the remaining number of coins or bills of a given value in a cash handling device. When the cash handling machine does not have any more coins or bills of a certain value, the number must be equal to 0. Number of coins or bills of a given value.",
"properties": {
"UnitValue": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0,
"description": "Value of a coin or bill."
},
"Number": {
"type": "integer",
"description": "Number of elements."
}
},
"required": [
"UnitValue",
"Number"
]
},
"CashHandlingDevice": {
"type": "object",
"description": "Indicate the status and the remaining coins and bill in a cash handling device. Status of cash handling device.",
"properties": {
"CashHandlingOKFlag": {
"type": "boolean",
"description": "Indicates if the cash handling device is working and usable."
},
"Currency": {
"type": "string",
"pattern": "^[A-Z]{3,3}$",
"description": "Currency of a monetary amount."
},
"CoinsOrBills": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CoinsOrBills"
}
}
},
"required": [
"CashHandlingOKFlag",
"Currency",
"CoinsOrBills"
]
},
"POIStatus": {
"type": "object",
"description": "Indicate the availability of the POI Terminal components. The data element is absent if the component is not part of the POI Terminal. State of a POI Terminal.",
"properties": {
"GlobalStatus": {
"$ref": "#/components/schemas/GlobalStatus"
},
"SecurityOKFlag": {
"type": "boolean",
"description": "If security module present."
},
"PEDOKFlag": {
"type": "boolean",
"description": "If PED present."
},
"CardReaderOKFlag": {
"type": "boolean",
"description": "If card reader device present."
},
"PrinterStatus": {
"$ref": "#/components/schemas/PrinterStatus"
},
"CommunicationOKFlag": {
"type": "boolean",
"description": "If communication infrastructure present."
},
"CashHandlingDevice": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CashHandlingDevice"
}
},
"FraudPreventionFlag": {
"type": "boolean",
"description": "default False."
}
},
"required": [
"GlobalStatus"
]
},
"Response": {
"type": "object",
"description": "If Result is Success, ErrorCondition is absent or not used in the processing of the message. In the other cases, the ErrorCondition has to be present and can refine the processing of the message response. AdditionalResponse gives more information about the success or the failure of the message request processing, for logging without real time involvements. Result of a message request processing.",
"properties": {
"Result": {
"$ref": "#/components/schemas/Result"
},
"ErrorCondition": {
"$ref": "#/components/schemas/ErrorCondition"
},
"AdditionalResponse": {
"type": "string",
"pattern": "^.+$",
"description": "If present, the POI logs it for further examination."
}
},
"required": [
"Result"
]
},
"POISoftware": {
"type": "object",
"properties": {
"ManufacturerID": {
"type": "string",
"pattern": "^.+$"
},
"ApplicationName": {
"type": "string",
"pattern": "^.+$"
},
"SoftwareVersion": {
"type": "string",
"pattern": "^.+$"
},
"CertificationCode": {
"type": "string",
"pattern": "^.+$"
}
},
"required": [
"ManufacturerID",
"ApplicationName",
"SoftwareVersion",
"CertificationCode"
]
},
"POIProfile": {
"type": "object",
"properties": {
"GenericProfile": {
"$ref": "#/components/schemas/GenericProfile"
},
"ServiceProfiles": {
"$ref": "#/components/schemas/ServiceProfiles"
}
}
},
"POITerminalData": {
"type": "object",
"properties": {
"TerminalEnvironment": {
"$ref": "#/components/schemas/TerminalEnvironment"
},
"POICapabilities": {
"$ref": "#/components/schemas/POICapabilities"
},
"POIProfile": {
"$ref": "#/components/schemas/POIProfile"
},
"POISerialNumber": {
"type": "string",
"pattern": "^.+$"
}
},
"required": [
"TerminalEnvironment",
"POICapabilities",
"POISerialNumber"
]
},
"POISystemData": {
"type": "object",
"properties": {
"DateTime": {
"type": "string",
"format": "date-time"
},
"POISoftware": {
"$ref": "#/components/schemas/POISoftware"
},
"POITerminalData": {
"$ref": "#/components/schemas/POITerminalData"
},
"POIStatus": {
"$ref": "#/components/schemas/POIStatus"
}
},
"required": [
"DateTime",
"POISoftware"
]
},
"OutputText": {
"type": "object",
"description": "It conveys Information related to the content of the text message and its format. All the data elements related to the format of the text to display or print are parameters valid for the whole Text content. Content of text message to display or print.",
"properties": {
"Text": {
"type": "string"
},
"CharacterSet": {
"type": "integer"
},
"Font": {
"type": "string",
"pattern": "^.+$"
},
"StartRow": {
"type": "integer",
"minimum": 1,
"maximum": 500
},
"StartColumn": {
"type": "integer",
"minimum": 1,
"maximum": 500
},
"Color": {
"$ref": "#/components/schemas/Color"
},
"CharacterWidth": {
"$ref": "#/components/schemas/CharacterWidth"
},
"CharacterHeight": {
"$ref": "#/components/schemas/CharacterHeight"
},
"CharacterStyle": {
"$ref": "#/components/schemas/CharacterStyle"
},
"Alignment": {
"$ref": "#/components/schemas/Alignment"
},
"EndOfLineFlag": {
"type": "boolean",
"default": true
}
},
"required": [
"Text"
]
},
"PredefinedContent": {
"type": "object",
"description": "It conveys Information related to the predefined message. Reference of a predefined message to display or print.",
"properties": {
"ReferenceID": {
"type": "string",
"pattern": "^.+$",
"description": "Identification of a predefined message to display or print."
},
"Language": {
"type": "string",
"pattern": "^[a-z]{2,2}$",
"description": "Identification of a language."
}
},
"required": [
"ReferenceID"
]
},
"OutputBarcode": {
"type": "object",
"properties": {
"BarcodeType": {
"$ref": "#/components/schemas/BarcodeType"
},
"BarcodeValue": {
"type": "string",
"pattern": "^.+$"
}
},
"required": [
"BarcodeValue"
]
},
"OutputContent": {
"type": "object",
"description": "This is a sequence of elements if they have different formats. Content to display or print.",
"properties": {
"OutputFormat": {
"$ref": "#/components/schemas/OutputFormat"
},
"PredefinedContent": {
"$ref": "#/components/schemas/PredefinedContent"
},
"OutputText": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OutputText"
}
},
"OutputXHTML": {
"type": "string",
"format": "byte",
"pattern": "^.{0,262144}$",
"description": "Mandatory, if OutputFormat is XHTML, not allowed otherwise."
},
"OutputBarcode": {
"$ref": "#/components/schemas/OutputBarcode"
}
},
"required": [
"OutputFormat"
]
},
"MenuEntry": {
"type": "object",
"description": "It conveys message text and parameters of the menu entry. This output data could be only provided for an input command, in order to choose an entryof the menu. An entryof the menu to present to the Cashier.",
"properties": {
"MenuEntryTag": {
"$ref": "#/components/schemas/MenuEntryTag"
},
"DefaultSelectedFlag": {
"type": "boolean",
"default": false
},
"OutputFormat": {
"$ref": "#/components/schemas/OutputFormat"
},
"PredefinedContent": {
"$ref": "#/components/schemas/PredefinedContent"
},
"OutputText": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OutputText"
}
},
"OutputXHTML": {
"type": "string",
"format": "byte",
"pattern": "^.+$"
}
},
"required": [
"OutputFormat"
]
},
"DisplayOutput": {
"type": "object",
"description": "It contains a complete display operation for a Display or an Input Device type. For the Input Devices, Diagnosis and EnableService, ResponseRequiredFlag and MinimumDisplayTime shall be absent. Information to display and the way to process the display.",
"properties": {
"ResponseRequiredFlag": {
"type": "boolean",
"default": true,
"description": "Request of a message response."
},
"MinimumDisplayTime": {
"type": "integer",
"minimum": 0,
"maximum": 999,
"default": 0,
"description": "Number of seconds the message has to be displayed."
},
"Device": {
"$ref": "#/components/schemas/Device"
},
"InfoQualify": {
"$ref": "#/components/schemas/InfoQualify"
},
"OutputContent": {
"$ref": "#/components/schemas/OutputContent"
},
"MenuEntry": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MenuEntry"
}
},
"OutputSignature": {
"type": "string",
"format": "byte",
"pattern": "^.+$",
"description": "If protection has to be provided to the vendor on the text to display or print."
}
},
"required": [
"Device",
"InfoQualify",
"OutputContent"
]
},
"SaleItem": {
"type": "object",
"description": "In loyalty or value added payment card transaction, the items of the sale are entering in the processing of the transaction. Sale items of a transaction.",
"properties": {
"ItemID": {
"type": "integer",
"description": "Item identification inside a transaction (0 to n)."
},
"ProductCode": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "Product code of item purchased with the transaction."
},
"EanUpc": {
"type": "integer",
"description": "If data sent, POI has to store it and send it if the host protocol allows it."
},
"UnitOfMeasure": {
"$ref": "#/components/schemas/UnitOfMeasure"
},
"Quantity": {
"type": "string",
"description": "If data sent, POI has to store it and send it if the host protocol allows it."
},
"UnitPrice": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0,
"description": "if Quantity present."
},
"ItemAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0,
"description": "Total amount of the item line."
},
"TaxCode": {
"type": "integer",
"description": "If data sent, POI has to store it and send it if the host protocol allows it."
},
"SaleChannel": {
"type": "integer",
"description": "If data sent, POI has to store it and send it if the host protocol allows it."
},
"ProductLabel": {
"type": "string",
"pattern": "^.+$"
},
"AdditionalProductInfo": {
"type": "string",
"pattern": "^.+$",
"description": "If data sent, POI has to store it and send it if the host protocol allows it."
}
},
"required": [
"ItemID",
"ProductCode",
"ItemAmount"
]
},
"LoyaltyAmount": {
"type": "object",
"description": "An awarded amount or an amount to redeem to the loyalty account might be sent in the Payment request message. Amount of a loyalty account.",
"properties": {
"LoyaltyUnit": {
"$ref": "#/components/schemas/LoyaltyUnit"
},
"Currency": {
"type": "string",
"pattern": "^[A-Z]{3,3}$"
},
"AmountValue": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
}
},
"required": [
"AmountValue"
]
},
"LoyaltyAccountID": {
"type": "object",
"description": "In the Payment or the Loyalty Request message, it allows to identify the loyalty account by the Sale Terminal instead of the POI Terminal (e.g. because the account identification is a bar-code read by the Cashier on a scanner device). Identification of a Loyalty account.",
"properties": {
"EntryMode": {
"$ref": "#/components/schemas/EntryMode"
},
"IdentificationType": {
"$ref": "#/components/schemas/IdentificationType"
},
"IdentificationSupport": {
"$ref": "#/components/schemas/IdentificationSupport"
},
"LoyaltyID": {
"type": "string"
}
},
"required": [
"EntryMode",
"IdentificationType",
"LoyaltyID"
]
},
"LoyaltyData": {
"type": "object",
"description": "In the Payment, Loyalty or Balance Inquiry Request message, it allows the Sale Terminal to send the identification of the loyalty account or an awarded amount or an amount to redeem to the loyalty account. Data related to a Loyalty program or account.",
"properties": {
"CardAcquisitionReference": {
"$ref": "#/components/schemas/TransactionIDType"
},
"LoyaltyAccountID": {
"$ref": "#/components/schemas/LoyaltyAccountID"
},
"LoyaltyAmount": {
"$ref": "#/components/schemas/LoyaltyAmount"
}
}
},
"CheckData": {
"type": "object",
"description": "Allows the check information to be provided by the Sale System before requesting the payment, or stored by the Sale System after processing of the payment. Information related to the paper check used for the transaction.",
"properties": {
"BankID": {
"type": "string",
"pattern": "^.+$",
"description": "Mandatory if TrackData absent."
},
"AccountNumber": {
"type": "string",
"pattern": "^.+$",
"description": "Mandatory if TrackData absent."
},
"CheckNumber": {
"type": "string",
"pattern": "^.+$",
"description": "Mandatory if TrackData absent."
},
"TrackData": {
"$ref": "#/components/schemas/TrackData"
},
"CheckCardNumber": {
"type": "string",
"pattern": "^.+$",
"description": "If provided by the customer."
},
"TypeCode": {
"$ref": "#/components/schemas/TypeCode"
},
"Country": {
"type": "string",
"pattern": "^[A-Z]{3,3}$",
"description": "Absent if country of the Sale system."
}
}
},
"SensitiveMobileData": {
"type": "object",
"properties": {
"MSISDN": {
"type": "integer"
},
"ISMI": {
"type": "integer"
},
"IMEI": {
"type": "integer"
}
},
"required": [
"MSISDN"
]
},
"UTMCoordinates": {
"type": "object",
"properties": {
"UTMZone": {
"type": "string",
"pattern": "^.+$"
},
"UTMEastward": {
"type": "string",
"pattern": "^.+$"
},
"UTMNorthward": {
"type": "string",
"pattern": "^.+$"
}
},
"required": [
"UTMZone",
"UTMEastward",
"UTMNorthward"
]
},
"GeographicCoordinates": {
"type": "object",
"properties": {
"Latitude": {
"type": "string",
"pattern": "^.+$"
},
"Longitude": {
"type": "string",
"pattern": "^.+$"
}
},
"required": [
"Latitude",
"Longitude"
]
},
"Geolocation": {
"type": "object",
"properties": {
"GeographicCoordinates": {
"$ref": "#/components/schemas/GeographicCoordinates"
},
"UTMCoordinates": {
"$ref": "#/components/schemas/UTMCoordinates"
}
}
},
"MobileData": {
"type": "object",
"description": "Mobile phone is used as a payment instrument for the transaction. Information related to the mobile for the payment transaction.",
"properties": {
"MobileCountryCode": {
"type": "integer",
"minimum": 3,
"maximum": 3,
"description": "If data available."
},
"MobileNetworkCode": {
"type": "integer",
"minimum": 2,
"maximum": 3,
"description": "If data available."
},
"MaskedMSISDN": {
"type": "integer",
"description": "If data available."
},
"Geolocation": {
"$ref": "#/components/schemas/Geolocation"
},
"ProtectedMobileData": {
"type": "string",
"description": "SensitiveMobileData."
},
"SensitiveMobileData": {
"$ref": "#/components/schemas/SensitiveMobileData"
}
}
},
"Instalment": {
"type": "object",
"properties": {
"InstalmentType": {
"$ref": "#/components/schemas/InstalmentType"
},
"SequenceNumber": {
"type": "integer"
},
"PlanID": {
"type": "string",
"pattern": "^.+$"
},
"Period": {
"type": "integer"
},
"PeriodUnit": {
"$ref": "#/components/schemas/PeriodUnit"
},
"FirstPaymentDate": {
"type": "string",
"format": "date"
},
"TotalNbOfPayments": {
"type": "integer"
},
"CumulativeAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"FirstAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"Charges": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
}
}
},
"StoredValueAccountID": {
"type": "object",
"description": "It contains the identifications of the stored value account or the stored value card, and the associated product sold by the Sale System for stored value requests. Identification of the stored value account or the stored value card.",
"properties": {
"StoredValueAccountType": {
"$ref": "#/components/schemas/StoredValueAccountType"
},
"StoredValueProvider": {
"type": "string",
"pattern": "^.+$"
},
"OwnerName": {
"type": "string",
"pattern": "^.+$"
},
"ExpiryDate": {
"type": "integer",
"minimum": 4,
"maximum": 4
},
"EntryMode": {
"$ref": "#/components/schemas/EntryMode"
},
"IdentificationType": {
"$ref": "#/components/schemas/IdentificationType"
},
"StoredValueID": {
"type": "string",
"pattern": "^.+$"
}
},
"required": [
"StoredValueAccountType",
"EntryMode",
"IdentificationType",
"StoredValueID"
]
},
"PaymentInstrumentData": {
"type": "object",
"description": "Sent in the result of the payment transaction. For a card, it could also be sent in the CardAcquisition response, to be processed by the Sale System. Data related to the instrument of payment for the transaction.",
"properties": {
"PaymentInstrumentType": {
"$ref": "#/components/schemas/PaymentInstrumentType"
},
"ProtectedCardData": {
"type": "string"
},
"CardData": {
"$ref": "#/components/schemas/CardData"
},
"CheckData": {
"$ref": "#/components/schemas/CheckData"
},
"MobileData": {
"$ref": "#/components/schemas/MobileData"
},
"StoredValueAccountID": {
"$ref": "#/components/schemas/StoredValueAccountID"
}
},
"required": [
"PaymentInstrumentType"
]
},
"OriginalPOITransaction": {
"type": "object",
"description": "In the Payment or the Loyalty Request message, it allows using the card of a previous CardAcquisition or Payment/Loyalty request. Identification of a previous POI transaction.",
"properties": {
"SaleID": {
"type": "string",
"pattern": "^.+$",
"description": "Identification of a Sale System or a Sale Terminal for the Sale to POI protocol."
},
"POIID": {
"type": "string",
"pattern": "^.+$",
"description": "If original transaction is coming from another POI."
},
"POITransactionID": {
"$ref": "#/components/schemas/TransactionIDType"
},
"ReuseCardDataFlag": {
"type": "boolean",
"default": true,
"description": "Indicate if the card data has to be got from a previous transaction."
},
"ApprovalCode": {
"type": "string",
"pattern": "^.+$",
"description": "If referral."
},
"CustomerLanguage": {
"type": "string",
"pattern": "^[a-z]{2,2}$",
"description": "If the language is selected by the Sale System before the request to the POI."
},
"AcquirerID": {
"type": "integer",
"description": "Restrict to these Acquirer if present."
},
"AmountValue": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"HostTransactionID": {
"$ref": "#/components/schemas/TransactionIDType"
}
}
},
"TransactionConditions": {
"type": "object",
"description": "Conditions on which the transaction must be processed.",
"properties": {
"AllowedPaymentBrand": {
"type": "array",
"items": {
"type": "string",
"pattern": "^.+$",
"description": "Restrict brand if data sent."
}
},
"AcquirerID": {
"type": "array",
"items": {
"type": "integer",
"description": "Restrict to these Acquirer if present."
}
},
"DebitPreferredFlag": {
"type": "boolean",
"description": "The preferred type of payment is a debit transaction rather a credit transaction."
},
"AllowedLoyaltyBrand": {
"type": "array",
"items": {
"type": "string",
"pattern": "^.+$",
"description": "Restrict brand if data sent."
}
},
"LoyaltyHandling": {
"$ref": "#/components/schemas/LoyaltyHandling"
},
"CustomerLanguage": {
"type": "string",
"pattern": "^[a-z]{2,2}$",
"description": "If the language is selected by the Sale System before the request to the POI."
},
"ForceOnlineFlag": {
"type": "boolean",
"default": false,
"description": "Go online if data sent."
},
"ForceEntryMode": {
"$ref": "#/components/schemas/ForceEntryMode"
},
"MerchantCategoryCode": {
"type": "string",
"pattern": "^.{3,4}$",
"description": "The payment implies a specific MCC."
}
}
},
"PaymentData": {
"type": "object",
"properties": {
"PaymentType": {
"$ref": "#/components/schemas/PaymentType"
},
"SplitPaymentFlag": {
"type": "boolean",
"default": false
},
"RequestedValidityDate": {
"type": "string",
"format": "date"
},
"CardAcquisitionReference": {
"$ref": "#/components/schemas/TransactionIDType"
},
"Instalment": {
"$ref": "#/components/schemas/Instalment"
},
"CustomerOrder": {
"$ref": "#/components/schemas/CustomerOrder"
},
"PaymentInstrumentData": {
"$ref": "#/components/schemas/PaymentInstrumentData"
}
}
},
"AmountsReq": {
"type": "object",
"description": "Amounts of a payment",
"properties": {
"Currency": {
"type": "string",
"pattern": "^[A-Z]{3,3}$"
},
"RequestedAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"CashBackAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"TipAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"PaidAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"MinimumAmountToDeliver": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"MaximumCashBackAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"MinimumSplitAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
}
},
"required": [
"Currency",
"RequestedAmount"
]
},
"PaymentTransaction": {
"type": "object",
"properties": {
"AmountsReq": {
"$ref": "#/components/schemas/AmountsReq"
},
"OriginalPOITransaction": {
"$ref": "#/components/schemas/OriginalPOITransaction"
},
"TransactionConditions": {
"$ref": "#/components/schemas/TransactionConditions"
},
"SaleItem": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SaleItem"
}
}
},
"required": [
"AmountsReq"
]
},
"ConvertedAmount": {
"type": "object",
"properties": {
"AmountValue": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"Currency": {
"type": "string",
"pattern": "^[A-Z]{3,3}$"
}
},
"required": [
"AmountValue",
"Currency"
]
},
"CurrencyConversion": {
"type": "object",
"description": "A currency conversion occurred in the payment, and the merchant needs to know information related to this conversion (e.g. to print on the sale receipt). Information related to a currency conversion.",
"properties": {
"CustomerApprovedFlag": {
"type": "boolean",
"default": true,
"description": "Notify if the customer has approved something. Indicates if the customer has accepted a currency conversion."
},
"ConvertedAmount": {
"$ref": "#/components/schemas/ConvertedAmount"
},
"Rate": {
"type": "string",
"description": "Rate of currency conversion."
},
"Markup": {
"type": "string",
"description": "Markup of a currency conversion amount as a percentage."
},
"Commission": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0,
"description": "Commission for a currency conversion."
},
"Declaration": {
"type": "string",
"pattern": "^.+$",
"description": "If a declaration has to be presented to the customer."
}
},
"required": [
"ConvertedAmount"
]
},
"Point": {
"type": "object",
"properties": {
"X": {
"type": "string"
},
"Y": {
"type": "string"
}
},
"required": [
"X",
"Y"
]
},
"SaleItemRebate": {
"type": "object",
"description": "To be differentiated from the award which is the amount or quantity earned on the loyalty account. The awarded amount that is attached to an item as a rebate.",
"properties": {
"ItemID": {
"type": "integer",
"description": "Item identification inside a transaction (0 to n)."
},
"ProductCode": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "Product code of item purchased with the transaction."
},
"EanUpc": {
"type": "integer"
},
"UnitOfMeasure": {
"$ref": "#/components/schemas/UnitOfMeasure"
},
"Quantity": {
"type": "string",
"description": "if rebate is additional units."
},
"ItemAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0,
"description": "if rebate on the line item amount."
},
"RebateLabel": {
"type": "string",
"pattern": "^.+$",
"description": "If provided by the Acquirer."
}
},
"required": [
"ItemID",
"ProductCode"
]
},
"LoyaltyAccount": {
"type": "object",
"description": "This data structure conveys the identification of the account and the associated loyalty brand. Data related to a loyalty account processed in the transaction.",
"properties": {
"LoyaltyAccountID": {
"$ref": "#/components/schemas/LoyaltyAccountID"
},
"LoyaltyBrand": {
"type": "string",
"pattern": "^.+$",
"description": "If a card is analysed."
}
},
"required": [
"LoyaltyAccountID"
]
},
"LoyaltyAcquirerData": {
"type": "object",
"properties": {
"LoyaltyAcquirerID": {
"type": "string",
"pattern": "^.+$"
},
"ApprovalCode": {
"type": "string",
"pattern": "^.+$"
},
"LoyaltyTransactionID": {
"$ref": "#/components/schemas/TransactionIDType"
},
"HostReconciliationID": {
"type": "string",
"pattern": "^.+$"
}
}
},
"Rebates": {
"type": "object",
"properties": {
"TotalRebate": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"RebateLabel": {
"type": "string",
"pattern": "^.+$"
},
"SaleItemRebate": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SaleItemRebate"
}
}
}
},
"LoyaltyResult": {
"type": "object",
"description": "In the Message Response, the result of each loyalty brand transaction. Data related to the result of a processed loyalty transaction.",
"properties": {
"LoyaltyAccount": {
"$ref": "#/components/schemas/LoyaltyAccount"
},
"CurrentBalance": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0,
"description": "if known (provided by the card or an external host)."
},
"LoyaltyAmount": {
"$ref": "#/components/schemas/LoyaltyAmount"
},
"LoyaltyAcquirerData": {
"$ref": "#/components/schemas/LoyaltyAcquirerData"
},
"Rebates": {
"$ref": "#/components/schemas/Rebates"
}
},
"required": [
"LoyaltyAccount"
]
},
"PaymentReceipt": {
"type": "object",
"description": "If the payment receipts are printed by the Sale system and the POI or the Sale does not implement the Print exchange (Basic profile). Customer or Merchant payment receipt.",
"properties": {
"DocumentQualifier": {
"$ref": "#/components/schemas/DocumentQualifier"
},
"IntegratedPrintFlag": {
"type": "boolean",
"description": "Type of the print integrated to other prints."
},
"RequiredSignatureFlag": {
"type": "boolean",
"default": false,
"description": "Indicate that the cardholder payment receipt requires a physical signature by the Customer."
},
"OutputContent": {
"$ref": "#/components/schemas/OutputContent"
}
},
"required": [
"DocumentQualifier",
"OutputContent"
]
},
"PaymentAcquirerData": {
"type": "object",
"description": "Data related to the response from the payment Acquirer.",
"properties": {
"AcquirerID": {
"type": "integer",
"description": "If several Acquirers."
},
"MerchantID": {
"type": "string",
"pattern": "^.+$",
"description": "Identification of the Merchant for the Acquirer."
},
"AcquirerPOIID": {
"type": "string",
"pattern": "^.+$",
"description": "Identification of the POI for the payment Acquirer."
},
"AcquirerTransactionID": {
"$ref": "#/components/schemas/TransactionIDType"
},
"ApprovalCode": {
"type": "string",
"pattern": "^.+$",
"description": "If available."
},
"HostReconciliationID": {
"type": "string",
"pattern": "^.+$"
}
},
"required": [
"MerchantID",
"AcquirerPOIID"
]
},
"AreaSize": {
"type": "object",
"properties": {
"X": {
"type": "string"
},
"Y": {
"type": "string"
}
},
"required": [
"X",
"Y"
]
},
"CapturedSignature": {
"type": "object",
"properties": {
"AreaSize": {
"$ref": "#/components/schemas/AreaSize"
},
"SignaturePoint": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Point"
}
}
}
},
"AmountsResp": {
"type": "object",
"properties": {
"Currency": {
"type": "string",
"pattern": "^[A-Z]{3,3}$"
},
"AuthorizedAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"TotalRebatesAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"TotalFeesAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"CashBackAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"TipAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
}
},
"required": [
"AuthorizedAmount"
]
},
"PaymentResult": {
"type": "object",
"properties": {
"PaymentType": {
"$ref": "#/components/schemas/PaymentType"
},
"PaymentInstrumentData": {
"$ref": "#/components/schemas/PaymentInstrumentData"
},
"AmountsResp": {
"$ref": "#/components/schemas/AmountsResp"
},
"Instalment": {
"$ref": "#/components/schemas/Instalment"
},
"CurrencyConversion": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CurrencyConversion"
}
},
"MerchantOverrideFlag": {
"type": "boolean",
"default": false
},
"CapturedSignature": {
"$ref": "#/components/schemas/CapturedSignature"
},
"ProtectedSignature": {
"type": "string"
},
"CustomerLanguage": {
"type": "string",
"pattern": "^[a-z]{2,2}$"
},
"OnlineFlag": {
"type": "boolean",
"default": true
},
"AuthenticationMethod": {
"$ref": "#/components/schemas/AuthenticationMethod"
},
"ValidityDate": {
"type": "string",
"format": "date"
},
"PaymentAcquirerData": {
"$ref": "#/components/schemas/PaymentAcquirerData"
}
}
},
"CardAcquisitionTransaction": {
"type": "object",
"properties": {
"AllowedPaymentBrand": {
"type": "array",
"items": {
"type": "string",
"pattern": "^.+$"
}
},
"AllowedLoyaltyBrand": {
"type": "array",
"items": {
"type": "string",
"pattern": "^.+$"
}
},
"LoyaltyHandling": {
"$ref": "#/components/schemas/LoyaltyHandling"
},
"CustomerLanguage": {
"type": "string",
"pattern": "^[a-z]{2,2}$"
},
"ForceEntryMode": {
"$ref": "#/components/schemas/ForceEntryMode"
},
"ForceCustomerSelectionFlag": {
"type": "boolean"
},
"TotalAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"PaymentType": {
"$ref": "#/components/schemas/PaymentType"
},
"CashBackFlag": {
"type": "boolean"
}
}
},
"LoyaltyTransaction": {
"type": "object",
"properties": {
"LoyaltyTransactionType": {
"$ref": "#/components/schemas/LoyaltyTransactionType"
},
"Currency": {
"type": "string",
"pattern": "^[A-Z]{3,3}$"
},
"TotalAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"OriginalPOITransaction": {
"$ref": "#/components/schemas/OriginalPOITransaction"
},
"TransactionConditions": {
"$ref": "#/components/schemas/TransactionConditions"
},
"SaleItem": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SaleItem"
}
}
},
"required": [
"LoyaltyTransactionType"
]
},
"StoredValueData": {
"type": "object",
"description": "It contains: - the identification of the stored value accounts or the stored value cards, if provided by the Sale System, and - the associated products sold by the Sale System.. Data related to the stored value card.",
"properties": {
"StoredValueProvider": {
"type": "string",
"pattern": "^.+$",
"description": "If more than one provider to manage on the POI, and StoredValueAccountID absent."
},
"StoredValueTransactionType": {
"$ref": "#/components/schemas/StoredValueTransactionType"
},
"StoredValueAccountID": {
"$ref": "#/components/schemas/StoredValueAccountID"
},
"OriginalPOITransaction": {
"$ref": "#/components/schemas/OriginalPOITransaction"
},
"ProductCode": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "Product code of item purchased with the transaction."
},
"EanUpc": {
"type": "integer",
"description": "Standard product code of item purchased with the transaction."
},
"ItemAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0,
"description": "Total amount of the item line."
},
"Currency": {
"type": "string",
"pattern": "^[A-Z]{3,3}$",
"description": "Currency of a monetary amount."
}
},
"required": [
"StoredValueTransactionType"
]
},
"StoredValueAccountStatus": {
"type": "object",
"properties": {
"StoredValueAccountID": {
"$ref": "#/components/schemas/StoredValueAccountID"
},
"CurrentBalance": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
}
},
"required": [
"StoredValueAccountID"
]
},
"StoredValueResult": {
"type": "object",
"description": "For each stored value card loaded or reloaded, in the StoredValue response message. Result of loading/reloading a stored value card..",
"properties": {
"StoredValueTransactionType": {
"$ref": "#/components/schemas/StoredValueTransactionType"
},
"ProductCode": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "Copy."
},
"EanUpc": {
"type": "integer",
"description": "Copy."
},
"ItemAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0,
"description": "Total amount of the item line."
},
"Currency": {
"type": "string",
"pattern": "^[A-Z]{3,3}$",
"description": "Copy."
},
"StoredValueAccountStatus": {
"$ref": "#/components/schemas/StoredValueAccountStatus"
},
"HostTransactionID": {
"$ref": "#/components/schemas/TransactionIDType"
}
},
"required": [
"StoredValueTransactionType"
]
},
"PerformedTransaction": {
"type": "object",
"properties": {
"Response": {
"$ref": "#/components/schemas/Response"
},
"SaleData": {
"$ref": "#/components/schemas/SaleData"
},
"POIData": {
"$ref": "#/components/schemas/POIData"
},
"PaymentResult": {
"$ref": "#/components/schemas/PaymentResult"
},
"LoyaltyResult": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LoyaltyResult"
}
},
"ReversedAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
}
},
"required": [
"Response"
]
},
"PaymentTotals": {
"type": "object",
"description": "Totals of the payment transaction during the reconciliation period.",
"properties": {
"TransactionType": {
"$ref": "#/components/schemas/TransactionType"
},
"TransactionCount": {
"type": "integer",
"description": "Number of processed transaction during the period."
},
"TransactionAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0,
"description": "Sum of amount of processed transaction during the period."
}
},
"required": [
"TransactionType",
"TransactionCount",
"TransactionAmount"
]
},
"LoyaltyTotals": {
"type": "object",
"description": "Totals of the loyalty transaction during the reconciliation period.",
"properties": {
"TransactionType": {
"$ref": "#/components/schemas/TransactionType"
},
"TransactionCount": {
"type": "integer",
"description": "Number of processed transaction during the period."
},
"TransactionAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0,
"description": "Sum of amount of processed transaction during the period."
}
},
"required": [
"TransactionType",
"TransactionCount",
"TransactionAmount"
]
},
"TransactionTotals": {
"type": "object",
"description": "If Result is Success, contains all the totals, classified as required by the Sale in the message request. At least, transaction totals are provided per Acquirer, Acquirer Settlement, and Card Brand. Result of the Sale to POI Reconciliation processing.",
"properties": {
"PaymentInstrumentType": {
"$ref": "#/components/schemas/PaymentInstrumentType"
},
"AcquirerID": {
"type": "integer",
"description": "If available."
},
"HostReconciliationID": {
"type": "string",
"pattern": "^.+$",
"description": "If available."
},
"CardBrand": {
"type": "string",
"pattern": "^.+$",
"description": "If configured to present totals per card brand, and Response.Result is Success."
},
"POIID": {
"type": "string",
"pattern": "^.+$",
"description": "If requested in the message request."
},
"SaleID": {
"type": "string",
"pattern": "^.+$",
"description": "If requested in the message request."
},
"OperatorID": {
"type": "string",
"pattern": "^.+$",
"description": "If requested in the message request."
},
"ShiftNumber": {
"type": "string",
"pattern": "^.+$",
"description": "If requested in the message request."
},
"TotalsGroupID": {
"type": "string",
"pattern": "^.{1,16}$",
"description": "If requested in the message request."
},
"PaymentCurrency": {
"type": "string",
"pattern": "^[A-Z]{3,3}$",
"description": "Currency of a monetary amount."
},
"PaymentTotals": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PaymentTotals"
}
},
"LoyaltyUnit": {
"$ref": "#/components/schemas/LoyaltyUnit"
},
"LoyaltyCurrency": {
"type": "string",
"pattern": "^[A-Z]{3,3}$",
"description": "If LoyaltyUnit is Monetary."
},
"LoyaltyTotals": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LoyaltyTotals"
}
}
},
"required": [
"PaymentInstrumentType"
]
},
"TotalFilter": {
"type": "object",
"properties": {
"POIID": {
"type": "string",
"pattern": "^.+$"
},
"SaleID": {
"type": "string",
"pattern": "^.+$"
},
"OperatorID": {
"type": "string",
"pattern": "^.+$"
},
"ShiftNumber": {
"type": "string",
"pattern": "^.+$"
},
"TotalsGroupID": {
"type": "string",
"pattern": "^.{1,16}$"
}
}
},
"PaymentAccountReq": {
"type": "object",
"properties": {
"AccountType": {
"$ref": "#/components/schemas/AccountType"
},
"CardAcquisitionReference": {
"$ref": "#/components/schemas/TransactionIDType"
},
"PaymentInstrumentData": {
"$ref": "#/components/schemas/PaymentInstrumentData"
}
}
},
"LoyaltyAccountReq": {
"type": "object",
"properties": {
"CardAcquisitionReference": {
"$ref": "#/components/schemas/TransactionIDType"
},
"LoyaltyAccountID": {
"$ref": "#/components/schemas/LoyaltyAccountID"
}
}
},
"PaymentAccountStatus": {
"type": "object",
"properties": {
"PaymentInstrumentData": {
"$ref": "#/components/schemas/PaymentInstrumentData"
},
"CurrentBalance": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"Currency": {
"type": "string",
"pattern": "^[A-Z]{3,3}$"
},
"PaymentAcquirerData": {
"$ref": "#/components/schemas/PaymentAcquirerData"
}
}
},
"LoyaltyAccountStatus": {
"type": "object",
"properties": {
"LoyaltyAccount": {
"$ref": "#/components/schemas/LoyaltyAccount"
},
"CurrentBalance": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0
},
"LoyaltyUnit": {
"$ref": "#/components/schemas/LoyaltyUnit"
},
"Currency": {
"type": "string",
"pattern": "^[A-Z]{3,3}$"
}
},
"required": [
"LoyaltyAccount"
]
},
"MessageReference": {
"type": "object",
"description": "To abort a transaction in progress or to request the status of a transaction from which no response has been received. It identifies the message header of the message request to abort or request the status. Identification of a previous POI transaction.",
"properties": {
"MessageCategory": {
"$ref": "#/components/schemas/MessageCategory"
},
"ServiceID": {
"type": "string",
"pattern": "^.{1,10}$",
"description": "Identification of a message pair, which processes a transaction."
},
"DeviceID": {
"type": "string",
"pattern": "^.{1,10}$",
"description": "Identification of a device message pair."
},
"SaleID": {
"type": "string",
"pattern": "^.+$",
"description": "default MessageHeader.SaleID."
},
"POIID": {
"type": "string",
"pattern": "^.+$",
"description": "default MessageHeader.POIID."
}
}
},
"MessageHeader": {
"type": "object",
"description": "It conveys Information related to the Sale to POI protocol management. Message header of the Sale to POI protocol message.",
"properties": {
"ProtocolVersion": {
"type": "string",
"pattern": "^.+$",
"description": "If MessageCategory is Login or Diagnosis."
},
"MessageClass": {
"$ref": "#/components/schemas/MessageClass"
},
"MessageCategory": {
"$ref": "#/components/schemas/MessageCategory"
},
"MessageType": {
"$ref": "#/components/schemas/MessageType"
},
"ServiceID": {
"type": "string",
"pattern": "^.{1,10}$",
"description": "Required if Service or Event MessageClass message or if Device MessageClass and request from POI or response from Sale."
},
"DeviceID": {
"type": "string",
"pattern": "^.{1,10}$",
"description": "If Device MessageClass."
},
"SaleID": {
"type": "string",
"pattern": "^.+$",
"description": "Identification of a Sale System or a Sale Terminal for the Sale to POI protocol."
},
"POIID": {
"type": "string",
"pattern": "^.+$",
"description": "Identification of a POI System or a POI Terminal for the Sale to POI protocol."
}
},
"required": [
"MessageClass",
"MessageCategory",
"MessageType",
"SaleID",
"POIID"
]
},
"RepeatedResponseMessageBody": {
"type": "object",
"properties": {
"LoyaltyResponse": {
"$ref": "#/components/schemas/LoyaltyResponse"
},
"PaymentResponse": {
"$ref": "#/components/schemas/PaymentResponse"
},
"ReversalResponse": {
"$ref": "#/components/schemas/ReversalResponse"
},
"StoredValueResponse": {
"$ref": "#/components/schemas/StoredValueResponse"
},
"CardAcquisitionResponse": {
"$ref": "#/components/schemas/CardAcquisitionResponse"
},
"CardReaderAPDUResponse": {
"$ref": "#/components/schemas/CardReaderAPDUResponse"
}
}
},
"RepeatedMessageResponse": {
"type": "object",
"properties": {
"MessageHeader": {
"$ref": "#/components/schemas/MessageHeader"
},
"RepeatedResponseMessageBody": {
"$ref": "#/components/schemas/RepeatedResponseMessageBody"
}
},
"required": [
"MessageHeader",
"RepeatedResponseMessageBody"
]
},
"HostStatus": {
"type": "object",
"description": "Indicate the reachability of the host by the POI Terminal. State of a Host.",
"properties": {
"AcquirerID": {
"type": "integer",
"description": "Identification of the Acquirer."
},
"IsReachableFlag": {
"type": "boolean",
"default": true,
"description": "Indicate if a Host is reachable."
}
},
"required": [
"AcquirerID"
]
},
"OutputResult": {
"type": "object",
"description": "In the message response, it contains the result of the output, if required in the message request. Information related to the result the output (display, print, input).",
"properties": {
"Device": {
"$ref": "#/components/schemas/Device"
},
"InfoQualify": {
"$ref": "#/components/schemas/InfoQualify"
},
"Response": {
"$ref": "#/components/schemas/Response"
}
},
"required": [
"Device",
"InfoQualify",
"Response"
]
},
"InputData": {
"type": "object",
"properties": {
"Device": {
"$ref": "#/components/schemas/Device"
},
"InfoQualify": {
"$ref": "#/components/schemas/InfoQualify"
},
"InputCommand": {
"$ref": "#/components/schemas/InputCommand"
},
"NotifyCardInputFlag": {
"type": "boolean",
"default": false
},
"MaxInputTime": {
"type": "integer"
},
"ImmediateResponseFlag": {
"type": "boolean",
"default": false
},
"MinLength": {
"type": "integer"
},
"MaxLength": {
"type": "integer"
},
"MaxDecimalLength": {
"type": "integer"
},
"WaitUserValidationFlag": {
"type": "boolean",
"default": true
},
"DefaultInputString": {
"type": "string",
"pattern": "^.+$"
},
"DefaultLayoutString": {
"type": "string",
"pattern": "^.+$"
},
"StringMask": {
"type": "string",
"pattern": "^.+$"
},
"FromRightToLeftFlag": {
"type": "boolean",
"default": false
},
"MaskCharactersFlag": {
"type": "boolean",
"default": false
},
"BeepKeyFlag": {
"type": "boolean",
"default": false
},
"GlobalCorrectionFlag": {
"type": "boolean",
"default": false
},
"DisableCancelFlag": {
"type": "boolean",
"default": false
},
"DisableCorrectFlag": {
"type": "boolean",
"default": false
},
"DisableValidFlag": {
"type": "boolean",
"default": false
},
"MenuBackFlag": {
"type": "boolean",
"default": false
}
},
"required": [
"Device",
"InfoQualify",
"InputCommand"
]
},
"Input": {
"type": "object",
"properties": {
"InputCommand": {
"$ref": "#/components/schemas/InputCommand"
},
"ConfirmedFlag": {
"type": "boolean"
},
"FunctionKey": {
"type": "integer"
},
"TextInput": {
"type": "string"
},
"DigitInput": {
"type": "integer"
},
"Password": {
"type": "string"
},
"MenuEntryNumber": {
"type": "array",
"items": {
"type": "integer"
}
}
},
"required": [
"InputCommand"
]
},
"InputResult": {
"type": "object",
"properties": {
"Device": {
"$ref": "#/components/schemas/Device"
},
"InfoQualify": {
"$ref": "#/components/schemas/InfoQualify"
},
"Response": {
"$ref": "#/components/schemas/Response"
},
"Input": {
"$ref": "#/components/schemas/Input"
}
},
"required": [
"Device",
"InfoQualify",
"Response"
]
},
"PrintOutput": {
"type": "object",
"properties": {
"DocumentQualifier": {
"$ref": "#/components/schemas/DocumentQualifier"
},
"ResponseMode": {
"$ref": "#/components/schemas/ResponseMode"
},
"IntegratedPrintFlag": {
"type": "boolean",
"default": false
},
"RequiredSignatureFlag": {
"type": "boolean",
"default": false
},
"OutputContent": {
"$ref": "#/components/schemas/OutputContent"
}
},
"required": [
"DocumentQualifier",
"ResponseMode",
"OutputContent"
]
},
"SoundContent": {
"type": "object",
"properties": {
"SoundFormat": {
"$ref": "#/components/schemas/SoundFormat"
},
"Language": {
"type": "string",
"pattern": "^[a-z]{2,2}$"
},
"ReferenceID": {
"type": "string",
"pattern": "^.+$"
},
"Text": {
"type": "string",
"pattern": "^.+$"
}
},
"required": [
"SoundFormat"
]
},
"CardHolderPIN": {
"type": "object",
"properties": {
"EncrPINBlock": {
"type": "string"
},
"PINFormat": {
"$ref": "#/components/schemas/PINFormat"
},
"AdditionalInput": {
"type": "string",
"pattern": "^.+$"
}
},
"required": [
"EncrPINBlock",
"PINFormat"
]
},
"ICCResetData": {
"type": "object",
"properties": {
"ATRValue": {
"type": "string",
"format": "byte",
"pattern": "^.{1,100}$"
},
"CardStatusWords": {
"type": "string",
"format": "byte",
"pattern": "^.{2,2}$"
}
}
},
"SecurityTrailer": {
"type": "object",
"description": "It contains information related to the security of the message. SecurityTrailer as used by Adyen.",
"properties": {
"AdyenCryptoVersion": {
"type": "integer"
},
"KeyIdentifier": {
"type": "string",
"pattern": "^.+$"
},
"KeyVersion": {
"type": "integer"
},
"Nonce": {
"type": "string",
"format": "byte",
"pattern": "^.+$"
},
"Hmac": {
"type": "string",
"format": "byte",
"pattern": "^.+$"
}
},
"required": [
"AdyenCryptoVersion",
"KeyIdentifier",
"KeyVersion",
"Nonce",
"Hmac"
]
},
"LoginRequest": {
"type": "object",
"description": "It conveys Information related to the session (period between a Login and the following Logout) to process. Content of the Login Request message.",
"properties": {
"DateTime": {
"type": "string",
"format": "date-time",
"description": "Date and Time."
},
"SaleSoftware": {
"$ref": "#/components/schemas/SaleSoftware"
},
"SaleTerminalData": {
"$ref": "#/components/schemas/SaleTerminalData"
},
"TrainingModeFlag": {
"type": "boolean",
"default": false,
"description": "The POI does not realise the transaction with the Acquirer."
},
"OperatorLanguage": {
"type": "string",
"pattern": "^[a-z]{2,2}$",
"description": "Default value for Device type displays."
},
"OperatorID": {
"type": "string",
"pattern": "^.+$",
"description": "4 conditions to send it: a) the Sale System wants the POI log it in the transaction log b) because of reconciliation."
},
"ShiftNumber": {
"type": "string",
"pattern": "^.+$",
"description": "Same as OperatorID."
},
"TokenRequestedType": {
"$ref": "#/components/schemas/TokenRequestedType"
},
"CustomerOrderReq": {
"$ref": "#/components/schemas/CustomerOrderReq"
},
"POISerialNumber": {
"type": "string",
"pattern": "^.+$",
"description": "If the login involve a POI Terminal and not the first Login to the POI System."
}
},
"required": [
"DateTime",
"SaleSoftware",
"OperatorLanguage"
]
},
"LogoutRequest": {
"type": "object",
"description": "Empty. Content of the Logout Request message.",
"properties": {
"MaintenanceAllowed": {
"type": "boolean",
"default": false
}
}
},
"EnableServiceRequest": {
"type": "object",
"description": "It conveys the services that will be enabled for the POI Terminal without the request of the Sale System, and a possible invitation for the Customer to start the services. Content of the Enable Service Request message.",
"properties": {
"TransactionAction": {
"$ref": "#/components/schemas/TransactionAction"
},
"ServicesEnabled": {
"$ref": "#/components/schemas/ServicesEnabled"
},
"DisplayOutput": {
"$ref": "#/components/schemas/DisplayOutput"
}
},
"required": [
"TransactionAction"
]
},
"AdminRequest": {
"type": "object",
"description": "Empty. Content of the Custom Admin Request message.",
"properties": {
"ServiceIdentification": {
"type": "string",
"pattern": "^.+$",
"description": "Identification of the administrative service to process."
}
}
},
"PaymentRequest": {
"type": "object",
"description": "Request sent to terminal to initiate payment. It conveys Information related to the Payment transaction to process. Content of the Payment Request message.",
"properties": {
"SaleData": {
"$ref": "#/components/schemas/SaleData"
},
"PaymentTransaction": {
"$ref": "#/components/schemas/PaymentTransaction"
},
"PaymentData": {
"$ref": "#/components/schemas/PaymentData"
},
"LoyaltyData": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LoyaltyData"
}
}
},
"required": [
"SaleData",
"PaymentTransaction"
]
},
"CardAcquisitionRequest": {
"type": "object",
"description": "It conveys Information related to the payment and loyalty cards to read and analyse. This message pair is usually followed by a message pair (e.g. payment or loyalty) which refers to this Card Acquisition message pair. Content of the Card Acquisition Request message.",
"properties": {
"SaleData": {
"$ref": "#/components/schemas/SaleData"
},
"CardAcquisitionTransaction": {
"$ref": "#/components/schemas/CardAcquisitionTransaction"
}
},
"required": [
"SaleData",
"CardAcquisitionTransaction"
]
},
"LoyaltyRequest": {
"type": "object",
"description": "It conveys Information related to the Loyalty transaction to process. Content of the Loyalty Request message.",
"properties": {
"SaleData": {
"$ref": "#/components/schemas/SaleData"
},
"LoyaltyTransaction": {
"$ref": "#/components/schemas/LoyaltyTransaction"
},
"LoyaltyData": {
"$ref": "#/components/schemas/LoyaltyData"
}
},
"required": [
"SaleData",
"LoyaltyTransaction",
"LoyaltyData"
]
},
"StoredValueRequest": {
"type": "object",
"description": "It conveys Information related to the Stored Value transaction to process. Content of the Stored Value Request message.",
"properties": {
"SaleData": {
"$ref": "#/components/schemas/SaleData"
},
"CustomerLanguage": {
"type": "string",
"pattern": "^[a-z]{2,2}$",
"description": "If the language is selected by the Sale System before the request to the POI."
},
"StoredValueData": {
"type": "array",
"items": {
"$ref": "#/components/schemas/StoredValueData"
}
}
},
"required": [
"SaleData",
"StoredValueData"
]
},
"ReversalRequest": {
"type": "object",
"description": "It conveys Information related to the reversal of a previous payment or a loyalty transaction. Content of the Reversal Request message.",
"properties": {
"SaleData": {
"$ref": "#/components/schemas/SaleData"
},
"OriginalPOITransaction": {
"$ref": "#/components/schemas/OriginalPOITransaction"
},
"ReversedAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0,
"description": "ReversedAmount is implicitely the AuthorizedAmount if absent."
},
"ReversalReason": {
"$ref": "#/components/schemas/ReversalReason"
},
"CustomerOrder": {
"$ref": "#/components/schemas/CustomerOrder"
}
},
"required": [
"OriginalPOITransaction",
"ReversalReason"
]
},
"ReconciliationRequest": {
"type": "object",
"description": "It conveys Information related to the Reconciliation requested by the Sale System. Content of the Reconciliation Request message.",
"properties": {
"ReconciliationType": {
"$ref": "#/components/schemas/ReconciliationType"
},
"AcquirerID": {
"type": "array",
"items": {
"type": "integer",
"description": "Could be present only if ReconciliationType is AcquirerReconciliation or AcquirerSynchronisation."
}
},
"POIReconciliationID": {
"type": "integer",
"description": "Absent if ReconciliationType is not PreviousReconciliation."
}
},
"required": [
"ReconciliationType"
]
},
"GetTotalsRequest": {
"type": "object",
"description": "It conveys information from the Sale System related to the scope and the format of the totals to be computed by the POI System. Content of the Get Totals Request message.",
"properties": {
"TotalDetails": {
"$ref": "#/components/schemas/TotalDetails"
},
"TotalFilter": {
"$ref": "#/components/schemas/TotalFilter"
}
}
},
"BalanceInquiryRequest": {
"type": "object",
"description": "It conveys Information related to the account for which a Balance Inquiry is requested. Content of the Balance Inquiry Request message.",
"properties": {
"PaymentAccountReq": {
"$ref": "#/components/schemas/PaymentAccountReq"
},
"LoyaltyAccountReq": {
"$ref": "#/components/schemas/LoyaltyAccountReq"
}
}
},
"TransactionStatusRequest": {
"type": "object",
"description": "It conveys Information requested for status of the last or current Payment, Loyalty or Reversal transaction. Content of the TransactionStatus Request message.",
"properties": {
"MessageReference": {
"$ref": "#/components/schemas/MessageReference"
},
"ReceiptReprintFlag": {
"type": "boolean",
"default": false,
"description": "Request to reprint the POI receipt(s)."
},
"DocumentQualifier": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DocumentQualifier"
}
}
}
},
"AbortRequest": {
"type": "object",
"description": "It conveys Information requested for identification of the message request carrying the transaction to abort. A message to display on the CustomerError Device could be sent by the Sale System (DisplayOutput). Body of the Abort Request message.",
"properties": {
"MessageReference": {
"$ref": "#/components/schemas/MessageReference"
},
"AbortReason": {
"type": "string",
"pattern": "^.+$",
"description": "Reason of aborting a transaction."
},
"DisplayOutput": {
"$ref": "#/components/schemas/DisplayOutput"
}
},
"required": [
"MessageReference",
"AbortReason"
]
},
"EventNotification": {
"type": "object",
"description": "It conveys Information related to the event, and possible action (maintenance, message to display). Content of the EventNotification message.",
"properties": {
"TimeStamp": {
"type": "string",
"format": "date-time",
"description": "Date and time of a transaction for the Sale System, the POI System or the Acquirer."
},
"EventToNotify": {
"$ref": "#/components/schemas/EventToNotify"
},
"EventDetails": {
"type": "string",
"pattern": "^.+$",
"description": "If present, the Sale logs it for further examination."
},
"RejectedMessage": {
"type": "string",
"format": "byte",
"pattern": "^.+$",
"description": "Mandatory if EventToNotify is Reject, absent in other cases."
},
"MaintenanceRequiredFlag": {
"type": "boolean",
"default": false,
"description": "Indicates if the occurred event requires maintenance call or action."
},
"CustomerLanguage": {
"type": "string",
"pattern": "^[a-z]{2,2}$",
"description": "If the language is selected by the Sale System before the request to the POI."
},
"DisplayOutput": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DisplayOutput"
}
}
},
"required": [
"TimeStamp",
"EventToNotify"
]
},
"DiagnosisRequest": {
"type": "object",
"description": "It conveys Information related to the target POI for which the diagnosis is requested. Content of the Diagnosis Request message.",
"properties": {
"POIID": {
"type": "string",
"pattern": "^.+$",
"description": "MessageHeader.POIID."
},
"HostDiagnosisFlag": {
"type": "boolean",
"default": false,
"description": "Indicates if Host Diagnosis are required."
},
"AcquirerID": {
"type": "array",
"items": {
"type": "integer",
"description": "Present if requesting the diagnosis of these hosts only."
}
}
}
},
"DisplayRequest": {
"type": "object",
"description": "It conveys the data to display and the way to process the display. It contains the complete content to display. It might contain an operation (the DisplayOutput element) per Display Device type. Content of the Display Request message.",
"properties": {
"DisplayOutput": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DisplayOutput"
}
}
},
"required": [
"DisplayOutput"
]
},
"InputRequest": {
"type": "object",
"description": "It conveys data to display and the way to process the display, and contains the complete content to display. In addition to the display on the Input Device, it might contain an operation (the DisplayOutput element) per Display Device type. Content of the Input Request message.",
"properties": {
"DisplayOutput": {
"$ref": "#/components/schemas/DisplayOutput"
},
"InputData": {
"$ref": "#/components/schemas/InputData"
}
},
"required": [
"InputData"
]
},
"InputUpdate": {
"type": "object",
"description": "Definition: Content of the Input Update message. : It conveys \t\t\t\tupdate of the display of an Input request in progress.",
"properties": {
"MessageReference": {
"$ref": "#/components/schemas/MessageReference"
},
"OutputContent": {
"$ref": "#/components/schemas/OutputContent"
},
"MenuEntry": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MenuEntry"
}
},
"OutputSignature": {
"type": "string",
"format": "byte",
"pattern": "^.+$"
},
"MinLength": {
"type": "integer"
},
"MaxLength": {
"type": "integer"
},
"MaxDecimalLength": {
"type": "integer"
}
},
"required": [
"MessageReference",
"OutputContent"
]
},
"PrintRequest": {
"type": "object",
"description": "It conveys the data to print and the way to process the print. It contains the complete content to print. Content of the Print Request message.",
"properties": {
"PrintOutput": {
"$ref": "#/components/schemas/PrintOutput"
}
},
"required": [
"PrintOutput"
]
},
"CardReaderAPDURequest": {
"type": "object",
"description": "It contains the APDU request to send to the chip of the card, and a possible invitation message to display on the CashierInterface or the CustomerInterface. Content of the Card Reader APDU Request message.",
"properties": {
"APDUClass": {
"type": "string",
"format": "byte",
"pattern": "^.{1,1}$",
"description": "Class field of the APDU command (CLA)."
},
"APDUInstruction": {
"type": "string",
"format": "byte",
"pattern": "^.{1,1}$",
"description": "Instruction field of the APDU command (INS)."
},
"APDUPar1": {
"type": "string",
"format": "byte",
"pattern": "^.{1,1}$",
"description": "Parameter 1 field of the APDU command (P1)."
},
"APDUPar2": {
"type": "string",
"format": "byte",
"pattern": "^.{1,1}$",
"description": "Parameter 2 field of the APDU command(P2)."
},
"APDUData": {
"type": "string",
"format": "byte",
"pattern": "^.+$",
"description": "Data field of the APDU command (Lc + Data)."
},
"APDUExpectedLength": {
"type": "string",
"format": "byte",
"pattern": "^.{1,1}$",
"description": "Expected length of the data field of the APDU response to the command (Le)."
}
},
"required": [
"APDUClass",
"APDUInstruction",
"APDUPar1",
"APDUPar2"
]
},
"LoginResponse": {
"type": "object",
"description": "It conveys Information related to the Login to process. Content of the Login Response message.",
"properties": {
"Response": {
"$ref": "#/components/schemas/Response"
},
"POISystemData": {
"$ref": "#/components/schemas/POISystemData"
},
"TokenRequestStatus": {
"type": "boolean"
},
"CustomerOrderStatus": {
"type": "boolean"
}
},
"required": [
"Response"
]
},
"LogoutResponse": {
"type": "object",
"description": "It conveys the result of the Logout. Content of the Logout Response message.",
"properties": {
"Response": {
"$ref": "#/components/schemas/Response"
}
},
"required": [
"Response"
]
},
"EnableServiceResponse": {
"type": "object",
"description": "It conveys the result of the Enable Service processing. Content of the Enable Service Response message.",
"properties": {
"Response": {
"$ref": "#/components/schemas/Response"
}
},
"required": [
"Response"
]
},
"AdminResponse": {
"type": "object",
"description": "It conveys the result of the Custom Admin. Content of the Custom Admin Response message.",
"properties": {
"Response": {
"$ref": "#/components/schemas/Response"
}
},
"required": [
"Response"
]
},
"PaymentResponse": {
"type": "object",
"description": "It conveys Information related to the Payment transaction processed by the POI System. Content of the Payment Response message.",
"properties": {
"Response": {
"$ref": "#/components/schemas/Response"
},
"SaleData": {
"$ref": "#/components/schemas/SaleData"
},
"POIData": {
"$ref": "#/components/schemas/POIData"
},
"PaymentResult": {
"$ref": "#/components/schemas/PaymentResult"
},
"LoyaltyResult": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LoyaltyResult"
}
},
"PaymentReceipt": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PaymentReceipt"
}
},
"CustomerOrder": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CustomerOrder"
}
}
},
"required": [
"Response",
"SaleData",
"POIData"
]
},
"CardAcquisitionResponse": {
"type": "object",
"description": "It conveys Information related to the payment and loyalty cards read and processed by the POI System and entered by the Customer. Content of the Card Acquisition Response message.",
"properties": {
"Response": {
"$ref": "#/components/schemas/Response"
},
"SaleData": {
"$ref": "#/components/schemas/SaleData"
},
"POIData": {
"$ref": "#/components/schemas/POIData"
},
"CustomerLanguage": {
"type": "string",
"pattern": "^[a-z]{2,2}$",
"description": "Data related to the POI System."
},
"PaymentBrand": {
"type": "array",
"items": {
"type": "string",
"pattern": "^.+$",
"description": "Brands available for payment by the card and not chosen by the Customer."
}
},
"PaymentInstrumentData": {
"$ref": "#/components/schemas/PaymentInstrumentData"
},
"LoyaltyAccount": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LoyaltyAccount"
}
}
},
"required": [
"Response",
"SaleData",
"POIData"
]
},
"LoyaltyResponse": {
"type": "object",
"description": "It conveys Information related to the Loyalty transaction processed by the POI System. Content of the Loyalty Response message.",
"properties": {
"Response": {
"$ref": "#/components/schemas/Response"
},
"SaleData": {
"$ref": "#/components/schemas/SaleData"
},
"POIData": {
"$ref": "#/components/schemas/POIData"
},
"LoyaltyResult": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LoyaltyResult"
}
},
"PaymentReceipt": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PaymentReceipt"
}
}
},
"required": [
"Response",
"SaleData",
"POIData"
]
},
"StoredValueResponse": {
"type": "object",
"description": "It conveys Information related to the Stored Value transaction processed by the POI System. Content of the Stored Value Response message.",
"properties": {
"Response": {
"$ref": "#/components/schemas/Response"
},
"SaleData": {
"$ref": "#/components/schemas/SaleData"
},
"POIData": {
"$ref": "#/components/schemas/POIData"
},
"StoredValueResult": {
"type": "array",
"items": {
"$ref": "#/components/schemas/StoredValueResult"
}
},
"PaymentReceipt": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PaymentReceipt"
}
}
},
"required": [
"Response",
"SaleData",
"POIData"
]
},
"ReversalResponse": {
"type": "object",
"description": "It conveys Information related to the reversal processed by the POI System. Content of the Reversal Response message.",
"properties": {
"Response": {
"$ref": "#/components/schemas/Response"
},
"POIData": {
"$ref": "#/components/schemas/POIData"
},
"OriginalPOITransaction": {
"$ref": "#/components/schemas/OriginalPOITransaction"
},
"ReversedAmount": {
"type": "number",
"maximum": 99999999.999999,
"minimum": 0.0,
"description": "Copy."
},
"CustomerOrder": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CustomerOrder"
}
},
"PaymentReceipt": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PaymentReceipt"
}
}
},
"required": [
"Response"
]
},
"ReconciliationResponse": {
"type": "object",
"description": "It conveys Information related to the Reconciliation transaction processed by the POI System. Content of the Reconciliation Response message.",
"properties": {
"Response": {
"$ref": "#/components/schemas/Response"
},
"ReconciliationType": {
"$ref": "#/components/schemas/ReconciliationType"
},
"POIReconciliationID": {
"type": "integer",
"description": "Absent if ReconciliationType is AcquirerReconciliation."
},
"TransactionTotals": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TransactionTotals"
}
}
},
"required": [
"Response",
"ReconciliationType"
]
},
"GetTotalsResponse": {
"type": "object",
"description": "It conveys Information related to the Reconciliation transaction processed by the POI System. Content of the Reconciliation Response message.",
"properties": {
"Response": {
"$ref": "#/components/schemas/Response"
},
"POIReconciliationID": {
"type": "integer",
"description": "Identification of the reconciliation period between Sale and POI."
},
"TransactionTotals": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TransactionTotals"
}
}
},
"required": [
"Response",
"POIReconciliationID"
]
},
"BalanceInquiryResponse": {
"type": "object",
"description": "It conveys the balance and the identification of the associated payment, loyalty or stored value account. Content of the Balance Inquiry Response message.",
"properties": {
"Response": {
"$ref": "#/components/schemas/Response"
},
"PaymentAccountStatus": {
"$ref": "#/components/schemas/PaymentAccountStatus"
},
"LoyaltyAccountStatus": {
"$ref": "#/components/schemas/LoyaltyAccountStatus"
},
"PaymentReceipt": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PaymentReceipt"
}
}
},
"required": [
"Response"
]
},
"CardReaderAPDUResponse": {
"type": "object",
"description": "It contains the result of the requested service, APDU response sent by the chip of the card in response to the APDU request. Content of the Card Reader APDU Response message.",
"properties": {
"Response": {
"$ref": "#/components/schemas/Response"
},
"APDUData": {
"type": "string",
"format": "byte",
"pattern": "^.+$",
"description": "Data field of the APDU command (Lc + Data)."
},
"CardStatusWords": {
"type": "string",
"format": "byte",
"pattern": "^.{2,2}$",
"description": "Status of a smartcard response to a command (SW1-SW2)."
}
},
"required": [
"Response",
"CardStatusWords"
]
},
"TransactionStatusResponse": {
"type": "object",
"description": "It conveys Information related to the status of the last or current Payment, Loyalty or Reversal transaction. Content of the TransactionStatus Response message.",
"properties": {
"Response": {
"$ref": "#/components/schemas/Response"
},
"MessageReference": {
"$ref": "#/components/schemas/MessageReference"
},
"RepeatedMessageResponse": {
"$ref": "#/components/schemas/RepeatedMessageResponse"
}
},
"required": [
"Response"
]
},
"DiagnosisResponse": {
"type": "object",
"description": "It conveys the result of the requested diagnosis and a possible message to display on a logical device. Content of the Diagnosis Response message.",
"properties": {
"Response": {
"$ref": "#/components/schemas/Response"
},
"LoggedSaleID": {
"type": "array",
"items": {
"type": "string",
"pattern": "^.+$",
"description": "If Sale Terminal logged to this POI Terminal."
}
},
"POIStatus": {
"$ref": "#/components/schemas/POIStatus"
},
"HostStatus": {
"type": "array",
"items": {
"$ref": "#/components/schemas/HostStatus"
}
}
},
"required": [
"Response"
]
},
"DisplayResponse": {
"type": "object",
"description": "It conveys the result of the display, parallel to the message request, except if response not required and absent. Content of the Display Response message.",
"properties": {
"OutputResult": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OutputResult"
}
}
},
"required": [
"OutputResult"
]
},
"InputResponse": {
"type": "object",
"description": "It conveys the result of the input or the result of the outputs, parallel to the message request, except if response not required and absent. Content of the Input Response message.",
"properties": {
"OutputResult": {
"$ref": "#/components/schemas/OutputResult"
},
"InputResult": {
"$ref": "#/components/schemas/InputResult"
}
},
"required": [
"InputResult"
]
},
"PrintResponse": {
"type": "object",
"description": "It conveys the result of the print, parallel to the message request, except if response not required and absent. Content of the Print Response message.",
"properties": {
"DocumentQualifier": {
"$ref": "#/components/schemas/DocumentQualifier"
},
"Response": {
"$ref": "#/components/schemas/Response"
}
},
"required": [
"DocumentQualifier",
"Response"
]
}
},
"securitySchemes": {
"ApiKeyAuth": {
"in": "header",
"name": "X-API-Key",
"type": "apiKey"
},
"BasicAuth": {
"scheme": "basic",
"type": "http"
}
}
}
}