This service can be used by the Payment Connector to initiate a Preauthorization via a Payment Terminal of the Payment Terminals Provider or through an online channel.
COMPATIBILITY
Type | Compatibility |
---|---|
Card present (CP) | Yes |
Card not present (CNP) | Yes |
REQUEST
Type | Endpoint |
---|---|
POST | /payment/v1/interface/terminalprovider/preauthorization |
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 |
H0449FO18082500002P |
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 |
TipAmount |
SimpleAmountType |
If payment with tip requested by the Sale System. |
N |
N |
5.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 |
FirstReservation |
PaymentInstrumentData |
defined data structure |
Data related to the instrument of payment for the transaction |
N |
Y |
|
PaymentInstrumentType |
Enum |
Only token will be send 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 |
H0867FO18082500002P |
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 |
|
SaleTransactionID |
defined data structure |
Copy from request Unique identification of a Sale transaction |
Y |
Y |
|
TransactionID |
TextString |
Unique identification of a Sale transaction Field present but empty |
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 |
SaleReferenceID |
TextString |
Mandatory if payment reservation or if CustomerOrder is present Identification of a Sale global transaction for a sequence of related POI transactions. |
Y |
Y |
770228212452 |
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 |
770228212452 |
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 payment transaction If one data element is present |
Y |
Y |
|
PaymentType |
Enum |
Copy from request, default Normal |
Y |
Y |
FirstReservation |
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 |
Customer |
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
|
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": "H9732FO20101349851A" }, "PaymentRequest": { "PaymentData": { "PaymentType": "FirstReservation" }, "PaymentTransaction": { "AmountsReq": { "Currency": "EUR", "RequestedAmount": "20.00" } }, "SaleData": { "OperatorID": "FOLS", "SaleTransactionID": { "TimeStamp": "2020-10-13T10:48:07+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": "H9732FO20101349851A" }, "PaymentResponse": { "POIData": { "POITransactionID": { "TimeStamp": "2020-10-13T10:48:26.057", "TransactionID": "770223423085" } }, "PaymentReceipt": [ { "DocumentQualifier": "CashierReceipt", "OutputContent": { "OutputFormat": "Text", "OutputText": [ { "EndOfLineFlag": true, "Text": "Accor PAX test" }, { "EndOfLineFlag": true, "Text": "--------------------------------" }, { "EndOfLineFlag": true, "Text": "" }, { "EndOfLineFlag": true, "Text": "13.10.2020 10:48:19" }, { "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: XXXXXXXXXXXX0050" }, { "EndOfLineFlag": true, "Text": "AID: A0000000031010" }, { "EndOfLineFlag": true, "Text": "VISA Contactless" }, { "EndOfLineFlag": true, "Text": "CONTACTLESS" }, { "EndOfLineFlag": true, "Text": " PREAUTHORISATION" }, { "EndOfLineFlag": true, "Text": "AMOUNT ESTIMATED: EUR 20,00" }, { "EndOfLineFlag": true, "Text": "RESERVATION ID:" }, { "EndOfLineFlag": true, "Text": " 770223423085" }, { "EndOfLineFlag": true, "Text": "AUTHORISATION CODE: 017652" }, { "EndOfLineFlag": true, "Text": "CARD TOKEN: 2125534309170050" }, { "EndOfLineFlag": true, "Text": " (00)" }, { "EndOfLineFlag": true, "Text": " APPROVED" }, { "EndOfLineFlag": true, "Text": " NO CARDHOLDER VERIFICATION" }, { "EndOfLineFlag": true, "Text": " PLEASE RETAIN FOR YOUR RECORDS" } ] }, "RequiredSignatureFlag": false }, { "DocumentQualifier": "CustomerReceipt", "OutputContent": { "OutputFormat": "Text", "OutputText": [ { "EndOfLineFlag": true, "Text": "Accor PAX test" }, { "EndOfLineFlag": true, "Text": "--------------------------------" }, { "EndOfLineFlag": true, "Text": "" }, { "EndOfLineFlag": true, "Text": "13.10.2020 10:48:19" }, { "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: XXXXXXXXXXXX0050" }, { "EndOfLineFlag": true, "Text": "AID: A0000000031010" }, { "EndOfLineFlag": true, "Text": "VISA Contactless" }, { "EndOfLineFlag": true, "Text": "CONTACTLESS" }, { "EndOfLineFlag": true, "Text": " PREAUTHORISATION" }, { "EndOfLineFlag": true, "Text": "AMOUNT ESTIMATED: EUR 20,00" }, { "EndOfLineFlag": true, "Text": "RESERVATION ID:" }, { "EndOfLineFlag": true, "Text": " 770223423085" }, { "EndOfLineFlag": true, "Text": "AUTHORISATION CODE: 017652" }, { "EndOfLineFlag": true, "Text": " (00)" }, { "EndOfLineFlag": true, "Text": " APPROVED" }, { "EndOfLineFlag": true, "Text": " NO CARDHOLDER VERIFICATION" }, { "EndOfLineFlag": true, "Text": " PLEASE RETAIN FOR YOUR RECORDS" } ] }, "RequiredSignatureFlag": false } ], "PaymentResult": { "AmountsResp": { "AuthorizedAmount": "20.00", "Currency": "EUR" }, "PaymentAcquirerData": { "AcquirerID": "1", "AcquirerPOIID": "54017810", "ApprovalCode": "017652", "MerchantID": "640500100" }, "PaymentInstrumentData": { "CardData": { "EntryMode": "Contactless", "MaskedPAN": "XXXXXXXXXXXX0050", "PaymentBrand": "V", "PaymentToken": { "TokenRequestedType": "Customer", "TokenValue": "2125534309170050" }, "SensitiveCardData": { "ExpiryDate": "1222" } }, "PaymentInstrumentType": "Card" }, "PaymentType": "FirstReservation" }, "Response": { "Result": "Success" }, "SaleData": { "SaleReferenceID": "770223423085", "SaleTransactionID": { "TimeStamp": "2020-10-13T10:48:07+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": "H9732FO20101987180A" }, "PaymentRequest": { "PaymentData": { "PaymentType": "FirstReservation", "PaymentInstrumentData": { "PaymentInstrumentType": "Token", "CardData": { "EntryMode": "File", "SensitiveCardData": { "ExpiryDate": "1222", "PAN": "2879834888340043" } } } }, "PaymentTransaction": { "AmountsReq": { "Currency": "EUR", "RequestedAmount": "20.00" } }, "SaleData": { "OperatorID": "FOLS", "SaleTransactionID": { "TimeStamp": "2020-10-19T14:06:33+02:00", "TransactionID": "" } } } } } |
Example of response OK:
{ "SaleToPOIResponse": { "MessageHeader": { "MessageCategory": "Payment", "MessageClass": "Service", "MessageType": "Response", "POIID": "CAP", "SaleID": "w-eu-h0416FLS1", "ServiceID": "H9732FO20101987180A" }, "PaymentResponse": { "POIData": { "POITransactionID": { "TimeStamp": "2020-10-19T12:06:37", "TransactionID": "84548732360" } }, "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": "19.10.20 14:06" }, { "EndOfLineFlag": true, "Text": " KUNDENBELEG " }, { "EndOfLineFlag": true, "Text": "--------------------------------" }, { "EndOfLineFlag": true, "Text": "TERMINAL: 54094619 " }, { "EndOfLineFlag": true, "Text": "HÃ\u0084NDLER: 147777778 " }, { "EndOfLineFlag": true, "Text": "PAN: XXXXXXXXXXXX0043 " }, { "EndOfLineFlag": true, "Text": "KARTENTYP: Visa " }, { "EndOfLineFlag": true, "Text": "RESERVIERUNG " }, { "EndOfLineFlag": true, "Text": "MANUELLER EINTRAG " }, { "EndOfLineFlag": true, "Text": "VORAUSSICHT. BETRAG: 20,00 EUR" }, { "EndOfLineFlag": true, "Text": "REFERENZ: 770234303596 " }, { "EndOfLineFlag": true, "Text": "ABLAUFDATUM RESERV.: 02.11.20 " }, { "EndOfLineFlag": true, "Text": "GENEHMIGUNGS-NR.: 042712 " }, { "EndOfLineFlag": true, "Text": " (00) " }, { "EndOfLineFlag": true, "Text": " AUTORISIERUNG ERFOLGT " }, { "EndOfLineFlag": true, "Text": " KEINE KARTENINH. VERIFIZIERUNG " }, { "EndOfLineFlag": true, "Text": "BITTE FÃ\u009cR 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": "19.10.20 14:06" }, { "EndOfLineFlag": true, "Text": " HÃNDLERBELEG " }, { "EndOfLineFlag": true, "Text": "--------------------------------" }, { "EndOfLineFlag": true, "Text": "TERMINAL: 54094619 " }, { "EndOfLineFlag": true, "Text": "HÃNDLER: 147777778 " }, { "EndOfLineFlag": true, "Text": "PAN: XXXXXXXXXXXX0043 " }, { "EndOfLineFlag": true, "Text": "KARTENTYP: Visa " }, { "EndOfLineFlag": true, "Text": "RESERVIERUNG " }, { "EndOfLineFlag": true, "Text": "MANUELLER EINTRAG " }, { "EndOfLineFlag": true, "Text": "VORAUSSICHT. BETRAG: 20,00 EUR" }, { "EndOfLineFlag": true, "Text": "REFERENZ: 770234303596 " }, { "EndOfLineFlag": true, "Text": "ABLAUFDATUM RESERV.: 02.11.20 " }, { "EndOfLineFlag": true, "Text": "GENEHMIGUNGS-NR.: 042712 " }, { "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": "20.00", "Currency": "EUR" }, "OnLineFlag": "True", "PaymentAcquirerData": { "AcquirerPOIID": "54094619", "ApprovalCode": "042712", "MerchantID": "147777778" }, "PaymentInstrumentData": { "CardData": { "EntryMode": "File", "MaskedPAN": "XXXXXXXXXXXX0043", "PaymentBrand": "V", "SensitiveCardData": { "ExpiryDate": "1222" } }, "PaymentInstrumentType": "Token" }, "PaymentType": "FirstReservation", "ValidityDate": "" }, "Response": { "Result": "Success" }, "SaleData": { "SaleReferenceID": "770234303596", "SaleTransactionID": { "TimeStamp": "2020-10-19T14:06:33+02:00", "TransactionID": "" } } } } } |