ERIP External
Erip External is an integration option designed for the merchants who have their own website and store all the information required for making ERIP payments and for issuing ERIP invoices in their system.
Payment flow
- The customer initiates ERIP payment in the internet banking system.
- ERIP requests information about the payment from the bePaid system.
- bePaid requests account verification from the merchant.
- Merchant responds to the bePaid with the payment information including the debt amount. If there is no debt,
"amount": 0
must be sent. If processing the request results in an error, the code other than0
must be sent in theresult
field. The merchant must respond within 14 seconds. Otherwise, the transaction request returns aRequest timeout
error. - bePaid sends a response to the ERIP system.
- Payment information is displayed to the customer.
- The customer edits the payment details if neccessary (if this option is available) and confirms the payment.
- bePaid sends a webhook notification to the merchant with the transaction result.
- The merchant responds with the result of the webhook processing.
- The transaction result is displayed to the customer.
Payment cancellation flow
Info
Payment cancellation via ERIP is possible only if the corresponding option is enabled for this merchant in the ERIP system.
- ERIP initiates the payment cancellation and notifies the bePaid system about the initiation of the payment cancellation.
- bePaid always sends a positive response to the payment cancellation request from ERIP.
- ERIP sends a request to bePaid with the cancellation result.
- bePaid sends a webhook notification to the merchant with the refund result.
- The merchant responds with the result of the webhook processing.
Account verification
- The merchant must accept the requests from bePaid to the endpoint
erip/account_verification
. - The merchant must send a response to the account verification request in JSON format.
-
The request will contain the following headers:
Accept: application/json
Content-type: application/json
-
The merchant's application needs to support Basic Auth authorization type. The request sent to the merchant system will contain HTTP header
Authorization
with the valueBasic [Base64 encoded login: password]
whereShop ID
is used as a login andSecret Key
is used as a password. For example,Authorization: Basic bG9sOnNlY3VyZQ==
. See how to find Shop ID and Secret key here. - The merchant's application must be able to process HTTP POST requests.
- The response must be sent within a 14-second timeframe. Otherwise, bePaid terminates the connection with a
Request timeout
error. -
The merchant's application must accept HTTPS-requests from the IP addresses of bePaid and on specific TCP ports.
Info
To get an up-to-date list of the IP addresses and TCP ports, contact your manager.
Request
Parameter | Type | Description |
---|---|---|
request | object | |
account * required |
string | Unique customer identifier in the merchant's system. |
id * required |
string | Unique transaction identifier in the bePaid system. |
currency *required |
string | Transaction currency in the ISO-4217 alpha-3 code format. For example, BYN . |
method | object | |
type | string | erip_external |
Example of the request
{
"request": {
"id": "785c8e-252a-4563-345-3452345",
"currency": "BYN",
"method": {
"type": "erip_external"
},
"account": "2222XXXXXXXXXX"
}
}
Response
Parameter | Type | Description |
---|---|---|
response | object | |
id * required |
string | Unique transaction identifier in the bePaid system, id from the request. |
tracking_id * required |
string | Unique transaction identifier in the merchant system. |
amount * required |
bigInteger | The amount the customer owes the merchant in minimal currency units. If there is no debt, must be sent as 0 . |
editable_amount | boolean | If true , the customer is allowed to edit the amount of the transaction. If amount=0, editable_amount must not be sent. |
currency * required |
string | Transaction currency sent in the request. |
result * required |
string | Error code. |
description | string | Description of the code. |
customer * required |
object | Object with customer information. |
first_name * required |
string | Customer's first name. |
last_name * required |
string | Customer's last name. |
middle_name * required |
string | Customer's patronymic. |
hint | array (2000) | Array of lines with the information to be displayed to the customer, up to 2000 characters. The number of lines is unlimited. |
Example of the response
{
"response": {
"amount": 100,
"id": "2342-23452345234-2344234-2345234",
"currency": "BYN",
"editable_amount": true,
"hint": [
"message_1",
"message_2",
"message_n"
],
"customer": {
"first_name": "Ivan",
"last_name": "Ivanov",
"middle_name": "Ivanovich"
},
"result": "0",
"tracking_id": "your_unique_number"
}
}
Response error codes
Code | Description |
---|---|
0 | OK |
1 | Request timeout error. Try again later. |
4 | Wrong format of the customer account ID. |
5 | Customer account ID not found. Account number error. |
7 | Payment is forbidden by the merchant. |
8 | Payment is forbidden for a technical reason. |
243 | Unable to check the customer account. |
300 | Unknown error. |