Integration
Payment Operations
This section describes basic payment operations the POS Cloud provides:
- Payment
- Refund
- Abort
- Transaction Status
- Reversal/Void
Prerequisites
Before making a payment operation/transaction with the POS Cloud API, ensure you have a Verifone Central Account set up and a proper API Key.
OpenAPI specification file is available for download on POS Cloud API reference page.
Health Check
Before proceeding with performing any payment operation we suggest running a health check to ensure everything is set up and works properly.
To initiate the Health Check make a request to the API endpoint, specifying:
- GET method
- URL – https://cst2.test-gsc.vfims.com/oidc/customer-service/healthcheck
- Authorization – No Auth
- Headers:
- Content-Type – application/json
- x-terminal-simulator – true
- Authorization – "user-uid:api" key pair encoded in base64. See the Obtaining API Keys guide for more information.
- Body – Leave empty.
The example result below indicates that the Health Check was successful.
{
"status": "OK"
}
Payment
To initiate a Payment transaction make a request to the API endpoint, specifying:
- POST method
- URL – https://cst2.test-gsc.vfims.com/oidc/poscloud/nexo/payment
- Authorization – No Auth
- Headers:
- Content-Type – application/json
- x-terminal-simulator – true
- Authorization – "user-uid:api" key pair encoded in base64. See the Obtaining API Keys guide for more information.
- Body > Raw – See the request example below.
{
"MessageHeader": {
"MessageClass": "SERVICE",
"MessageCategory": "PAYMENT",
"MessageType": "REQUEST",
"ServiceID": "1234",
"SaleID": "1992",
"POIID": "Zane CM5"
},
"PaymentRequest": {
"SaleData": {
"OperatorID": "440010051",
"SaleTransactionID": {
"TransactionID": "112233",
"TimeStamp": "2020-04-20T14:43:59+05:30"
},
"CustomerOrderReq": [
"string"
],
"SaleToAcquirerData": "tender=MOTO"
},
"PaymentTransaction": {
"AmountsReq": {
"Currency": "GBP",
"RequestedAmount": "3000",
"TipAmount": "4"
}
},
"PaymentData": {
"PaymentType": "NORMAL",
"SplitPaymentFlag": true
}
}
}
Required parameters:
MessageHeader
– Message header of the Sale to POI protocol message, It conveys Information related to the Sale to POI protocol management.
MessageClass
– string
Enum
:"SERVICE"
,"DEVICE"
,"EVENT"
Inform the receiver of the class of message to allow: - Switching of the messages before their processing - Direction of the message (Sale to POI or POI to Sale) - Flow inside the message belongs toMessageCategory
– string (MessageCategory)
Enum
:"ABORT"
"ADMIN
"BALANCEINQUIRY"
"BATCH"
"CARDACQUISITION"
"CARDREADERAPDU"
"CARDREADERINIT"
"CARDREADERPOWEROFF"
"DIAGNOSIS"
"DISPLAY"
"ENABLESERVICE"
"EVENT"
"GETTOTALS"
"INPUT"
"INPUTUPDATE"
"LOGIN"
"LOGOUT"
"LOYALTY"
"PAYMENT"
"PIN"
"PRINT"
"RECONCILIATION"
"REVERSAL"
"SOUND"
"STOREDVALUE"
"TRANSACTIONSTATUS"
"TRANSMIT"
Allow the recognition by the receiver of the message of its type. In a Reversal, identify the type of transaction to reverse (PaymentRequest or LoyaltyRequest) In a TransactionStatus, identify the last transaction message.MessageType
– string
Enum
:"REQUEST"
,"RESPONSE"
,"NOTIFICATION"
Type of message of the Sale to POI protocolServiceID
- string (ServiceID) Identification of a message pair, which processes a transactionSaleID
– string (SaleID) Identification of a Sale System or a Sale Terminal for the Sale to POI protocolPOIID
– string (POIID) Identification of a POI System or a POI Terminal for the Sale to POI protocol
Payment request
– Content of the Payment Request message.
SaleData
– object (SaleData) Data associated to the Sale System, with a particular value during the processing of the payment by the POI, including the cards acquisition.PaymentTransaction
AmountsReq
– object (AmountsReq) Amounts requested by the Sale System for the payment and loyalty transaction, containing: The currency which is the same for all these amounts The requested amount to pay The cash back part of the requested amount for a payment with cash back The already amount paid for the Sale transaction. This is a split payment, where the Sale Items (the basket) if present is not split. The tip part of the requested amount for a payment with tip
Currency
– string (Currency Code)
Enum
: Three-letter ISO 4217 alphabetical currency code. e.g."USD"
. Values correspond to ISO 4217. See the Obtaining API Keys guide for more information.
Check the POS Cloud API reference for more details on required parameters.
The example result below indicates that the payment was successful.
{
"MessageHeader": {
"MessageClass": "SERVICE",
"MessageCategory": "PAYMENT",
"MessageType": "RESPONSE",
"ServiceID": "1234",
"SaleID": "1992",
"POIID": "Zane CM5"
},
"PaymentResponse": {
"Response": {
"Result": "SUCCESS",
"ErrorCondition": null,
"AdditionalResponse": "Transaction Success"
},
"SaleData": {
"OperatorID": null,
"SaleTransactionID": {
"TransactionID": "112233",
"TimeStamp": "2020-04-20T09:13:59Z"
},
"SaleReferenceID": null,
"SaleTerminalData": null,
"CustomerOrderReq": null,
"SaleToPOIData": null,
"SaleToAcquirerData": null
},
"POIData": {
"POITransactionID": {
"TransactionID": "112233",
"TimeStamp": "2021-07-14T10:46:48.346623Z"
},
"POIReconciliationID": null
},
"PaymentResult": {
"PaymentType": "NORMAL",
"PaymentInstrumentData": {
"PaymentInstrumentType": "CARD",
"ProtectedCardData": null,
"CardData": {
"PaymentBrand": "Visa",
"MaskedPAN": "****",
"PaymentAccountRef": null,
"EntryMode": "CONTACTLESS",
"CardCountryCode": null,
"ProtectedCardData": null,
"SensitiveCardData": {
"PAN": null,
"CardSeqNumb": null,
"ExpiryDate": null,
"TrackData": null
},
"AllowedProductCode": null
}
},
"AmountsResp": {
"Currency": null,
"AuthorizedAmount": "3000",
"TotalRebatesAmount": null,
"TotalFeesAmount": null,
"CashBackAmount": null,
"TipAmount": "4"
},
"MerchantOverrideFlag": null,
"CapturedSignature": null,
"ProtectedSignature": null,
"OnlineFlag": true,
"AuthenticationMethod": null,
"ValidityDate": null,
"PaymentAcquirerData": {
"AcquirerID": null,
"MerchantID": "04380001",
"AcquirerPOIID": "20020722",
"AcquirerTransactionID": {
"TransactionID": "789DE",
"TimeStamp": "2021-07-14T10:46:48.346623Z"
},
"ApprovalCode": null,
"HostReconciliationID": null
}
},
"PaymentReceipt": {
"DocumentQualifier": "SALERECEIPT",
"IntegratedPrintFlag": null,
"RequiredSignatureFlag": null,
"OutputContent": {
"OutputFormat": "TEXT",
"OutputText": [{
"Text": " POSLink Testing\r#\r# PAT & PAB\r# Bangalore\r#\r# 560001\r#\r# MERCHANT COPY\r#\r#MasterCard\r#518615******8265\r#\r#Sale\r#Swiped\r#\r#\r#\r#\r#\r#\r#\r#\r#\r#\r#\r# Please debit my account\r#\r#\r#Amount £3000\r#TOTAL £3000\r#\r#\r#Please sign below\r#\r#\r#...................................\r#\r# Please keep receipt\r# for your records\r#\r#PTID: 77777021\r#MID: 20020722\r#TID: 04380001\r#Date: 03/02/2021\r#Time: 15:19:45\r#EFTSN: OL0129\r#\r#────────────────────────────────────────\r#\r#Auth code: 1234\r#\r#────────────────────────────────────────\r#\r# Thank You JSKB\r#\r# POSLink Testing\r#\r# PAT & PAB\r# Bangalore\r#\r# 560001\r#@ POSLink Testing\r#\r# PAT & PAB\r# Bangalore\r#\r# 560001\r#\r# CARDHOLDER COPY\r#\r#MasterCard\r#518615******8265\r#\r#Sale\r#Swiped\r#\r#\r#\r#\r#\r#\r#\r#\r#\r#\r#\r# Please debit my account\r#\r#\r#Amount £3000\r#TOTAL £3000\r#\r# SIGNATURE VERIFIED\r# APPROVED\r#\r#\r# Please keep receipt\r# for your records\r#\r#PTID: 77777021\r#MID: **20722\r#TID: ****0001\r#Date: 03/02/2021\r#Time: 15:19:45\r#────────────────────────────────────────\r#\r#Auth code: 1234\r#\r#────────────────────────────────────────\r#\r# Thank You JSKB\r#\r# POSLink Testing\r#\r# PAT & PAB\r# Bangalore\r#\r# 560001",
"CharacterSet": null,
"Font": null,
"StartColumn": null,
"Color": null,
"CharacterWidth": null,
"CharacterHeight": null,
"CharacterStyle": null,
"Alignment": null,
"EndOfLineFlag": null
}],
"OutputXHTML": null
}
}
}
}
Refund
To initiate a Refund transaction make a request to the API endpoint, specifying:
- POST method
- URL – https://cst2.test-gsc.vfims.com/oidc/poscloud/nexo/payment
- Authorization – No Auth
- Headers:
- Content-Type – application/jason
- x-terminal-simulator – true
- Authorization – "user-uid:api" key pair encoded in base64. See the Obtaining API Keys guide for more information.
- Body > Raw – See the request example below.
{
"MessageHeader": {
"MessageClass": "SERVICE",
"MessageCategory": "PAYMENT",
"MessageType": "REQUEST",
"ServiceID": "1234",
"SaleID": "1992",
"POIID": "Zane CM5"
},
"PaymentRequest": {
"SaleData": {
"OperatorID": "440010051",
"SaleTransactionID": {
"TransactionID": "112233",
"TimeStamp": "2020-04-20T14:43:59+05:30"
},
"CustomerOrderReq": [
"string"
],
"SaleToAcquirerData": "tender=MOTO"
},
"PaymentTransaction": {
"AmountsReq": {
"Currency": "GBP",
"RequestedAmount": "40.00",
"TipAmount": "4"
}
},
"PaymentData": {
"PaymentType": "REFUND",
"SplitPaymentFlag": false
}
}
}
Required parameters:
MessageHeader
– Message header of the Sale to POI protocol message, It conveys Information related to the Sale to POI protocol management.
MessageClass
– string
Enum
:"SERVICE"
,"DEVICE"
,"EVENT"
Inform the receiver of the class of message to allow: - Switching of the messages before their processing - Direction of the message (Sale to POI or POI to Sale) - Flow inside the message belongs toMessageCategory
– string (MessageCategory)
Enum
:"ABORT"
"ADMIN
"BALANCEINQUIRY"
"BATCH"
"CARDACQUISITION"
"CARDREADERAPDU"
"CARDREADERINIT"
"CARDREADERPOWEROFF"
"DIAGNOSIS"
"DISPLAY"
"ENABLESERVICE"
"EVENT"
"GETTOTALS"
"INPUT"
"INPUTUPDATE"
"LOGIN"
"LOGOUT"
"LOYALTY"
"PAYMENT"
"PIN"
"PRINT"
"RECONCILIATION"
"REVERSAL"
"SOUND"
"STOREDVALUE"
"TRANSACTIONSTATUS"
"TRANSMIT"
Allow the recognition by the receiver of the message of its type. In a Reversal, identify the type of transaction to reverse (PaymentRequest or LoyaltyRequest) In a TransactionStatus, identify the last transaction message.MessageType
– string
Enum
:"REQUEST"
,"RESPONSE"
,"NOTIFICATION"
Type of message of the Sale to POI protocolServiceID
- string (ServiceID) Identification of a message pair, which processes a transactionSaleID
– string (SaleID) Identification of a Sale System or a Sale Terminal for the Sale to POI protocolPOIID
– string (POIID) Identification of a POI System or a POI Terminal for the Sale to POI protocol
Payment request
– Content of the Payment Request message.
SaleData
– object (SaleData) Data associated to the Sale System, with a particular value during the processing of the payment by the POI, including the cards acquisition.PaymentTransaction
AmountsReq
– object (AmountsReq) Amounts requested by the Sale System for the payment and loyalty transaction, containing: The currency which is the same for all these amounts The requested amount to pay The cash back part of the requested amount for a payment with cash back The already amount paid for the Sale transaction. This is a split payment, where the Sale Items (the basket) if present is not split. The tip part of the requested amount for a payment with tip
Currency
– string (Currency Code)
Enum
: Three-letter ISO 4217 alphabetical currency code. e.g."USD"
. Values correspond to ISO 4217. See the Obtaining API Keys guide for more information.
Check the POS Cloud API reference for more details on required parameters.
The example response below indicates that the refund was successful:
{
"MessageHeader": {
"MessageClass": "SERVICE",
"MessageCategory": "PAYMENT",
"MessageType": "RESPONSE",
"ServiceID": "1234",
"SaleID": "1992",
"POIID": "Zane CM5"
},
"PaymentResponse": {
"Response": {
"Result": "SUCCESS",
"ErrorCondition": null,
"AdditionalResponse": "Transaction Success"
},
"SaleData": {
"OperatorID": null,
"SaleTransactionID": {
"TransactionID": "112233",
"TimeStamp": "2020-04-20T09:13:59Z"
},
"SaleReferenceID": null,
"SaleTerminalData": null,
"CustomerOrderReq": null,
"SaleToPOIData": null,
"SaleToAcquirerData": null
},
"POIData": {
"POITransactionID": {
"TransactionID": "112233",
"TimeStamp": "2021-07-19T10:54:17.741112Z"
},
"POIReconciliationID": null
},
"PaymentResult": {
"PaymentType": "REFUND",
"PaymentInstrumentData": {
"PaymentInstrumentType": "CARD",
"ProtectedCardData": null,
"CardData": {
"PaymentBrand": "Visa",
"MaskedPAN": "****",
"PaymentAccountRef": null,
"EntryMode": "CONTACTLESS",
"CardCountryCode": null,
"ProtectedCardData": null,
"SensitiveCardData": {
"PAN": null,
"CardSeqNumb": null,
"ExpiryDate": null,
"TrackData": null
},
"AllowedProductCode": null
}
},
"AmountsResp": {
"Currency": null,
"AuthorizedAmount": "40",
"TotalRebatesAmount": null,
"TotalFeesAmount": null,
"CashBackAmount": null,
"TipAmount": "4"
},
"MerchantOverrideFlag": null,
"CapturedSignature": null,
"ProtectedSignature": null,
"OnlineFlag": true,
"AuthenticationMethod": null,
"ValidityDate": null,
"PaymentAcquirerData": {
"AcquirerID": null,
"MerchantID": "04380001",
"AcquirerPOIID": "20020722",
"AcquirerTransactionID": {
"TransactionID": "789DE",
"TimeStamp": "2021-07-19T10:54:17.741112Z"
},
"ApprovalCode": null,
"HostReconciliationID": null
}
},
"PaymentReceipt": {
"DocumentQualifier": "SALERECEIPT",
"IntegratedPrintFlag": null,
"RequiredSignatureFlag": null,
"OutputContent": {
"OutputFormat": "TEXT",
"OutputText": [{
"Text": " POSLink Testing\r#\r# PAT & PAB\r# Bangalore\r#\r# 560001\r#\r# MERCHANT COPY\r#\r#MasterCard\r#518615******8265\r#\r#Sale\r#Swiped\r#\r#\r#\r#\r#\r#\r#\r#\r#\r#\r#\r# Please debit my account\r#\r#\r#Amount £40.00\r#TOTAL £40.00\r#\r#\r#Please sign below\r#\r#\r#...................................\r#\r# Please keep receipt\r# for your records\r#\r#PTID: 77777021\r#MID: 20020722\r#TID: 04380001\r#Date: 03/02/2021\r#Time: 15:19:45\r#EFTSN: OL0129\r#\r#────────────────────────────────────────\r#\r#Auth code: 1234\r#\r#────────────────────────────────────────\r#\r# Thank You JSKB\r#\r# POSLink Testing\r#\r# PAT & PAB\r# Bangalore\r#\r# 560001\r#@ POSLink Testing\r#\r# PAT & PAB\r# Bangalore\r#\r# 560001\r#\r# CARDHOLDER COPY\r#\r#MasterCard\r#518615******8265\r#\r#Sale\r#Swiped\r#\r#\r#\r#\r#\r#\r#\r#\r#\r#\r#\r# Please debit my account\r#\r#\r#Amount £40.00\r#TOTAL £40.00\r#\r# SIGNATURE VERIFIED\r# APPROVED\r#\r#\r# Please keep receipt\r# for your records\r#\r#PTID: 77777021\r#MID: **20722\r#TID: ****0001\r#Date: 03/02/2021\r#Time: 15:19:45\r#────────────────────────────────────────\r#\r#Auth code: 1234\r#\r#────────────────────────────────────────\r#\r# Thank You JSKB\r#\r# POSLink Testing\r#\r# PAT & PAB\r# Bangalore\r#\r# 560001",
"CharacterSet": null,
"Font": null,
"StartColumn": null,
"Color": null,
"CharacterWidth": null,
"CharacterHeight": null,
"CharacterStyle": null,
"Alignment": null,
"EndOfLineFlag": null
}],
"OutputXHTML": null
}
}
}
}
Abort
To initiate an Abort transaction make a request to the API endpoint, specifying:
- POST method
- URL – https://cst2.test-gsc.vfims.com/oidc/poscloud/nexo/abort
- Authorization – No Auth
- Headers:
- Content-Type – application/json
- x-terminal-simulator – true
- Authorization – "user-uid:api" key pair encoded in base64. See the Obtaining API Keys guide for more information.
- Body > Raw – See the request example below.
{
"MessageHeader": {
"MessageClass": "SERVICE",
"MessageCategory": "ABORT",
"MessageType": "REQUEST",
"ServiceID": "1234",
"SaleID": "1992",
"POIID": "Zane CM5"
},
"AbortRequest": {
"messageReference": {
"messageCategory": "ABORT",
"serviceID": "string",
"deviceID": "string",
"saleID": "string",
"poiid": "string"
},
"abortReason": "WrongPIN",
"displayOutput": {
"responseRequiredFlag": true,
"minimumDisplayTime": 0,
"device": "CASHIERDISPLAY",
"infoQualify": "STATUS",
"outputContent": {
"OutputFormat": "MESSAGEREF",
"OutputText": {
"Text": "string",
"CharacterSet": 0,
"Font": "string",
"StartColumn": 0,
"Color": "WHITE",
"CharacterWidth": "SINGLEWIDTH",
"CharacterHeight": "SINGLEHEIGHT",
"CharacterStyle": "NORMAL",
"Alignment": "LEFT",
"EndOfLineFlag": true
},
"OutputXHTML": "string",
"OutputBarcode": {
"barcodeType": "EAN8",
"barcodeValue": "string",
"qrcodeBinaryValue": "string",
"qrcodeErrorCorrection": "string"
}
},
"menuEntry": {
"menuEntryTag": "SELECTABLE",
"outputFormat": "MESSAGEREF",
"defaultSelectedFlag": true,
"predefinedContent": {
"referenceID": "string",
"language": "string"
},
"outputText": {
"Text": "string",
"CharacterSet": 0,
"Font": "string",
"StartColumn": 0,
"Color": "WHITE",
"CharacterWidth": "SINGLEWIDTH",
"CharacterHeight": "SINGLEHEIGHT",
"CharacterStyle": "NORMAL",
"Alignment": "LEFT",
"EndOfLineFlag": true
},
"outputXHTML": "string"
},
"outputSignature": "string"
}
}
}
Required parameters:
MessageHeader
– Message header of the Sale to POI protocol message, It conveys Information related to the Sale to POI protocol management.
MessageClass
– string
Enum
:"SERVICE"
,"DEVICE"
,"EVENT"
Inform the receiver of the class of message to allow: - Switching of the messages before their processing - Direction of the message (Sale to POI or POI to Sale) - Flow inside the message belongs toMessageCategory
– string (MessageCategory)
Enum
:"ABORT"
"ADMIN
"BALANCEINQUIRY"
"BATCH"
"CARDACQUISITION"
"CARDREADERAPDU"
"CARDREADERINIT"
"CARDREADERPOWEROFF"
"DIAGNOSIS"
"DISPLAY"
"ENABLESERVICE"
"EVENT"
"GETTOTALS"
"INPUT"
"INPUTUPDATE"
"LOGIN"
"LOGOUT"
"LOYALTY"
"PAYMENT"
"PIN"
"PRINT"
"RECONCILIATION"
"REVERSAL"
"SOUND"
"STOREDVALUE"
"TRANSACTIONSTATUS"
"TRANSMIT"
Allow the recognition by the receiver of the message of its type. In a Reversal, identify the type of transaction to reverse (PaymentRequest or LoyaltyRequest) In a TransactionStatus, identify the last transaction message. Allow the recognition by the receiver of the message of its type. In a Reversal, identify the type of transaction to reverse (PaymentRequest or LoyaltyRequest) In a TransactionStatus, identify the last transaction message.MessageType
– string
Enum
:"REQUEST"
,"RESPONSE"
,"NOTIFICATION"
Type of message of the Sale to POI protocolServiceID
- string (ServiceID) Identification of a message pair, which processes a transactionSaleID
– string (SaleID) Identification of a Sale System or a Sale Terminal for the Sale to POI protocolPOIID
– string (POIID) Identification of a POI System or a POI Terminal for the Sale to POI protocol
Abort request
– object (AbortRequest)
MessageReference
– object (MessageReference)AbortReason
- string.
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)AmountsReq
– object (AmountsReq) Amounts requested by the Sale System for the payment and loyalty transaction, containing: The currency which is the same for all these amounts The requested amount to pay The cash back part of the requested amount for a payment with cash back The already amount paid for the Sale transaction. This is a split payment, where the Sale Items (the basket) if present is not split. The tip part of the requested amount for a payment with tipDisplayOutput
– object (DisplayOutput)
Check the POS Cloud API reference for more details on required parameters.
Note! A successful Abort request returns a response with a 200 OK HTTP status code and no body.
{
"status": "OK"
}
Transaction Status
To initiate a Last Transaction make a request to the API endpoint, specifying:
- POST method
- URL – https://cst2.test-gsc.vfims.com/oidc/poscloud/nexo/transactionstatus
- Authorization – No Auth
- Headers:
- Content-Type – application/json
- x-terminal-simulator – true
- Authorization – "user-uid:api" key pair encoded in base64. See the Obtaining API Keys guide for more information.
- Body > Raw – See the request example below.
Note! For the "POIID" parameter use one of the following values: "Zane CM5" or "Devaraj P400".
{
"MessageHeader": {
"MessageClass": "SERVICE",
"MessageCategory": "TRANSACTIONSTATUS",
"MessageType": "REQUEST",
"ServiceID": "1234",
"SaleID": "1992",
"POIID": "Devaraj P400"
},
"TransactionStatusRequest": {
"MessageReference": {
"messageCategory": "TRANSACTIONSTATUS",
"serviceID": "string",
"deviceID": "string",
"saleID": "string",
"poiid": "string"
},
"ReceiptReprintFlag": true,
"DocumentQualifier": "SALERECEIPT"
}
}
Required parameters:
MessageHeader
– Message header of the Sale to POI protocol message, It conveys Information related to the Sale to POI protocol management.
MessageClass
– string.
Enum
:"SERVICE"
,"DEVICE"
,"EVENT"
Inform the receiver of the class of message to allow: - Switching of the messages before their processing - Direction of the message (Sale to POI or POI to Sale) - Flow inside the message belongs to.MessageCategory
– string (MessageCategory).
Enum
:"ABORT"
"ADMIN
"BALANCEINQUIRY"
"BATCH"
"CARDACQUISITION"
"CARDREADERAPDU"
"CARDREADERINIT"
"CARDREADERPOWEROFF"
"DIAGNOSIS"
"DISPLAY"
"ENABLESERVICE"
"EVENT"
"GETTOTALS"
"INPUT"
"INPUTUPDATE"
"LOGIN"
"LOGOUT"
"LOYALTY"
"PAYMENT"
"PIN"
"PRINT"
"RECONCILIATION"
"REVERSAL"
"SOUND"
"STOREDVALUE"
"TRANSACTIONSTATUS"
"TRANSMIT"
Allow the recognition by the receiver of the message of its type. In a Reversal, identify the type of transaction to reverse (PaymentRequest or LoyaltyRequest) In a TransactionStatus, identify the last transaction message.MessageType
– string.
Enum
:"REQUEST"
,"RESPONSE"
,"NOTIFICATION"
Type of message of the Sale to POI protocol.ServiceID
- string (ServiceID) Identification of a message pair, which processes a transaction.SaleID
– string (SaleID) Identification of a Sale System or a Sale Terminal for the Sale to POI protocol.POIID
– string (POIID) Identification of a POI System or a POI Terminal for the Sale to POI protocol.
TransactionStatusRequest
– object (TransactionStatusRequest)
MessageReference
– object (MessageReference)ReceiptReprintFlag
- boolean (ReceiptReprintFlag). Allow to reprint a receipt with a TransactionStatus message.DocumentQualifier
– string (DocumentQualifier).
Enum
:"SALERECEIPT"
,"CASHIERRECEIPT"
,"CUSTOMERRECEIPT"
,"DOCUMENT"
,"VOUCHER"
,"JOURNAL"
. Qualification of the document to print to the Cashier or the Customer
Check the POS Cloud API reference for more details on required parameters.
The example result below indicates that the last transaction was successful.
{
"MessageHeader": {
"MessageClass": "SERVICE",
"MessageCategory": "TRANSACTIONSTATUS",
"MessageType": "RESPONSE",
"ServiceID": "1234",
"SaleID": "1992",
"POIID": "Devaraj P400"
},
"TransactionStatusResponse": {
"Response": {
"Result": "SUCCESS",
"ErrorCondition": null,
"AdditionalResponse": "Transaction Success"
},
"MessageReference": null,
"RepeatedMessageResponse": {
"MessageHeader": {
"MessageClass": "SERVICE",
"MessageCategory": "TRANSACTIONSTATUS",
"MessageType": "RESPONSE",
"ServiceID": "1234",
"SaleID": "1992",
"POIID": "Devaraj P400"
},
"RepeatedResponseMessageBody": {
"PaymentResponse": {
"Response": {
"Result": null,
"ErrorCondition": null,
"AdditionalResponse": null
},
"SaleData": null,
"POIData": {
"POITransactionID": {
"TransactionID": "789DE",
"TimeStamp": "2021-07-15T08:47:08.842979Z"
},
"POIReconciliationID": null
},
"PaymentResult": {
"PaymentType": null,
"PaymentInstrumentData": {
"PaymentInstrumentType": "CARD",
"ProtectedCardData": null,
"CardData": {
"PaymentBrand": "Visa",
"MaskedPAN": "****",
"PaymentAccountRef": null,
"EntryMode": "CONTACTLESS",
"CardCountryCode": null,
"ProtectedCardData": null,
"SensitiveCardData": {
"PAN": null,
"CardSeqNumb": null,
"ExpiryDate": null,
"TrackData": null
},
"AllowedProductCode": null
}
},
"AmountsResp": null,
"MerchantOverrideFlag": null,
"CapturedSignature": null,
"ProtectedSignature": null,
"OnlineFlag": null,
"AuthenticationMethod": null,
"ValidityDate": null,
"PaymentAcquirerData": {
"AcquirerID": null,
"MerchantID": null,
"AcquirerPOIID": null,
"AcquirerTransactionID": {
"TransactionID": "789DE",
"TimeStamp": "2021-07-15T08:47:08.842979Z"
},
"ApprovalCode": null,
"HostReconciliationID": null
}
},
"PaymentReceipt": {
"DocumentQualifier": "SALERECEIPT",
"IntegratedPrintFlag": null,
"RequiredSignatureFlag": null,
"OutputContent": {
"OutputFormat": "TEXT",
"OutputText": [{
"Text": " POSLink Testing\r#\r# PAT & PAB\r# Bangalore\r#\r# 560001\r#\r# MERCHANT COPY\r#\r#MasterCard\r#518615******8265\r#\r#Sale\r#Swiped\r#\r#\r#\r#\r#\r#\r#\r#\r#\r#\r#\r# Please debit my account\r#\r#\r#Amount £00\r#TOTAL £00\r#\r#\r#Please sign below\r#\r#\r#...................................\r#\r# Please keep receipt\r# for your records\r#\r#PTID: 77777021\r#MID: 20020722\r#TID: 04380001\r#Date: 03/02/2021\r#Time: 15:19:45\r#EFTSN: OL0129\r#\r#────────────────────────────────────────\r#\r#Auth code: 1234\r#\r#────────────────────────────────────────\r#\r# Thank You JSKB\r#\r# POSLink Testing\r#\r# PAT & PAB\r# Bangalore\r#\r# 560001\r#@ POSLink Testing\r#\r# PAT & PAB\r# Bangalore\r#\r# 560001\r#\r# CARDHOLDER COPY\r#\r#MasterCard\r#518615******8265\r#\r#Sale\r#Swiped\r#\r#\r#\r#\r#\r#\r#\r#\r#\r#\r#\r# Please debit my account\r#\r#\r#Amount £00\r#TOTAL £00\r#\r# SIGNATURE VERIFIED\r# APPROVED\r#\r#\r# Please keep receipt\r# for your records\r#\r#PTID: 77777021\r#MID: **20722\r#TID: ****0001\r#Date: 03/02/2021\r#Time: 15:19:45\r#────────────────────────────────────────\r#\r#Auth code: 1234\r#\r#────────────────────────────────────────\r#\r# Thank You JSKB\r#\r# POSLink Testing\r#\r# PAT & PAB\r# Bangalore\r#\r# 560001",
"CharacterSet": null,
"Font": null,
"StartColumn": null,
"Color": null,
"CharacterWidth": null,
"CharacterHeight": null,
"CharacterStyle": null,
"Alignment": null,
"EndOfLineFlag": null
}],
"OutputXHTML": null
}
}
},
"ReversalResponse": null
}
}
}
}
Reversal/Void
This operation initiates a transaction reversal. A cancel request allows to abort an in-progress payment. Once the cancel request is received before a payment is Approved, the payment is cancelled.
To make a void request to the API endpoint, specify the following:
- POST method
- URL – https://cst2.test-gsc.vfims.com/oidc/poscloud/nexo/reversal
- Authorization – No Auth
- Headers:
- Content-Type – application/json
- x-terminal-simulator – true
- Authorization – "user-uid:api" key pair encoded in base64. See the Obtaining API Keys guide for more information.
- Body > Raw – See the request example below.
Note! For the "POIID" parameter use one of the following values: "Zane CM5" or "Devaraj P400".
{
"MessageHeader": {
"poiid": "string",
"MessageClass": "SERVICE",
"MessageCategory": "REVERSAL",
"MessageType": "REQUEST",
"ServiceID": "23211",
"SaleID": "ReversalPOS",
"POIID": "Devaraj P400"
},
"ReversalRequest": {
"SaleData": {
"OperatorID": "string",
"SaleTransactionID": {
"TransactionID": "4321431431",
"TimeStamp": "2021-02-25T07:42:12.580Z"
},
"SaleReferenceID": "string",
"SaleTerminalData": {},
"CustomerOrderReq": [
"string"
],
"SaleToPOIData": "{\"p\":\"{\\\"_a\\\":\\\"demo_host\\\",\\\"_b\\\":\\\"204667\\\",\\\"_d\\\":36.00,\\\"_f\\\":\\\"TRANSACTION_PAYMENT_TYPE\\\"}\"}",
"SaleToAcquirerData": "string"
},
"OriginalPOITransaction": {
"poiid": "string",
"SaleID": "string",
"POIID": "string",
"POITransactionID": {
"TransactionID": "210319074008",
"TimeStamp": "2021-02-25T07:42:12.580Z"
}
},
"ReversalReason": "CUSTCANCEL",
"CustomerOrder": {
"CustomerOrderID": "string",
"StartDate": "2021-02-25T07:42:12.580Z",
"ForecastedAmount": "34.00",
"OpenOrderState": true,
"Currency": "string",
"AdditionalInformation": "string"
}
}
}
Required parameters:
MessageHeader
– Message header of the Sale to POI protocol message, It conveys Information related to the Sale to POI protocol management.
MessageClass
– string
Enum
:"SERVICE"
,"DEVICE"
,"EVENT"
Inform the receiver of the class of message to allow: - Switching of the messages before their processing - Direction of the message (Sale to POI or POI to Sale) - Flow inside the message belongs toMessageCategory
– string (MessageCategory)
Enum
:"ABORT"
"ADMIN
"BALANCEINQUIRY"
"BATCH"
"CARDACQUISITION"
"CARDREADERAPDU"
"CARDREADERINIT"
"CARDREADERPOWEROFF"
"DIAGNOSIS"
"DISPLAY"
"ENABLESERVICE"
"EVENT"
"GETTOTALS"
"INPUT"
"INPUTUPDATE"
"LOGIN"
"LOGOUT"
"LOYALTY"
"PAYMENT"
"PIN"
"PRINT"
"RECONCILIATION"
"REVERSAL"
"SOUND"
"STOREDVALUE"
"TRANSACTIONSTATUS"
"TRANSMIT"
Allow the recognition by the receiver of the message of its type. In a Reversal, identify the type of transaction to reverse (PaymentRequest or LoyaltyRequest) In a TransactionStatus, identify the last transaction message.MessageType
– string
Enum
:"REQUEST"
,"RESPONSE"
,"NOTIFICATION"
Type of message of the Sale to POI protocolServiceID
- string (ServiceID) Identification of a message pair, which processes a transactionSaleID
– string (SaleID) Identification of a Sale System or a Sale Terminal for the Sale to POI protocolPOIID
– string (POIID) Identification of a POI System or a POI Terminal for the Sale to POI protocol
ReversalRequest
– object (ReversalRequest)
OriginalPOITransaction
- Identification of a previous POI transactionReversalReason
– string (ReversalReason. Reason of the payment or loyalty reversal
Enum
:"CUSTCANCEL"
,"MERCHANTCANCEL"
,"MALFUNCTION"
"UNABLE2COMLP"
.
Check the POS Cloud API reference for more details on required parameters.
The example result below indicates that the payment was successful.
{
"MessageHeader": {
"MessageClass": "SERVICE",
"MessageCategory": "REVERSAL",
"MessageType": "RESPONSE",
"ServiceID": "23211",
"SaleID": "ReversalPOS",
"POIID": "Devaraj P400"
},
"ReversalResponse": {
"Response": {
"Result": "SUCCESS",
"ErrorCondition": null,
"AdditionalResponse": "Transaction Success"
},
"OriginalPOITransaction": {
"SaleID": null,
"POIID": null,
"POITransactionID": {
"TransactionID": null,
"TimeStamp": "2021-07-16T06:53:06.955046Z"
}
},
"POIData": {
"POITransactionID": {
"TransactionID": null,
"TimeStamp": "2021-07-16T06:53:06.955046Z"
},
"POIReconciliationID": null
},
"ReversedAmount": "0",
"CustomerOrder": {
"CustomerOrderID": null,
"StartDate": null,
"ForecastedAmount": 0.0,
"OpenOrderState": true,
"Currency": null,
"AdditionalInformation": null
},
"PaymentReceipt": {
"DocumentQualifier": "SALERECEIPT",
"IntegratedPrintFlag": null,
"RequiredSignatureFlag": null,
"OutputContent": {
"OutputFormat": "TEXT",
"OutputText": [{
"Text": " POSLink Testing\r#\r# PAT & PAB\r# Bangalore\r#\r# 560001\r#\r# MERCHANT COPY\r#\r#MasterCard\r#518615******8265\r#\r#Sale\r#Swiped\r#\r#\r#\r#\r#\r#\r#\r#\r#\r#\r#\r# Please debit my account\r#\r#\r#Amount £00\r#TOTAL £00\r#\r#\r#Please sign below\r#\r#\r#...................................\r#\r# Please keep receipt\r# for your records\r#\r#PTID: 77777021\r#MID: 20020722\r#TID: 04380001\r#Date: 03/02/2021\r#Time: 15:19:45\r#EFTSN: OL0129\r#\r#────────────────────────────────────────\r#\r#Auth code: 1234\r#\r#────────────────────────────────────────\r#\r# Thank You JSKB\r#\r# POSLink Testing\r#\r# PAT & PAB\r# Bangalore\r#\r# 560001\r#@ POSLink Testing\r#\r# PAT & PAB\r# Bangalore\r#\r# 560001\r#\r# CARDHOLDER COPY\r#\r#MasterCard\r#518615******8265\r#\r#Sale\r#Swiped\r#\r#\r#\r#\r#\r#\r#\r#\r#\r#\r#\r# Please debit my account\r#\r#\r#Amount £00\r#TOTAL £00\r#\r# SIGNATURE VERIFIED\r# APPROVED\r#\r#\r# Please keep receipt\r# for your records\r#\r#PTID: 77777021\r#MID: **20722\r#TID: ****0001\r#Date: 03/02/2021\r#Time: 15:19:45\r#────────────────────────────────────────\r#\r#Auth code: 1234\r#\r#────────────────────────────────────────\r#\r# Thank You JSKB\r#\r# POSLink Testing\r#\r# PAT & PAB\r# Bangalore\r#\r# 560001",
"CharacterSet": null,
"Font": null,
"StartColumn": null,
"Color": null,
"CharacterWidth": null,
"CharacterHeight": null,
"CharacterStyle": null,
"Alignment": null,
"EndOfLineFlag": null
}],
"OutputXHTML": null
}
}
}
}
Back to Getting Started page.
Link to the next page.