Skip to Content

SAP Business ByDesign (ByD) is a cloud ERP suite that can be used as ERP backend for a point of sales (PoS) system. for this purpose SAP Business ByDesign provides the prepackaged integration scenario “Point-of-Sale Transactions Integration” to connect the PoS system with ByD using web services.

SAP Business ByDesign (ByD) provides web services to create Point Of Sales transactions in context of three main business use cases:

  • Sales Transactions: Using web service APIs you can create and release PoS sales transactions that can be viewed in ByD UI.
  • Cash Transactions: Using the same web service APIs you can create and release cash transactions, which is an another type of PoS transaction in ByD.
  • Sales Summaries : Using the same web service APIs you can create and release Sales Summary transactions, which is the 3rd  type of PoS transaction in ByD.

This blog post provides you with an overview on ByD web services used for the above 3 use cases and considers some frequently asked questions related to point of sales integration scenarios.

Additionally to the web services that are subject of this blog post, ByD offers further web service APIs and OData APIs:

  • ByDesign web service APIs on SAP Help Integration Web Service APIs
  • OData for Analytics can be used to access ByD point of sales reports; you find a detailed description in our ByD Community: OData for SAP Business ByDesign Analytics.
  • The work center view OData Services can be used to assemble your own custom OData services to access ByD point of sales. This API is designed for UI-like remote applications that interactively query, read, create, update or perform actions on ByD point of sales.

However, ByD OData capabilities might be subject of some other blog post in the future.

 

Point of Sales Web Service API

SAP Business ByDesign provides a web service API to create point of sales transactions:

The web service API PointOfSaleTransactionProcessingPointOfSaleTransactionIn is designed to create and release point of sales instance. You find a detailed documentation with examples for all web service APIs on SAP Help > Integration > Web Service APIs. Please check as well the general ByD web service documentation that is linked in the API documentation in chapter “General Information“.

The service interface PointOfSaleTransactionProcessingPointOfSaleTransactionIn has a single service operation MaintainPointOfSaleTransactionBundle. The message structure of this service operation is described below. It contains (apart from the technical header) a bundle of point-of-sale transactions. We support both web-service protocols: reliable messaging and plain soap. Our recommendation is to use reliable messaging.

In general the inbound service interface is error-tolerant. This means that inconsistent data is accepted. Inconsistent point-of-sale transactions are visible in the monitoring UI but cannot be released due to their consistency status. There are three exceptions to this behavior:

  • Missing or invalid company ID on the element PointOfSaleTransactionBundleNotification (corresponding master data does not exist)
  • Missing or invalid point-of-sale transaction type code on the message element PointOfSaleTransactionBundleNotification (valid values are ‘1’ and ‘2’)
  • Missing or invalid SenderParty-InternalID on the element MessageHeader
    In these cases the message will be rejected and a communication error task will be created that can be processed in the Application and User Management work center.

A Point-of-Sale Transaction can be of type Retail Transaction, Cash Transaction or Summary Transaction.
The UI term for the Retail Transaction is Sales Transaction. The UI term for Summary Transaction is Sales Summary.

 

Element Details and Consistency Conditions

In this section we give description of all relevant sub-elements for each element in the message structure is given, as well as a list of conditions that must be considered in order to avoid inconsistent instances in the ByDesign system. These consistency conditions can be structural, that is, related to the existence and location of the different elements in the message; or it can be related to the content of the elements (for example, data in a wrong format will cause the transaction to be considered inconsistent). Note that the lists of integrity conditions may not be complete.

 

MessageHeader:

 

The SenderParty-Internal ID must be provided with a valid CommunicationSystemID (master data exists), or else the message will not be accepted by ByDesign (see chapter Error! Reference source not found.).

<MessageHeader>
 <ID schemeID ="INVOIC">00000000123456</ID>
 <CreationDateTime>2010-10-28T06:59:46Z</CreationDateTime>
 <SenderParty>
  <InternalID schemeID=”CommunicationSystemID” schemeAgencyID=”310”>TICKETSALE_001</InternalID>
 </SenderParty>
 <BusinessScope>
  <TypeCode>3</TypeCode>
  <ID>301</ID>
 </BusinessScope>
 <BusinessScope>
  <TypeCode>2</TypeCode>
  <ID>300</ID>
 </BusinessScope>
</MessageHeader> 

 

PointOfSaleTransactionBundleNotification:


Examples

The first example is an anonymous cash sale with German VAT. The sales item does not contain the (optional) reference to a project task. The cash item has only filled the cash storage ID and the amount. There is no buyer or payer information available.

<n0:PointOfSaleTransactionBundleNotification xmlns:n0="http://sap.com/xi/SAPGlobal20/Global">
 <MessageHeader>
  <ID schemeID ="INVOIC">00000000123456</ID>
  <CreationDateTime>2010-08-30T13:17:09Z</CreationDateTime>
  <SenderParty>
   <InternalID schemeID="CommunicationSystemID" schemeAgencyID="310">TICKETSALE_001</InternalID>
  </SenderParty>
  <BusinessScope>
   <TypeCode>3</TypeCode>
   <ID>301</ID>
  </BusinessScope>
  <BusinessScope>
   <TypeCode>2</TypeCode>
   <ID>300</ID>
  </BusinessScope>
 </MessageHeader>
 <PointOfSaleTransactionBundleNotification>
  <ExternalID>981709873</ExternalID>
  <Note>Document Header Text</Note>
  <TypeCode>1</TypeCode>
  <BusinessTransactionDate>2010-10-22</BusinessTransactionDate>
  <CompanyID>MDEC10000</CompanyID>
  <RetailTransaction>
   <TotalGrossAmount currencyCode="EUR">119.0</TotalGrossAmount>
   <TotalNetAmount currencyCode="EUR">100.0</TotalNetAmount>
   <TotalTaxAmount currencyCode="EUR">19.0</TotalTaxAmount>
   <SalesUnitID>MC42111</SalesUnitID>
   <RetailTransactionSalesItem>
    <TypeCode>1</TypeCode>
    <ExternalID>1</ExternalID>
    <Note>Sales Item Text</Note>
    <GrossAmount currencyCode="EUR">119.0</GrossAmount>
    <NetAmount currencyCode="EUR">100.0</NetAmount>
    <TaxAmount currencyCode="EUR">19.0</TaxAmount>
    <TaxationCharacteristicsCode listID="DE">501</TaxationCharacteristicsCode>
    <TaxCountryCode>DE</TaxCountryCode>
    <AccountingCodingBlockAssignment>
     <AccountingCodingBlock>
      <GeneralLedgerAccountAliasCode>A-1500</GeneralLedgerAccountAliasCode>
     </AccountingCodingBlock>
    </AccountingCodingBlockAssignment>
   </RetailTransactionSalesItem>
   <RetailTransactionProductTaxItem>
    <ExternalID>2</ExternalID>
    <TaxCountryCode>DE</TaxCountryCode>
    <ProductTaxationCharacteristicsCode listID="DE">501</ProductTaxationCharacteristicsCode>
    <BusinessTransactionCurrencyAmount currencyCode="EUR">19</BusinessTransactionCurrencyAmount>
   </RetailTransactionProductTaxItem>
   <RetailTransactionCashItem>
    <ExternalID>3</ExternalID>
    <CashPayment>
     <CashStorageID>100005 HAUPTKASSE</CashStorageID>
    </CashPayment>
    <BusinessTransactionCurrencyAmount currencyCode="EUR">119.0</BusinessTransactionCurrencyAmount>
   </RetailTransactionCashItem>
  </RetailTransaction>
 </PointOfSaleTransactionBundleNotification>
