Introduction to Payments
There are several aspects important to setting up your payments. These are your payment types and methods, which tie-in to your refunds. Secondly, you want to configure your shipping methods and carriers.
Payment types are used by EVA for several purposes. In short, they allow us to configure the payment options to be displayed in our frontends, while also making it clear to our backend as to what ledgers incoming payments should be booked.
To give you a bit of an overview how a typical payment works behind-the-scenes, you can check the diagram below which shows a simplified payment flow, using Adyen (which is our most-used and preferred payment service provider (PSP)).
- During checkout, we select a payment type, such as Cash, Mobile Pay, Gift card or Card. In our example above the customer requested payment by card - which entails the customer can generally choose whatever card is preferred. When the store employee clicks this payment type in our POS, a request is sent by EVA to Adyen to ask if the payment (for 'this' amount) is possible.
- Adyen validates the request and sends its answer back to EVA.
- The payment terminal now displays the requested payment, leaving open to the customer what kind of card to pay with.
- Adyen receives the payment and shows its result on the terminal.
- Adyen sends the payment information (success/fail and payment reference) to EVA.
Methods can be linked to ledgers
Now that EVA knows exactly what type of payment method was used by the customer, it can now be either booked in a specific payment method corresponding to that specific payment method, or (if no specific payment method was configured) in a big bucket of similar payments such as Card payment.
Integrated and non-integrated (custom) payment parties
We can divide our payment types into integrated and non-integrated payment parties. If a party's integrated into EVA, it basically means that it's easy for us to request and share payment information with them.
Integrated payment parties
EVA supports several integrations with payment providers out-of-the-box. Using these makes it easy to perform payments with EVA, to get payments into EVA and to refund them. Many supported payment providers and methods will already be configured for you in your EVA environment by default, which means you will only have to activate them via Admin.
Our most used payment provider is Adyen, with specifically the checkout API payment type being recommended. This integration offers you the most customization options for your payment process while supporting unified payments online as well as offline.
Aside from this Adyen payment method, EVA supports the following providers out-of-the-box:
Can't find it?
In case you want to use one of the above supported providers, but can't find it in your environment yet, just let us know and we'll provide the necessary configurations. This is because all payment providers require the corresponding payment methods to be formatted a certain way.
Non-integrated payment parties
Custom payment methods
You can also make use of a non-supported PSP in EVA while still being able to make full functional use of the order, such as refunding. To do so you have to set this up as a custom payment method in the Payment types. You can do this in Admin Suite, or via API (for the latter, see these Custom payment method docs).
When using a custom payment method, however, there is no way to inform the external party about the refund after EVA has processed it. At least, no easy way.
Push sales order
PushSalesOrder service is used to let EVA know about orders which have already taken place outside of EVA. These may or may not have already been paid for. What EVA can do with those orders, depends on the information included in the push. You can also specify any kind of (custom) payment method in the push, so long as it is listed in EVA's payment types.
If for example, the order was paid with Adyen as PSP, and you want to be able to make full use of the order (refunding), then you'd have to include the payment reference, payment method and the merchant account of the original transaction. To emphasize, you yourself have to make sure all necessary information is added based on your requirements for the order.
Example refund via basic Adyen integration
Although the above example technically shows you a supported integration, it also shows which necessary data is added for it to make full functional use of the order. It means that if a refund is triggered, we can call the exact same payment via Adyen. You can read more about everything surrounding refunds in the Refund flow.
PushSalesOrder can also be used to push orders into EVA which have not been paid. A pickup order, for example, with its (payment) capture moment during pickup in-store.
See the information on the CheckoutAPI and the basic Adyen integration in Payments using Adyen for more information on pushed orders with refund possibilities.