Bankart Uputstvo Za Integraciju, ENG
Bankart Uputstvo Za Integraciju, ENG
THE USE OF
BANKART’S
PAYMENT GATEWAY
– INSTRUCTIONS
FOR MERCHANTS
Jun 2023
1
UNLIMITED
Table of contents
1. GLOSSARY ........................................................................................................................................ 3
2. INTRODUCTION ................................................................................................................................ 4
2.1. Online transaction flow .........................................................................................................................4
3. TECHNICAL INTEGRATION OF THE CARD PAYMENT METHOD (INSTRUCTIONS FOR DEVELOPERS)........ 6
3.1. Main steps in the implementation of support ......................................................................................6
3.2. Technical documentation and requirements ........................................................................................6
3.3. Merchant-side transaction processing support ....................................................................................6
3.4. Obtaining card details from the customer ............................................................................................7
3.4.1. Designing a payment page with an input mask .............................................................................7
3.4.2. Custom payment page ...................................................................................................................7
3.5. Types of transactions supported on Payment Gateway .......................................................................8
3.5.1. Basic types of transactions supported: ..........................................................................................8
3.5.2. Types of supported transactions with card-storing capability .......................................................9
3.5.3. Card storing ................................................................................................................................. 10
3.6. Support for online instalment payments ........................................................................................... 18
4. TESTING GUIDELINES ...................................................................................................................... 20
4.1. Basic information ............................................................................................................................... 20
4.2. Obtaining data for connection to Payment Gateway ........................................................................ 20
4.3. Test cards ........................................................................................................................................... 23
4.4. Testing with the simulation connector .............................................................................................. 23
4.5. Transition to a production environment ............................................................................................ 25
5. BANKART PAYMENT GATEWAY: USER INTERFACE OVERVIEW .......................................................... 26
5.2.1. Reviewing the details (logs) of each transaction ......................................................................... 28
5.2.2. Captures and voids of transactions ............................................................................................. 28
5.2.3. Refund of the amount of transactions ........................................................................................ 29
5.2.4. Exporting the list of executed transactions ................................................................................. 30
2
UNLIMITED
1. GLOSSARY
Authentication (3DS): The process of verifying a user's identity to ensure that the user has the right
to carry out a transaction.
Authorization: The process of verifying card details, limits and whether the customer has sufficient
funds in their bank account to make the purchase they wish to make, etc. This process generally
occurs after authentication has been successfully completed, but in certain exceptions even without
successful authentication.
Payment Gateway: A system that enables or simplifies the acceptance of card payments or instant
payments (Flik, etc.) to merchants. It is a system that connects websites (stores) with issuers and
acquirers of payment methods. Payment Gateway also provides a connection to the customer
authentication systems. In addition, Payment Gateway has a web interface to facilitate the review of
transactions made.
Access Control Server (ACS): A system used by the card-issuing banks for authentication of
cardholders using several different methods.
3
UNLIMITED
2. INTRODUCTION
This document is intended for merchants who use Bankart's Payment Gateway to accept card
payments. The document provides the information necessary for the integration of Payment
Gateway, in addition to general information on card transactions and testing instructions.
4
UNLIMITED
customer's payment confirmation app (usually in the form of a push notification) or
a unique password (OTP) is sent to the phone number;
c. the customer performs authentication;
d. the authentication system transmits the authentication result information to the ACS
system;
e. The ACS forwards the authentication result information to Payment Gateway.
4. In the next step, the authorization process starts:
a. Payment Gateway sends an authorization request to the card scheme;
b. the latter forwards the request to the customer's bank, where the purchase is authorized;
c. the customer's bank returns the response to the card scheme, and at the same time
the process is initiated for sending a security text message (if the service is activated)
and an instalment text message (if it is an instalment purchase) to the customer;
d. the card scheme returns a response to Payment Gateway.
5. Payment Gateway calls the URL to display the transaction success screen:
a. Payment Gateway returns the transaction result to the merchant;
b. the merchant acknowledges the receipt of the result;
c. the customer is presented with the transaction success/failure screen.
5
UNLIMITED
All API calls must contain a signature that is generated based on the content sent and the secret
shared. Callbacks are also signed so you can verify the authenticity of the received content. API calls
can be modified on the Payment Gateway side in some of the optional fields. Merchant-side support
must be done in such a way that the change does not affect the functioning.
Sample code in programming languages PHP, Java, C# (.NET Framework) and plugins for the latest
versions of WooCommerce and Wordpress (v4 and v5), Prestashop (v1.7 – previous versions are not
supported), Magento (v2) and Opencart (v3 – v2 is not supported) platforms is available at: link.
IMPORTANT: the merchant or their IT support must ensure that the server certificate is replaced on
time before expiry, as proper support is not possible without a valid certificate. Monitoring
6
UNLIMITED
production after the change is made on the side of the merchant is required. If the merchant does
not obtain the same processing results at the time of monitoring as before the change was made, the
merchant should revert their system to the previous state and inform Bankart
([email protected]).
7
UNLIMITED
3.5. Types of transactions supported on Payment Gateway
8
UNLIMITED
9
UNLIMITED
The following shows how the different types of transactions that have the possibility of storing a card
(CoF, MiT and recurring) should be indicated. Tables indicating the main indicators are enclosed, as
well as examples of JSON calls.
10
UNLIMITED
Within CoF transactions, there are 3 types of possible implementations of these transactions:
- Initial, where the amount equals 0:
It is a customer-initiated transaction (CIT) where card details have to be entered.
o In the “transaction Type” field, the transaction should be marked as REGISTER, which
will only save the card. Alternatively, PREAUTHORIZE can be selected, where the
indicators then differ from the REGISTER transaction.
o In the case of a REGISTER transaction, the “withRegister” field is empty. In the case
of a PREAUTHORIZE transaction, the value in the “withRegister” field is TRUE.
o The field “authenticationIndicator” is set to 04 in the case of a PREAUTHORIZE
transaction. In the case of a REGISTER transaction, the field is left empty. The value
of “04” means that the card is only added, without setting up a recurring/MIT series.
o The field “challengeIndicator” is populated with the value “04”, which means that
strong authentication (SCA) is required by the card schemes for each initial
transaction.
o Other fields marked above do not need to be filled in.
11
UNLIMITED
indicating that it is a subsequent transaction, but linked to the first one.
▪ Therefore, the field “referenceTransactionId” should be filled with the UUID
(unique indicator) of the Register or the initial transaction, because the
system thus knows that strong authentication has already been performed
on the first transaction and does not need to be performed here.
12
UNLIMITED
{
"merchantTransactionId": "D-2022-04-07-624ebfa95f6d9",
"extraData": {
"userField1": "00"
},
"merchantMetaData": "Transaction:Debit;Description:test",
"referenceUuid": "a4189ed3a0ea2546826a",
"amount": "1.99",
"currency": "EUR",
"successUrl": https://mydomain.com/PHPPaymentGatewayJson/examples/PaymentOK.php",
"cancelUrl": " https://mydomain.com/PHPPaymentGatewayJson/examples/PaymentCancel.php",
"errorUrl": " https://mydomain.com/PHPPaymentGatewayJson/examples/PaymentNOK.php",
"callbackUrl": "https://mydomain.com/PHPPaymentGatewayJson/examples/Callback.php",
"description": "One pair of shoes",
"withRegister": false,
"transactionIndicator": "CARDONFILE",
"customer": {
"firstName": "Janez",
"lastName": "Novak",
"billingAddress1": "Street 1",
"billingCity": "City",
"billingPostcode": "1000",
"billingCountry": "SI",
"email": "[email protected]",
"ipAddress": "91.208.168.48"
},
"language": "sl"
}
Within MIT transactions, there are 3 types of possible implementations of these transactions:
- Initial, where the amount equals 0 – MIT establish:
With this transaction, the merchant obtains consent to initiate further transactions without
the customer being present. It is a Merchant Initiated Transaction (MIT) where card details
need to be entered or the card is already stored with a Register transaction from before. In
both cases the fields are filled in the same way.
o In the “transaction Type” field, the transaction is marked PREAUTHORIZE.
o In the “transactionIndicator” field, the transaction needs to be marked INITIAL, as it
is the first transaction in the series.
o The “withRegister” field should be marked TRUE, which means that the card is stored
for subsequent payments.
o The “authenticationIndicator” field is automatically set to 02 for this type of
13
UNLIMITED
transaction, as it is linked to the “transaction Type” field. The value “02” means that
the card is also stored when the MIT series is created.
o The field “recurringFrequency” is populated by default with the value “1” because,
according to the strict rules of the card schemes, it is not a recurring transaction, as
the amount can be different each month for MIT transactions. The desired number
of payments in the series can be entered here.
o If the transaction is one where the card is already stored, the
“referenceTransactionId” field should be used and populated with the UUID (unique
indicator) of the Register or the initial transaction in the series, as the system thus
knows that strong authentication has already been performed on the first
transaction and does not need to be performed here.
o The field “challengeIndicator” is populated with the value “04”, which means that
strong authentication (SCA) is required by the card schemes for each initial
transaction.
14
UNLIMITED
15
UNLIMITED
"callbackUrl": "https://mydomain.com/PHPPaymentGatewayJson/examples/Callback.php",
"description": "One pair of shoes",
"withRegister": false,
"transactionIndicator": "CARDONFILE-MERCHANT-INITIATED",
"customer": {
"firstName": "Janez",
"lastName": "Novak",
"billingAddress1": "Street 1",
"billingCity": "City",
"billingPostcode": "1000",
"billingCountry": "SI",
"email": "[email protected]",
"ipAddress": "91.208.168.48"
},
"language": "sl"
}
Within Recurring transactions we again have 3 types of possible implementations of these transactions:
- Initial, where the amount equals 0 – Recurring establish:
This transaction sets up a series of MIT transactions. It is a Merchant Initiated Transaction
(MIT) where card details need to be entered or the card is already stored with a Register
transaction from before.
In both cases the following fields are filled in the same way.
o In the “transaction Type” field, the transaction is marked PREAUTHORIZE.
o In the “transactionIndicator” field, the transaction needs to be marked INITIAL, as it
is the first transaction in the series.
o The “withRegister” field is marked TRUE, which means that the card is kept stored.
o The “authenticationIndicator” field is automatically set to 02 for this type of
transaction, as it is linked to the “transaction Type” field. The value “02” means that
the card is also stored when the MIT series is created.
o The “recurringFrequency” field is populated by default with a value different from 1
or with the number of transactions to be executed in this series. The desired number
of payments in the series can be entered here.
o If the transaction is one where the card is already stored, the
“referenceTransactionId” field should be used and populated with the UUID (unique
indicator) of the Register or the initial transaction in the series, as the system thus
knows that strong authentication has already been performed on the first
transaction and does not need to be performed here.
16
UNLIMITED
o The field “challengeIndicator” is populated with the value “04”, which means that
strong authentication (SCA) is required by the card schemes for each initial
transaction.
17
UNLIMITED
"language": "sl"
}
18
UNLIMITED
o If unauthorized characters are received (only numeric characters are allowed), the
transaction is rejected.
o If the merchant does not have the option to allow instalment payments selected, the
value in the received instalment field is ignored by the merchant and the transaction
is executed without instalments.
- An existing field in Payment Gateway called “userField1” is used to forward instalments to the
authorization system (visible in the above examples of the JSON call for card storing). Until now,
this field has not been used (the value entered had no impact on the processing of
transactions). If the merchant has a signed instalment payment support contract and a solution
in place, the value in the “userField1” field has an impact on the processing.
- The number of instalments is entered by the user. To avoid problems with inappropriate data
entry by the customer, we recommend the use of drop-down menus, radio buttons, etc., and
thus limiting the possible values entered to only the number specified in the contract
concluded with the bank. The merchant may introduce additional instalment controls on their
site and, after the customer has entered the number of instalments they wish to make in
relation to the items purchased or the amount, either allow such a transaction (forward it for
further processing) or not allow the customer's choice (e.g. prevent a purchase of EUR 10 in 5
instalments, which would incur excessive costs in terms of bank charges).
- In the process of displaying the possible payment methods, the merchant must give the
customer the choice of a method that covers instalment payments with the cards for which
the merchant has a contract in place. If the customer selects the instalment payment method,
the merchant enables the customer to select or (less preferably) enter the desired number of
instalments. The number of instalments selected/entered by the customer is sent by the
merchant in the request in the “userField1” field.
- Once the request has been forwarded, it will be handled in line with the regular production
procedures with the addition of an instalment field control. Authorization is made for the full
amount of the purchase.
- The merchant carries out a CAPTURE in accordance with the dynamics of the dispatch of the
goods, whether or not payment by instalments has been selected.
- If the merchant carries out CAPTURE of the purchase in several parts, each part will be deemed
charged in line with the number of instalments selected.
- If the merchant has instalment payment support in place (based on a contract with the bank)
and also provides the number of instalments in the request, the merchant may consider, in the
event of a positive response, that the customer will be debited by the bank within the amounts
of the individual instalments. In such a case, the merchant should note in the receipt to the
customer that the purchase has been made in instalments, in the number sent in the request.
- The number of instalments is visible to the merchant in the instalment display field of the
online store (depending on the way the developer has implemented it) and on the website
https://tebank.bankart.si/Testgw31/Merchant/index.jsp under the Transactions menu.
- The bank charges for instalment transactions are covered as agreed with the bank.
19
UNLIMITED
4. TESTING GUIDELINES
4.1. Basic information
Before moving to a production environment for the use of online payments, we at Bankart require the
successful completion of a few tests to confirm the correct functioning of the merchant's system and
connection to Bankart's Payment Gateway . Before starting the testing, the Bankart customer support team
([email protected]) will provide you with some the credentials to connect to the Bankart
Payment Gateway and start the testing. Here are the main credentials and in the next subsection you will
be shown how to obtain all of them.
Name Description
API username API access – the developer uses this in the code.
API password Access to API
API Key Payment method key.
Shared Secret Shared secret for signing and authenticating the content of API calls.
Public Integration Key (PKI) Key to integrate payment.jst element in your store.
Web access:
URL Web address for accessing the portal and viewing transactions (refers to the following
section)
Username Username assigned for accessing the portal
Password Password assigned for first login (to be changed after first login!)
Once you have received the login details for the portal, you will then be able to collect the terminal
connection/integration details, as shown in the step-by-step instructions below:
Step 1: After logging in to the Payment Gateway portal, select the “Connectors” tab (highlighted
in green) on the left.
Step 2: A list of all terminals or connectors is displayed. For each of the connectors, click on the
20
UNLIMITED
“Show” button on the right to access the information relevant for the integration or connection to
Payment Gateway (in the next step). Connectors that have “Sim” at the end are simulation
connectors and are used to test the integration before the merchant goes into production.
More about the actual testing with simulation connectors is provided later in the document.
Step 3: Click on the “Show” button to see more detailed information about the connector.
The merchant requires the following information to connect to Gateway:
a. API Key
b. Shared Secret (click on “show” to display the information)
c. Public Integration Key (needed in case of payment.js integration for card payments – if the
merchant doesn't want to redirect to Bankart's input mask, but wants an implementation
on their own site to make it look like the customer never leaves the site/store.)
Figure 10: Display of connector data that needs to be copied into the merchant's systems
Step 4: After the data for each of the desired connectors has been copied into the merchant's
system, select the “Users” tab (highlighted in green) from the menu on the left.
Figure 11: Display of the selection of the "Users" tab in Payment Gateway
21
UNLIMITED
Step 5: A list of all the merchant's users will be displayed. There can be more than one WEB type
user, as these are the users for whom the merchant enables access to the Payment Gateway portal
and transaction review (we suggest up to a maximum of 3, created by Bankart). There is usually
only one API type user, as this is the one through which the connection to Payment Gateway is
enabled.
The data for the main WEB user has already been sent to the merchant. The merchant has already
taken over the connector data. Finally, the API user data still needs to be obtained. For this part,
the merchant has to copy the API username (highlighted in green) to their system, and for this same
API user the “Reset Password” button (highlighted in red) has to be clicked in Payment Gateway on
the right side of the page.
Figure 12: Displaying users in Payment Gateway with a focus on API users
Step 6: The menu for generating the API password will appear. Clicking on the “Generate” option
(highlighted in green) under the Password field will generate the password. You have to copy this
password into the merchant's systems, then click on the “Reset Password” button (highlighted in
yellow) on the bottom right. This saves the password in the Payment Gateway system.
IMPORTANT: The API password generation should be done only once or at the first login. Before the
password generation process is completed, the password should be saved and copied to the merchant's
back-office systems so that the merchant can connect to Payment Gateway. If the API password is changed
after the merchant has been in production for a long time and uses the API password generated upon initial
login, the connection between the merchant and Payment Gateway will BREAK after a subsequent
password change and transactions will NOT be able to be run and executed correctly.
22
UNLIMITED
Below are the Diners test card numbers in case you have a contract with Diners or Erste Card
Slovenia:
3800 0000 0000 06 – the expected response is transaction approved
3614 8900 6479 13 – the expected response is transaction rejected
As above, select one of the card numbers according to the desired result if the integration is correct.
You can enter any three-digit combination in the field where the CVC code is checked, and the same
applies to the validity date, where any (valid) date can be entered.
Test cards are for testing purposes only and may NOT be used in production.
Production cards issued by banks are NOT to be used for testing in the test system, but
only test cards agreed with Bankart.
23
UNLIMITED
After entering your details and clicking the “Pay” button, you will be presented with a 3D Secure
authentication simulation screen and the option to select the authentication result. The card schemes use
an ECI value of 05 as an indicator that a strong authentication (SCA) has been performed, so in most cases
you will either select this option or the “Failed” option.
24
UNLIMITED
Figure 16: Choice of authentication result for the simulation connector
After clicking on the submit button, the transaction is executed to the end, where a screen with the
transaction success result is then displayed.
25
UNLIMITED
After a successful login, the first tab of the graphical interface, “Dashboard”, is displayed, where you
can see an overview of the statistics of your transactions. Here you can adjust the filters/parameters
by clicking on the top right “Customize” button (highlighted in red) and display the desired graphs
and figures according to your preferences.
When you log in for the first time, please also select the time zone set to Europe/Ljubljana
(highlighted in yellow) on the top left to ensure that the transaction times are displayed in
the correct time and that there are no problems when searching for transactions.
On the left, in the grey multi-tab menu, you can select the different functions offered by the user
26
UNLIMITED
interface. As mentioned above, you will probably find the “Transactions” tab the most useful, where
you can access a list and information about the transactions activated through your online store.
In the upper part of the page you can use various parameters to search for a specific transaction,
which is then displayed in the lower part:
The bottom part basically shows a list of all the transactions activated, where the transactions are
sorted in terms of time, from the newer transactions activated to the older ones. In the figure below,
two buttons can be seen on the top right of the blue bar. Clicking on the left button (highlighted in
red in the figure below) will bring up a sub-menu where you can adjust the visibility of the individual
fields on the list according to your needs. If the field name is coloured blue, then this field is displayed,
and if it is coloured grey it is not displayed. Alternatively, you can right-click to quickly export a single
page of transactions in the .csv format.
Figure 20: Option to select the display of fields in the “Transactions” tab
27
UNLIMITED
• Amount: transaction amount
• Method: card scheme and user authentication version
Here, in the “Logs” section, developers can check the content of the messages exchanged between the
merchant's system and the Payment Gateway system (note: only successfully authenticated messages
are visible).
Once you have captured the transaction, or the preauthorization has been captured, this will be
visible in the “Transaction Status” field. A link to the captured transaction will also be provided. When
you click on the link, you will be redirected to that captured transaction.
28
UNLIMITED
Note: “fees” and “payout” amounts are not visible. For deposits and commissions, you need to log into
the merchant portal, where financial statements are visible.
Figure 24: Display of how to execute a refund within the Payment Gateway portal
When you initiate a refund via the user interface, a pop-up will open offering two options: “Refund
without Postback” and “Refund with Postback”.
The “Refund with Postback” option sends the new transaction status to the merchant's previously
defined Callback URL, and if this is not defined, the merchant will NOT receive a change of transaction
status when initiating a refund via the Payment Gateway user interface.
29
UNLIMITED
Figure 25: Screen that appears when a refund is initiated via the portal
Upon clicking the subtab, all documents that have been generated for export up to a certain moment
will be displayed. For each export document, the date on which the transactions were exported, the
type of data in the export document, the status and the option to Delete or Download are visible.
To export a document, click the “New Transaction Export” button (highlighted in red in the figure above).
30
UNLIMITED
When the new window (above) opens, select the desired filters and the file type to export and
confirm the selection by clicking the “Generate” button. You will be redirected to the previous page,
where you have to wait a few moments for the document to be generated, and the download/delete
option is then offered.
If these options are not displayed after 30 seconds, you can refresh the page yourself.
31