</n0:PointOfSaleTransactionBundleNotification>

The next example is a ticket sale with an unsettled credit card payment. The credit card settlement is to be done in SAP Business ByDesign. The sales item contains the (optional) reference to a project task.

<nm:PointOfSaleTransactionBundleNotification xmlns:nm="http://sap.com/xi/SAPGlobal20/Global">
 <MessageHeader>
  <ID schemeID ="INVOIC">00000000123457</ID>
  <CreationDateTime>2010-10-28T06:59:46.018472Z</CreationDateTime>
  <SenderParty>
   <InternalID schemeID="CommunicationSystemID" schemeAgencyID="310">TICKETSALE_001</InternalID>
  </SenderParty>
  <BusinessScope>
   <TypeCode>3</TypeCode>
   <ID>301</ID>
  </BusinessScope>
  <BusinessScope>
   <TypeCode>2</TypeCode>
   <ID>300</ID>
  </BusinessScope>
 </MessageHeader>
 <PointOfSaleTransactionBundleNotification>
  <ExternalID>BR20110207_1010280659462</ExternalID>
  <TypeCode>1</TypeCode>
  <BusinessTransactionDate>2010-10-28</BusinessTransactionDate>
  <CompanyID>MDEC10000</CompanyID>
  <RetailTransaction>
   <TotalGrossAmount currencyCode="EUR">119.0</TotalGrossAmount>
   <TotalNetAmount currencyCode="EUR">100.0</TotalNetAmount>
   <TotalTaxAmount currencyCode="EUR">19.0</TotalTaxAmount>
   <DistributionChannelCode>01</DistributionChannelCode>
   <SalesUnitID>MDEC42100</SalesUnitID>
   <BuyerBusinessPartnerInternalID>MDEC9785</BuyerBusinessPartnerInternalID>
   <RetailTransactionSalesItem>
    <TypeCode>1</TypeCode>
    <ExternalID>1</ExternalID>
    <GrossAmount currencyCode="EUR">119.0</GrossAmount>
    <NetAmount currencyCode="EUR">100.0</NetAmount>
    <TaxAmount currencyCode="EUR">19.0</TaxAmount>
    <Quantity unitCode="EA">1.0</Quantity>
    <QuantityTypeCode>EA</QuantityTypeCode>
    <TaxCountryCode>DE</TaxCountryCode>
    <TaxationCharacteristicsCode listID="DE">501</TaxationCharacteristicsCode>
    <AccountingCodingBlockAssignment>
     <AccountingCodingBlock>
      <GeneralLedgerAccountAliasCode>A-1500</GeneralLedgerAccountAliasCode>
      <ProjectReference>
       <ProjectElementID>MDEC-1239-1</ProjectElementID>
      </ProjectReference>
     </AccountingCodingBlock>
    </AccountingCodingBlockAssignment>
   </RetailTransactionSalesItem>
   <RetailTransactionProductTaxItem>
    <ExternalID>2</ExternalID>
    <TaxCountryCode>DE</TaxCountryCode>
    <ProductTaxationCharacteristicsCode listID="DE">501</ProductTaxationCharacteristicsCode>
    <BusinessTransactionCurrencyAmount currencyCode="EUR">19.0</BusinessTransactionCurrencyAmount>
   </RetailTransactionProductTaxItem>
   <RetailTransactionCashItem>
    <ExternalID>3</ExternalID>
    <CreditCardPayment>
     <ClearingHouseAccountID>FOP_CHA1250</ClearingHouseAccountID>
     <CreditCardKey>
      <ID>5555555555554444</ID>
      <TypeCode>3</TypeCode>
     </CreditCardKey>
     <Authorisation>
      <PayeeID>111111</PayeeID>
      <ClearingHouseID>9999999</ClearingHouseID>
      <ProviderID>XX-201010280659461</ProviderID>
      <DateTime timeZoneCode="CET">2010-10-28T06:59:46Z</DateTime>
      <PaymentCardTransactionTypeCode/>
      <PreAuthorisationIndicator/>
      <Amount currencyCode="EUR">119.0</Amount>
      <ExpirationDateTime timeZoneCode="CET">2010-11-28T06:59:46Z</ExpirationDateTime>
      <ActiveIndicator/>
      <AppliedIndicator/>
      <ResultCode>1</ResultCode>
      <ResultDescription>Authorization successful</ResultDescription>
     </Authorisation>
     <SettlementProcessedIndicator>false</SettlementProcessedIndicator>
     <SettlementBatchRequesterID/>
    </CreditCardPayment>
    <PayerBusinessPartnerInternalID>MDEC9785</PayerBusinessPartnerInternalID>
    <BusinessTransactionCurrencyAmount currencyCode="EUR">119.0</BusinessTransactionCurrencyAmount>
   </RetailTransactionCashItem>
  </RetailTransaction>
 </PointOfSaleTransactionBundleNotification>
