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:


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:

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:

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

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



Used if the payment amount is negative.


Used if the payment amount is positive.


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

Related topics