Defining Permitted Tenders

Configuration files
  • ..\parameter\client\flow\allowedTendersConfigs.properties
  • dc_import_Tender.xml
  • GKTenderRestrictionRule.xml

Tenders can be managed by means of the global configuration Tender.

Block a Tender

It is possible to generally block a tender for use on the cash register.

To do so, set Tender.BlockingFlag = true for the respective tender:

<tender:BlockingFlag>false</tender:BlockingFlag>

Tender Groups for Customer Groups

Tender groups can be created for particular customer groups. The customer groups can then be assigned to a defined tender group. Thus, tenders can be exclusively defined or explicitly excluded for particular customer groups.

This setting is made by means of global configurations:

  1. Create a customer tender group in the global configuration CustomerTenderGroup:
    <CustomerTenderGroupDO>
     <customerTenderGroup:CustomerTenderGroupCode>CREDIT</customerTenderGroup:CustomerTenderGroupCode>
     <customerTenderGroup:CustomerTenderGroupDescription>Credit</customerTenderGroup:CustomerTenderGroupDescription>
     <customerTenderGroup:DefaultFlag>false</customerTenderGroup:DefaultFlag>
    </CustomerTenderGroupDO> 

    The following table contains the descriptions of the elements:

    Element Description
    CustomerTenderGroupCode>CREDIT< There is a customer tender group named CREDIT.
  2. Assign one or several tenders to this tender group by means of the global configuration CustomerTenderGroupTender.
<CustomerTenderGroupTenderDO>
 <customerTenderGroupTender:CustomerTenderGroupCode>CREDIT</customerTenderGroupTender:CustomerTenderGroupCode>
 <customerTenderGroupTender:TenderTypeCode>ZTKR</customerTenderGroupTender:TenderTypeCode>
 <customerTenderGroupTender:TimeStampEffective>2014-01-01T00:00:00Z</customerTenderGroupTender:TimeStampEffective>
</CustomerTenderGroupTenderDO>

The following table contains the descriptions of the elements:

Element Description
<customerTenderGroupTender:TenderTypeCode>ZTKR< The tender with the TenderTypeCode ZTKR is assigned to the customer tender group CREDIT.

This tender group with stored tenders can be assigned to single customer groups with different attributes.

Exclusive Customer Tender

It is possible to define an exclusive tender for a customer group. This means that all remaining tenders are automatically excluded for this customer group. The configuration is defined by means of global configurations:

  1. Create an entry with an allowed tender group (AllowedTermsOfPayment) for the customer group (global configuration CustomerGroup).
    <CustomerGroup ProcessMode="MODIFY">
    <CustomerGroupID>CR</CustomerGroupID>
    <Name>Credit</Name>
     <AllowedTermsOfPayments>CREDIT</AllowedTermsOfPayments>
    </CustomerGroup> 

    The following table contains the descriptions of the elements:

    Element Description
    <AllowedTermsOfPayments>CREDIT< The tender group CREDIT is stored as an allowed tender group for the customer group CR. Customers of this customer group can only use tenders which are stored in this tender group.

    This tender group is stored in the global configuration CustomerTenderGroup.

    The configuration applies to all customers of this customer group. Customers can be assigned to a customer group via customer import.
    <CustomerDO>
     <customer:CustomerID>0000010014</customer:CustomerID>
     <customer:PersonalID>00000000</customer:PersonalID>
    <customer:SalesTaxLiableFlag isNull="true">false</customer:SalesTaxLiableFlag>
    <customer:StatusCodeisNull="true"/>
    <customer:CreditCardList/>
    <customer:CustomerGroupIDList>
     <customer:CustomerGroupID>CR</customer:CustomerGroupID>
    </customer:CustomerGroupIDList>
    </CustomerDO>
  2. To make sure that the tender assigned to a customer is taken into account, adjust the file allowedTendersConfigs.properties as shown below:
    AllowedTendersConfigs.Default.checkCustomerGroupTender=true

Not allowed tenders in case of receipts without customer assignment

If no customer is assigned to a receipt, tender use may be restricted in accordance with the default settings. If the global configuration, CustomerTenderGroup contains the setting DefaultFlag = true for a group of customer tenders, all tenders that do not belong to this group of tenders will be excluded.