</nm:PointOfSaleTransactionBundleNotification> 

The following example describes a ticket sale with invoicing. The sale is tax free.

<nm:PointOfSaleTransactionBundleNotification xmlns:nm="http://sap.com/xi/SAPGlobal20/Global">
 <MessageHeader>
  <ID schemeID ="INVOIC">00000000123458</ID>
  <CreationDateTime>2010-10-28T08:07:29.756926Z</CreationDateTime>
  <SenderParty>
   <InternalID schemeID="CommunicationSystemID" schemeAgencyID="310">TICKETSALE_001</InternalID>
  </SenderParty>
  <BusinessScope>
   <TypeCode>3</TypeCode>
   <ID>301</ID>
  </BusinessScope>
  <BusinessScope>
   <TypeCode>2</TypeCode>
   <ID>300</ID>
  </BusinessScope>
 </MessageHeader>
 <PointOfSaleTransactionBundleNotification>
  <ExternalID>INV-201010280807291</ExternalID>
  <TypeCode>1</TypeCode>
  <BusinessTransactionDate>2010-10-28</BusinessTransactionDate>
  <CompanyID>MDEC10000</CompanyID>
  <RetailTransaction>
   <TotalGrossAmount currencyCode="EUR">100.0</TotalGrossAmount>
   <TotalNetAmount currencyCode="EUR">100.0</TotalNetAmount>
   <TotalTaxAmount currencyCode="EUR">0.0</TotalTaxAmount>
   <DistributionChannelCode>01</DistributionChannelCode>
   <SalesUnitID>MDEC42100</SalesUnitID>
   <BuyerBusinessPartnerInternalID>MDEC9785</BuyerBusinessPartnerInternalID>
   <RetailTransactionSalesItem>
    <TypeCode>1</TypeCode>
    <ExternalID>1</ExternalID>
    <GrossAmount currencyCode="EUR">100.0</GrossAmount>
    <NetAmount currencyCode="EUR">100.0</NetAmount>
    <TaxAmount currencyCode="EUR">0.0</TaxAmount>
    <Quantity unitCode="EA">1.0</Quantity>
    <QuantityTypeCode>EA</QuantityTypeCode>
    <TaxCountryCode>DE</TaxCountryCode>
    <TaxationCharacteristicsCode listID="DE">500</TaxationCharacteristicsCode>
    <AccountingCodingBlockAssignment>
     <AccountingCodingBlock>
      <GeneralLedgerAccountAliasCode>A-1500</GeneralLedgerAccountAliasCode>
      <ProjectReference>
       <ProjectElementID>MDEC-1239-1</ProjectElementID>
      </ProjectReference>
     </AccountingCodingBlock>
    </AccountingCodingBlockAssignment>
   </RetailTransactionSalesItem>
   <RetailTransactionDebtorItem>
    <ExternalID>2</ExternalID>
    <Note>Invoice ID 8545</Note>
    <CashDiscountTermsCode>0001</CashDiscountTermsCode>
    <BusinessTransactionCurrencyAmount currencyCode="EUR">100.0</BusinessTransactionCurrencyAmount>
   </RetailTransactionDebtorItem>
   <RetailTransactionProductTaxItem>
    <ExternalID>3</ExternalID>
    <TaxCountryCode>DE</TaxCountryCode>
    <ProductTaxationCharacteristicsCode listID="DE">500</ProductTaxationCharacteristicsCode>
    <BusinessTransactionCurrencyAmount currencyCode="EUR">0.0</BusinessTransactionCurrencyAmount>
   </RetailTransactionProductTaxItem>
  </RetailTransaction>
 </PointOfSaleTransactionBundleNotification>
</nm:PointOfSaleTransactionBundleNotification> 


Example with discounts:

For sales transactions it is possible to explicitly denote discounts given to customers in order to e.g. make these visible in financial management. For this purpose a dedicated element of the sales item must be used as illustrated in the following example below.

The example below is depicting a scenario in which a discount of 20 Euro has been granted on the net amount. So an item has been sold for 95.20 EUR incl. tax (80 EUR without tax) instead of 119 EUR incl. tax (100 EUR without tax). To notify ByDesign about the discount the message element RetailTransactionSalesItemPricing has to be used. The message needs to comprise two instances of this element, one denoting the list price without taxes (PurposeCode = 1000, CategoryCode = 1) and one denoting the discount amount without taxes (PurposeCode = 1010, CategoryCode = 2)

