Manage Credit Card Payments with CenPOS in Customer Order Entry

Abstract

This document describes the differences in the credit card management process in customer order entry when using CenPOS as third-party provider. It also describes the CenPOS transaction types and methods supported by M3 Business Engine.

Background

A solution exists in M3 Business Engine to support credit card payments in the customer order entry using the third-party provider CenPOS. The solution enables the CenPOS POS integration system to perform a credit card transaction from 'Credit Card Authorization. Open' (CRS435).

Entering a batch order where the credit card payment has been authorized by CenPOS is also possible.

The basic credit card management process is described in Credit Card Management in Customer Order Entry and Manage Credit Card Payments in Customer Order Entry.

Before you start

Limitations

Each implementation must secure its environment and the interface to its specific credit card management software.

For CenPOS, M3 supports only the transaction types and the methods mentioned in this document.

M3 Business Engine only supports inquiry on reference numbers one at a time.

CenPOS transaction types supported by M3

Transaction type

Description

Auth

A credit card authorization transaction is performed.

Credit

A credit card transaction is performed. A blind credit is applied to the credit card account without referencing a previous transaction.

SpecialForce

A credit card force transaction is performed without specifying full card information. A previous authorization transaction in current batch for settlement is captured.

Void

A credit card void transaction is performed. A credit sale transaction is removed from the existing batch so that the customer will not be charged.

The void transaction can be performed on a SpecialForce, Credit, and SpecialReturn transaction.

Reauth

Because reference authorization transaction uses the existing reference number to create a new authorization, the credit card details do not need to be provided again.

The two different reference numbers have no connection to each other.

SpecialReturn

A return transaction is performed. A credit card return transaction credits a specified amount from a previous transaction to the cardholder and captures this new transaction in the current batch for settlement.

A return transaction can be performed without specifying full card information.

CenPOS methods supported by M3

If not performing an authorization or a credit transaction, the method for processing the card transaction is called ProcessCreditCard.

The method used to inquire on a previous transaction is GetCardTrx.

Note:  M3 Business Engine only supports inquiry on specific reference numbers.

Entry of a customer order with a credit card payment

Note:  CenPOS POS system is started through the JavaScript when performing an authorization or a credit transaction where card details need to be provided. Otherwise, CenPOS is started in the background.

Entry of a customer order with a credit card payment in batch order entry

If an authorization, credit, or special return transaction is performed outside M3 Business Engine, it is possible to add the reference number received from CenPOS in field Reference number (NREF) in the MI program for Customer Order interface (OIS100MI) with transaction 'AddBatchHead'. M3 selects the third-party provider according to the settings in M3.

If the third-party provider is CenPOS, and the reference number is not already updated to the credit card authorization table (CRCCAT), an inquiry is performed against CenPOS. The credit card authorization table (CRCCAT) is updated with the information retrieved from CenPOS. An internal reference number is linked to the reference number from CenPOS and is updated to the customer order (OOHEAD.NREF).

If the inquiry is not approved, the status is set to 17 = Inquiry error at order batch entry. The transaction type is set to 'Unknown' in 'Credit Card Authorization. Open' (CRS435), and the customer order is blocked. This transaction must be handled in 'Credit Card Authorization. Open' (CRS435) by doing a new inquiry. The result of the inquiry is automatically updated in 'Credit Card Authorization. Open' (CRS435). If the transaction is still not approved, it must be analyzed. If the transaction comes from the order batch entry, the card type is always set to blank.

Differences to the standard credit card management process

When a capture is performed in 'Credit Card Capture. Open' (CRS436) and status approved is received from CenPOS, the capture transaction is set to status 90 (finalized) directly because CenPOS performs all checks directly.

In 'Credit Card Capture. Open' (CRS436):

CenPOS does not support void of an authorization transaction. If void of an authorization transaction is performed in M3 Business Engine, the transaction is set to status 85 = voided, but no connection to CenPOS is performed.

CenPOS transactions (not connecting to CenPOS) can be simulated using function key F20 = 'Simulate' in (CRS435). A credit card number used for simulation is automatically added, and a simulated reference number is retrieved when Submit is pressed.

Note:  The simulation does not use the JavaScript.

Tax amounts are sent to CenPOS when a capture is performed. The tax amounts are retrieved from the invoice (Invoice line table OINVOL).

Automatic reference authorization at picking point

If the credit check at picking point is activated on the dispatch policy connected to the customer order type, a reference authorization can be automatically triggered when doing the picking.

The automatic reference authorization is performed under these conditions:

The following is an exception:

If the customer order has been partly delivered or invoiced, and the capture of this invoice has not been performed (CRCCCT is not equal 90), automatic reference authorization is not performed at picking point. Instead, the status is set to 15 (Error code) in 'Credit Card Authorization. Open' (CRS435) (table CRCCAT), and the customer order is blocked. If a reference authorization is performed, the original reference number is no longer valid when using the third-party provider CenPOS. Therefore, the capture of the original transaction needs to be performed before a reference authorization is done.

