Get the result of an earlier transaction, for example after a lost connection.
| Message category | Class | Direction |
|---|---|---|
TransactionStatus | Service | ECR → terminal |
Used in these guidesConnect your ECR · Implement the payment flow · Verify transaction status · Handle responses and timeouts · Test and get approved
Get information about result of a previous transaction. The result is retrieved from the terminal. Can be used in case the result of the previous transaction is unknown due to timeout or other communication issue between transmission of request from ECR and reception of response.
This request can be used to prevent duplicate transactions being initiated from the ECR in case of communication issues.
In the following example a standard payment is requested, but the response does not reach the ECR. The transaction result is then received by the ECR using TransactionStatus.
Example request and response
All fields
Example request
{
"SaleToPOIRequest": {
"MessageHeader": {
"ProtocolVersion": "3.1",
"ServiceID": "2",
"MessageClass": "Service",
"MessageCategory": "TransactionStatus",
"MessageType": "Request",
"SaleID": "ECR123",
"POIID": "AT12345"
},
"TransactionStatusRequest": {
"MessageReference": {
"MessageCategory": "Payment",
"ServiceID": "1",
"SaleID": "ECR456"
}
}
}
}| Field | Required | Description |
|---|---|---|
TransactionStatusRequest | Required | Contains the fields below |
↳ MessageReference | Optional | Contains the fields below |
↳ MessageCategory | Required | Category of original message. Only 'Payment' is supported. |
↳ ServiceID | Optional | ServiceID of the original message. If omitted, the latest message will be returned. |
↳ SaleID | Optional | SaleID of the original message. Can be used when requesting status for a transaction sent by another ECR. If omitted, the SaleID value from MessageHeader will be used |
Example response
{
"SaleToPOIResponse": {
"MessageHeader": {
"MessageCategory": "TransactionStatus",
"MessageClass": "Service",
"MessageType": "Response",
"POIID": "AT12345",
"ProtocolVersion": "3.1",
"SaleID": "ECR123",
"ServiceID": "2"
},
"TransactionStatusResponse": {
"Response": {
"Result": "Success"
},
"MessageReference": {
"MessageCategory": "Payment",
"ServiceID": "1"
},
"RepeatedMessageResponse": {
"MessageHeader": {
"MessageCategory": "Payment",
"MessageClass": "Service",
"MessageType": "Response",
"POIID": "AT12345",
"ProtocolVersion": "3.1",
"SaleID": "ECR123",
"ServiceID": "1"
},
"PaymentResponse": {
"Response": {
"AeStan": "123456",
"AeAcquirerResponseCode": "00",
"AeResponseCode": "000",
"AdditionalResponse": "",
"Result": "Success"
},
"SaleData": {
"SaleTransactionID": {
"TransactionID": "12345",
"TimeStamp": "2024-04-18T22:16:13.178+02:00"
},
"AeSaleToHostData" : "...."
},
"POIData": {
"POITransactionID": {
"TransactionID": "123456",
"TimeStamp": "2024-04-18T22:16:16.178+02:00"
}
},
"PaymentResult": {
"PaymentInstrumentData": {
"CardData": {
"SensitiveCardData": {
"CardSeqNumb": "01",
"ExpiryDate": "2701"
},
"CardCountryCode": "578",
"MaskedPAN": "540481******1761",
"PaymentBrand": "MASTERCARD"
},
"PaymentInstrumentType": "Card"
},
"AmountsResp": {
"AuthorizedAmount": 123,
"Currency": "EUR"
},
"PaymentAcquirerData": {
"ApprovalCode": "541639",
"MerchantID": "6815413"
},
"AuthenticationMethod": [
"OfflinePIN"
]
},
"PaymentReceipt": [
{
"DocumentQualifier": "CustomerReceipt",
"OutputContent": {
"OutputText": [
{
"Text": "Receipt text 1"
},
{
"Text": "Receipt text 2"
},
{
"Text": "Receipt text 3"
}
]
}
}
]
}
}
}
}
}| Field | Required | Description |
|---|---|---|
TransactionStatusResponse | Required | Contains the fields below |
↳ Response | Required | Contains the fields below |
↳ Result | Required | Success or Failure |
↳ MessageReference | Optional | Copy of MessageReference from request |
↳ RepeatedMessageResponse | Optional | Copy of the original message, if the original message is completed |
If the response has no RepeatedMessageResponse, the original payment isn't finished yet. Don't treat it as failed, and don't start a new payment. See Verify transaction status.