<nm:PointOfSaleTransactionBundleNotification xmlns:nm="http://sap.com/xi/SAPGlobal20/Global">
 <MessageHeader>...</MessageHeader>
 <PointOfSaleTransactionBundleNotification>
  <ExternalID>201108240848071</ExternalID>
  <Note>Sale with discount</Note>
  <TypeCode>1</TypeCode>
  <BusinessTransactionDate>2011-08-24</BusinessTransactionDate>
  <CompanyID>MDEC10000</CompanyID>
  <EndDateTime>2011-08-24T08:48:05Z</EndDateTime>
  <OperatorBusinessPartnerInternalID>MC2471</OperatorBusinessPartnerInternalID>
  <RetailTransaction>
   <TotalGrossAmount currencyCode="EUR">95.2</TotalGrossAmount>
   <TotalNetAmount currencyCode="EUR">80.0</TotalNetAmount>
   <TotalTaxAmount currencyCode="EUR">15.2</TotalTaxAmount>
   <DistributionChannelCode>02</DistributionChannelCode>
   <SalesUnitID>MDEC42100</SalesUnitID>
   <BuyerBusinessPartnerInternalID>MDEC9785</BuyerBusinessPartnerInternalID>
   <SiteID>MDEC64000</SiteID>
   <RetailTransactionSalesItem>
    <ExternalID>1</ExternalID>
    <TypeCode>1</TypeCode>
    <GrossAmount currencyCode="EUR">95.2</GrossAmount>
    <NetAmount currencyCode="EUR">80.0</NetAmount>
    <TaxAmount currencyCode="EUR">15.2</TaxAmount>
    <Quantity unitCode="EA">1.0</Quantity>
    <QuantityTypeCode>EA</QuantityTypeCode>
    <TaxCountryCode>DE</TaxCountryCode>
    <TaxationCharacteristicsCode listID="DE">501</TaxationCharacteristicsCode>
    <CashDiscountDeductibleIndicator>true</CashDiscountDeductibleIndicator>
    <AccountingCodingBlockAssignment>
     <AccountingCodingBlock>
      <ProjectReference>
       <ProjectElementID>Outlet-1</ProjectElementID>
      </ProjectReference>
     </AccountingCodingBlock>
    </AccountingCodingBlockAssignment>
    <InventoryLocation>
     <LogisticsAreaID>MDEC64920-50-10-02</LogisticsAreaID>
    </InventoryLocation>
    <InventoryItemChange>
     <MaterialInternalID>MDECF-0001</MaterialInternalID>
    </InventoryItemChange>
    <RetailTransactionSalesItemPricing>
     <PriceSpecificationElementPurposeCode>1000</PriceSpecificationElementPurposeCode>
     <PriceSpecificationElementCategoryCode>1</PriceSpecificationElementCategoryCode>
     <Amount currencyCode="EUR">100.0</Amount>
    </RetailTransactionSalesItemPricing>
    <RetailTransactionSalesItemPricing>
     <PriceSpecificationElementPurposeCode>1010</PriceSpecificationElementPurposeCode>
     <PriceSpecificationElementCategoryCode>2</PriceSpecificationElementCategoryCode>
     <Amount currencyCode="EUR">-20.0</Amount>
    </RetailTransactionSalesItemPricing>
   </RetailTransactionSalesItem>
   <RetailTransactionProductTaxItem>
    <ExternalID>3</ExternalID>
    <TaxCountryCode>DE</TaxCountryCode>
    <ProductTaxationCharacteristicsCode listID="DE">501</ProductTaxationCharacteristicsCode>
    <BusinessTransactionCurrencyAmount currencyCode="EUR">15.2</BusinessTransactionCurrencyAmount>
   </RetailTransactionProductTaxItem>
   <RetailTransactionCashItem>
    <BusinessTransactionCurrencyAmount currencyCode="EUR">95.2</BusinessTransactionCurrencyAmount>
   </RetailTransactionCashItem>
  </RetailTransaction>
 </PointOfSaleTransactionBundleNotification>
</nm:PointOfSaleTransactionBundleNotification> 

Cash Payment Examples:

This section focuses on payments by cash and credit card. Only the Cash Item which stores the payment information is shown.

The first example shows cash payment. Only the Cash Storage ID and the amount must be provided.

	<nm:PointOfSaleTransactionBundleNotification xmlns:nm="http://sap.com/xi/SAPGlobal20/Global">
	 ...
	 <PointOfSaleTransactionBundleNotification>
	  <ExternalID>201010281151301</ExternalID>
	  <TypeCode>1</TypeCode>
	  <BusinessTransactionDate>2010-10-22</BusinessTransactionDate>
	  <CompanyID>MDEC10000</CompanyID>
	  <RetailTransaction>
	   <TotalGrossAmount currencyCode="EUR">183.2</TotalGrossAmount>
	   <TotalNetAmount currencyCode="EUR">160.0</TotalNetAmount>
	   <TotalTaxAmount currencyCode="EUR">23.2
	   </TotalTaxAmount>SAP BUSINESS BYDESIGN – POINT-OF-SALE INTEGRATIONSAP Information Classification: Customer 33...
	   <RetailTransactionCashItem>
	    <ExternalID>0000000001</ExternalID>
	    <CashPayment>
	     <CashStorageID>100005 HAUPTKASSE</CashStorageID>
	    </CashPayment>
	    <BusinessTransactionCurrencyAmount currencyCode="EUR">183.2</BusinessTransactionCurrencyAmount>
	   </RetailTransactionCashItem>
	  </RetailTransaction>
	 </PointOfSaleTransactionBundleNotification>
</nm:PointOfSaleTransactionBundleNotification> 

Credit Card Payment Examples:

The next example shows a settled credit card payment. Besides the amount, the clearing house and credit card key is provided.

	<nm:PointOfSaleTransactionBundleNotification xmlns:nm="http://sap.com/xi/SAPGlobal20/Global">
	...
	 <RetailTransaction>
	  <TotalGrossAmount currencyCode="EUR">119.0</TotalGrossAmount>
	  <TotalNetAmount currencyCode="EUR">100.0</TotalNetAmount>
	  <TotalTaxAmount currencyCode="EUR">19.0
	  </TotalTaxAmount>...
	  <RetailTransactionCashItem>
	   <ExternalID>0000000003</ExternalID>
	   <CreditCardPayment>
	    <ClearingHouseAccountID>FOP_CHA1250</ClearingHouseAccountID>
	    <CreditCardKey>
	     <ID>5555555555554444</ID>
	     <TypeCode>3</TypeCode>
	    </CreditCardKey>
	    <SettlementProcessedIndicator>true</SettlementProcessedIndicator>
	    <SettlementBatchRequesterID>000000000000001</SettlementBatchRequesterID>
	    <ValueDate>2010-10-14</ValueDate>
	   </CreditCardPayment>
	   <PayerBusinessPartnerInternalID>MDEC3000</PayerBusinessPartnerInternalID>
	   <BusinessTransactionCurrencyAmount currencyCode="EUR">119.0</BusinessTransactionCurrencyAmount>
	  </RetailTransactionCashItem>
	 </RetailTransaction>
	</PointOfSaleTransactionBundleNotification>
</nm:PointOfSaleTransactionBundleNotification> 

Invoice Payment Examples:

This section focuses on payment using an invoice. Note that this case cannot be combined with cash or credit card payment. The buyer ID has to be provided. The invoice information is contained in the debtor item. Only the relevant fragment of the XML message is shown below.

