This service can be used by the Payment Connector to initiate a Payment 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/payment |
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 the 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 |
defined data structure |
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 |
Normal |
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 |
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 |
123456789876543 |
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, default Normal |
Y |
Y |
Normal |
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 |
Token |
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 |
Vérif si présent en RQ |
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 | Boolean |
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": "H9732FO20101354905P" }, "PaymentRequest": { "PaymentData": { "PaymentType": "Normal" }, "PaymentTransaction": { "AmountsReq": { "Currency": "EUR", "RequestedAmount": "2.00" } }, "SaleData": { "OperatorID": "FOLS", "SaleTransactionID": { "TimeStamp": "2020-10-13T09:53:18+02:00", "TransactionID": "" }, "TokenRequestedType": "Customer" } } } } |
Example of response :
{ "SaleToPOIResponse": { "MessageHeader": { "MessageCategory": "Payment", "MessageClass": "Service", "MessageType": "Response", "POIID": "54017810", "ProtocolVersion": "3.1", "SaleID": "w-eu-h0416FLS1", "ServiceID": "H9732FO20101354905P" }, "PaymentResponse": { "POIData": { "POITransactionID": { "TimeStamp": "2020-10-13T09:53:38.581", "TransactionID": "770223420327" } }, "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 09:53:31" }, { "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: XXXXXXXXXXXX0043" }, { "EndOfLineFlag": true, "Text": "AID: A0000000031010" }, { "EndOfLineFlag": true, "Text": "CARD TYPE: V" }, { "EndOfLineFlag": true, "Text": "EMV CHIP" }, { "EndOfLineFlag": true, "Text": " PAYMENT" }, { "EndOfLineFlag": true, "Text": "REFERENCE: 799" }, { "EndOfLineFlag": true, "Text": "MERCHANT CURRENCY AMOUNT: EUR 2,00" }, { "EndOfLineFlag": true, "Text": "" }, { "EndOfLineFlag": true, "Text": "EXCHANGE RATE: 1.5502" }, { "EndOfLineFlag": true, "Text": "EXCHANGE MARGIN: 3%" }, { "EndOfLineFlag": true, "Text": "AMOUNT: SGD 3,10" }, { "EndOfLineFlag": true, "Text": "" }, { "EndOfLineFlag": true, "Text": "I recognise that I was given a choice of payment currencies and that I could have paid in EUR. I accept the ExchangeRate used to perform the currency conversion and that my decision to pay in SGD is final." }, { "EndOfLineFlag": true, "Text": "" }, { "EndOfLineFlag": true, "Text": "AUTHORISATION CODE: 036877" }, { "EndOfLineFlag": true, "Text": "CARD TOKEN: 2879834888340043" }, { "EndOfLineFlag": true, "Text": " (00)" }, { "EndOfLineFlag": true, "Text": " APPROVED" }, { "EndOfLineFlag": true, "Text": " ONLINE PIN" }, { "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 09:53:31" }, { "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: XXXXXXXXXXXX0043" }, { "EndOfLineFlag": true, "Text": "AID: A0000000031010" }, { "EndOfLineFlag": true, "Text": "CARD TYPE: V" }, { "EndOfLineFlag": true, "Text": "EMV CHIP" }, { "EndOfLineFlag": true, "Text": " PAYMENT" }, { "EndOfLineFlag": true, "Text": "REFERENCE: 799" }, { "EndOfLineFlag": true, "Text": "MERCHANT CURRENCY AMOUNT: EUR 2,00" }, { "EndOfLineFlag": true, "Text": "" }, { "EndOfLineFlag": true, "Text": "EXCHANGE RATE: 1.5502" }, { "EndOfLineFlag": true, "Text": "EXCHANGE MARGIN: 3%" }, { "EndOfLineFlag": true, "Text": "AMOUNT: SGD 3,10" }, { "EndOfLineFlag": true, "Text": "" }, { "EndOfLineFlag": true, "Text": "I recognise that I was given a choice of payment currencies and that I could have paid in EUR. I accept the ExchangeRate used to perform the currency conversion and that my decision to pay in SGD is final." }, { "EndOfLineFlag": true, "Text": "" }, { "EndOfLineFlag": true, "Text": "AUTHORISATION CODE: 036877" }, { "EndOfLineFlag": true, "Text": " (00)" }, { "EndOfLineFlag": true, "Text": " APPROVED" }, { "EndOfLineFlag": true, "Text": " ONLINE PIN" }, { "EndOfLineFlag": true, "Text": " PLEASE RETAIN FOR YOUR RECORDS" } ] }, "RequiredSignatureFlag": false } ], "PaymentResult": { "AmountsResp": { "AuthorizedAmount": "2.00", "Currency": "EUR" }, "CurrencyConversion": [ { "ConvertedAmount": { "AmountValue": "3.10", "Currency": "SGD" }, "CustomerApprovedFlag": true, "Declaration": "I recognise that I was given a choice of payment currencies and that I could have paid in EUR. I accept the ExchangeRate used to perform the currency conversion and that my decision to pay in SGD is final.", "Markup": "3", "Rate": "155.0200" } ], "PaymentAcquirerData": { "AcquirerID": "1", "AcquirerPOIID": "54017810", "ApprovalCode": "036877", "MerchantID": "640500100" }, "PaymentInstrumentData": { "CardData": { "EntryMode": "ICC", "MaskedPAN": "XXXXXXXXXXXX0043", "PaymentBrand": "V", "PaymentToken": { "TokenRequestedType": "Customer", "TokenValue": "2879834888340043" }, "SensitiveCardData": { "ExpiryDate": "1222" } }, "PaymentInstrumentType": "Card" }, "PaymentType": "Normal" }, "Response": { "Result": "Success" }, "SaleData": { "SaleTransactionID": { "TimeStamp": "2020-10-13T09:53:18+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": "H9732FO20101385326P" }, "PaymentRequest": { "PaymentData": { "PaymentType": "Normal", "PaymentInstrumentData": { "PaymentInstrumentType": "Token", "CardData": { "EntryMode": "File", "SensitiveCardData": { "ExpiryDate": "1222", "PAN": "2125534309170050" } } } }, "PaymentTransaction": { "AmountsReq": { "Currency": "EUR", "RequestedAmount": "5.00" } }, "SaleData": { "OperatorID": "FOLS", "SaleTransactionID": { "TimeStamp": "2020-10-13T10:20:10+02:00", "TransactionID": "" } } } } } |
Example of response OK:
{ "SaleToPOIResponse": { "MessageHeader": { "MessageCategory": "Payment", "MessageClass": "Service", "MessageType": "Response", "POIID": "CAP", "SaleID": "w-eu-h0416FLS1", "ServiceID": "H9732FO20101385326P" }, "PaymentResponse": { "POIData": { "POITransactionID": { "TimeStamp": "2020-10-13T08:20:14", "TransactionID": "84542659230" } }, "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:20" }, { "EndOfLineFlag": true, "Text": " KUNDENBELEG " }, { "EndOfLineFlag": true, "Text": "--------------------------------" }, { "EndOfLineFlag": true, "Text": "TERMINAL: 54040554 " }, { "EndOfLineFlag": true, "Text": "HÃ\u0084NDLER: 147777778 " }, { "EndOfLineFlag": true, "Text": "PAN: XXXXXXXXXXXX0050 " }, { "EndOfLineFlag": true, "Text": "KARTENTYP: Visa " }, { "EndOfLineFlag": true, "Text": "ZAHLUNG " }, { "EndOfLineFlag": true, "Text": "MANUELLER EINTRAG " }, { "EndOfLineFlag": true, "Text": "BETRAG: 5,00 EUR" }, { "EndOfLineFlag": true, "Text": "REFERENZ: 770223421735 " }, { "EndOfLineFlag": true, "Text": "GENEHMIGUNGS-NR.: 063275 " }, { "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": "13.10.20 10:20" }, { "EndOfLineFlag": true, "Text": " HÃ\u0084NDLERBELEG " }, { "EndOfLineFlag": true, "Text": "--------------------------------" }, { "EndOfLineFlag": true, "Text": "TERMINAL: 54040554 " }, { "EndOfLineFlag": true, "Text": "HÃ\u0084NDLER: 147777778 " }, { "EndOfLineFlag": true, "Text": "PAN: XXXXXXXXXXXX0050 " }, { "EndOfLineFlag": true, "Text": "KARTENTYP: Visa " }, { "EndOfLineFlag": true, "Text": "ZAHLUNG " }, { "EndOfLineFlag": true, "Text": "MANUELLER EINTRAG " }, { "EndOfLineFlag": true, "Text": "BETRAG: 5,00 EUR" }, { "EndOfLineFlag": true, "Text": "REFERENZ: 770223421735 " }, { "EndOfLineFlag": true, "Text": "GENEHMIGUNGS-NR.: 063275 " }, { "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": "5.00", "Currency": "EUR" }, "OnlineFlag": "True", "PaymentAcquirerData": { "AcquirerPOIID": "54040554", "ApprovalCode": "063275", "MerchantID": "147777778" }, "PaymentInstrumentData": { "CardData": { "EntryMode": "File", "MaskedPAN": "XXXXXXXXXXXX0050", "PaymentBrand": "V", "SensitiveCardData": { "ExpiryDate": "1222" } }, "PaymentInstrumentType": "Token" }, "PaymentType": "Normal" }, "Response": { "Result": "Success" }, "SaleData": { "SaleTransactionID": { "TimeStamp": "2020-10-13T10:20:10+02:00", "TransactionID": "" } } } } } |
Example of response KO :
{ "SaleToPOIResponse": { "MessageHeader": { "MessageCategory": "Payment", "MessageClass": "Service", "MessageType": "Response", "SaleID": "w-eu-h0416FLS1", "POIID": "CAP", "ServiceID": "H0449FO18082500002P" }, “PaymentResponse”: { “Response”: { “Result”: “Failure”, “ErrorCondition”: “MessageFormat”, “AdditionalResponse”:”422: [96] - Scheme or Issuer currently cannot authorize” } } } } |