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.

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

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.
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 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.

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).

'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.

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

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