The first example is paid by invoice without discount. This is specified by the cash discount terms code 0001 (Due net payable immediately). Cash discount terms codes can be defined in the business configuration.

	<nm:PointOfSaleTransactionBundleNotification xmlns:nm="http://sap.com/xi/SAPGlobal20/Global">
	...
	 <PointOfSaleTransactionBundleNotification>
	  <ExternalID>201010281142531</ExternalID>
	  <TypeCode>1</TypeCode>
	  <BusinessTransactionDate>2010-10-25</BusinessTransactionDate>
	  <CompanyID>MC10000</CompanyID>
	  <RetailTransaction>
	   <TotalGrossAmount currencyCode="USD">100.0</TotalGrossAmount>
	   <TotalNetAmount currencyCode="USD">90.0</TotalNetAmount>
	   <TotalTaxAmount currencyCode="USD">10.0
	   </TotalTaxAmount>...
	   <BuyerBusinessPartnerInternalID>MC9785
	   </BuyerBusinessPartnerInternalID>...
	   <RetailTransactionDebtorItem>
	    <ExternalID>1</ExternalID>
	    <Note>INVOICE COMMENT</Note>
	    <CashDiscountTermsCode>0001</CashDiscountTermsCode>
	    <BusinessTransactionCurrencyAmount currencyCode="USD">100.0</BusinessTransactionCurrencyAmount>
	   </RetailTransactionDebtorItem>...
	  </RetailTransaction>
	 </PointOfSaleTransactionBundleNotification>
	</nm:PointOfSaleTransactionBundleNotification> 

External Payment Examples:

The cash item of the POS transaction contains only a payment reference and the bank account for the expected incoming payment by the external payment service provider.

	<PointOfSaleTransactionBundleNotification xmlns:n0="http://sap.com/xi/SAPGlobal20/Global">
	...
	 <PointOfSaleTransactionBundleNotification>
	  <ExternalID>1212</ExternalID>
	  <TypeCode>1</TypeCode>
	  <BusinessTransactionDate>2011-12-12</BusinessTransactionDate>
	  <CompanyID>MDEC10000</CompanyID>
	  <RetailTransaction>
	   <TotalGrossAmount currencyCode="EUR">119.0</TotalGrossAmount>
	   <TotalNetAmount currencyCode="EUR">100.0</TotalNetAmount>
	   <TotalTaxAmount currencyCode="EUR">19.0
	   </TotalTaxAmount>...
	   <RetailTransactionCashItem>
	    <ExternalID>0000000002</ExternalID>
	    <PayerBusinessPartnerInternalID>MDEC3000</PayerBusinessPartnerInternalID>
	    <BusinessTransactionCurrencyAmount currencyCode="EUR">119.0</BusinessTransactionCurrencyAmount>
	    <ExternalPayment>
	     <HouseBankAccountInternalID>63573240(GIROKONTO)</HouseBankAccountInternalID>
	     <PaymentTransactionReferenceID>12345</PaymentTransactionReferenceID>
	     <ValueDate>2011-12-12</ValueDate>
	    </ExternalPayment>
	   </RetailTransactionCashItem>
	  </RetailTransaction>
	 </PointOfSaleTransactionBundleNotification>
	</PointOfSaleTransactionBundleNotification> 

Gift Certificate Payment Examples:

Gift certificates entitle the recipient to receive tickets or other kind of articles of a defined value. They can be sold to customers and are cashed in at a later point in time, typically by a person other than the original buyer. From the seller‟s perspective, issued gift certificates build up payables that are then later reduced when the gift certificate is cashed in.

The first example depicts the sale of a gift certificate with a value of 40 EUR

	<nm:PointOfSaleTransactionBundleNotification xmlns:nm="http://sap.com/xi/SAPGlobal20/Global">
	...
	 <PointOfSaleTransactionBundleNotification>
	  <ExternalID>201105100752391</ExternalID>
	  <TypeCode>1</TypeCode>
	  <BusinessTransactionDate>2011-05-10</BusinessTransactionDate>
	  <CompanyID>MDEC10000</CompanyID>
	  <RetailTransaction>
	   <TotalGrossAmount currencyCode="EUR">40.0</TotalGrossAmount>
	   <TotalNetAmount currencyCode="EUR">40.0</TotalNetAmount>
	   <TotalTaxAmount currencyCode="EUR">0.0</TotalTaxAmount>
	   <SalesUnitID>MDEC42111</SalesUnitID>
	   <RetailTransactionSalesItem>
	    <ExternalID>001</ExternalID>
	    <TypeCode>3</TypeCode>
	    <Note>Gift certificate 4711 sale</Note>
	    <GrossAmount currencyCode="EUR">40.0</GrossAmount>
	    <NetAmount currencyCode="EUR">40.0</NetAmount>
	    <TaxAmount currencyCode="EUR">0.0</TaxAmount>
	    <Quantity unitCode="EA">1.0</Quantity>
	    <QuantityTypeCode>EA</QuantityTypeCode>
	    <TaxationCharacteristicsCode listID=""> </TaxationCharacteristicsCode>
	    <AccountingCodingBlockAssignment>
	     <AccountingCodingBlock>
	      <GeneralLedgerAccountAliasCode>A-1700</GeneralLedgerAccountAliasCode>
	     </AccountingCodingBlock>
	    </AccountingCodingBlockAssignment>
	   </RetailTransactionSalesItem>...
	  </RetailTransaction>
	 </PointOfSaleTransactionBundleNotification>
	</nm:PointOfSaleTransactionBundleNotification> 

 

The general ledger account shall be a dedicated account for gift certificate payables and must be created in advance in SAP Business ByDesign.

