Portmone Payment Link. API Reference.
Glossary
| Term | Definition |
|---|---|
| Merchant, Partner | Organization which has signed a payment acceptance agreement with Portmone.com |
| Client, Customer | A person who visits the Merchant's online store in order to learn about the range of goods (services) and to make a purchase |
| Card, Payment Card | Payment cards of Visa, Mastercard international card associations and the National payment system PROSTIR |
| Authorization | The process of giving access rights or other powers to the Customer, program or process |
| Personal Area | A specialized site with a set of pages and interactive forms, where the authorized user can receive the necessary information and carry out other operations in the Portmone.com system |
| ITN | Individual Taxpayer Number |
| NBU | The National Bank of Ukraine |
| Weekends or holidays | Non-working days in Ukraine, during which the bank does not carry out banking operations |
| Back office | Specialized software used by Portmone.com staff |
| IBAN | International Bank Account Number |
1. General description
Payment link is a securely generated web address that allows your customers to make payments using the supported payment methods.
If you want to provide clients with the option of periodic (or one-time) automatic payments using Portmone.com, you should generate the payment link as follows: https://www.portmone.com.ua/r3/uk/autoinsurance?i=<payment_parameters>.
The i parameter contains the clients details, that are necessary for their identification by the Partner, automatic payment setting options and the unique identifier assigned to each Partner by Portmone.com (for more detailed information, refer to section 2 "Creating payment parameters").
By clicking this link the client is redirected to the page with the payment form containing order details, where all the necessary parameters are filled in. The client can easily complete the checkout process by entering payment card details only. If necessary, the Partner may specify the field or a number of the fields as those that can be filled in by the clients themselves. To set up an automatic payment, according to the schedule provided by the Partner, the client must accept the automatic payments terms. In this case client’s account and Personal Area in Portmone.com will be generated, if the client don’t have them yet. If the client has refused to register and to set up the automatic payment, only one-time payment will be made.
In addition to one-time and automatic recurring payments, the payment link supports installment plans through partner banks. To enable this, pass the installmentPlan block in the payment parameters, specifying the bank and number of installments.
The below screenshots illustrate the view of payment page, with the Insurance company as a Partner.

Fig. 1. An example of payment page

Fig. 2. An example of displaying automatic payment parameters without editing

Fig. 3. An example of displaying automatic payment parameters with editing
The below screenshots illustrate the view of payment page with installment plan enabled.

Fig. 4. An example of payment page displaying bank selection for installment plan