This allows defining tenders that can only be used by a particular customer group:

  1. Global configuration CustomerTenderGroup:
    <CustomerTenderGroupElementDO>
    <BugHeader>
     <bugImportHeader:ExternalBusinessUnitGroupID>1</bugImportHeader:ExternalBusinessUnitGroupID>
    </BugHeader>
    <CustomerTenderGroupDO>
    <customerTenderGroup:CustomerTenderGroupCode>DEFAULT
    </customerTenderGroup:CustomerTenderGroupCode>
     <customerTenderGroup:CustomerTenderGroupDescription>Default
    </customerTenderGroup:CustomerTenderGroupDescription>
     <customerTenderGroup:DefaultFlag>true</customerTenderGroup:DefaultFlag>
    </CustomerTenderGroupDO>
    </CustomerTenderGroupElementDO> 

    The following table contains the descriptions of the elements:

    Element Description
    DefaultFlag>true< The tender to be checked is not allowed if it does not belong to this customer tender group.
  2. Global configuration CustomerTenderGroupTender:
    <CustomerTenderGroupTenderDO>
     <customerTenderGroupTender:CustomerTenderGroupCode>DEFAULT
    </customerTenderGroupTender:CustomerTenderGroupCode>
     <customerTenderGroupTender:TenderTypeCode>ZTCS</customerTenderGroupTender:TenderTypeCode>
     <customerTenderGroupTender:TimeStampEffective>2014-01-01T00:00:00Z</customerTenderGroupTender:TimeStampEffective>
    </CustomerTenderGroupTenderDO>

The cash tender (TenderTypeCode>ZTCS<) is assigned to the tender group indicating CustomerTenderGroupCode = DEFAULT.

Note:
This configuration determines that receipts without customer assignment can only be closed by means of the tender Cash because the default group of customer tenders does not contain any other tender.

Exclusive tender

If a receipt already includes a tender with the indicator ExclusiveFlag = true, this will be the only tender allowed. All remaining tenders are not allowed.

Configuration file dc_import_Tender.xml:

<tender:ExclusiveFlag>true</tender:ExclusiveFlag>

Admissibility for Sales Receipts and/or Return Documents

A check is made based on the indicator Tender.SaleReturnTypecode to determine whether or not the tender can be used for the transaction.

  • SALES_AND_RETURNS (corresponds to type 00/null): The tender is allowed for sales transactions and return transactions.
  • SALES (corresponds to type 01): The tender is allowed for sales transactions only (positive receipt total)
  • RETURNS (corresponds to type 02): The tender is allowed for return transactions only (negative receipt total)

The configuration is set in the global configuration Tender.

<TenderDO>
 <tender:TenderTypeCode>ZTCS</tender:TenderTypeCode>
 <tender:TenderClassCode>BA</tender:TenderClassCode>
 <tender:ISOCurrencyCode>EUR</tender:ISOCurrencyCode>
<tender:Description>Bar</tender:Description>
...
 <tender:SaleReturnTypeCode>SALES_AND_RETURNS</tender:SaleReturnTypeCode>
...
</TenderDO>

In this example, the tender is allowed for sales receipts and return documents because SaleReturnTypeCode = SALES_AND_RETURNS.

Admissibility for Document and Line Item Types

If a transaction type is stored for a tender in TenderRestrictionRule.ForbiddenTransactionTypeCode, the tender is not allowed for this transaction type.

If a line item type is stored for a tender in TenderRestrictionRule.ForbiddenPositionTypeCode, the tender is not allowed for documents that contain this line item type.

Configuration file GKTenderRestrictionRule.xml:

<TenderDO>
 <tender:TenderTypeCode>ZTCS</tender:TenderTypeCode>
 <tender:TenderClassCode>BA</tender:TenderClassCode>
 <tender:ISOCurrencyCode>EUR</tender:ISOCurrencyCode>
<tender:Description>Bar</tender:Description>
...
<tender:TenderRestrictionRuleList>
<tender:TenderRestrictionRule>
 <tender:ForbiddenTransactionTypeCode>SA</tender:ForbiddenTransactionTypeCode>
 <tender:ForbiddenLineItemTypeCode>PI</tender:ForbiddenLineItemTypeCode>
</tender:TenderRestrictionRule>
</tender:TenderRestrictionRuleList>
</TenderDO>
</TenderElementDO>

In this example, a pay-in item is not allowed for a sales transaction.

Admissibility for Tender Exchange

Only tenders included in the global configuration TenderAdjustmentRule can be used for exchange of tenders.

Allowed FROM tenders are defined in OriginalTenderTypeCode. Allowed TO tenders are defined in NewTenderTypeCode.

Global configuration TenderAdjustmentRule:

<TenderAdjustmentRuleDO>
 <tenderAdjustmentRule:OriginalTenderTypeCode>ZTCS</tenderAdjustmentRule:OriginalTenderTypeCode>
 <tenderAdjustmentRule:NewTenderTypeCode>ZTCD</tenderAdjustmentRule:NewTenderTypeCode>