Example 2 shows the full redemption of the gift certificate of 40 EUR together with the purchase of tickets for 89.99 EUR incl. taxes. The difference between the sales price and the gift certificate value is paid in cash.

	<nm:PointOfSaleTransactionBundleNotification xmlns:nm="http://sap.com/xi/SAPGlobal20/Global">
	...
	 <PointOfSaleTransactionBundleNotification>
	  <ExternalID>201105100807161</ExternalID>
	  <Note>Gift certificate redemption and ticket sales</Note>
	  <TypeCode>1</TypeCode>
	  <BusinessTransactionDate>2011-05-10</BusinessTransactionDate>
	  <CompanyID>MDEC10000</CompanyID>
	  <RetailTransaction>
	   <TotalGrossAmount currencyCode="EUR">49.99</TotalGrossAmount>
	   <TotalNetAmount currencyCode="EUR">35.62</TotalNetAmount>
	   <TotalTaxAmount currencyCode="EUR">14.37</TotalTaxAmount>
	   <DistributionChannelCode>01</DistributionChannelCode>
	   <SalesUnitID>MDEC42111</SalesUnitID>
	   <RetailTransactionSalesItem>
	    <ExternalID>001</ExternalID>
	    <TypeCode>5</TypeCode>
	    <Note>Gift certificate 4711 redemption</Note>
	    <GrossAmount currencyCode="EUR">-40.0</GrossAmount>
	    <NetAmount currencyCode="EUR">-40.0</NetAmount>
	    <Quantity unitCode="EA">-1.0</Quantity>
	    <QuantityTypeCode>EA</QuantityTypeCode>
	    <TaxationCharacteristicsCode listID=""> </TaxationCharacteristicsCode>
	    <AccountingCodingBlockAssignment>
	     <AccountingCodingBlock>
	      <GeneralLedgerAccountAliasCode>A-1700</GeneralLedgerAccountAliasCode>
	     </AccountingCodingBlock>
	    </AccountingCodingBlockAssignment>
	   </RetailTransactionSalesItem>
	   <RetailTransactionSalesItem>
	    <ExternalID>002</ExternalID>
	    <TypeCode>1</TypeCode>
	    <Note>Two tickets sold</Note>
	    <GrossAmount currencyCode="EUR">89.99</GrossAmount>
	    <NetAmount currencyCode="EUR">75.62</NetAmount>
	    <TaxAmount currencyCode="EUR">14.37</TaxAmount>
	    <Quantity unitCode="EA">2.0</Quantity>
	    <QuantityTypeCode>EA</QuantityTypeCode>
	    <TaxCountryCode>DE</TaxCountryCode>
	    <TaxationCharacteristicsCode listID="DE">501</TaxationCharacteristicsCode>
	    <AccountingCodingBlockAssignment>
	     <AccountingCodingBlock>
	      <GeneralLedgerAccountAliasCode>A-1500</GeneralLedgerAccountAliasCode>
	      <ProjectReference>
	       <ProjectElementID>MDEC-1239-1</ProjectElementID>
	      </ProjectReference>
	     </AccountingCodingBlock>
	    </AccountingCodingBlockAssignment>
	   </RetailTransactionSalesItem>
	   <RetailTransactionProductTaxItem>
	    <ExternalID>004</ExternalID>
	    <TaxCountryCode>DE</TaxCountryCode>
	    <ProductTaxationCharacteristicsCode listID="DE">501</ProductTaxationCharacteristicsCode>
	    <BusinessTransactionCurrencyAmount currencyCode="EUR">14.37</BusinessTransactionCurrencyAmount>
	   </RetailTransactionProductTaxItem>
	   <RetailTransactionCashItem>
	    <ExternalID>003</ExternalID>
	    <CashPayment>
	     <CashStorageID>100005 HAUPTKASSE</CashStorageID>
	    </CashPayment>
	    <Note>Difference paid cash</Note>
	    <BusinessTransactionCurrencyAmount currencyCode="EUR">49.99</BusinessTransactionCurrencyAmount>
	   </RetailTransactionCashItem>
	  </RetailTransaction>
	 </PointOfSaleTransactionBundleNotification>
</nm:PointOfSaleTransactionBundleNotification>

Taxation Examples:

This section focuses on variations resulting from taxation. Only the relevant fragments of the messages are shown.

The following example contains two sales items with different tax attributes. Two tax items summarize the amount per tax attribute combination.

	<nm:PointOfSaleTransactionBundleNotification xmlns:nm="http://sap.com/xi/SAPGlobal20/Global">
	...
	 <PointOfSaleTransactionBundleNotification>...
	  <RetailTransaction>
	   <TotalGrossAmount currencyCode="EUR">226.0</TotalGrossAmount>
	   <TotalNetAmount currencyCode="EUR">200.0</TotalNetAmount>
	   <TotalTaxAmount currencyCode="EUR">26.0
	   </TotalTaxAmount>
	   ...
	   <RetailTransactionSalesItem>
	    <ExternalID>0000000001</ExternalID>
	    <TypeCode>1</TypeCode>
	    <GrossAmount currencyCode="EUR">119.0</GrossAmount>
	    <NetAmount currencyCode="EUR">100.0</NetAmount>
	    <TaxAmount currencyCode="EUR">19.0</TaxAmount>
	    <TaxCountryCode>DE</TaxCountryCode>
	    <TaxationCharacteristicsCode listID="DE">501
	    </TaxationCharacteristicsCode>
	    ...
	   </RetailTransactionSalesItem>
	   <RetailTransactionSalesItem>
	    <ExternalID>0000000002</ExternalID>
	    <TypeCode>1</TypeCode>
	    <GrossAmount currencyCode="EUR">107.0</GrossAmount>
	    <NetAmount currencyCode="EUR">100.0</NetAmount>
	    <TaxAmount currencyCode="EUR">7.0</TaxAmount>
	    <TaxCountryCode>DE</TaxCountryCode>
	    <TaxationCharacteristicsCode listID="DE">502
	    </TaxationCharacteristicsCode>
	    ...
	   </RetailTransactionSalesItem>
	   <RetailTransactionProductTaxItem>
	    <ExternalID>0000000101</ExternalID>
	    <TaxCountryCode>DE</TaxCountryCode>
	    <ProductTaxationCharacteristicsCode listID="DE">501</ProductTaxationCharacteristicsCode>
	    <BusinessTransactionCurrencyAmount currencyCode="EUR">19.0</BusinessTransactionCurrencyAmount>
	   </RetailTransactionProductTaxItem>
	   <RetailTransactionProductTaxItem>
	    <ExternalID>0000000102</ExternalID>
	    <TaxCountryCode>DE</TaxCountryCode>
	    <ProductTaxationCharacteristicsCode listID="DE">502</ProductTaxationCharacteristicsCode>
	    <BusinessTransactionCurrencyAmount currencyCode="EUR">7.0</BusinessTransactionCurrencyAmount>
	   </RetailTransactionProductTaxItem>
	   ...
	  </RetailTransaction>
	 </PointOfSaleTransactionBundleNotification>
</nm:PointOfSaleTransactionBundleNotification>

 

