Additional Data for Procurement Transactions

 
Procurement transactions refer to transactions that contain the line item (or order basket) details. If the line-item details are sent to iVeri within a transaction, then a procurement card holder get those details from their issuing bank (for example on their monthly statement). This is of assistance in tracking business to business transactions particularly in large corporations. Procurement transactions are currently only available within distributor Nedbank.

Coding for Procurement 

The following optional input parameters are Procurement specific per transaction: 

  • CustomerReferenceIdentifier 
  • CustomerVATRegistrationNumber 
  • DestinationCountry 
  • DestinationZIPCode 
  • NationalTax 
  • NationalTaxIndicator 
  • OrderDate 
  • PurchaseIdentifier 
  • ShipFromZIPCode 
  • ShippingAmount 
  • ShippingTaxRate 
  • TransactionDiscount 
  • UniqueVATInvoiceReferenceNumber 


The following optional input parameters are Procurement specific per Line item: 

  • Discount 
  • ItemCommodityCode 
  • ItemDescriptor 
  • ProductCode 
  • Quantity 
  • TaxRate 
  • Total 
  • UnitCost 
  • UnitOfMeasure 


Since Line items are repeated, the advanced Enterprise methods openElement and closeElement must be used.  

The following is a code snippet in https://vb.net/ 

enterprise.setTag("ShippingTaxRate", shippingTaxRate) 

enterprise.setTag("TransactionDiscount", transactionDiscount) 

enterprise.setTag("UniqueVATInvoiceReferenceNumber", vatReferenceNo) 

 

Dim dr As DataRow 

For Each dr In myTable.Rows 

enterprise.openElement("LineItem") 

enterprise.setTag("ItemCommodityCode", dr("Item Code")) 

enterprise.setTag("ItemDescriptor", dr("Description")) 

enterprise.setTag("ProductCode", dr("Product Code")) 

enterprise.setTag("Quantity", dr("Quantity")) 

enterprise.setTag("UnitOfMeasure", dr("Unit Of Measure")) 

enterprise.setTag("UnitCost", dr("Unit Cost")) 

enterprise.setTag("TaxRate", dr("Tax Rate")) 

enterprise.setTag("Discount", dr("Discount")) 

enterprise.setTag("Total", dr("Total")) 

enterprise.closeElement() 

 
 
Tax Calculation 

The calculations below show how the NationalTax is calculated. Note that rounding can be up or down since the resulting NationalTax value is allowed to fall in a precision tolerance interval based on the number of line items. Calculation when TransactionDiscount is zero 

NationalTax = (sum of (LineItem Total x LineItem TaxRate) / 10000) + (ShippingAmount x ShippingTaxRate) / 10000 

Calculation when TransactionDiscount is NOT zero 

The TransactionDiscount is spread across some or all the line items resulting in an additional discount for these line items. Let’s call the LineItem Total of the affected line items, reduced LineItem Total. Then, 

NationalTax = (sum of (reduced LineItem Total x LineItem TaxRate) / 10000) + (ShippingAmount x ShippingTaxRate) / 10000. 

For the above calculation, a maximum and minimum tax amount is obtained by sorting line items in ascending and descending order respectively according to LineItem TaxRate.