This service can be used by the Payment Connector to initiate a Refund via a Payment Terminal of the Payment Terminals Provider or via an online channel.
COMPATIBILITY
Type | Compatibility |
---|---|
Card present (CP) | Yes |
Card not present (CNP) | Yes |
REQUEST
Type | Endpoint |
---|---|
POST | /payment/v1/interface/terminalprovider/refund |
PARAMETERS
Name |
Type |
Description |
CP mandatory |
CNP mandatory |
Example |
MessageHeader |
defined data structure
|
Message header of the Sale to POI protocol message
|
Y |
Y |
|
MessageClass |
Enum |
Class of the message |
Y |
Y |
Service |
MessageCategory |
Enum |
Category of message. |
Y |
Y |
Payment |
MessageType |
Enum |
Type of message of the Sale to POI protocol
|
Y |
Y |
Request |
ServiceID |
TextString {1,10}
|
Identification of a message pair, which processes a transaction |
Y |
Y |
H9732FO20102628843C |
SaleID |
TextString |
Identification of a Sale System or a Sale Terminal for the Sale to POI protocol |
Y |
Y |
w-eu-h0416FLS1 |
POIID |
TextString
|
Identification of a POI System or a POI Terminal for the Sale to POI protocol
|
Y |
Y |
CP: AUTO CNP: CAP |
PaymentRequest |
defined data structure |
Content of the Payment Request message |
Y |
Y |
|
SaleData |
defined data structure |
Data related to the Sale System. |
Y |
Y |
|
OperatorID |
TextString
|
Identification of the Cashier or Operator Allow to identify the origin of the transaction in the provider extranet |
Y |
Y |
FOLS |
SaleTransactionID |
|
Unique identification of a Sale transaction |
Y |
Y |
|
TransactionID |
TextString |
Unique identification of a transaction Could be empty but field should always be present |
Y |
Y |
|
TimeStamp |
ISODateTime
|
Date and time of a transaction for the Sale System, the POI System or the Acquirer |
Y |
Y |
"2019-07-09T23:18:00-05:00" |
TokenRequestedType |
Enum |
If a token is requested.
|
Y |
N |
Customer
|
PaymentTransaction |
defined data structure |
Data related to the payment and loyalty transaction |
Y |
Y |
|
AmountsReq |
defined data structure |
Various amounts related to the payment and loyalty request from the Sale System
|
Y |
Y |
|
Currency |
ISOCurrency3A
|
Currency of a monetary amount
|
Y |
Y |
EUR |
RequestedAmount |
SimpleAmountType |
Amount requested by the Sale for the payment |
Y |
Y |
80.00 |
PaymentData |
defined data structure |
Data related to the payment transaction |
Y |
Y |
|
PaymentType |
Enum |
this element will define the type of message sent.
|
Y |
Y |
Refund |
PaymentInstrumentData |
defined data structure
|
Data related to the instrument of payment for the transaction |
N |
Y |
|
PaymentInstrumentType |
Enum |
Only token will be sent from the ACCOR API |
N |
Y |
Token
|
CardData |
defined data structure |
Information related to the payment card used for the transaction
If PaymentInstrumentType is "Card" or “Token” |
N |
Y |
|
EntryMode |
Enumeration |
Entry mode of the payment instrument information
|
N |
Y |
File |
SensitiveCardData |
defined data structure |
Sensitive information related to the payment card, entered or read by the Sale System
|
N |
Y |
|
ExpiryDate |
DigitString {4,4} |
if EntryMode is File, Keyed or Manual and data available on the card |
N |
Y |
1224 |
PAN |
|
if EntryMode is File, Keyed or Manual Should be populated by the token number |
N |
Y |
8766778345690119 |
RESPONSE
Name |
Type |
Description |
CP mandatory |
CNP mandatory |
Example |
MessageHeader |
defined data structure
|
|
Y |
Y |
|
MessageClass |
Enum |
Copy from request |
Y |
Y |
Service |
MessageCategory |
Enum |
Payment |
Y |
Y |
Payment |
MessageType |
Enum |
Response |
Y |
Y |
Response |
ServiceID |
TextString {1,10}
|
Copy from request |
Y |
Y |
H9732FO20102628843C |
SaleID |
TextString |
Copy from request |
Y |
Y |
w-eu-h0867FLS1 |
POIID |
TextString
|
Terminal Identification Set to Terminal Identification |
Y |
Y |
CP: AUTO CNP: CAP |
PaymentResponse |
defined data structure |
Content of the Payment Response message |
Y |
Y |
|
Response |
defined data structure |
Result of a message request processing.
|
Y |
Y |
|
Result |
Enum |
Transaction Result
|
Y |
Y |
Success
|
ErrorCondition |
Enum |
If the result is set to Failure then the condition should be part of the message.
Transaction Result If Transaction Result = VOICE AUTHORISATION, set ErrorCondition = "Referral" |
N |
N |
DeviceOut |
AdditionnalResponse |
TextString |
Processing Status, Nok Reason, Terminal Verification Results (TVR) and Transaction Status Information (TSI).
Set as TLV structure |
N |
N |
|
SaleData |
defined data structure |
Data related to the Sale System
|
Y |
Y |
|
OperatorID |
TextString |
Identification of the Cashier or Operator
|
Y |
Y |
FOLS |
SaleTransactionID |
defined data structure |
Copy from request Unique identification of a Sale transaction |
Y |
Y |
|
TransactionID |
TextString |
Unique identification of a Sale transaction |
Y |
Y |
|
TimeStamp |
ISODateTime
|
Date and time of a transaction for the Sale System, the POI System or the Acquirer.
|
Y |
Y |
2020-07-09T09:18:00-05:00 |
POIData |
defined data structure |
Data related to the POI System.
|
Y |
Y |
|
POITransactionID |
defined data structure |
Unique identification of a POI transaction for a POI |
Y |
Y |
|
TransactionID |
TextString |
Transaction Sequence Counter Identification of the transaction on the samle system or on the POI system |
Y |
Y |
84542659458 |
TimeStamp |
ISODateTime
|
Date and time of a transaction for the Sale System, the POI System or the Acquirer
|
Y |
Y |
2020-07-09T09:18:00-05:00 |
PaymentResult |
defined data structure |
Data related to the result of a processed refund transaction If one data element is present |
Y |
Y |
|
PaymentType |
Enum |
Copy from request, default Normal |
Y |
Y |
Refund |
PaymentInstrumentData |
defined data structure |
If a payment instrument is analysed by the POI. |
Y |
Y |
|
PaymentInstrumentType |
Enum |
Type of payment instrument - Card - Token |
Y |
Y |
Card |
CardData |
defined data structure |
If PaymentInstrumentType is "Card" Information related to the payment card used for the transaction |
Y |
Y |
|
PaymentBrand |
TextString |
Type of payment card. One digit identifier with the meaning below: V - VISA N - VISAElectron P - VPAY M - MasterCard E - Maestro A - Amex |
Y |
Y |
V
|
MaskedPAN |
TextString |
PAN masked required for the card, instead of clear PAN |
Y |
Y |
xxxxxxxxxxxx4121 |
EntryMode |
Enum |
Copy from request Technology selected |
Y |
Y |
File |
SensitiveCardData |
defined data structure |
Sensitive information related to the payment card, entered or read by the Sale System |
Y |
Y |
|
ExpiryDate |
DigitString {4,4} |
Expiration Date If data available on the card |
Y |
Y |
1222 |
PaymentToken |
defined data structure |
If a payment token has been requested in the request message, or in the Login request for the session. |
Y |
N |
|
TokenRequestedType |
Enum |
Copy from request
|
Y |
N |
|
TokenValue |
TextString
|
This field will contain the token number generated and sent by the payment provider. |
Y |
N |
2068236741600135 |
AmountsResp |
defined data structure |
If Result is Success or Partial Various amounts related to the payment response from the POI System |
Y |
Y |
|
Currency |
ISOCurrency3A |
Currency of a monetary amount. Mandatory for currency conversion. |
Y |
Y |
EUR |
AuthorizedAmount |
SimpleAmountType
|
Transaction Amount Send authorised value to Sale System Application |
Y |
Y |
100.00 |
TipAmount |
SimpleAmountType
|
Supplementary Amount If Supplementary Amount is greater than 0 |
N |
N |
5.00 |
CurrencyConversion |
defined data structure |
This field could be populated when a DCC transaction will be processed. If the customer currency is not the same as the hotel currency. |
N |
N |
|
ConvertedAmount |
AmountType |
Could be populated if CurrencyConversion is present |
N |
N |
|
AmountValue |
SimpleAmountType
|
Could be populated if ConvertedAmount is present |
N |
N |
110.00 |
Currency |
ISOCurrency3A |
Could be populated if ConvertedAmount is present |
N |
N |
USD |
OnlineFlag |
|
default “True” "True" if the payment transaction processing has required the approval of a host. |
N |
Y |
true |
PaymentAcquirerData |
defined data structure |
If card is analysed and data available |
Y |
Y |
|
AcquirerID |
DigitString
|
Identification of the Acquirer Identifications of the Acquirer when the POI System is multi-acquirer |
Y |
N |
1 |
MerchantID |
TextString |
Merchant Identifier for the acquirer |
Y |
Y |
64022201 |
AcquirerPOIID |
TextString |
Identification of the POI for the payment acquirer |
Y |
Y |
54017810 |
ApprovalCode |
TextString |
Authorisation Code if available (code sent by the acquirer) |
Y |
Y |
936069 |
PaymentReceipt |
defined data structure |
Customer or Merchant payment receipt
Number of occurrences will be controlled by terminal parameters. ECR must support 0, 1 or 2 occurrences of this tag. 0 – No receipt will be printed 1 – Only one receipt copy will be printed, type will be specified by DocumentQualifier 2 – Two receipt copies to be printed, each type specified by DocumentQualifier. |
Y |
Y |
|
DocumentQualifier |
Enum |
Qualification of the document to print to the Cashier or the Customer CustomerReceipt CashierReceipt |
Y |
Y |
MerchantReceipt |
RequiredSignatureFlag |
Boolean |
Indicates that the payment receipt requires a physical signature line. |
Y |
N |
false |
OutputContent |
defined data structure |
Content to display or print |
Y |
Y |
|
OutputFormat |
Enum |
Always set to “Text” - The DisplayOutput is then an OutputText data structure. |
Y |
Y |
Text |
OutputText |
defined data structure |
At least one occurrence of this tag will be required when OutputFormat is set to “Text”. Each occurrence will be a formatted receipt line. |
Y |
Y |
|
Text |
TextString |
Formatted receipt line content to be printed. Character set will be Basic Latin. |
Y |
Y |
MERCHANT RECEIPT |
EndOfLineFlag |
Boolean |
Indicates if the characters of the displayed Text must be terminated by an end of line. |
Y |
Y |
true |
EXAMPLE 1
This example show request/response for a card present transaction.
Example of request :
{ "SaleToPOIRequest": { "MessageHeader": { "MessageCategory": "Payment", "MessageClass": "Service", "MessageType": "Request", "POIID": "AUTO", "SaleID": "w-eu-h0416FLS1", "ServiceID": "H9732FO20101956881C" }, "PaymentRequest": { "PaymentData": { "PaymentType": "Refund" }, "PaymentTransaction": { "AmountsReq": { "Currency": "EUR", "RequestedAmount": "2.00" } }, "SaleData": { "OperatorID": "FOLS", "SaleTransactionID": { "TimeStamp": "2020-10-19T14:16:52+02:00", "TransactionID": "" }, "TokenRequestedType": "Customer" } } } } |
Example of response OK:
{ "SaleToPOIResponse": { "MessageHeader": { "MessageCategory": "Payment", "MessageClass": "Service", "MessageType": "Response", "POIID": "54017810", "ProtocolVersion": "3.1", "SaleID": "w-eu-h0416FLS1", "ServiceID": "H9732FO20101956881C" }, "PaymentResponse": { "POIData": { "POITransactionID": { "TimeStamp": "2020-10-19T14:17:05.379", "TransactionID": "770234304102" } }, "PaymentReceipt": [ { "DocumentQualifier": "CashierReceipt", "OutputContent": { "OutputFormat": "Text", "OutputText": [ { "EndOfLineFlag": true, "Text": "Accor PAX test" }, { "EndOfLineFlag": true, "Text": "--------------------------------" }, { "EndOfLineFlag": true, "Text": "" }, { "EndOfLineFlag": true, "Text": "19.10.2020 14:17:01" }, { "EndOfLineFlag": true, "Text": " MERCHANT RECEIPT" }, { "EndOfLineFlag": true, "Text": "--------------------------------" }, { "EndOfLineFlag": true, "Text": "TERMINAL: 54017810" }, { "EndOfLineFlag": true, "Text": "DEVICE NAME: 54017810" }, { "EndOfLineFlag": true, "Text": "MERCHANT: 640500100" }, { "EndOfLineFlag": true, "Text": "PAN: XXXXXXXXXXX1006" }, { "EndOfLineFlag": true, "Text": "AID: A000000025010403" }, { "EndOfLineFlag": true, "Text": "CARD TYPE: A" }, { "EndOfLineFlag": true, "Text": "CONTACTLESS" }, { "EndOfLineFlag": true, "Text": " REFUND" }, { "EndOfLineFlag": true, "Text": "REFERENCE: 814" }, { "EndOfLineFlag": true, "Text": "AMOUNT: EUR 2,00" }, { "EndOfLineFlag": true, "Text": "AUTHORISATION CODE: 408138" }, { "EndOfLineFlag": true, "Text": "CARD TOKEN: 852390617141006" }, { "EndOfLineFlag": true, "Text": " (00)" }, { "EndOfLineFlag": true, "Text": " APPROVED" }, { "EndOfLineFlag": true, "Text": " NO CARDHOLDER VERIFICATION" }, { "EndOfLineFlag": true, "Text": " PLEASE RETAIN FOR YOUR RECORDS" }, { "EndOfLineFlag": true, "Text": "" } ] }, "RequiredSignatureFlag": true }, { "DocumentQualifier": "CustomerReceipt", "OutputContent": { "OutputFormat": "Text", "OutputText": [ { "EndOfLineFlag": true, "Text": "Accor PAX test" }, { "EndOfLineFlag": true, "Text": "--------------------------------" }, { "EndOfLineFlag": true, "Text": "" }, { "EndOfLineFlag": true, "Text": "19.10.2020 14:17:01" }, { "EndOfLineFlag": true, "Text": " CARDHOLDER RECEIPT" }, { "EndOfLineFlag": true, "Text": "--------------------------------" }, { "EndOfLineFlag": true, "Text": "TERMINAL: 54017810" }, { "EndOfLineFlag": true, "Text": "DEVICE NAME: 54017810" }, { "EndOfLineFlag": true, "Text": "MERCHANT: 640500100" }, { "EndOfLineFlag": true, "Text": "PAN: XXXXXXXXXXX1006" }, { "EndOfLineFlag": true, "Text": "AID: A000000025010403" }, { "EndOfLineFlag": true, "Text": "CARD TYPE: A" }, { "EndOfLineFlag": true, "Text": "CONTACTLESS" }, { "EndOfLineFlag": true, "Text": " REFUND" }, { "EndOfLineFlag": true, "Text": "REFERENCE: 814" }, { "EndOfLineFlag": true, "Text": "AMOUNT: EUR 2,00" }, { "EndOfLineFlag": true, "Text": "AUTHORISATION CODE: 408138" }, { "EndOfLineFlag": true, "Text": " (00)" }, { "EndOfLineFlag": true, "Text": " APPROVED" }, { "EndOfLineFlag": true, "Text": " NO CARDHOLDER VERIFICATION" }, { "EndOfLineFlag": true, "Text": " PLEASE RETAIN FOR YOUR RECORDS" }, { "EndOfLineFlag": true, "Text": "" } ] }, "RequiredSignatureFlag": true } ], "PaymentResult": { "AmountsResp": { "AuthorizedAmount": "2.00", "Currency": "EUR" }, "PaymentAcquirerData": { "AcquirerID": "1", "AcquirerPOIID": "54017810", "ApprovalCode": "408138", "MerchantID": "640500100" }, "PaymentInstrumentData": { "CardData": { "EntryMode": "Contactless", "MaskedPAN": "XXXXXXXXXXX1006", "PaymentBrand": "A", "PaymentToken": { "TokenRequestedType": "Customer", "TokenValue": "852390617141006" }, "SensitiveCardData": { "ExpiryDate": "0323" } }, "PaymentInstrumentType": "Card" }, "PaymentType": "Refund" }, "Response": { "Result": "Success" }, "SaleData": { "SaleTransactionID": { "TimeStamp": "2020-10-19T14:16:52+02:00", "TransactionID": "" } } } } } |
EXAMPLE 2
This example show request/response for a card not present transaction.
Example of request :
{ "SaleToPOIRequest": { "MessageHeader": { "MessageCategory": "Payment", "MessageClass": "Service", "MessageType": "Request", "POIID": "CAP", "SaleID": "w-eu-h0416FLS1", "ServiceID": "H9732FO20102628843C" }, "PaymentRequest": { "PaymentData": { "PaymentType": "Refund", "PaymentInstrumentData": { "PaymentInstrumentType": "Token", "CardData": { "EntryMode": "File", "SensitiveCardData": { "ExpiryDate": "1222", "PAN": "2879834888340043" } } } }, "PaymentTransaction": { "AmountsReq": { "Currency": "EUR", "RequestedAmount": "1.00" } }, "SaleData": { "OperatorID": "FOLS", "SaleTransactionID": { "TimeStamp": "2020-10-26T14:42:52+01:00", "TransactionID": "" } } } } } |
Example of response OK:
{ "SaleToPOIResponse": { "MessageHeader": { "MessageCategory": "Payment", "MessageClass": "Service", "MessageType": "Response", "POIID": "CAP", "SaleID": "w-eu-h0416FLS1", "ServiceID": "H9732FO20101311524C" }, "PaymentResponse": { "POIData": { "POITransactionID": { "TimeStamp": "2020-10-13T08:26:30", "TransactionID": "84542659458" } }, "PaymentReceipt": [ { "DocumentQualifier": "CustomerReceipt", "OutputContent": { "OutputFormat": "Text", "OutputText": [ { "EndOfLineFlag": true, "Text": "APOL MERCURE VALENCIENNES CENTRE" }, { "EndOfLineFlag": true, "Text": " Musterstr. 01 " }, { "EndOfLineFlag": true, "Text": " Musterstadt 90111 " }, { "EndOfLineFlag": true, "Text": " GERMANY " }, { "EndOfLineFlag": true, "Text": "--------------------------------" }, { "EndOfLineFlag": true, "Text": "" }, { "EndOfLineFlag": true, "Text": "13.10.20 10:26" }, { "EndOfLineFlag": true, "Text": " KUNDENBELEG " }, { "EndOfLineFlag": true, "Text": "--------------------------------" }, { "EndOfLineFlag": true, "Text": "TERMINAL: 54040623 " }, { "EndOfLineFlag": true, "Text": "HANDLER: 147777778 " }, { "EndOfLineFlag": true, "Text": "PAN: XXXXXXXXXXXX0050 " }, { "EndOfLineFlag": true, "Text": "KARTENTYP: Visa " }, { "EndOfLineFlag": true, "Text": "GUTSCHRIFT " }, { "EndOfLineFlag": true, "Text": "MANUELLER EINTRAG " }, { "EndOfLineFlag": true, "Text": "BETRAG: 2,00 EUR" }, { "EndOfLineFlag": true, "Text": "REFERENZ: 770223421983 " }, { "EndOfLineFlag": true, "Text": "GENEHMIGUNGS-NR.: 089847 " }, { "EndOfLineFlag": true, "Text": " (00) " }, { "EndOfLineFlag": true, "Text": " AUTORISIERUNG ERFOLGT " }, { "EndOfLineFlag": true, "Text": " KEINE KARTENINH. VERIFIZIERUNG " }, { "EndOfLineFlag": true, "Text": "BITTE FUR IHRE UNTERLAG. AUFBEW." } ] }, "RequiredSignatureFlag": "" }, { "DocumentQualifier": "CashierReceipt", "OutputContent": { "OutputFormat": "Text", "OutputText": [ { "EndOfLineFlag": true, "Text": "APOL MERCURE VALENCIENNES CENTRE" }, { "EndOfLineFlag": true, "Text": " Musterstr. 01 " }, { "EndOfLineFlag": true, "Text": " Musterstadt 90111 " }, { "EndOfLineFlag": true, "Text": " GERMANY " }, { "EndOfLineFlag": true, "Text": "--------------------------------" }, { "EndOfLineFlag": true, "Text": "" }, { "EndOfLineFlag": true, "Text": "13.10.20 10:26" }, { "EndOfLineFlag": true, "Text": " HANDLERBELEG " }, { "EndOfLineFlag": true, "Text": "--------------------------------" }, { "EndOfLineFlag": true, "Text": "TERMINAL: 54040623 " }, { "EndOfLineFlag": true, "Text": "HANDLER: 147777778 " }, { "EndOfLineFlag": true, "Text": "PAN: XXXXXXXXXXXX0050 " }, { "EndOfLineFlag": true, "Text": "KARTENTYP: Visa " }, { "EndOfLineFlag": true, "Text": "GUTSCHRIFT " }, { "EndOfLineFlag": true, "Text": "MANUELLER EINTRAG " }, { "EndOfLineFlag": true, "Text": "BETRAG: 2,00 EUR" }, { "EndOfLineFlag": true, "Text": "REFERENZ: 770223421983 " }, { "EndOfLineFlag": true, "Text": "GENEHMIGUNGS-NR.: 089847 " }, { "EndOfLineFlag": true, "Text": " (00) " }, { "EndOfLineFlag": true, "Text": " AUTORISIERUNG ERFOLGT " }, { "EndOfLineFlag": true, "Text": " KEINE KARTENINH. VERIFIZIERUNG " }, { "EndOfLineFlag": true, "Text": "BITTE FUR IHRE UNTERLAG. AUFBEW." } ] }, "RequiredSignatureFlag": "" } ], "PaymentResult": { "AmountsResp": { "AuthorizedAmount": "2.00", "Currency": "EUR" }, "OnLineFlag": "True", "PaymentAcquirerData": { "AcquirerPOIID": "54040623", "ApprovalCode": "089847", "MerchantID": "147777778" }, "PaymentInstrumentData": { "CardData": { "EntryMode": "File", "MaskedPAN": "XXXXXXXXXXXX0050", "PaymentBrand": "V", "SensitiveCardData": { "ExpiryDate": "1222" } }, "PaymentInstrumentType": "Token" }, "PaymentType": "Refund" }, "Response": { "Result": "Success" }, "SaleData": { "SaleTransactionID": { "TimeStamp": "2020-10-13T10:26:29+02:00", "TransactionID": "" } } } } } |