The following example is for US taxes.

 

	<nm:PointOfSaleTransactionBundleNotification xmlns:nm="http://sap.com/xi/SAPGlobal20/Global">
	...
	 <PointOfSaleTransactionBundleNotification>
	  <ExternalID>201010281142531</ExternalID>
	  <TypeCode>1</TypeCode>
	  <BusinessTransactionDate>2010-10-25</BusinessTransactionDate>
	  <CompanyID>MC10000</CompanyID>
	  <RetailTransaction>
	   <TotalGrossAmount currencyCode="USD">100.0</TotalGrossAmount>
	   <TotalNetAmount currencyCode="USD">90.0</TotalNetAmount>
	   <TotalTaxAmount currencyCode="USD">10.0
	   </TotalTaxAmount>
	   ...
	   <RetailTransactionSalesItem>
	    <ExternalID>0000000001</ExternalID>
	    <GrossAmount currencyCode="USD">100.0</GrossAmount>
	    <NetAmount currencyCode="USD">90.0</NetAmount>
	    <TaxAmount currencyCode="USD">10.0</TaxAmount>
	    <TaxCountryCode>US</TaxCountryCode>
	    <TaxationCharacteristicsCode listID="US">501</TaxationCharacteristicsCode>
	    <TaxJurisdictionCode>NYAL0181
	    </TaxJurisdictionCode>
	    ...
	   </RetailTransactionSalesItem>
	   ...
	   <RetailTransactionProductTaxItem>
	    <ExternalID>0000000010</ExternalID>
	    <TaxCountryCode>US</TaxCountryCode>
	    <ProductTaxationCharacteristicsCode listID="US">501</ProductTaxationCharacteristicsCode>
	    <TaxJurisdictionCode>NYAL0181</TaxJurisdictionCode>
	    <BusinessTransactionCurrencyAmount currencyCode="USD">10.0</BusinessTransactionCurrencyAmount>
	   </RetailTransactionProductTaxItem>
	  </RetailTransaction>
	 </PointOfSaleTransactionBundleNotification>
	</nm:PointOfSaleTransactionBundleNotification> 

 


Product Sales Examples:

The following example shows the sale of two products. Three units (3 EA) of product MDECF-0001 are sold with reference to the project task MDEC-1239-1 and they are taken from the logistics area MDEC64920-50-10-02. One unit (1 EA) of MDECF-0002 is sold without reference to a project task and it is taken from a different logistics area of the same site. Note that the G/L account is not set. Only the relevant fragments of the message are shown.

	<nm:PointOfSaleTransactionBundleNotification xmlns:nm="http://sap.com/xi/SAPGlobal20/Global">
	...
	 <PointOfSaleTransactionBundleNotification>
	 ...
	  <RetailTransaction>
	  ...
	   <TotalGrossAmount currencyCode="EUR">39.9</TotalGrossAmount>
	   <TotalNetAmount currencyCode="EUR">33.53</TotalNetAmount>
	   <TotalTaxAmount currencyCode="EUR">6.37</TotalTaxAmount>
	   <SiteID>MDEC64000</SiteID>
	   <RetailTransactionSalesItem>
	    <ExternalID>EX1</ExternalID>
	    <TypeCode>1</TypeCode>
	    <GrossAmount currencyCode="EUR">33.0</GrossAmount>
	    <NetAmount currencyCode="EUR">27.73</NetAmount>
	    <TaxAmount currencyCode="EUR">5.27</TaxAmount>
	    <Quantity unitCode="EA">3.0</Quantity>
	    <QuantityTypeCode>EA</QuantityTypeCode>
	    <TaxCountryCode>DE</TaxCountryCode>
	    <TaxationCharacteristicsCode listID="DE">501</TaxationCharacteristicsCode>
	    <AccountingCodingBlockAssignment>
	     <AccountingCodingBlock>
	      <ProjectReference>
	       <ProjectElementID>MDEC-1239-1</ProjectElementID>
	      </ProjectReference>
	     </AccountingCodingBlock>
	    </AccountingCodingBlockAssignment>
	    <InventoryLocation>
	     <LogisticsAreaID>MDEC64920-50-10-02</LogisticsAreaID>
	    </InventoryLocation>
	    <InventoryItemChange>
	     <MaterialInternalID>MDECF-0001</MaterialInternalID>
	    </InventoryItemChange>
	   </RetailTransactionSalesItem>
	   <RetailTransactionSalesItem>
	    <ExternalID>EX2</ExternalID>
	    <TypeCode>1</TypeCode>
	    <GrossAmount currencyCode="EUR">6.9</GrossAmount>
	    <NetAmount currencyCode="EUR">5.8</NetAmount>
	    <TaxAmount currencyCode="EUR">1.1</TaxAmount>
	    <Quantity unitCode="EA">1.0</Quantity>
	    <QuantityTypeCode>EA</QuantityTypeCode>
	    <TaxCountryCode>DE</TaxCountryCode>
	    <TaxationCharacteristicsCode listID="DE">501</TaxationCharacteristicsCode>
	    <InventoryLocation>
	     <LogisticsAreaID>MDEC64920-50-10-02
	     </LogisticsAreaID>
	    </InventoryLocation>
	    <InventoryItemChange>
	     <MaterialInternalID>MDECF-0002</MaterialInternalID>
	    </InventoryItemChange>
	   </RetailTransactionSalesItem>
	   …
	  </RetailTransaction>
	 </PointOfSaleTransactionBundleNotification>
	</PointOfSaleTransactionBundleNotification> 

 


Cash Transaction Example:

