This service can be used by the POS Partner (Merchant) to initiate a Payment via a Payment Terminal or via an online channel.
COMPATIBILITY
Type | Compatibility |
---|---|
Card present (CP) | Yes |
Card not present (CNP) | Yes |
REQUEST
Type | Endpoint |
---|---|
POST | /payment/v1/interface/pos/payment |
PARAMETERS
Name |
Type |
Description |
CP mandatory |
CNP mandatory |
Example |
ServerName |
string |
Name of the calling server. |
Y |
Y |
S-RF-H9732-FS1 |
WorkStationName |
String |
Name of the calling station. The workstation must be linked to the payment terminal to awake it in case of card present message. The value of this field must be communicated upstream to our support team to give the permissions to the requests coming from this station and to be able to configure the possible associated terminals in the case of CP. |
Y |
Y |
L-EU-H2323-FO |
MerchantCode |
String |
Name of the calling origin (Merchant code). |
Y |
Y |
0449 |
PartnerCode | String |
Name of the calling partner (Partner code). This code will allow to retreive transactions in the payment provider extranet. |
Y | Y | FOLS |
PosCode | String | Name of calling point of sale (Hotel, Restaurant, Bar, Spa…). Les valeurs possibles: "H" for Hotels "R" for Restaurants "S" for Spa ... |
Y | Y | H |
Token |
string |
Card token which allow Accor to know if client is present or not. |
N |
Y |
8766778345690119 |
ExpirationDate |
string |
Card expiration date Format="YYMM" |
N |
Y |
2206 |
Amount |
String |
Transaction amount |
Y |
Y |
120.00 |
Currency |
String (200) |
Transaction currency |
Y |
Y |
EUR |
Device |
Integer |
Type of device. |
Y |
Y |
CNP : 0 CP : 1 |
TransactionId | String (50) |
Transaction reference for our Payment Partner regarding the previous payment transaction. Should be present but null in this use case. This is the identifier of the payment transaction already made, this value is generated by our Payment Partner and is useful for other purposes than payment (or traceability). |
Y | Y | null |
RESPONSE
Name |
Type |
Description |
CP mandatory |
CNP mandatory |
Example |
responseCode |
String |
-> 0 : if response is OK for CNP -> 99 : if response is KO for CNP -> 10 : if response is OK for CP
Note: for CP, a polling message will follow to validate definitively the transaction. |
Y |
Y |
0 |
responseMessage |
String |
-> OPERATION_OK for CNP -> DeviceOut / OPERATION_KO for CNP -> OPERATION_IN_PROGRESS for CP
Note: this response message can contain the description of the error. |
Y |
Y |
OPERATION_OK |
responseIdentifier |
String |
Response identifier is the payment transaction Id generated by Accor Payment Interface (POS) API. It is useful for traceability purposes. |
Y |
N |
H9732FO20092518073C |
responseObject |
String |
It represents response object (see details below). This object if it exists and if it is not-null (CP), it contains the details of the payment transaction. |
N |
Y |
|
nextPollingTime |
String |
Timer reference for the next transaction in case of CP. Time is in second. It is a useful value as a proposal (to avoid unnecessary calls) for the duration before the next possible polling but it is not a constraint/obligation. Our API remains accessible and available at all times to retrieve the final payment status. |
Y |
N |
20 |
Detail of the object "responseObject"
Name |
Type |
Description |
CP mandatory |
CNP mandatory |
Example |
Token |
string |
This is the value recovered after tokenization of the card inserted in the terminal by the client for the CP use case. |
N |
Y |
8766778345690119 |
ExpirationDate |
string |
Card expiration date Format: “YYMM” |
N |
Y |
2406
|
Amount |
String |
Transaction amount |
N |
Y |
120.00 |
Currency |
String (200) |
Transaction currency Format “XXX” |
N |
Y |
EUR |
CardType |
String (200) |
Card type : VI, CA, AX Other card : JC, DC, CU, PF, BC, RU A mapping could be done depending partner. |
N |
Y |
VI |
ClientTicket |
String (1000) |
Customer receipt if payment is OK (CNP) |
N |
Y |
|
MerchantTicket |
String (1000) |
Merchant receipt if payment is OK (CNP) |
N |
Y |
|
ApprovalCode |
String (8) |
Acquirer approval code for the transaction. |
N |
Y |
041016 |
TransactionId |
String (50) |
Transaction reference for our Payment Partner regarding the payment transaction. Should be present in CNP use case. This is the identifier of the payment transaction already made, this value is generated by our Payment Partner and is useful for other purposes than payment (or traceability). |
N |
Y |
84547193121
|
ResponseCode |
String |
-> 0 : if response is OK for CNP -> 99 : if response is KO for CNP -> 10 : if response is OPERATION_IN_PROGRESS for CP
Note: for CP, a polling message will follow to validate definitely the transaction. |
N |
Y |
0 |
ResponseMessage |
String |
-> OPERATION_OK for CNP -> DeviceOut / OPERATION_KO for CNP/CP -> OPERATION_IN_PROGRESS for CP
Note: this response message can contain the description of the error. |
N |
Y |
OPERATION_OK |
POLLING MESSAGE
This service can be used by the POS Partner (Merchant) to retrieve a transaction status. (only for CP model)
Request
Type | Endpoint |
---|---|
GET | /payment/v1/interface/pos/transactions/{transactionId} |
Response
Name | Description |
---|---|
status |
OK : the transaction has been correctly processed. KO : the transaction has not been correctly processed. In progress : the transaction has not a definitive status yet. |
EXAMPLE 1
This example show request/response for a card present transaction.
Example of request :
{ "Token":"", "ExpirationDate":"", "Amount":"80.00", "Currency":"EUR", "Device":"1", "TransactionId" : "", "ServerName":"S-RF-H9732-F1", "WorkStationName":"L-5C046FG", "MerchantCode":"9732", "PartnerCode":"FOLS", "PosCode":"H" } |
Example of response :
{ "responseCode": "10", "responseMessage": "OPERATION_IN_PROGRESS", "responseIdentifier": "H9732FO20092518073C", "responseObject": "null", "nextPollingTime": "20" } |
Example of response after polling message :
3 possibilities:
- same response as response OK for Card not present.
- same response as response KO for Card not present.
- Same response as in progress response but with different nextPollingTime value.
EXAMPLE 2
This example show request/response for a card not present transaction.
Example of request :
{ "Token":"8766778345690119", "ExpirationDate":"2212", "Amount":"80.00", "Currency":"EUR", "Device":"0", "TransactionId" : "", "ServerName":"S-RF-H9732-FS1", "WorkStationName":"L-5C046FG", "MerchantCode":"9732", "PartnerCode":"FOLS", "PosCode":"H" } |
Example of response OK :
{ "responseCode": "0", "responseMessage": "OPERATION_OK", "responseIdentifier": "null", "responseObject": { "responseCode": "0", "responseMessage": "OPERATION_OK", "currency": "EUR", "cardType": "5", "clientTicket": "APOL MERCURE VALENCIENNES CENTRE Musterstr. 01 Musterstadt 90111 GERMANY -------------------------------- 24.09.20 17:16 KUNDENBELEG -------------------------------- TERMINAL: 54055584 HÃNDLER: 147777778 PAN: XXXXXXXXXXXX0119 KARTENTYP: Visa MANUELLES STORNO MANUELLER EINTRAG BETRAG: 190,00 EUR REFERENZ: 770233171212 GENEHMIGUNGS-NR.: SM5845 (00) AUTORISIERUNG ERFOLGT KEINE KARTENINH. VERIFIZIERUNG BITTE FUR IHRE UNTERLAG. AUFBEW.", "merchantTicket": "APOL MERCURE VALENCIENNES CENTRE Musterstr. 01 Musterstadt 90111 GERMANY -------------------------------- 24.09.20 17:16 HÃNDLERBELEG -------------------------------- TERMINAL: 54055584 HÃNDLER: 147777778 PAN: XXXXXXXXXXXX0119 KARTENTYP: Visa MANUELLES STORNO MANUELLER EINTRAG BETRAG: 190,00 EUR REFERENZ: 770233171212 GENEHMIGUNGS-NR.: SM5845 (00) AUTORISIERUNG ERFOLGT KEINE KARTENINH. VERIFIZIERUNG BITTE FUR IHRE UNTERLAG. AUFBEW.", "approvalCode": "041016", "token": "8766778345690119", "expirationDate": "2212", "amount": "80.00", "transactionId": "84547193121" }, "nextPollingTime": "null" } |
Example of response KO :
{ "responseCode": "99", "responseMessage": "DeviceOut", "responseIdentifier": "null", "responseObject": "null", "nextPollingTime": "null" } |