EFTPOS Integration

Donate to this project

Development Project Status: Under Discussion

Total cost estimate (ex-Tax): 
$9600
Due date for completion of this stage: 
19/12/2014
Release: 
Future
Project funding: 

You can donate money to this project by entering the amount above and clicking the 'Add to cart' button. In the Checkout process you can either choose to pay now (via Bank Transfer, Cheque or Pay Pal) or you can pledge the amount by choosing the 'Pledge a payment for a Development Project' method. If you make a pledge, then when we have 100% funding commitments, you will be notified by email and you can then action your payment. Note that development will not commence until all funds are received.

Project description: 

This project will:

  • define an EFTPOS API to allow EFTPOS terminals to be used with OpenVPMS
  • change OpenVPMS payment and refund workflows to use EFTPOS if it has been configured
  • log transactions made via EFTPOS terminals, for reporting and auditing

The API will support:

  • Payments (with cash out)
  • Refunds
  • Integrated receipt printing

Note that this project will not include any implementation of the EFTPOS API, as:

  • the required 3rd party libraries don't have suitable licenses
  • we don't want to tie OpenVPMS to any one provider

 

 

Payments and Refunds

The EFTPOS API for payments and refunds integrated with the existing payment and refund editors.

Payments

When the Till has Terminals linked to it, the EFT payment type will include a Terminal field allowing the terminal to be selected:

Clicking the Apply or OK button will trigger the plugin for that terminal to complete the EFT payment. The plugin will be responsible for any user interaction, e.g. prompting if a signature is valid or not.

The success or failure of the transaction will be recorded in an EFTPOS Payment record.
If it is successful, and:

  • OK was pressed, the Payment dialog will automatically close.
  • Apply was pressed, the user can continue editing the payment. This can be used in situations where the customer wants to split a payment (e.g. using both cash and card).
    The Till cannot be changed once an EFT payment has been made.

If it was unsuccessful (e.g. the card was declined), the Payment dialog will remain open and the user can:

  • edit the EFT payment to change amounts, or;
  • delete it and use a different payment type.

Refunds

When the Till has Terminals linked to it, the EFT payment type will include a Terminal field allowing the terminal to be selected.

Clicking the Apply or OK button will trigger the plugin for that terminal to complete the EFT refund. The plugin will be responsible for any user interaction.

The success or failure of the transaction will be recorded in an EFTPOS Refund record.
If it is successful, and:

  • OK was pressed, the Refund dialog will automatically close.
  • Apply was pressed, the user can continue editing the refund. This can be used in situations where the customer wants to split a refund (e.g. using both cash and card).
    The Till cannot be changed once an EFT refund has been made.

If it is unsuccessful (e.g. the card was declined), the Refund dialog will remain open and the user can:

  • edit the EFT refund to change the amount, or;
  • delete it and use a different refund type.

Surcharges

EFTPOS providers can apply surcharges to amounts. As these are applied after invoice finalisation, they cannot appear on the customer invoice.

Surcharges will be recorded for reporting purposes on the EFTPOS Payment and EFTPOS Refund records, but will otherwise not be used.

Terminal Errors

Sometimes a terminal may not be available due to communication problems between the host running OpenVPMS and the terminal, but the terminal may still function manually.

To enable users to still perform EFT transactions, a No Terminal option will be provided in the list of terminals displayed to the user. When selected, the EFT payment or refund will not trigger the EFT plugin to perform the EFT transaction but simply record that an EFT transaction has been performed.
The corresponding EFTPOS Payment or EFTPOS Refund will have:

  • Status set to Manual Override
  • Terminal set to No Terminal

The transaction identifier, transation reference, auth code, card type and surcharge fields will be unset.

Transaction Recovery

If a terminal payment or refund is terminated prematurely e.g. by the user closin the browser, the user can attempt to recover it by editing the Payment or Refund again. This will attempt to resume the transaction.
If this fails, the EFTPOS provider will cancel the transaction.

Reversals