Fig. 5. Second step of the installment plan flow — entering parameters at the partner bank
2. Creating payment parameters
Payment parameters are sent as encoded string in the i parameter of GET-request at the following URL:
https://www.portmone.com.ua/r3/uk/autoinsurance.
This section describes parameters used to create the request.
Payment parameters:
| Parameter | Description | Required | Value |
|---|---|---|---|
| v | Protocol version | Yes | Always takes the value "2" |
| payeeId | A unique identifier of the Partner in the Portmone.com system | Yes | Assigned to each Partner individually when connected to the Portmone.com system |
| amount | Amount of the payment. The decimal separator is the dot symbol ("."). If the parameters for automatic payment are set, the specified amount will be used to make automatic payments | Yes | For example: 100.50 |
| lang | Payment system interface language | No | uk – Ukrainian, en – English, (default value) uk – Ukrainian |
| edit | Editing automatic payment settings by client. By default editing is not possible | No | "Y" – editable, "N" – non-editable |
| description* | Comment to the order / description of payment details | No | Maximum length is 250 symbols |
| attribute1* | Service field | No | Filled at company's discretion |
| attribute2* | Service field | No | Filled at company's discretion |
| attribute3* | Service field | No | Filled at company's discretion |
| attribute4* | Service field | No | Filled at company's discretion |
| billCurrency | Currency of the payment | No | Possible values: UAH (default value), USD, EUR, GBP, KZT |
| billNumber | Number of paid order (bill) in the Partner's system. Bill number must be unique within a single order. If the order with this number has already been paid, the Portmone.com system will reject the transaction | No | Maximum length is 120 symbols |
| emailAddress | Email address of the payer | Yes | For example: [email protected] |
| timeToLive | Deadline for payment. The countdown starts from the effective date of the contract. If the parameter is not passed, the payment term for the client is not limited | No | From 1 to 30 (in days). For example, if contractDate=20.01.2020 and timeToLive=1, it would be possible to make a payment before 20.01.2020 23:59:59 |
| contractDate | The effective date of the contract | No | MM.DD.YYYY |
| limit | Expiration date of the contract | No | MM.DD.YYYY |
| successUrl | The URL of the Online Store (internal URL of the mobile application) to which the client will be redirected after successful payment | No | For example: https://portmone2.com/r3/ecommerce/test/master-test-form" |
| infoParams | A block of parameters for additional client information that will be displayed when setting up automatic payments | No | See the infoParams structure |
| settings | A block of parameters for setting up automatic payments | No | See the settings structure |
| installmentPlan | A block of parameters for installment plan. If passed, the client will be offered an installment plan through the specified bank on the payment page | No | See the installmentPlan structure |
infoParams structure
| Parameter | Description | Required | Value |
|---|---|---|---|
| phone | Number of the client’s mobile phone | No | 380ХХХХХХХХХ |
| birthDate | Date of birth of the client | No | MM.DD.YYYY |
settings structure
| Parameter | Description | Required | Value |
|---|---|---|---|
| period | Frequency of automatic payments | Yes | 1 – monthly 2 – quarterly 3 – semiannually 4 – annually |
| payDate | Day of the month for automatic payment | Yes | From 1 to 28 |
| startDate | Date of the first payment. If not specified, the current date is automatically set | No | MM.DD.YYYY |
| endDate | The automatic payment end date. If not specified, the current date + 3 years is automatically set | No | MM.DD.YYYY |
installmentPlan structure
| Parameter | Description | Required | Value |
|---|---|---|---|
| Bank identifier | Partner bank through which the installment plan is provided. Passed as an object key | Yes | privat24, oschad, monobank, pumb, otp, abank |
| parts | Number of installments. Allowed values should be agreed with the Portmone.com manager | Yes | Integer |
Note: * – the values of
descriptionandattribute1-4appear in the registry and at export. The name of these parameters should be agreed with the Portmone.com manager.
Please note: the first payment for the foreign exchange contracts will be made at the NBU exchange rate for the current day (if the rate for the current day has not yet been set, or payment is made during the weekend, the payment is made at the last set rate). Payments will be made from 7:00 to 8:00 at the NBU exchange rate on the previous day, or at the last set rate of the NBU, if payment is made during a weekend or a holiday.
Example of valid JSON object (automatic payment):
{
"v":"2",
"payeeId":"1185",
"lang":"uk",
"amount":"100.31",
"settings":
{
"period":"1",
"payDate":"5",
"startDate":"20.01.2020",
"endDate":"20.01.2023"
},
"edit":"N",
"description":"40-0111-078-2-5770640",
"attribute1":"2019-08-01",
"attribute2":"Ivanov Oleksandr",
"attribute3":"Payment of insurance services under the contract",
"attribute4":"2710",
"billNumber":"123-123-99",
"emailAddress":"[email protected]",
"timeToLive":"10",
"contractDate":"01.08.2019",
"limit":"10.09.2019",
"successUrl":"https://portmone2.com/r3/ecommerce/test/master-test-form"
}
Example of valid JSON object (with installment plan):
{
"v":"2",
"payeeId":"1185",
"lang":"uk",
"amount":"100.31",
"installmentPlan": {
"privat24": {
"parts": "3"
},
"oschad": {
"parts": "5"
},
"monobank": {
"parts": "8"
},
"pumb": {
"parts": "3"
},
"otp": {
"parts": "6"
},
"abank": {
"parts": "6"
}
},
"edit":"N",
"description":"40-0111-078-2-5770640",
"attribute1":"2019-08-01",
"attribute2":"Ivanov Oleksandr",
"attribute3":"Payment of insurance services under the contract",
"attribute4":"2710",
"billNumber":"123-123-99",
"emailAddress":"[email protected]",
"timeToLive":"10",
"contractDate":"01.08.2019",
"limit":"10.09.2019",
"successUrl":"https://portmone2.com/r3/ecommerce/test/master-test-form"
}
The string with the formed object should be compressed using gzip and then encoded with base64, the result is the value of the i parameter of GET-request.
Data should be modified like this:
i = base64(gzip(json_encode(data)))
where data – payer’s information and payment parameters.
Below is an example of PHP script that performs this transformation:
$source = '{
"v":"2",
"payeeId":"1185",
"lang":"uk",
"amount":"100.31",
"settings":{
"period":"1",
"payDate":"5",
"startDate":"20.01.2020",
"endDate":"20.01.2023"
},
"edit":"N",
"description":"40-0111-078-2-5770640",
"attribute1":"2019-08-01",
"attribute2":"Ivanov Oleksandr",
"attribute3":"Payment of insurance services under the contract",
"attribute4":"2710",
"billNumber":"123-123-99",
"emailAddress":"[email protected]",
"timeToLive":"10",
"contractDate":"01.08.2019",
"limit":"10.09.2019",
"successUrl":"https://portmone2.com/r3/ecommerce/test/master-test-form"
}';
$i = base64_encode(gzencode($source));
$url = ‘https://www.portmone.com.ua/r3/uk/autoinsurance?i=’ . $i;
//$url now contains the address of the payment link for sending to the client