It is recommended to send the invoices for capture when invoicing has been performed.

Note:  The authorization amount is the amount remaining to be invoiced on the customer order.

If authorization days are not defined in 'Credit Card Interface Settings. Open' (CRS434), automatic reference authorization is not performed at picking point. If the customer order has been partly delivered, invoiced, and captured, the status is set to 15 (error code) in (CRS435), and the customer order is blocked. A manual reference authorization must be performed before this can be picked.

If credit check at picking point is not activated, neither automation of the authorization nor check for partial delivery is performed. When invoicing is complete, the invoice retrieves an error code in 'Credit Card Authorization. Open' (CRS436), and a reference authorization can be manually performed. If the authorization has lapsed, an automatic reference authorization is performed by CenPOS when sending the transaction for capture.

Commercial card information

Additional information is sent to the third-party provider to support commercial cards for capture transactions. The information is divided into header and line information. Header information is general information for an order with credit card payments, whereas line information is for each line within the order. Discount amount is setup as total order discount and does not consider line discount. Line charges and header charges are sent as lines. CenPOS supports character set according to standard UTF-8.

Header information

M3 field

CustomerCode

Customer number (CUNO)

ShiptofromZIPcode

Zip code from customer (PONO)

Destinationcountrycode

Three digit country code - translated from customer country code (CSCD)

VATinvoicereferencenumber

Invoice number (CINO)

VATtaxamountrate

Tax amount (VTAM)

Freightshippingamount

Not yet classified

Dutyamount

Not yet classified

Orderdate

Order date (ORDT)

Discountamount

Discount amount (DIAM)

Line information

M3 field

ItemCommodityCode

Item number (ITNO)

ItemDescription

Item description (ITDS) - translated according to language on customer order

ItemSequenceNumber

Auto generated sequence number

LineItemTotal

Line amount (IVQS * NEPR)

ProductCode

Item group (ITGR)

Quantity

Invoiced quantity (IVQS)

UnitCost

Net price (NEPR)

UnitofMeasureCode

By CenPOS predefined unit of measure codes

Order information, such as line charges and round offs, is presented as lines in the same way as normal item lines are sent to CenPOS.

The unit of measure code is translated according to settings specified in 'Credit Card Translation Table. Open' (CRS443).

Charge information

M3 field

ItemCommodityCode

Charge ID (CRID)

ItemDescription

Name (CRD0) - translated according to language on customer order

ItemSequenceNumber

Auto generated sequence number

LineItemTotal

Charge amount (CRAM)

ProductCode

Not used for line charges

Quantity

Not used for line charges

UnitCost

Not used for line charges

UnitofMeasureCode

Not used for line charges

Round offs

M3 field

ItemCommodityCode

Not used for round offs

ItemDescription

Not used for round offs

ItemSequenceNumber

Auto generated sequence number

LineItemTotal

Round off - from invoice

ProductCode

Not used for round offs

Quantity

Not used for round offs

UnitCost

Not used for round offs

UnitofMeasureCode

Not used for round offs

Technical information

The transactions sent to CenPOS can be checked in XML format, with the exception of those sent through the JavaScript, by enabling concept logging of mvx.fim.logCenPOS in the M3 Business Engine Grid.

JavaScript:

When personalization is performed in (CRS435), and the user performs an authorization or credit and presses Submit, a JavaScript is run to create the URL to CenPOS.

The JavaScript uses information from the (CRS435) view (Co number, payer, third-party provider, third-party id, amount, currency, transaction type, and address) and additional information is retrieved from various other MI programs.

MI programs used

CRS434MI Get3rdPartyId is used to retrieve information, for example, URL address and merchant id.

When a response URL is retrieved from CenPOS, M3 Business Engine is enabled to retrieve an internal reference number and status using CRCCINMI AddCCRefno. The JavaScript updates (CRS435) with the information retrieved from the MI transaction and from CenPOS.

When calling CRCCINMI AddCCRefNo:

Division

 

Third-party provider

CenPOS

Order category

3

Expiration date

From CenPOS

Result

From CenPOS

Free message id 1

Result message from CenPOS

Free message id 2

N/A for CenPOS

Credit card authorization amount

From CenPOS, note if credit negative amount

Credit card account number

From CenPOS (Last four digits with **)

Card Type

From CenPOS

Type of corporate purchase card

Always set to ' '

Status

If communication error, set to 10. If other error, set to 15.

If approved authorization, set to 20. If approved credit, set to 90.

Reference

From CenPOS

Transaction type

A = Authorization

C= Credit

Currency

From CenPOS

Third-party id

From CRS435

Name on card

From CenPOS

Related topics