If a payment or refund contains an EFT record done via a Terminal, these will not be able to be reversed using Customers - Account - Reverse. A corresponding refund/payment must be entered instead.

Transaction Log

OpenVPMS will record the status of each transaction initiated via an EFTPOS terminal using EFTPOS Payment and Refund records.
These can be used for the purposes of reporting and auditing, and will include transactions that were initiated but failed due to error, were declined, or cancelled.
The following details will be recorded:

  • date/time – the date/time the transaction was submitted
  • transaction identifier - the provider generated transaction identifier
  • transaction reference
  • auth code
  • card type e.g. "EFTPOS", "Visa", "MasterCard", "American Express", "Diners Club", "JCB" or "UnionPay". As these are provider specific, and may change over time, these will be stored as free-form text
  • customer. The customer the transaction applies to, or the OTC pseudo-customer for over the counter transactions
  • amount – the amount the transaction was for
  • cashout - the cashout amount
  • surcharge - the surcharge amount
  • status – the transaction status
  • receipts – any receipts generated for the transaction
  • terminal – the terminal used
  • location – the practice location
  • till – the till

A new EFTPOS reporting workspace will be provided in Reporting that can be used to query transactions by:

  • type i.e. Payment or Refund
  • date/time
  • transaction identifier
  • customer
  • terminal

 

Integrated Receipt Printing

Integrated receipt printing allows the EFTPOS terminal receipt to be included on the customer receipt. This is to support EFTPOS terminals that are not connected to a printer.

To support this:

  • The EFT Item will be extended to allow the EFTPOS terminal receipt to be attached, as plain text
  • The Receipt template will be updated to include the EFTPOS terminal receipt, if present
  • The Check-Out workflow will be changed to include an option to print the receipt, as well as the customer invoice

Configuration

EFTPOS terminal integration is enabled by:

  • attaching one or more EFTPOS terminal configurations to the relevant Till.
  • The configuration will be supplied by the EFTPOS provider.
  • deploying the provider implementation of the POS API to the OSGi container

User Interface
 

This initial version of the EFTPOS API will support EFTPOS providers that have browser based terminal integration. When performing payments or refunds, a window containing the provider's transaction workflow will be displayed.

This will not necessarily match the OpenVPMS look and feel.

Exclusions

This project will not support:

  • incorporating surcharges into payments or refunds.
    If surcharge is applied, it will be recorded, but only for reporting purposes
  • automatic reversal of EFT payments
    If a Payment containing an EFT transaction needs to be reversed, a Refund must be entered manually
  • automatic reversal of EFT refunds
    If a Refund containing an EFT transaction needs to be reversed, a Payment must be entered manually
  • EFTPOS integration using the Credit Card type for Payments or Refunds
    i.e. the EFT type must be used for both debit and credit cards.

 

 

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Re: EFTPOS Integration

we would definitely be interested in this.

question - would it automatically record the type of card used? i.e. visa/amex/mastercard? If so, bonus.

Thanks,

Adrian

Re: EFTPOS Integration

Yes.

Just to be clear, note that there are two parts to get POS support into OpenVPMS:

  • we define a API for POS
  • POS providers or integrators implement the API and deploy to OpenVPMS

 

 

Re: EFTPOS Integration

we will pledge 25% of the cost of this - $2400

Hopefully this will get the ball rolling and others involved.

Re: EFTPOS Integration

Tyro are nibbling at this project after intermittent contact over the last 3 years - but claim the hold up is at OpenVPMS end - is this true?

Re: EFTPOS Integration

Hi Jim,

Not really.  We spent quite a bit of time many moons back and couldn't get Tyro to agree on a suitable level of fuding so it stalled for a longtime.  Tyro got interested again early this year but they have defined a new, preferred, way of integrating with their services so we have to do more work on prototyping this and updating the specification so it could be costed.  This is now completed and will be sent to Tyro to review.   Next stage will be to finalise the specification and get funding for both the EFTPOS project in OpenVPMS and the Tyro plugin .. watch this space :-)

Cheers
Tony

Syndicate content