...
Component | Mult. | Rule | Usage |
---|---|---|---|
PaymentRequest | [1..1] |
| |
SaleData | [1..1] |
| Yes |
OperatorID | [0..1] | If different from the Login. | No |
OperatorLanguage | [0..1] | If different from the Login. | No |
ShiftNumber | [0..1] | If different from the Login. | No |
SaleTransactionID | [1..1] |
| Yes |
TransactionID | [1..1] |
|
|
TimeStamp | [1..1] |
|
|
SaleReferenceID | [0..1] | If payment reservation. | No |
SaleTerminalData | [0..1] | If content is not empty. | No |
TerminalEnvironment | [0..1] | If modified since the login. |
|
SaleCapabilities | [0..1] | If modified since the login (devices failures). |
|
TotalsGroupID | [0..1] | If modified since, or not in the login and used by the Sale System. |
|
SaleToPOIData | [0..1] | Stored with the transaction. | No |
SaleToAcquirerData | [0..1] | Send to the Acquirer if present. | No |
SaleToIssuerData | [0..1] | Send to the Acquirer if present. | No |
StatementReference | [0..1] | Information to print on the bank statement. | No |
PaymentTransaction | [1..1] |
|
|
AmountsReq | [1..1] |
|
|
Currency | [1..1] |
| Yes |
RequestedAmount | [0..1] | Yes | |
CashBackAmount | [0..1] | If payment with cash back requested by the Sale System. | Yes |
TipAmount | [0..1] | If this attribute is present with value 0 then tipping is disabled for the transaction. Otherwise it is ignored. Note that this attribute does not specify the amount of tip to be applied. | No |
PaidAmount | [0..1] | If SplitPaymentFlag is True. | No |
MinimumAmountToDeliver | [0..1] | If unknown maximum amount for a OneTimeReservation or minimum amount requested by the Sale System. | No |
MaximumCashBackAmount | [0..1] | Maximum amount which could be requested for cash-back to the Sale System. | No |
MinimumSplitAmount | [0..1] | Minimum amount of a split, which could be requested. | No |
OriginalTransaction | [0..1] | If UpdateReservation, Completion or Refund. | No |
POITransactionID | [0..1] | If SaleReferenceID is insufficient to identify the transaction. |
|
TransactionID | [1..1] |
|
|
TimeStamp | [1..1] |
|
|
POIID | [0..1] | If original transaction is coming from another POI. | No |
ReuseCardDataFlag | [0..1] | Default True. | No |
ApprovalCode | [0..1] | If referral. | No |
TransactionConditions | [0..1] | If one data element is present. | Yes |
AllowedPaymentBrand | [0..n] | Restrict brand if present. | No |
AllowedLoyaltyBrand | [0..n] | Restrict brand if present. | No |
LoyaltyHandling | [0..1] | Default Allowed. | No |
CustomerLanguage | [0..1] | If the language is selected by the Customer on the Sale System before the request to the POI. | No |
ForceOnlineFlag | [0..1] | Default False. Go online if data sent. | No |
ForceEntryMethod | [0..n] | Restrict entry mode if sent and no PaymentData or LoyaltyData.CardAcquisitionReference | No |
MerchantCategoryCode | [0..1] | The payment implies a specific MCC. | No |
AllowChipXpress | [0..1] | Default true. Set false to disable the ChipXpress feature. | Yes |
WaitCardRemoval | [0..1] | Default true. Set to false to complete the transaction, i.e. to send the PaymentResponse message, without waiting for the card to be removed. | Yes |
DisableTip | [0..1] | Default false. Set to true to disable tip entry for the transaction. | Yes |
DisableBankAxept | [0..1] | Default false. Set to true to disable the special handling rules that apply to BankAxept cards. | Yes |
SaleItem | [0..n] | If purchased products are required for the payment or loyalty. | Yes |
ItemID | [1..1] | Ignored, but required by the message schema when the SaleItem element is present. | Yes |
ProductCode | [1..1] | Produce group / code value. This is not directly used by the payment application but can be relevant to the authorisation system | Yes |
EanUpc | [0..1] | If data sent, POI has to store it and send it if the host protocol allows it. | No |
UnitOfMeasure | [0..1] |
| No |
Quantity | [0..1] | If data sent, POI has to store it and send it if the host protocol allows it. | No |
UnitPrice | [0..1] |
| No |
ItemAmount | [1..1] | Ignored, but required by the message schema when the SaleItem element is present. | Yes |
TaxCode | [0..1] | If data sent, POI has to store it and send it if the host protocol allows it. | No |
SaleChannel | [0..1] | If data sent, POI has to store it and send it if the host protocol allows it. | No |
AdditionalProductInfo | [0..1] | If data sent, POI has to store it and send it if the host protocol allows it. | No |
PaymentData | [0..1] | If one data element is present. | Yes |
PaymentType | [0..1] | Default "Normal", indicating a purchase. Other options are "Refund" and "CashAdvance". | Yes |
Method | [0..1] | If the ECR wants/needs to require the PA to use a specific Alternative Payment Method, the name of that method is supplied here. Currently we support one of these vaues: "Swish", "Vipps", "Klarna". | Yes |
ReferenceNumber | [0..1] | If this is a reversal of a purchase made using an Alternative Payment Method, the reversal requires the reference number of the original transaction here. | Yes |
SplitPaymentFlag | [0..1] | Default False. | No |
RequestedReservationTimePeriod | [0..1] | If time period of the OneTimeReservation, | No |
CardAcquisitionReference | [0..1] | If the card data comes from a previous CardAcquisition. | No |
TransactionID | [1..1] |
| No |
TimeStamp | [1..1] |
| No |
PaymentInstrumentData | [0..1] | If payment instrument data are read by the Sale System. | Yes |
PaymentInstrumentType | [1..1] | Only "Card" is accepted. | Yes |
CardData | [0..1] | If PaymentInstrumentType is "Card". Note: PCI payment card data will not be accepted by this method. | Yes |
EntryMethod | [1..1] | Entry mode of the payment instrument, i.e. Magstripe or Manual | Yes |
SensitiveCardData | [0..1] | If structure non empty (could be CMS protected EnvelopedData). | Yes |
PAN | [0..1] | If EntryMethod is File, Keyed or Manual. | Yes |
CardSeqNumb | [0..1] | If EntryMethod is File, Keyed or Manual and data available on the card. | No |
ExpirationDate | [0..1] | If EntryMethod is File, Keyed or Manual and data available on the card. | Yes |
TrackData | [0..3] | If EntryMethod is MagStripe or RFID. | Yes |
TrackNumb | [0..1] | Default 2. | No |
TrackFormat | [0..1] | Default ISO. | No |
TrackValue | [1..1] |
| Yes |
CheckData | [0..1] | If PaymentInstrumentType is "Check". | No |
BankID | [0..1] | Mandatory if TrackData absent. |
|
AccountNumber | [0..1] | Mandatory if TrackData absent. |
|
CheckNumber | [0..1] | Mandatory if TrackData absent. |
|
TrackData | [0..1] | Mandatory if CheckNumber absent. |
|
TrackNumb | [0..1] | Default 2. |
|
TrackFormat | [1..1] | "E-13B" or "CMC-7". |
|
TrackValue | [1..1] |
|
|
CheckCardNumber | [0..1] | If provided by the customer. |
|
TypeCode | [0..1] | Default Personal. |
|
Country | [0..1] | Absent if country of the Sale system. |
|
MobileData | [0..1] | If PaymentInstrumentType is "Mobile". | No |
MobileCountryCode | [0..1] | If data available. |
|
MobileNetworkCode | [0..1] | If data available. |
|
MaskedMSISDN | [0..1] | If data available. |
|
Geolocation | [0..1] | If data available. |
|
ProtectedMobileData | [0..1] | SensitiveMobileData protected by CMS EnvelopedData. |
|
SensitiveMobileData | [0..1] | If unprotected mobile data. |
|
IMSI | [1..1] |
|
|
IMSI | [0..1] | If data available. |
|
IMEI | [0..1] | If data available. |
|
LoyaltyData | [0..n] | Loyalty cards used with the payment transaction and read by the Sale System. | No |
CardAcquisitionReference | [0..1] | See Loyalty request. |
|
TransactionID | [1..1] |
|
|
TimeStamp | [1..1] |
|
|
LoyaltyAccountID | [0..1] | See Loyalty request. |
|
EntryMethod | [1..1] |
|
|
IdentificationType | [1..1] |
|
|
LoyaltyID | [1..1] |
|
|
LoyaltyAmount | [0..1] | When the Sale System want to make an additional award the Loyalty account. |
|
LoyaltyUnit | [0..1] | See Loyalty request. |
|
Currency | [0..1] | See Loyalty request. |
|
AmountValue | [1..1] |
|
|
...
<SaleToPOIRequest> <MessageHeader MessageClass="Service" MessageCategory="Payment" MessageType="Request" ServiceID="4779" WorkstationID="" POIID="52400004" /> <PaymentRequest> <SaleData> <SaleTransactionID TransactionID="2587" TimeStamp="2017-07-05T17:04:50.0539062+01:00" /> </SaleData> <PaymentTransaction> <AmountsReq Currency="SEK" RequestedAmount="1000" CashBackAmount="0" TipAmount="0.00" /> <TransactionConditions LoyaltyHandling="Forbidden" /> </PaymentTransaction> <PaymentData PaymentType="Normal"> <PaymentInstrumentData PaymentInstrumentType="Card"> <CardData EntryMethod="Manual"> <SensitiveCardData PAN="5301250070000050" CardSeqNumb="01" ExpirationDate="0415" /> </CardData> </PaymentInstrumentData> </PaymentData> </PaymentRequest> </SaleToPOIRequest>
Payment request example (specifying Alternative Payment Method to use)
<SaleToPOIRequest>
<MessageHeader MessageClass="Service" MessageCategory="Payment" MessageType="Request" ServiceID="4779" WorkstationID="" POIID="52400004" />
<PaymentRequest>
<SaleData>
<SaleTransactionID TransactionID="2587" TimeStamp="2017-07-05T17:04:50.0539062+01:00" />
</SaleData>
<PaymentTransaction>
<AmountsReq Currency="SEK" RequestedAmount="1000" CashBackAmount="0" TipAmount="0.00" />
<TransactionConditions LoyaltyHandling="Forbidden" />
</PaymentTransaction>
<PaymentData PaymentType="Normal" Method="Swish" />
</PaymentRequest>
</SaleToPOIRequest>
Payment response message
PaymentResponse | Mult. | Rule | Usage |
---|---|---|---|
PaymentResponse | [1..1] |
|
|
Response | [1..1] |
|
|
Result | [1..1] | "Success" or "Failure". | Yes |
ErrorCondition | [0..1] | Error classification in the failure case. See 2.7.5.3 in the EPAS specification. | Yes |
AdditionalResponse | [0..1] | Description of the problem in the failure case. | Yes |
POIData | [1..1] |
|
|
POITransactionID | [1..1] |
|
|
TransactionID | [1..1] |
| Yes |
TimeStamp | [1..1] |
| Yes |
BatchID | [0..1] | If Result is Success or Partial. | No |
PaymentResult | [0..1] | If one data element is present. | Yes |
PaymentType | [0..1] | Copy, default Normal. | Yes |
PaymentInstrumentData | [0..1] | If a payment instrument is analysed by the POI. | No |
PaymentInstrumentType | [1..1] |
|
|
CardData | [0..1] | If PaymentInstrumentType is "Card". |
|
PaymentBrand | [0..1] | If card PAN is readable. |
|
MaskedPAN | [0..1] | If required for the card, instead of clear PAN. |
|
EntryMethod | [1..1] | Copy if present in the request. |
|
CardCountryCode | [0..1] | If available in the card. |
|
ProtectedCardData | [0..1] | SensitiveCardData protected by CMS EnvelopedData. |
|
SensitiveCardData | [0..1] | If structure non empty (unprotected). |
|
PAN | [0..1] | If card PAN is readable. |
|
CardSeqNumb | [0..1] | If data available on the card. |
|
ExpirationDate | [0..1] | If data available on the card. |
|
TrackData | [0..4] | If configured to be sent, and EntryMethod is |
|
TrackNumb | [0..1] | Default 2. |
|
TrackFormat | [0..1] | Default ISO. |
|
TrackValue | [1..1] |
|
|
CheckData | [0..1] | If PaymentInstrumentType is "Check". | No |
BankID | [0..1] | Mandatory if TrackData absent. |
|
AccountNumber | [0..1] | Mandatory if TrackData absent. |
|
CheckNumber | [0..1] | Mandatory if TrackData absent. |
|
TrackData | [0..1] | Mandatory if CheckNumber absent. |
|
TrackNumb | [0..1] | Default 2. |
|
TrackFormat | [1..1] | "E-13B" or "CMC-7". |
|
TrackValue | [1..1] |
|
|
CheckCardNumber | [0..1] | If provided by the customer. |
|
TypeCode | [0..1] | Default Personal. |
|
Country | [0..1] | Absent if country of the Sale system. |
|
MobileData | [0..1] | If PaymentInstrumentType is "Mobile". | No |
MobileCountryCode | [0..1] | If data available. |
|
MobileNetworkCode | [0..1] | If data available. |
|
MaskedMSISDN | [0..1] | If data available. |
|
Geolocation | [0..1] | If data available. |
|
ProtectedMobileData | [0..1] | SensitiveMobileData protected by CMS EnvelopedData. |
|
SensitiveMobileData | [0..1] | If unprotected mobile data. |
|
MSISDN | [1..1] |
|
|
IMSI | [0..1] | If data available. |
|
IMEI | [0..1] | If data available. |
|
AmountsResp | [0..1] | If Result is Success or Partial. |
|
AuthorizedAmount | [1..1] |
| Yes |
TotalRebatesAmount | [0..1] | If rebate on the total amount or rebate on individual products. | No |
TotalFeesAmount | [0..1] | If fees to be charged from a financial service. | No |
CashBackAmount | [0..1] | If cashback service was performed with the payment. | No |
TipAmount | [0..1] | If payment with tip requested by the Sale System. | No |
CurrencyConversion | [0..n] | If currency conversion the Sale needs to know. | No |
ConvertedAmount | [1..1] |
|
|
AmountValue | [1..1] |
|
|
Currency | [1..1] |
|
|
ForeignAmount | [0..1] | If the amount before conversion is required. |
|
Declaration | [0..1] | If a declaration has to be presented to the customer. |
|
MerchantOverrideFlag | [0..1] | Default "False". If payment forced by the Cashier. | No |
AllowedReservationTimePeriod | [0..1] | If OneTimeReservation, FirstReservation or | No |
AllowedProduct | [0..n] | If ErrorCondition is "PaymentRestriction" (some | No |
PaymentAcquirerData | [0..1] | If card PAN is readable. | No |
AcquirerID | [0..1] | If several Acquirers. |
|
AcquirerPOIID | [1..1] |
|
|
AcquirerTransactionID | [0..1] | If provided by the Acquirer. |
|
TransactionID | [1..1] |
|
|
TimeStamp | [1..1] |
|
|
ApprovalCode | [0..1] | If available. |
|
ReconciliationID | [0..1] | If provided by the Acquirer. |
|
LoyaltyResult | [0..n] | Loyalty cards used with the payment transaction. First the loyalty account present in the request in the same order if any. | No |
LoyaltyAccount | [1..1] |
|
|
LoyaltyAccountID | [1..1] |
|
|
EntryMethod | [1..1] |
|
|
IdentificationType | [1..1] |
|
|
IdentificationSupport | [1..1] |
|
|
LoyaltyID | [1..1] |
|
|
LoyaltyBrand | [0..1] |
|
|
CurrentBalance | [0..1] |
|
|
LoyaltyAmount | [0..1] |
|
|
LoyaltyUnit | [0..1] |
|
|
Currency | [0..1] |
|
|
AmountValue | [1..1] |
|
|
LoyaltyAcquirerData | [0..1] |
|
|
LoyaltyAcquirerID | [0..1] |
|
|
ApprovalCode | [0..1] |
|
|
LoyaltyTransactionID | [0..1] |
|
|
TransactionID | [1..1] |
|
|
TimeStamp | [1..1] |
|
|
ReconciliationID | [0..1] |
|
|
Rebates | [0..1] |
|
|
TotalRebate | [0..1] |
|
|
RebateLabel | [0..1] |
|
|
SaleItemRebate | [0..n] |
|
|
ItemID | [1..1] |
|
|
ProductCode | [1..1] |
|
|
UnitOfMeasure | [0..1] |
|
|
Quantity | [0..1] |
|
|
ItemAmount | [0..1] |
|
|
RebateLabel | [0..1] |
|
|
...