This example transfers 100€ from the petty cash “POS_DEVICE_01” to the petty cash “SAFE”.

	<?xml version="1.0" ?>
	<nm:PointOfSaleTransactionBundleNotification xmlns:nm="http://sap.com/xi/SAPGlobal20/Global">
	 <MessageHeader>...</MessageHeader>
	 <PointOfSaleTransactionBundleNotification>
	  <ExternalID>201110051253591</ExternalID>
	  <Note>Cash transfer</Note>
	  <TypeCode>3</TypeCode>
	  <BusinessTransactionDate>2011-10-05</BusinessTransactionDate>
	  <CompanyID>MDEC10000</CompanyID>
	  <EndDateTime>2011-10-05T12:53:08.531605Z</EndDateTime>
	  <OperatorBusinessPartnerInternalID>MC2471</OperatorBusinessPartnerInternalID>
	  <CashTransaction>
	   <TypeCode>1</TypeCode>
	   <CashTransactionCashItem>
	    <ExternalID>EX1</ExternalID>
	    <Note>Source</Note>
	    <CashPayment>
	     <CashStorageID>POS_DEVICE_01</CashStorageID>
	    </CashPayment>
	    <BusinessTransactionCurrencyAmount currencyCode="EUR">-100</BusinessTransactionCurrencyAmount>
	   </CashTransactionCashItem>
	   <CashTransactionCashItem>
	    <ExternalID>EX2</ExternalID>
	    <Note>Target</Note>
	    <CashPayment>
	     <CashStorageID>SAFE</CashStorageID>
	    </CashPayment>
	    <BusinessTransactionCurrencyAmount currencyCode="EUR">100</BusinessTransactionCurrencyAmount>
	   </CashTransactionCashItem>
	  </CashTransaction>
	 </PointOfSaleTransactionBundleNotification>
</nm:PointOfSaleTransactionBundleNotification> 

 


Cash Balancing Example:

This example increases the amount in the petty cash POS_DEVICE_01 by 5.00 €

	<?xml version="1.0" ?>
	<nm:PointOfSaleTransactionBundleNotification xmlns:nm="http://sap.com/xi/SAPGlobal20/Global" xmlns:prx="urn:sap.com:proxy:QSL:/1SAI/TAS713B4B1893737C2F927B:804">
	 <MessageHeader>...</MessageHeader>
	 <PointOfSaleTransactionBundleNotification>
	  <ExternalID>201112150835091</ExternalID>
	  <Note>Cash balancing</Note>
	  <TypeCode>3</TypeCode>
	  <BusinessTransactionDate>2011-12-15</BusinessTransactionDate>
	  <CompanyID>MDEC10000</CompanyID>
	  <EndDateTime>2011-12-15T08:35:01.610119Z</EndDateTime>
	  <OperatorBusinessPartnerInternalID>MC2471</OperatorBusinessPartnerInternalID>
	  <CashTransaction>
	   <TypeCode>2</TypeCode>
	   <CashTransactionCashItem>
	    <ExternalID>EX1</ExternalID>
	    <Note>Cash balancing item</Note>
	    <CashPayment>
	     <CashStorageID>POS_DEVICE_01</CashStorageID>
	    </CashPayment>
	    <BusinessTransactionCurrencyAmount currencyCode="EUR">5.0</BusinessTransactionCurrencyAmount>
	    <AccountingCodingBlockAssignment>
	     <AccountingCodingBlock>
	      <GeneralLedgerAccountAliasCode>A-1500</GeneralLedgerAccountAliasCode>
	     </AccountingCodingBlock>
	    </AccountingCodingBlockAssignment>
	   </CashTransactionCashItem>
	  </CashTransaction>
	 </PointOfSaleTransactionBundleNotification>
</nm:PointOfSaleTransactionBundleNotification> 

 


Summary Transaction Examples:

This Summary Transaction uses the ValidationTransactionBatchID “CalendarWeek12”. All Sales Transactions which use this as their BatchID are validated. A total of 20 sales transactions are expected in this batch, as defined in attribute TransactionNumberValue. The sum of their net amounts is expected to be 2000,00 EUR, of the gross amounts 2380,00 EUR and of the tax amounts 380,00 EUR. If the system collects more or less than 20 sales transactions belonging to this batch, or if the amounts don‟t sum up as expected, the summary transaction will be marked as a deviation.

Only the relevant fragments of the messages are shown.

	<nm:PointOfSaleTransactionBundleNotification xmlns:nm="http://sap.com/xi/SAPGlobal20/Global">
	...
	 <PointOfSaleTransactionBundleNotification>
	  <ExternalID>123456</ExternalID>
	  <TypeCode>2</TypeCode>
	  <BusinessTransactionDate>2011-03-25</BusinessTransactionDate>
	  <CompanyID>MDEC10000</CompanyID>
	  <SummaryTransaction>
	   <ValidationTransactionBatchID>CalendarWeek12</ValidationTransactionBatchID>
	   <SummaryTransactionRetailTotals>
	    <NetAmount currencyCode="EUR">2000.0</NetAmount>
	    <GrossAmount currencyCode="EUR">2380.0</GrossAmount>
	    <TaxAmount currencyCode="EUR">380.0</TaxAmount>
	    <TransactionNumberValue>20</TransactionNumberValue>
	   </SummaryTransactionRetailTotals>
	  </SummaryTransaction>
	 </PointOfSaleTransactionBundleNotification>
</nm:PointOfSaleTransactionBundleNotification> 

 

The following Summary Transaction uses the ValidationTransactionDate “2011-01-30”. All Retail Transactions which have this BusinessTransactionDate are validated. A total of 3 sales transactions should have this transaction date, as defined in attribute TransactionNumberValue.

 

	<nm:PointOfSaleTransactionBundleNotification xmlns:nm="http://sap.com/xi/SAPGlobal20/Global">
	...
	 <PointOfSaleTransactionBundleNotification>
	  <ExternalID>123456</ExternalID>
	  <TypeCode>2</TypeCode>
	  <BusinessTransactionDate>2011-03-25</BusinessTransactionDate>
	  <CompanyID>MDEC10000</CompanyID>
	  <SummaryTransaction>
	   <ValidationTransactionDate>2011-01-30</ValidationTransactionDate>
	   <SummaryTransactionRetailTotals>
	    <NetAmount currencyCode="EUR">357.0</NetAmount>
	    <GrossAmount currencyCode="EUR">424.83</GrossAmount>
	    <TaxAmount currencyCode="EUR">67.83</TaxAmount>
	    <TransactionNumberValue>3</TransactionNumberValue>
	   </SummaryTransactionRetailTotals>
	  </SummaryTransaction>
	 </PointOfSaleTransactionBundleNotification>
	</nm:PointOfSaleTransactionBundleNotification> 
To report this post you need to login first.

1 Comment

You must be Logged on to comment or reply to a post.

Leave a Reply