...
The set of required inputs (data that needs to be provided in body of this request) depends on the bank of the payment sender. Client of this API must react to requested inputs that are specified in the responses of this endpoint.
Also, in steps where query parameters are present in redirect towards the integrator (e.g. return from the bank), integrator needs to provide these parameters in body of the payment process request.
To protect sensitive user’s data from being misused, these user’s data must be sent in an encrypted form:
...
Field | Type | Optional | Response type | Description |
---|---|---|---|---|
id | number, unique | no | All | Payment id, which will be used for the next communication |
status | enum | no | All | Status of the payment. Possible statuses are described below in separate table: https://everifin.atlassian.net/wiki/spaces/EFMBAPI/pages/edit-v2/2675179539#Payment-statuses If status is FINISHED or FAILED, processing is done and there is nothing else to do. Otherwise you should call process endpoint. |
type | enum | yes | All | Processing flow step type (given by specific bank):
|
redirectUrl | text | yes | REDIRECT | The URL for redirect (only for REDIRECT response types) |
inputSet | InputObject[] | yes | INPUT | Array of input objects required for next processing. Values from this set has to be displayed to the user, so she/he can enter or select required values. |
input | InputObject | yes | INPUT | Input object required for next processing. Input has to be displayed to the user, so she/he can enter or select required value. Response might contain this field, if only one input is requested. If multiple inputs are requested, response contains inputSet field. |
inputsToEncrypt | string[] | yes | INPUT | List of inputs to encrypt, if sensitive user’s data are required in input or inputSet. These inputs must be encrypted in the request body. |
inputEncryptionConfig | InputEncryptionConfig | yes | INPUT | If response contains inputsToEncrypt, this field specifies encryption method and encryption key. |
Input Object | ||||
type | enum | no | INPUT | Type of the input:
Based on this field you can set the UI for the user like html input types and validation. |
name | text | no | INPUT | Name of the input to identify it by Everifin system. This name must be returned back together with the value the user has provided. |
selectOptions | SelectObject[] | yes | INPUT | Only for SELECT input type. User has to select one of offered options. |
image |
| yes | INPUT | Only for IMAGE_SCAN input type. User has to scan the image into his mobile banking app. |
Select Object | ||||
name | text | no | INPUT | Name of the select option. |
value | text | no | INPUT | Value of the select option. |
InputEncryptionConfig | ||||
encryptionKey | string | no | INPUT | Public key for data encryption. |
encryptionMethod | string | no | INPUT | Method of data encryption. Currently, only supported value is RSAES-OAEP/SHA-256. |
...
Code Block |
---|
200: { "meta": { "status": "SUCCESS" }, "data": { "id": "12", "status": "CREATED", "redirectUrl": "http://app.everifin.localcom/api/v1/ef/router?state=a51048c5f5f4487c935d70cc058d46ed", "type": "REDIRECT" } } |
...
During the payment process the payment changes its status. These are the possible status values.
Reason code
Description
CANCELED_BY_PAYER_AT_BANK
Payer canceled the payment on the bank’s page.
INSUFFICIENT_AMOUNT
Payer does not have enough funds on his account to make the payment.
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.
REJECTED_BY_BANK
The bank rejected the payment due to some failure. Issue needs to be further analyzed (sometimes the reason is the payer canceled the payment on the bank’s pages but we are not able to identify this situation because the bank does not inform about it).
OTHER
Status | Final | Description | |||
---|---|---|---|---|---|
CREATED | no | Payment is created and waiting for further processing. | SEEN | no | This status is assigned once the process payment endpoint is called for the first time. |
PROCESSING | no | The payment is being processed (user is authorizing payment on bank`s page or authorization is finished and payment is being further processed by the bank). | |||
CONFIRMEDFINISHED | yes | The payment has been successfully authorized in the bank by the payer.BOOKED | yes | The payment has been booked (settled) in the sending bank. | |
FAILED | yes | Payment has failed. Field |