Manage Credit Card Payments with a Third-Party Provider in Cash Desk

A solution exists in M3 Business Engine to support credit card payments in cash desk using a third-party provider. The solution enables an external system to perform a credit card transaction from 'Cash Payment. Open' (OIS215).

Note:  If a JavaScript for the selected third-party provider is not developed for the customer, CenPOS is used as the third-party provider.

For more information about CenPOS, see Manage Credit Card Payments with CenPOS in Cash Desk.

Before you start

To manage credit card payments through an external third-party provider from the cash desk, fulfill these prerequisites:

  • Secure each implementation with its environment and the interface to its specific credit card management software.
  • Define the settings listed in Configure Credit Card Management Interface.
  • Define the cash desk used as a physical cash desk (cash desk type = 1) and activate the externally managed credit card payment field in 'Cash Desk. Open' (OIS210).
  • Verify that the payment method used in (OIS215) is defined in 'AR Payment method. Open' (CRS076) as a credit card payment method.
  • The B and D panels of (OIS215) are personalized with a script in H5 against the external third-party provider.
  • Define the customer e-mail address (type 01) in 'Email Address. Open' (CRS111).
  • Set the company and division in 'User. Open' (MNS150) to the same company and division from which the cash desk is connected in (OIS215).

Limitations

  • If partial payment is performed, tax information for the partially paid invoice is not sent to the third-party provider when using OIS215MI LstLineCrCrd.
  • Result message provided from the third-party provider is not translated.
  • The functionality can only be activated in H5 client.
  • OIS215MI LstCrCrd: If a credit amount is to be processed, invoice information is not listed.

Specifying a cash payment with credit card

When specifying a payment method in (OIS215) for a credit card where the cash desk used has the externally managed credit card payment field activated, M3 checks if a third-party ID exists according to the settings in 'Connect Third-Party ID. Open' (CRS439) and 'Credit Card Interface Settings. Open' (CRS434).

If the third-party provider exists, these fields are displayed in (OIS215) and can be used in the JavaScript for the interface to the third-party provider:

  • Payment number
  • Third-party provider and third-party ID
  • Credit card reference number
  • Result
  • E-mail (The customer e-mail address (type 01) of the specified payer is the default, it can however be changed.)
  • Send slip
  • Card option - this field is set up in 'AR Payment Method. Open' (CRS076) and is displayed if the value is not equal to zero.

You specify the invoices and cash to be paid and click Enter to start the third-party provider system. In the third-party provider system, you specify the credit card details and click Submit. 'Cash Payment. Open' (OIS215) is automatically displayed and the amount is updated. The credit card reference number retrieved from the third-party provider is displayed in the credit card reference number field. When all payments are complete, you validate the payment as normal procedure in cash desk.

The result of the transaction is displayed with a result code and message retrieved from the third-party provider. If an error code is retrieved, any update of the payment is not performed.

The third-party provider, third-party ID, transaction type, card type, card number last four digits, and name on card are updated to the cash desk table (OPAYMH) and can be displayed in 'Cash Payment. Display' (OIS219) by creating a configurable view.

You can also add values for these fields and save them in the cash desk table OPAYMH:

  • Credit card payment method
  • PAN Sequence number
  • Application Identifier
  • Authorization code
  • Terminal ID
  • Verification method
  • Credit card transaction time
  • Additional information.

These fields can be configured on the Cash Desk XML receipt printout OIS213PF.

Deleting an existing payment (void transaction) is possible as long as the payment has not been validated in (OIS215). When a delete of the credit card payment is confirmed on (OIS215/D), the third-party provider system is started and a void transaction could take place.

Note:  If a credit card payment has been performed with a third-party provider, it is not possible to exit 'Cash Payment. Open' (OIS215) without validating the payment. A void must be performed before exiting (OIS215).

The API transaction AddVoid in OIS215MI can be used to save void transactions from a third-party provider in (OIS215). A Void record cannot be deleted and its amount is not included in the totals. Upon validating the payment in (OIS215) a record for the void transaction is saved in Cash desk payments table OPAYMH with transaction type (CDTT) '12 - Void' and can be viewed in (OIS219). Void records go directly to status PTST '80-Sub-ledger and general ledger are updated' upon validating the cash desk in 'Cash Desk. Validate' (OIS217), although no accounting is carried out. The information in the response from the third-party provider regarding the void transaction is added to the XML stream for printout configuration purposes.

It is not possible to delete a paid invoice when the payment has been performed using a third-party provider because the information about the invoices will have been transferred to the third-party provider.

If a declined payment or signature receipt must be printed from M3 BE because it is not printed by the credit card software, the API transaction PrtCCReceipt in the cash desk API OIS215MI can be used.

The API transaction will trigger a printout called OIPRTR where the input data in the API transaction is made available in the XML printout metadata for configuration purposes. Information such as name and address of the payer and the name of the cash desk is retrieved based on the input data and made available in the XML metadata.

It is possible to override the printer setup through the API transaction. The input parameter 'Printer' can be used to override the printer settings in 'Output Media Selection. Open' (MNS205) and 'Cash Desk. Open' (OIS210) by specifying what printer is to be used. Available printers that can be used as input are defined in 'Printer. Open' (CRS290).

Credit card details can be configured in XML on the Cash Desk receipt printout OIS213PF.

Technical solution

When personalization has been performed in (OIS215) and you specify the cash received and press Enter, a JavaScript is run to create the URL to the third-party provider.

The JavaScript takes information from the (OIS215) view (payment number, payer, third-party provider, third-party ID, e-mail, send slip, and cash received), and other information can be retrieved from various API programs.

API programs used

  • CRS610MI Get Address
  • OIS215MI LstCrCrd (retrieves information of the invoices paid)
    Note: If a credit amount is to be processed, information of the invoices is not listed.
  • OIS215MI ValidateCCdata checks for incorrect inputs before the third-party provider is enabled. If there is a warning or stop message, the API program will say NOK and you are returned to (OIS215).
  • CRS434MI Get3rdPartyId

When a response URL is retrieved from the third-party provider, M3 Business Engine is updated with the information retrieved from the third-party provider using OIS215MI AddPayment.

The result code and message is updated using OIS215MI Add3rdpResult.

This table shows all transaction types supported in the JavaScript:

Transaction type

Description

Credit

Used if the payment amount is negative.

Sale

Used if the payment amount is positive.

Void

Used if the button is clicked on the (OIS215/D) panel.