Bank Transfer Payment: Difference between revisions

From Barion Documentation
Jump to navigation Jump to search
m (replaced reference to v2 GetPaymentState with v4 PaymentState)
 
(38 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{IncompletePage}}
{{PageTitle|title=Bank Transfer Payment}}
 
{{NotificationBox|title=WARNING|text=This feature is not yet available!|color=#c20000}}
 
{{PageTitle|title=Payment Buttons}}
 
{| style="margin-left:2em;" align="right"
{| style="margin-left:2em;" align="right"
| __TOC__
| __TOC__
|}
|}
Bank transfer payments offer customers an alternative method to fulfill their payment obligations through the '''Barion Smart Gateway''', in addition to the e-money payment from wallet and card payment options.


Payment Buttons are the name of the payment method that provides payment via bank transfer. This means that a customer can choose to pay for the goods via a prepared bank transfer. This is an additional option for the customer to choose from (besides e-money payment from a wallet and card payment).
This payment option is only visible on the '''Barion Smart Gateway''' if you meet all technical requirements. See [[#Availability and limitations]] for more information.


If all the technical requirements are met (see below) on the gateway there will visible a third funding source option for the customer.
[[File:Bank transfer.png|alt=|782x782px]]
== Availability and limitations ==
The current technical limitations are the following:
* This feature is available exclusively for payments conducted in CZK and EUR.
* Only immediate payment scenarios are supported. In the future, we are planning on extending this feature to include reservation/escrow scenarios as well.
* This feature is only supported for the banks listed in the [[#Supported banks]] section.
{{NotificationBox|title=WARNING|text=Payments made in the demo shop are processed in a live production environment, involving real money transfers. Please use this feature responsibly.|color=#FF6347}}
=== Supported banks ===
The supported banks are the following:


[[File:Banktransfer.png]]
'''CZK:'''<br/>
[[File:AIRBANK_CZ.png|100px|link=]]
[[File:CSAS_CZ.png|100px|link=]]
[[File:CSOB_CZ.png|100px|link=]]
[[File:FIO_CZ.png|100px|link=]]
[[File:KB_CZ.png|100px|link=]]
[[File:MBANK_CZ.png|100px|link=]]
[[File:MONETA_CZ.png|100px|link=]]
[[File:RAIFFEISEN_CZ.png|100px|link=]]
[[File:REVOLUT_CZ.png|100px|link=]]
[[File:UNICREDIT_CZ.png|100px|link=]]
<br/><br/>
'''EUR - Slovakia:'''<br/>
[[File:CSOB_SK.png|100px|link=]]
[[File:INTESA_SANPAOLO_SK.png|100px|link=]]
[[File:PRIMABANKA_SK.png|100px|link=]]
[[File:RAIFFEISEN_SK.png|100px|link=]]
[[File:REVOLUT_SK.png|100px|link=]]
[[File:SLSP_SK.png|100px|link=]]
[[File:UNICREDIT_SK.png|100px|link=]]
[[File:TATRA_SK.png|100px|link=]]


The process is the following
'''Other countries:'''
# The customer arrives to the Barion Payment Gateway
# Customer decides to pay with payment buttons, selects one of the banks and clicks the ''Pay'' button.
# Customer is redirected to the selected bank's GUI
# Customer inputs all the necessary information required to make the transfer
# Customer is redirected to the Barion Payment Gateway and is presented with the result
# Customer is redirected to the merchant's shop


In case the transfer was unsuccessful the customer is allowed to try the payment again with another bank or even with another funding source. If the transfer was successful a callback is sent to the merchant's server.
The feature is also available for many other banks in the following countries:
* Austria
* Belgium
* Germany
* Estonia
* Finland
* France
* Greece
* Ireland
* Italy
* Latvia
* Lithuania
* Luxemburg
* The Netherlands
* Portugal
* Slovenia
* Spain
== Testing the feature ==
You can initiate a payment in our demo shop to test the bank transfer function:
# Open our [https://demomerchant.shop/ demo shop] in a browser of your choosing.
# On the top right, select '''Česky - CZK''' or '''Slovenský - EUR'''.
# Click the '''DemoTravel''' button.
# Enter an email address and click '''Pay'''.
# Select '''Online bank transfer''', choose a bank, and click the '''Pay''' button.
== The bank transfer process ==
When a customer chooses to pay via bank transfer, they follow these steps:
# The customer navigates to the '''Barion Smart Gateway'''.
# The customer opts for a bank transfer, adds the necessary information, selects a bank and clicks the '''Pay''' button.
# The customer receives a message that they will be redirected to the selected bank's interface through our partner, [https://www.kevin.eu/ kevin.]
# The customer is redirected to the selected bank's interface through kevin.
# The customer adds the necessary information to initiate the transfer.
# Once the customer submits the information, they are redirected back to the '''Barion Smart Gateway''' to view the result of their transaction.
# The customer is redirected to the merchant's site.
{{NotificationBox|title=NOTE|text=You can manually pre-select a bank for your customers. For more information, see [[#Selecting a bank for your customers]].|color=#1993c7}}
If the transfer is unsuccessful, the customer can attempt the payment again with a different bank or opt for an alternative payment method. If the transfer is successful, a callback is sent to the merchant's server to confirm the transaction.
{{NotificationBox|title=NOTE|text=Some bank transfers might take longer to process. In these cases, the customer is presented with a message explaining the situation. Once the result of the transfer is known, the customer receives an email notification regarding the outcome.|color=#1993c7}}


However there are certain bank transfers that take longer so by the time the customer finishes the payment process the result of the process is not known yet. In these scenarios the customer is presented with an appropriate message that contains information about the situation. Later when the result of the transfer is decided an e-mail message is sent to the customer about the result.


= How can I apply for this feature? =
== Selecting a bank for your customers ==
Instead of your customers selecting a bank from a list, you can select a bank for them.


TODO: Describe application process
To do so, you can add the <code>BankId</code> of the bank of your choosing to the URL in the following format:
 
<pre>
= What are the technical requirements? =
https://secure.barion.com/Pay?Id=PaymentRequestId&DefaultBankId=BankIdentifier_Countrycode
Besides applying for the feature there are number of technical requirements that you have to make sure of.
</pre>
 
For example, if you would like to add 'Revolut-CZ' as the selected bank, your URL would look like this:
=== Providing additional customer information ===
<pre>
For this feature it is mandatory to provide two additional fields in the body of the [[Payment-Start-v2|/Payment/Start]] request:
https://secure.barion.com/Pay?Id=PaymentRequestId&DefaultBankId=REVOLUT_CZ
* <tt>PayerHint</tt>: The e-mail address of the customer
</pre>
* <tt>PayerPhoneNumber</tt>: The phone number of the customer
This table lists the available bank identifiers and country codes:
 
{| class="wikitable"
=== Available only for EUR and CZK ===
! style="text-align:left;"|BankIdentifier !! CountryCode
This feature is only available for payments conducted in CZK or EUR. For all other currencies this option will be hidden. <br/>
|-
{{NotificationBox|title=NOTE|text=There are different bank options displayed for EUR and CZK!|color=#1993c7}}
| RAIFFEISEN_CZ || CZ
 
|-
=== Available only for Immediate payments ===
| REVOLUT_CZ || CZ
At the moment we only support immediate payment scenarios, later the [[Reservation_payment|reservation/escrow]] scenario will be supported as well. Until then in reservation scenarios the gateway will not offer the payment button funding source for the customer.
|-
 
| AIRBANK_CZ || CZ
= Callback process for payment button scenarios =
|-
 
| CSAS_CZ || CZ
There are two types of transfer scenarios regarding payment button payments. Only after the customer completes the transfer will the system know which scenario is used. So every system that handles payments that can be paid with payment buttons must handle the asynchronous scenario as well.
|-
| CSOB_CZ || CZ
|-
| FIO_CZ || CZ
|-
| KB_CZ || CZ
|-
| MBANK_CZ || CZ
|-
| MONETA_CZ || CZ
|-
| CSOB_SK || SK
|-
| INTESA_SANPAOLO_SK || SK
|-
| RAIFFEISEN_SK || SK
|-
| REVOLUT_SK || SK
|-
| SLSP_SK || SK
|-
| TATRA_SK || SK
|-
| UNICREDIT_SK || SK
|}
= Callback process for bank transfer payment scenarios =
There are two types of transfer scenarios regarding bank transfer payments. Only after the customer completes the transfer will the system know which scenario is used. So, every system that handles payments that can be paid with bank transfer must handle the asynchronous scenario as well.


'''Synchronous scenario'''<br/>
'''Synchronous scenario'''<br/>
In this case the result of the bank transfer is known immediately after the transfer. This scenario works the same way as the card payment scenario. After the final [[PaymentStatus|status]] of the payment is known a [[Callback_mechanism|callback mechanism]] is started to notify the merchant.
In this case, the result of the bank transfer is known immediately after the transfer. This scenario works the same way as the card payment scenario. After the final [[PaymentStatus|status]] of the payment is known a [[Callback_mechanism|callback mechanism]] is started to notify the merchant.


'''Asynchronous scenario '''<br/>
'''Asynchronous scenario '''<br/>
Line 57: Line 136:
# One process will be started when the Barion system receives information that the asynchronous scenario is applied for the transfer,
# One process will be started when the Barion system receives information that the asynchronous scenario is applied for the transfer,
# and one process when the final result of the transfer is available.
# and one process when the final result of the transfer is available.
As with any callback the merchant should use the [[Payment-GetPaymentState-v2|GetPaymentState]] request to decide what happened.
As with any callback the merchant should use the [[Payment-PaymentState-v4|PaymentState]] request to decide what happened.


In the first callback mechanism a new [[PaymentStatus|payment status]] is introduced, called <tt>Waiting</tt>. This represents the status where the Barion system is waiting for the final result of the bank transfer. '''At this point the payment is not completed and still can be <tt>Failed</tt> as well.
In the first callback mechanism a new [[PaymentStatus|payment status]] is introduced, called <tt>Waiting</tt>. This represents the status where the Barion system is waiting for the final result of the bank transfer. '''At this point the payment is not completed and still can be <tt>Failed</tt> as well.
Line 64: Line 143:


= <tt>GetPaymentState</tt> implications =
= <tt>GetPaymentState</tt> implications =
 
If a customer paid with bank transfer there are a number of [[TransactionType|transaction types]] that can appear in the response of a [[Payment-PaymentState-v4|/v4/Payment/<PaymentId>/PaymentState]] call.
If a customer paid with bank transfer there are a number of [[TransactionType|transaction types]] that can appear in the response of a [[Payment-GetPaymentState-v2|GetPaymentState]] call.
* <code>BankTransferPayment</code>: the actual payment transaction itself
* <code>BankTransferPayment</code>: the actual payment transaction itself
* <code>RefundToBankAccount</code>: if there was a refund, this represents it
* <code>RefundToBankAccount</code>: if there was a refund, this represents it
* <code>StornoUnSuccessfulRefundToBankAccount</code>: if the refund was not successful, this is the storno for it
* <code>StornoUnSuccessfulRefundToBankAccount</code>: if the refund was not successful, this is the storno for it
* <code>BankTransferPaymentFee</code>: The fee deducted for using this feature
* <code>BankTransferPaymentFee</code>: The fee deducted for using this feature
 
These are unique for this type of payment, but apart from these, any other transaction type can be present like in any other payment scenario.
These are unique for this type of payment, but apart from these any other transaction type can be present like in any other payment scenario.


= Payment status changes =
= Payment status changes =
This is a diagram for the payment status changes if the payment was funded with payment buttons.
This is a diagram for the payment status changes if the payment was funded with a bank transfer.


[[File:Payment_states_pb.png]]
[[File:Payment_states_pb.png]]

Latest revision as of 10:24, 25 March 2024

Bank Transfer Payment

Bank transfer payments offer customers an alternative method to fulfill their payment obligations through the Barion Smart Gateway, in addition to the e-money payment from wallet and card payment options.

This payment option is only visible on the Barion Smart Gateway if you meet all technical requirements. See #Availability and limitations for more information.

Availability and limitations

The current technical limitations are the following:

  • This feature is available exclusively for payments conducted in CZK and EUR.
  • Only immediate payment scenarios are supported. In the future, we are planning on extending this feature to include reservation/escrow scenarios as well.
  • This feature is only supported for the banks listed in the #Supported banks section.
WARNING
Payments made in the demo shop are processed in a live production environment, involving real money transfers. Please use this feature responsibly.

Supported banks

The supported banks are the following:

CZK:


EUR - Slovakia:

Other countries:

The feature is also available for many other banks in the following countries:

  • Austria
  • Belgium
  • Germany
  • Estonia
  • Finland
  • France
  • Greece
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxemburg
  • The Netherlands
  • Portugal
  • Slovenia
  • Spain

Testing the feature

You can initiate a payment in our demo shop to test the bank transfer function:

  1. Open our demo shop in a browser of your choosing.
  2. On the top right, select Česky - CZK or Slovenský - EUR.
  3. Click the DemoTravel button.
  4. Enter an email address and click Pay.
  5. Select Online bank transfer, choose a bank, and click the Pay button.

The bank transfer process

When a customer chooses to pay via bank transfer, they follow these steps:

  1. The customer navigates to the Barion Smart Gateway.
  2. The customer opts for a bank transfer, adds the necessary information, selects a bank and clicks the Pay button.
  3. The customer receives a message that they will be redirected to the selected bank's interface through our partner, kevin.
  4. The customer is redirected to the selected bank's interface through kevin.
  5. The customer adds the necessary information to initiate the transfer.
  6. Once the customer submits the information, they are redirected back to the Barion Smart Gateway to view the result of their transaction.
  7. The customer is redirected to the merchant's site.
NOTE
You can manually pre-select a bank for your customers. For more information, see #Selecting a bank for your customers.

If the transfer is unsuccessful, the customer can attempt the payment again with a different bank or opt for an alternative payment method. If the transfer is successful, a callback is sent to the merchant's server to confirm the transaction.

NOTE
Some bank transfers might take longer to process. In these cases, the customer is presented with a message explaining the situation. Once the result of the transfer is known, the customer receives an email notification regarding the outcome.


Selecting a bank for your customers

Instead of your customers selecting a bank from a list, you can select a bank for them.

To do so, you can add the BankId of the bank of your choosing to the URL in the following format:

https://secure.barion.com/Pay?Id=PaymentRequestId&DefaultBankId=BankIdentifier_Countrycode

For example, if you would like to add 'Revolut-CZ' as the selected bank, your URL would look like this:

https://secure.barion.com/Pay?Id=PaymentRequestId&DefaultBankId=REVOLUT_CZ

This table lists the available bank identifiers and country codes:

BankIdentifier CountryCode
RAIFFEISEN_CZ CZ
REVOLUT_CZ CZ
AIRBANK_CZ CZ
CSAS_CZ CZ
CSOB_CZ CZ
FIO_CZ CZ
KB_CZ CZ
MBANK_CZ CZ
MONETA_CZ CZ
CSOB_SK SK
INTESA_SANPAOLO_SK SK
RAIFFEISEN_SK SK
REVOLUT_SK SK
SLSP_SK SK
TATRA_SK SK
UNICREDIT_SK SK

Callback process for bank transfer payment scenarios

There are two types of transfer scenarios regarding bank transfer payments. Only after the customer completes the transfer will the system know which scenario is used. So, every system that handles payments that can be paid with bank transfer must handle the asynchronous scenario as well.

Synchronous scenario
In this case, the result of the bank transfer is known immediately after the transfer. This scenario works the same way as the card payment scenario. After the final status of the payment is known a callback mechanism is started to notify the merchant.

Asynchronous scenario
There is a scenario where the result of the bank transfer is not available at the end of the payment. It can take up to five days to receive the final result of the transfer. In this case the Barion system starts two callback process.

  1. One process will be started when the Barion system receives information that the asynchronous scenario is applied for the transfer,
  2. and one process when the final result of the transfer is available.

As with any callback the merchant should use the PaymentState request to decide what happened.

In the first callback mechanism a new payment status is introduced, called Waiting. This represents the status where the Barion system is waiting for the final result of the bank transfer. At this point the payment is not completed and still can be Failed as well.

When the Barion system receives the final result of the transfer, a new callback mechanism is started to notify the merchant again.

GetPaymentState implications

If a customer paid with bank transfer there are a number of transaction types that can appear in the response of a /v4/Payment/<PaymentId>/PaymentState call.

  • BankTransferPayment: the actual payment transaction itself
  • RefundToBankAccount: if there was a refund, this represents it
  • StornoUnSuccessfulRefundToBankAccount: if the refund was not successful, this is the storno for it
  • BankTransferPaymentFee: The fee deducted for using this feature

These are unique for this type of payment, but apart from these, any other transaction type can be present like in any other payment scenario.

Payment status changes

This is a diagram for the payment status changes if the payment was funded with a bank transfer.