Abort
Attempt to abort a transaction that has been requested by the ECR, but not yet started
Attempt to abort a transaction that has been requested by the ECR, but not yet started. E.g. after a service request has been sent by the ECR, but before the cardholder has tapped the card or entered PIN and pressed OK.
Note: there is no AbortResponse - if successfully aborted, the status will be communicated in the original service response, in this example the PaymentResponse. If the abort request is unsuccessful, the transaction continues as it would otherwise.
sequenceDiagram
participant ECR
participant Terminal as Terminal (AIC)
ECR->>Terminal: Payment Request
Note right of Terminal: Customer leaves without using card
ECR->>Terminal: Abort Request
Terminal-->>ECR: Payment Response (ErrorCondition=Aborted)
Example request
{
"SaleToPOIRequest": {
"MessageHeader": {
"ProtocolVersion": "3.1",
"ServiceID": "2",
"MessageClass": "Service",
"MessageCategory": "Abort",
"MessageType": "Request",
"SaleID": "ECR123",
"POIID": "AT12345"
},
"AbortRequest": {
"MessageReference": {
"MessageCategory": "Payment",
"ServiceID": "1"
},
"AbortReason": "Aborted from ECR"
}
}
}| Property | Description | Mandatory / Optional |
|---|---|---|
| AbortRequest | Mandatory | |
| MessageReference | Mandatory | |
| MessageCategory | MessageCategory of request to be aborted | Optional |
| ServiceID | ServiceID of request to be aborted | Must be present if DeviceID absent |
| DeviceID | DeviceID of request to be aborted | Must be present if ServiceID absent. |
| AbortReason | Reason for abort. Used for logging purposes | Mandatory |
Example response, successful abort
{
"SaleToPOIResponse": {
"MessageHeader": {
"MessageCategory": "Payment",
"MessageClass": "Service",
"MessageType": "Response",
"POIID": "AT12345",
"ProtocolVersion": "3.1",
"SaleID": "ECR123",
"ServiceID": "1"
},
"PaymentResponse": {
"Response": {
"AdditionalResponse": "",
"ErrorCondition": "Aborted",
"Result": "Failure"
},
"SaleData": {
"SaleTransactionID": {
"TransactionID": "12345"
}
},
"POIData": {
"POITransactionID": {
"TransactionID": "0"
}
}
}
}
}In this example, the Abort request was successful, and this is communicated to the ECR by setting Response/Result to 'Failure' and Response/ErrorCondition to 'Aborted' in the PaymentResponse message belonging to the PaymentRequest that was aborted. The returned transaction ID can be ignored, as the transaction was never initiated.
Updated 13 days ago