Skip to main content

Integration

Last updated: 21-Jul-2021

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:

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:

{
    "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 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
  • 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:

{
    "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 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
  • 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:

{
    "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 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. 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
  • 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 tip
    • DisplayOutput – 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:

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:

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 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
  • ReversalRequest – object (ReversalRequest)
    • OriginalPOITransaction - Identification of a previous POI transaction
    • ReversalReason – 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.

Need help?

Do you have a question? If you didn’t find the answer you are looking for in our documentation, you can contact our Support teams for more information. If you have a technical issue or question, please contact us. We are happy to help.

Not yet a Verifone customer?

We’ll help you choose the right payment solution for your business, wherever you want to sell, in-person or online. Our team of experts will happily discuss your needs.

Verifone logo