</TenderAdjustmentRuleDO>
...
<TenderAdjustmentRuleDO>
 <tenderAdjustmentRule:OriginalTenderTypeCode>ZTCS</tenderAdjustmentRule:OriginalTenderTypeCode>
 <tenderAdjustmentRule:NewTenderTypeCode>ZTMX</tenderAdjustmentRule:NewTenderTypeCode>
</TenderAdjustmentRuleDO>
  • First block: The tender can be exchanged from Cash to Canadian Dollar.
  • Second block: The tender can be exchanged from Cashto Mexican Peso.

If you wish to permit one tender for several exchanges, you can create several entries accordingly.

For the desired tenders, enter the TenderTypeCode defined in the global configuration Tender:

<TenderDO>
 <tender:TenderTypeCode>ZTCS</tender:TenderTypeCode>
 <tender:TenderClassCode>BA</tender:TenderClassCode>
 <tender:ISOCurrencyCode>USD</tender:ISOCurrencyCode>
<tender:Description>Cash</tender:Description>
...
</TenderDO>
...
<TenderDO>
 <tender:TenderTypeCode>ZTCD</tender:TenderTypeCode>
 <tender:TenderClassCode>BA</tender:TenderClassCode>
 <tender:ISOCurrencyCode>CAD</tender:ISOCurrencyCode>
<tender:Description>Canadian Dollar</tender:Description>
...
</TenderDO>

Admissibility for Returns

If money must be paid to the customer due to a return based on receipt data, allowed tenders will depend on the tender line items of the original receipt.

For each tender included on the original receipt, the tender to be used for money return will be determined. The maintenance is performed in the global configuration TenderSaleReturnRule.

The tender is allowed if an entry with the desired tender for the receipt to be returned (SaleTenderTypeCode) is stored for the tender included on the original receipt (ReturnTenderTypeCode).

Global configuration TenderSaleReturnRule:

<TenderSaleReturnRuleDO>
 <tenderSaleReturnRule:ReturnTenderTypeCode>ZTCS</tenderSaleReturnRule:ReturnTenderTypeCode>
 <tenderSaleReturnRule:SaleTenderTypeCode>ZTVO</tenderSaleReturnRule:SaleTenderTypeCode>
</TenderSaleReturnRuleDO>

If a receipt that was originally paid with the tender Cash is returned, the tender Gift Card can be used in this return document.

Several entries with the same ReturnTenderTypeCode can be created.

Admissibility for Pay-ins and Pay-outs

It is possible to define allowed tenders for pay-ins and pay-outs. The maintenance is set in the global configuration ReasonTender.

All allowed tenders are assigned to the reason of the pay-in/pay-out item:

<ReasonTenderDO>
 <reasonTender:ReasonCode>6301</reasonTender:ReasonCode>
 <reasonTender:ReasonCodeGroupCode>E</reasonTender:ReasonCodeGroupCode>
 <reasonTender:TenderTypeCode>ZTCS</reasonTender:TenderTypeCode>
</ReasonTenderDO>

The cash tender is allowed for a pay-in for which the code 6301 (reason = Change of pay-out) will be selected.

The reason that belongs to the code is defined in the global configuration Reason:

<Reason>
<ReasonCode>6301</ReasonCode>
<ReasonDescription>Wechselgeld von Auszahlung</ReasonDescription>
<ReasonCodeGroupCode>E</ReasonCodeGroupCode>
...
</Reason>

The check of the tender in the case of a pay-in or pay-out is configured in allowedTendersConfigs.properties, using the parameter checkReasonTender:

AllowedTendersConfigs.Default.checkReasonTender=true
Parameter Description
checkReasonTender=true The tender admissibility is checked.

Pay-in and Pay-out Limits

It is possible to define tender limits for particular pay-in and pay-out reasons. These limits are defined in the global configuration Reason:

If a ReasonParameterCode = LIMIT is stored to the reason, the corresponding limit defined in ReasonParameterValue is checked after entering the reason.

See also the entry taken from the global configuration Reason:

<Reason>
<ReasonCode>6302</ReasonCode>
 <ReasonDescription>Portokasse</ReasonDescription>
<ReasonCodeGroupCode>E</ReasonCodeGroupCode>
...
<ReasonParameterList>
<ReasonParameter>
<ReasonParameterCode>LIMIT</ReasonParameterCode>
<ReasonParameterName/>
 <ReasonParameterValue>1000</ReasonParameterValue>
</ReasonParameter>
</ReasonParameterList>
...
</Reason>

In this example, a limit of 1000 is defined for this pay-in reason. This means that a pay-in must not exceed the amount 1000.