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
- (CRS435) is personalized with a script that controls the connection to CenPOS POS integration system. The JavaScript used during the implementation is called CenPosM3_vX, where X indicates the version.
- In 'User. Open' (MNS150), set the company and division to the company and division that the customer order in (CRS435) is connected to.
- Complete the starting conditions mentioned in Entering a Customer Order: Normal Order Entry.
- Define the settings from Configure Credit Card Management Interface.
- Define the Payment class 03 (Bank transfer) in 'AR Payment Method. Open' (CRS076) for the required payment method.
- Select the Credit card check box in 'AR Payment Method. Open' (CRS076).
- Set all the values for the payment term used to zero in 'Payment Term. Open' (CRS075).
- If a verification of the credit card authorization is to be performed at release of pick list, the Credit check at picking release check box in 'Dispatch Policy. Open' (MWS010) must be selected.
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 does not support void of an authorization transaction. If void of an authorization transaction is performed, the transaction is set to status 85=voided, but no connection to CenPOS is performed.
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.
Entry of a customer order with a credit card payment
- When a customer order is specified with a payment method for credit card, (CRS435) is run to authorize the credit card payment.
- If the third-party provider is CenPOS, the card number information is not displayed as this is stated in CenPOS POS integration system instead of M3.
- The user clicks F16='Submit' and CenPOS POS system is started.
- CenPOS POS system is displayed, and the user specifies the credit card details and clicks the Submit button.
- (CRS435) is automatically displayed along with the reference number and the result (from CenPOS).
- The user can now exit the customer order as per the normal procedure.
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 API OIS100MI (Customer Order interface), 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 (CRS435), and the customer order is blocked. This transaction must be handled in (CRS435) by doing a new inquiry. The result of the inquiry is automatically updated in (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.
Credit card capture
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.
Tax amounts are sent to CenPOS when a capture is performed. The tax amounts are retrieved from the invoice (Invoice line table OINVOL).
'Credit Card Capture. Submit' (CRS444) can be used to capture all records in status 20 and 25. Submit type 03 is selected to capture batches that include transactions that have duplicated or expired authorization references. For these transactions, a reference authorization is performed before attempting the capture.
The 'Auth days' defined in (CRS434) is used to decide if an authorization is expired.
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 credit check at picking point is activated on the dispatch policy connected to the customer order type.
- The authorization performed has expired according to the authorization days defined in 'Credit Card Interface Settings. Open' (CRS434).
- If the customer order has been partly delivered, invoiced, and captured, and the authorization days in (CRS434) is defined, an automatic reference authorization is performed whether or not the authorization days are passed. The old authorization in this case is used for the capture of the first delivery.
- If the reference authorization is approved, the customer order can be processed accordingly. If the reference authorization is not approved, the customer order is blocked and the authorization record receives an error code.
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 (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.
If authorization days are not defined in (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 (CRS436), and a reference authorization can be manually performed.
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 |
Payer (PYNO) |
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 |
Product group (ITCL) |
ItemDescription |
Item description (ITDS) - translated according to language on customer order |
ItemSequenceNumber |
Auto generated sequence number |
LineItemTotal |
Line amount (IVQS * NEPR) |
ProductCode |
Item number (ITNO) |
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 |
Not used for line charges |
ItemDescription |
Name (CRD0) - translated according to language on customer order |
ItemSequenceNumber |
Auto generated sequence number |
LineItemTotal |
Charge amount (CRAM) |
ProductCode |
Charge ID (CRID) |
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 clicks 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 API programs.
APIs used
CRS434MI, transaction 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 API 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 blank |
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 |