Getting started: Difference between revisions

From Barion Documentation
Jump to navigation Jump to search
 
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
__NOTOC__
__NOTOC__
{{PageTitle|title= Getting started - overview of Barion payments}}
{{PageTitle|title= Getting started - overview of Barion payments}}
{| style="margin-left:2em;" align="right"
| __TOC__
|}


==Time needed==
==Time needed==
Working with the Barion API is a no-brainer. The time required to integrate Barion can be as low as a few hours. Of course, the exact time required depends on your needs, your business expectations and several outside factors (system architecture, business process management and available resources). Most of the time, basic integration and testing are accomplished in a couple of days.
Working with the Barion API is a no-brainer. Depending on the circumstances (your needs, business expectations, system architecture, business process management and available resources), you can integrate Barion within a few hours. Typically though the basic integration and testing are accomplished in a couple of days.


{{NotificationBox|title=IMPORTANT|text=Don't try to save time by jumping directly to sample code. We know developers like to hack (we do, too), but a payment system requires discipline, so we advise to read the docs thoroughly.|color=#FF7A3D}}
{{NotificationBox|title=IMPORTANT|text=We recommend reading the documentation first. As developers, we are very much aware that you prefer jumping in, but consider that as a payment system, implementing Barion requires discipline. Also, we would rather spare you any unnecessary hassle. |color=#FF7A3D}}


==Feature overview==
==Feature overview==
Line 21: Line 25:


==The payment process==
==The payment process==
We can describe the process of paying through the Barion Smart Gateway is seven simple steps:
Paying through the Barion Smart Gateway follows these simple steps:
[[file:Process-overview.png|1000px]]
#Customer chooses to pay.
#Customer chooses to pay.
#The merchant's server initiates the payment by calling the [[Payment-Start-v2|/Payment/Start]] API and using POSKey for authentication. Barion returns a Payment ID. Shop records the transaction.
#The merchant's server initiates the payment by calling the [[Payment-Start-v2|/Payment/Start]] API and using POSKey for authentication. Barion returns a Payment ID. Shop records the transaction.
#Merchant's website redirects the user to the Barion payment gateway UI, which can be the following two:
#Merchant's website redirects the user to the Barion payment gateway UI, which can be either:
##A responsive web user interface.
##A responsive web user interface.
##Or the Barion mobile app. (If the customer uses her mobile for the purchase and the Barion app is installed. It is available on Android and iOS platforms)
##The Barion mobile app, if the customer uses their mobile for the purchase and the Barion app is installed. Our app is available on Android and iOS platforms.
#The customer completes the payment.
#The customer completes the payment.
##If the customer has no Barion account, card data must be provided.
##If the customer has no Barion account, they must provide card data.
##If the customer has a Barion wallet (account), she logs in and may choose to pay using a card on file (or a new card) or alternatively from her Barion balance.
##If the customer has a Barion wallet (account), they log in and can choose to pay using a card on file, a new card, or alternatively from their Barion balance.
#In case of a change in the payment status (e.g. successful payment happened or the customer rejected the payment), the [[Callback_mechanism|Barion server notifies]] the shop. Upon receiving the notification the shop must call [[Payment-GetPaymentState-v2|/Payment/GetPaymentState]] to see if payment was successful or not.  
#In case of a change in the payment status (e.g. successful payment happened or the customer rejected the payment), the [[Callback_mechanism|Barion server notifies]] the shop. Upon receiving the notification the shop must call [[Payment-PaymentState-v4|/Payment/<PaymentId>/PaymentState]] to see if the payment was successful or not.  
#The merchant's server records the result of the transaction.
#The merchant's server records the result of the transaction.
#The user is redirected by Barion to the merchant's return URL.
#The user is redirected by Barion to the merchant's return URL.
[[file:Process-overview.png|1000px]]


==Flow of funds==
==Flow of funds==
*Guest payment with card – available for any card holder with a card capable of making VPOS payments. The debit or credit card is charged and the merchant's Barion account is topped up with the equivalent amount. No need for Barion registration or previous top-up.
*Guest payment with card – available for any cardholder with a card capable of making VPOS payments. The debit or credit card is charged and the merchant's Barion account is topped up with the equivalent amount. No need for Barion registration or previous top-up.


*Payment with card on file – available for any card holder with a card capable of making VPOS payments that previously registered with Barion and chose to store card data in their Barion wallet. The debit or credit card is charged and the merchant's Barion account is topped up with the equivalent amount. Card data is stored in a PCI DSS compliant card vault. No CVC is stored. No need for previous top-up.
*Payment with card on file – available for any card holder with a card capable of making VPOS payments that previously registered with Barion and chose to store card data in their Barion wallet. The debit or credit card is charged and the merchant's Barion account is topped up with the equivalent amount. Card data is stored in a PCI DSS-compliant card vault. No CVC is stored. No need for a previous top-up.


*Payment with prepaid Barion balance – available for any user that previously registered with Barion and has a balance in their Barion wallet. Money is transferred to the merchant's account. This payment does not involve cards. Customer wallets can be topped up via bank transfer.  
*Payment with prepaid Barion balance – available for any user that previously registered with Barion and has a balance in their Barion wallet. Money is transferred to the merchant's account. This payment does not involve cards. Customer wallets can be topped up via bank transfer.  


*Top up – available for all Barion users from a bank account. By wiring funds to Barion with a personal top-up code in the comment, Barion balance is topped up in the appropriate currency.
*Top-up – available for all Barion users from a bank account. By wiring funds to Barion with a personal top-up code in the comment, Barion balance is topped up in the appropriate currency.


*Withdrawal - available for all Barion users. Funds are transferred from a Barion wallet to any bank account via wire transfer.
*Withdrawal - available for all Barion users. Funds are transferred from a Barion wallet to any bank account via wire transfer.
Line 49: Line 53:


==Extra services==
==Extra services==
We also provide extra services that can be combine with the above payment technologies:
We also provide extra services that can be combined with the above payment technologies:
*Token payment for automatic payments, such as One Click or recurring payments
*[[Token_payment|Token payment]] for automatic payments, such as One-Click or recurring payments
*Sharing economy features, such as:
*[[C2C_Payments|Sharing economy features]], such as:
**Payment to 3rd parties or C2C (Consumer to Consumer) payments
**Payment to 3rd parties or C2C (Consumer to Consumer) payments
**Deducting commission from C2C payments
**Deducting commission from C2C payments
Line 57: Line 61:


Other services augmenting the above payments:
Other services augmenting the above payments:
*Refunding payments to original funding source (card or balance) from GUI or API
*[[Payment-Refund-v2|Refunding payments]] to the original funding source (card or balance) from GUI or API
*Withdrawing funds to bank accounts from GUI or API
*[[Withdraw-BankTransfer-v2|Withdrawing funds]] to bank accounts from GUI or API
*Free and real-time money sending between Barion accounts from GUI or API
*Free and real-time [[Transfer-Email-v2|money sending]] between Barion accounts from GUI or API


==Sandbox and live==
==Sandbox and live==
Barion maintains a clone of the live Barion secure Server as a sandbox or test server, where developers can experiment with their solutions. The sandbox works with "test" money instead of real, so there is no risk playing around. Sandbox is open, all you need is to register and start playing. Don't forget to read the documentation though. For more information on differences in the live and sandbox servers, read [[Sandbox|Setting up the Sandbox environment and testing payments]].
Barion maintains a clone of the live Barion secure server as a sandbox or test environment, where developers can experiment with their solutions. The sandbox works with "test" money instead of real, so there is no risk when playing around. Sandbox is open, all you need is to register, read the documentation and you can start playing. For more information on differences in the live and sandbox servers, read [[Sandbox|Setting up the Sandbox environment and testing payments]].


==Skills and tools required==
==Skills and tools required==
All you need is an intermediate level of web back-end development with the ability and tools to call a REST API. Although there are no specific competency or tool requirements, an up-to-date development environment and toolbox is essential. We balance compatibility and security when picking which latest technology to use. For more information read [[Calling_the_API|Calling the Barion API]].
All you need is an intermediate level of web back-end development with the ability and tools to call a REST API. Although there are no specific competency or tool requirements, an up-to-date development environment, and toolbox is essential. We balance compatibility and security when picking which latest technology to use. For more information, read [[Calling_the_API|Calling the Barion API]].


==Supported currencies==
==Supported currencies==
* CZK (Czech crown)
[[Supported_currencies|The list of currencies supported by Barion]].
* EUR (Euro)
* HUF (Hungarian forint)
* USD (U.S. dollar)
 


To use the Barion Smart Gateway and the Barion API in a given currency, you must have an active account with that currency.
To use the Barion Smart Gateway and the Barion API in a given currency, you must have an active account with that currency.


=SSL=
=SSL=
Barion servers use <code>https://</code> protocol to communicate. We advice to use a REST library that can verify the identity of our server when calling the Barion API. Always use TLS1.2, as our support for earlier versions will be discontinued in 2017.
Barion servers use <code>https://</code> protocol to communicate. We recommend using a REST library that can verify the identity of our server when calling the Barion API. Always use TLS version 1.2 or newer.


For more information on differences in SSL certificates on the live and sandbox servers, read [[Sandbox|Setting up the Sandbox environment and testing payments]].
For more information on differences in SSL certificates on the live and sandbox servers, read [[Sandbox|Setting up the Sandbox environment and testing payments]].


==PCI DSS certification==
==PCI DSS certification==
Barion is PCI DSS certified. Since you, as a merchant do not handle cardholder data, PCI DSS certification for merchants using Barion payment is not mandatory. The Payment Card Industry Data Security Standard (PCI DSS) is an information security standard for organizations that handle branded credit cards. If you handle credit cards, even if temporarily, PCI DSS certification is mandatory.
Barion is Payment Card Industry Data Security Standard (PCI DSS) certified. Since you, as a merchant do not handle cardholder data, PCI DSS certification for merchants using Barion payment is not mandatory. The PCI DSS is an information security standard for organizations that handle branded credit cards. If you handle credit cards, even temporarily, PCI DSS certification is mandatory.


For more information read [[Legal_accounting|Legal and accounting information]].
For more information, read [[Legal_accounting|Legal and accounting information]].


==Going live==
==Going live==
When your payment solution is working properly in the sandbox, you are ready to go live. Using the live server requires a real contract and an approved shop, so prepare in advance. Read the [[Going_live|Going live]] guide thoroughly and follow the instructions before going live.
When your payment solution is working properly in the sandbox, you are ready to go live. Using the live server requires a real contract and an approved shop, so prepare in advance. Read the [[Going_live|Going live]] guide thoroughly and follow the instructions before going live.


==Requirement for Smart Package==
==Requirements==
Please follow the Barion Logo Guidelines and place the appropriate logo on your page. Our experience shows that it is important for customers to show they can pay with Barion on your web site. We also think than keeping the logo consistent across all Barion merchants helps the entire Barion community. Using the logo is a requirement for all Barion price packages, omitting it results in rejecting live shops.  
Follow the Barion Logo Guidelines and place the appropriate logo on your page. Using the logo is a requirement for all Barion price packages, omitting it results in rejecting live shops. Our experience shows that it is important for customers to show they can pay with Barion on your website. We also think that keeping the logo consistent across all Barion merchants helps the entire Barion community.


If you choose the [https://www.barion.com/en/merchants/merchant-price-packages/ Clever, Smart or Genius price package], you have to provide us with detailed cart content. Use the [[Item]] structure within the <tt>Items[]</tt> property of the [[PaymentTransaction]] structure of the <tt>Transactions</tt> property of the [[Payment-Start-v2|/Payment/Start]] API endpoint to pass data. The customers will see the cart content during payment and later in their Barion wallet history.
Another prerequisite of the [https://www.barion.com/en/business/price-calculator/ Starter or Advanced packages] is to let Barion know about your users' cart contents details. Use the [[Item]] structure within the '''Items[]''' property of the [[PaymentTransaction]] structure of the '''Transactions''' property of the [[Payment-Start-v2|/Payment/Start]] API endpoint to pass data. The customers see the cart content during payment and later in their Barion wallet history.


When providing cart content, please follow the guidelines below:
When providing cart content, follow the guidelines below:
*Use real product names, generics such as "product" or "drink" will not work. Follow these examples:  
*Use real product names, generics such as "product" or "drink" will not work. Follow these examples:  
**''Canon IXUS 110 Compact Digital Camera''
**''Canon IXUS 110 Compact Digital Camera''
Line 101: Line 101:
*Use all fields of the [[Item]] structure
*Use all fields of the [[Item]] structure
*You may add discounts as a separate item, subtotals are not checked, so you can use negative prices
*You may add discounts as a separate item, subtotals are not checked, so you can use negative prices
*You may add packaging or shipping cost as a separate item
*You may add packaging or shipping costs as a separate item
*Provide a link to the image of the product if available, we will use it later for enhancing the payment UX
*Provide a link to the image of the product if available, we will use it later for enhancing the payment UX


==Limitations==
==Limitations==
Currently we do not allow placing the payment GUI in an <code><iframe></code> or similar solution, due to security reasons.
Currently, we do not allow placing the payment GUI in an <code><iframe></code> or similar solution, due to security reasons.

Latest revision as of 12:50, 14 August 2024

Getting started - overview of Barion payments

Time needed

Working with the Barion API is a no-brainer. Depending on the circumstances (your needs, business expectations, system architecture, business process management and available resources), you can integrate Barion within a few hours. Typically though the basic integration and testing are accomplished in a couple of days.

IMPORTANT
We recommend reading the documentation first. As developers, we are very much aware that you prefer jumping in, but consider that as a payment system, implementing Barion requires discipline. Also, we would rather spare you any unnecessary hassle.

Feature overview

Barion is a provider of online electronic payments. Our payment services include:

  • payment with debit and credit cards
  • payment with prepaid Barion wallet

We have several payment solutions, based on the above payment types:

  • Responsive Web Payment, which works in desktop and mobile browsers
  • Mobile App Payment, which works in native mobile apps in two scenarios:
    • If the Barion Mobile App is installed on the customer's device, a simple and quick payment works with the Barion Mobile App
    • If the Barion Mobile App is not installed on the customer's device, the Responsive Web Payment solves the payment

The payment process

Paying through the Barion Smart Gateway follows these simple steps:

  1. Customer chooses to pay.
  2. The merchant's server initiates the payment by calling the /Payment/Start API and using POSKey for authentication. Barion returns a Payment ID. Shop records the transaction.
  3. Merchant's website redirects the user to the Barion payment gateway UI, which can be either:
    1. A responsive web user interface.
    2. The Barion mobile app, if the customer uses their mobile for the purchase and the Barion app is installed. Our app is available on Android and iOS platforms.
  4. The customer completes the payment.
    1. If the customer has no Barion account, they must provide card data.
    2. If the customer has a Barion wallet (account), they log in and can choose to pay using a card on file, a new card, or alternatively from their Barion balance.
  5. In case of a change in the payment status (e.g. successful payment happened or the customer rejected the payment), the Barion server notifies the shop. Upon receiving the notification the shop must call /Payment/<PaymentId>/PaymentState to see if the payment was successful or not.
  6. The merchant's server records the result of the transaction.
  7. The user is redirected by Barion to the merchant's return URL.

Flow of funds

  • Guest payment with card – available for any cardholder with a card capable of making VPOS payments. The debit or credit card is charged and the merchant's Barion account is topped up with the equivalent amount. No need for Barion registration or previous top-up.
  • Payment with card on file – available for any card holder with a card capable of making VPOS payments that previously registered with Barion and chose to store card data in their Barion wallet. The debit or credit card is charged and the merchant's Barion account is topped up with the equivalent amount. Card data is stored in a PCI DSS-compliant card vault. No CVC is stored. No need for a previous top-up.
  • Payment with prepaid Barion balance – available for any user that previously registered with Barion and has a balance in their Barion wallet. Money is transferred to the merchant's account. This payment does not involve cards. Customer wallets can be topped up via bank transfer.
  • Top-up – available for all Barion users from a bank account. By wiring funds to Barion with a personal top-up code in the comment, Barion balance is topped up in the appropriate currency.
  • Withdrawal - available for all Barion users. Funds are transferred from a Barion wallet to any bank account via wire transfer.

Extra services

We also provide extra services that can be combined with the above payment technologies:

  • Token payment for automatic payments, such as One-Click or recurring payments
  • Sharing economy features, such as:
    • Payment to 3rd parties or C2C (Consumer to Consumer) payments
    • Deducting commission from C2C payments
    • Escrow services for C2C payments

Other services augmenting the above payments:

Sandbox and live

Barion maintains a clone of the live Barion secure server as a sandbox or test environment, where developers can experiment with their solutions. The sandbox works with "test" money instead of real, so there is no risk when playing around. Sandbox is open, all you need is to register, read the documentation and you can start playing. For more information on differences in the live and sandbox servers, read Setting up the Sandbox environment and testing payments.

Skills and tools required

All you need is an intermediate level of web back-end development with the ability and tools to call a REST API. Although there are no specific competency or tool requirements, an up-to-date development environment, and toolbox is essential. We balance compatibility and security when picking which latest technology to use. For more information, read Calling the Barion API.

Supported currencies

The list of currencies supported by Barion.

To use the Barion Smart Gateway and the Barion API in a given currency, you must have an active account with that currency.

SSL

Barion servers use https:// protocol to communicate. We recommend using a REST library that can verify the identity of our server when calling the Barion API. Always use TLS version 1.2 or newer.

For more information on differences in SSL certificates on the live and sandbox servers, read Setting up the Sandbox environment and testing payments.

PCI DSS certification

Barion is Payment Card Industry Data Security Standard (PCI DSS) certified. Since you, as a merchant do not handle cardholder data, PCI DSS certification for merchants using Barion payment is not mandatory. The PCI DSS is an information security standard for organizations that handle branded credit cards. If you handle credit cards, even temporarily, PCI DSS certification is mandatory.

For more information, read Legal and accounting information.

Going live

When your payment solution is working properly in the sandbox, you are ready to go live. Using the live server requires a real contract and an approved shop, so prepare in advance. Read the Going live guide thoroughly and follow the instructions before going live.

Requirements

Follow the Barion Logo Guidelines and place the appropriate logo on your page. Using the logo is a requirement for all Barion price packages, omitting it results in rejecting live shops. Our experience shows that it is important for customers to show they can pay with Barion on your website. We also think that keeping the logo consistent across all Barion merchants helps the entire Barion community.

Another prerequisite of the Starter or Advanced packages is to let Barion know about your users' cart contents details. Use the Item structure within the Items[] property of the PaymentTransaction structure of the Transactions property of the /Payment/Start API endpoint to pass data. The customers see the cart content during payment and later in their Barion wallet history.

When providing cart content, follow the guidelines below:

  • Use real product names, generics such as "product" or "drink" will not work. Follow these examples:
    • Canon IXUS 110 Compact Digital Camera
    • Heineken lager 5L party barrel
  • Provide all items in one collection
  • Use all fields of the Item structure
  • You may add discounts as a separate item, subtotals are not checked, so you can use negative prices
  • You may add packaging or shipping costs as a separate item
  • Provide a link to the image of the product if available, we will use it later for enhancing the payment UX

Limitations

Currently, we do not allow placing the payment GUI in an <iframe> or similar solution, due to security reasons.