The payment flow for payment has 2 possible scenarios:
redirect flow - Everifin Paygate web page is used to do the payment
embedded flow - your web page is used to do the payment and you call only Everifin Paygate API
Both scenarios have similar steps in the payment process, just the initialization is different.
The payment flow has these parts:
Authentication - first your system needs to be authenticated to Everifin Paygate. See Authentication
Payment initialization - this step is different for both scenarios:
Redirect flow - see Redirect Flow
Embedded flow - see Embedded Flow
Payment processing - optional step for embedded flow, see https://everifin.atlassian.net/wiki/spaces/EPAD/pages/2467561560/Embedded+Flow#3.-Process-payment
Get payment(s) - you can get payment data for single payment or payment list. This can be used to check payment status in case you do not use hooks. See https://everifin.atlassian.net/wiki/spaces/EPAD/pages/2467561608/Payment+Resources#Get-payments
Payment statuses
During the payment process the payment changes its status. The status defines not only state of the payment, but also possible operations - payments in some statuses cannot be updated or cancelled.
Status | Final | Withdrawable | Flow | Description |
---|---|---|---|---|
CREATED | no | yes | ALL | Payment is created and waiting for the user. |
SEEN | no | yes | REDIRECT | User opens the Everifin Paygate web page. |
PROCESSING | no | no | ALL | The payment is being processed (user is authorizing payment on bank`s page or authorization is done and payment is being processed in the bank). |
CONFIRMED | yes | no | ALL | The payment has been successfully authorized in the bank by the payer. |
BOOKED | yes | no | ALL | The payment has been booked (settled) in the bank. |
WITHDRAWN | yes | no | ALL | The payment has been withdrawn by merchant. |
FAILED | yes | no | ALL | Payment has failed. Field |
Payment status flow chart
Failure reason codes
Reason code | Description | Flow |
---|
Reason code | Description | Flow |
---|---|---|
CANCELED_BY_PAYER_AT_EVERIFIN | Payer rejected the payment on Everifin Paygate page before authorization has been initiated. | REDIRECT |
BANK_NOT_FOUND | Payer has not found the desired bank and wants to choose different payment method at the merchant's site. | REDIRECT |
MANUAL_TRANSFER_REQUESTED | Payer has not found the desired bank and decided to receive payment details for the manual bank transfer via email. This feature is turned off by default. | REDIRECT |
CANCELED_BY_PAYER_AT_BANK | Payer canceled the payment on the bank’s page. | ALL |
INSUFFICIENT_AMOUNT | Payer does not have enough funds on his account to make the payment. | ALL |
AML_BLOCKED | Payer’s funds have been blocked at the bank as a result of bank’s AML checks. Payer needs to contact the bank to treat the situation further. | ALL |
OTHER | Other, unspecified failure reasons (e.g. payment authorization failed, bank API temporary outage etc.) | ALL |
Edge cases
This section describes rare edge cases that can appear during payment processing.
AML checks
As part of the payment processing the banks do the AML checks. If the transaction does not pass the AML checks successfully (e.g. the payment is identified by the bank’s rules as suspicious, the payer is on some AML lists etc.), the bank blocks the funds and the payment ends up in FAILED state (reason code: AML_BLOCKED). The payer needs to contact his bank in such situation.
Non-compliant banks
Even though the situation is still improving, some banks, however, do not comply with the PSD2 regulation in all details.
We are working very proactively with the regulators and the bank’s support teams in order to achieve better quality PSD2 APIs.