Stripe Terminal & ERPAG integration

July 30, 2020

It is well known that fast and secure payment for goods or services is one of the priorities of every company. That is why it is necessary to enable your client to make the payment in the simplest possible way.

However, the advent of CLOUD services (such as ERPAG) has created a problem with accessing POS terminals on client computers. This happens because the browser denies access to local computer resources for security reasons.

Fortunately, there are a number of services on the market that allow online payment. One of the services that stood out in terms of quality, safety, speed of work, ease of use and speed of implementation is certainly Stripe.

Recently, Stripe has enabled the use of POS terminals (hardware billing device) for cloud based services. ERPAG has the ability to record a payment via POS terminals using the Stripe Terminal API (Application programming interface).

In the billing or processing process, ERPAG does not record any credit card data. It is using the Stripe Terminal API to create a payment request and receives only a temporary token from the Stripe service. This means that credit card data does not even reach ERPAG. Therefore the security of sensitive data is at the highest possible level.

The picture shows a general workflow. You can see how and where information travels from the moment the initial payment request is created to the moment the money arrives to your Stripe account.

Stripe Terminal and ERPAG flow chart

Preparing and adjusting the Stripe

The first step to a successful connection is to download the API keys from the Stripe account. In browser, go to https://www.stripe.com and log in using your Stripe account. Then click on the “Developers” link > “API keys” as shown in the image.

stripe api keys

Download the “Publishable key” and “Secret key” data to enter later in ERPAG.


If you haven’t already, you need to order a Verifone P400 from Stripe. You can later use it from ERPAG. Currently Stripe only offers the Verifone P400, which allows you to work with web applications).

The process of ordering and setting up the device is done through the Stripe dashboard. You can find detailed instructions at https://stripe.com/docs/terminal/readers.

stripe readers

After receiving the device, you need to register it through the Stripe dashboard. You can find instructions at https://stripe.com/docs/terminal/readers/connecting/verifone-p400.

The next step is to define locations. That would be defining your physical address on which the Card reader will be. This step is mandatory and it represents the additional security level, in order to avoid frauds. So, in section Locations click on the New button and then enter the address at which you will register your reader.

Note: Each individual location in Stripe represents one point of sale that can have one or more readers. Also, in ERPAG, you need to have a warehouse created for each location. When the ordered Reader arrives, you need to set it up and register it to the desired location through the Stripe portal (do not log the reader in the Ungrouped section because then you will not be able to use it through ERPAG).

Preparing and adjusting ERPAG

In order for ERPAG to communicate with your Stripe account, it is necessary to enter the previously obtained API keys in ERPAG. Log into ERPAG using your ERPAG account and activate the “Stripe” option from the “Administration” menu.

erpag admin panel

The next step is to enter your API keys and select a Credit Card reader.

Be sure to check the validity by clicking the VERIFY button and finally save the changes.

After the check-up, you have to activate the EDIT option in section Relations between Stripe Terminal location and ERPAG warehouse and set up (pair together) Stripe location with ERPAG warehouse. This step is also mandatory as ERPAG will allow you only to work with readers that are defined for a specific warehouse.

Payment

Payment in ERPAG is enabled through POS both on desktop and mobile app versions.


In the desktop version, enter the total amount of the payment by credit card. Then click on the + sign in the Credit Card section and select the Verifone P400 option.

erpag pos credit card

To record a payment through the ERPAG mobile application, you need to click on the card sign in the upper right corner. And then select the Verifone P400 option.

erpag pos mobile app

After activating the Verifone P400 option, ERPAG contacts the Stripe API to check the availability of the terminal. Stripe checks to see if your terminal is available and, if available, returns to ERPAG information about the temporary token that ERPAG will use to complete your transaction.

Selecting a credit card reader

If you have multiple registered readers in a warehouse location from which you are issuing a receipt note, ERPAG will display a list of readers (with their statuses, in case one of them is currently not connected to Stripe). By selecting the reader you are continuing with the payment process on the specific reader.

The customer can previously insert a credit card into the reader. If the transaction needs to be authorized with a PIN code during the billing process, an appropriate message will appear on your terminal. Also, it will tell you when the customer should insert or place the card onto the terminal.

As long as the billing process takes place, ERPAG waits for feedback from Stripe that the transaction is successful. The process itself is accompanied by a corresponding message on the screen. And only then closes the receipt and allows its printing. In case the transaction is not successful, the screen will display a message received by ERPAG from Stripe with the corresponding error code (for example ‘expired_card’, ‘insufficient_fund’, ‘stolen_card’, etc.).

Details on payment processing errors can be found at the following link: https://stripe.com/docs/declines/codes

Working with the Stripe terminal troubleshooting

While working with the terminal, there is a possibility that the device will be temporarily unavailable. This can happen due to various reasons (loss of power, loss of internet connection, blocking of the device, etc.). ERPAG does not communicate directly with the terminal itself, but receives information exclusively from the Stripe service. ERPAG will display the current status received from Stripe for the entire time it waits for the transaction to be processed.

The transaction process itself should not take longer than a few seconds to a minute. In case the process takes longer than a few minutes, there is a possibility that the transaction is not completed. So you will only be able to manually check the transaction success through the Stripe Dashboard.

If you have any other technical problem with using the terminal, contact Stripe Technical Support. Or, check the documentation at the following links:

https://stripe.com/docs/terminal

https://stripe.com/docs/terminal/readers/verifone-p400

https://stripe.com/docs/terminal/readers/verifone-p400#troubleshooting

Start NOW

Read More

Related Posts

JSON / XML Designer

JSON / XML Designer

JSON/XML Designer in ERPAG is a visual tool that will allow users to transform data from the ERPAG database into JSON or XML format. This can be further used for future integration with API services. This tool provides a user-friendly interface where users can define...

read more
Change log 05/29/2023

Change log 05/29/2023

The biggest change we developed is Automatization and Customization. This change is a huge milestone for us, and we will publish individual instructions for using the new features in the upcoming period. This module is divided into individual wholes: JSON Designer -...

read more
#SLACK API – step by step integration instructions

#SLACK API – step by step integration instructions

ERPAG has the ability to use Blockly Script to send or receive data via the HTTP protocol. Integration of two systems via API (Application Programming Interface) is always a complex process, especially for someone with little experience. In this blog we will explain a...

read more