Portmone.com Payment Gateway
Glossary
| Term | Definition |
|---|---|
| Merchant, Online Store or Partner | Organization which has signed a payment acceptance agreement with Portmone.com |
| Buyer, Client or 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 Buyer, program or process |
| Recurring Payments | Automatic payments (no client actions or re-entering card details required), which are carried out with the consent of the client |
| Token | A unique digital identifier of a card, which is generated during the first operation and then used for quick payment. Token can only be used to repeat a similar transaction as at the first payment |
| SHOPBILLID | A unique identifier (Id) assigned to every transaction (payment document) in the Portmone.com system |
| CVV2/CVC2 | CVV2 (Card Verification Value 2) is a three-digit card security code that helps to verify legitimacy of a Visa payment card. The Mastercard payment system has similar card security code called CVC2 (Card Validation Code 2) |
| Acquiring Bank | A bank that organizes banking cards acceptance points (terminals, ATM’s) and processes full range of financial operations connected with performing bank settlements and payments by banking cards at that points |
| Issuing Bank (Card Issuing Bank) | A bank licensed as a member of a card association (like Visa or Mastercard), that issues and maintains payment cards |
| 3-D Secure | 3-D Secure is a protocol which used to secure handling of online bank card payments |
| IBAN | International Bank Account Number |
| IPS | International Payment System |
1. Payment acceptance technology
The description of procedure for payment acceptance by payment cards on the Online Store website:
-
The Buyer chooses a product on a website (or in the mobile application) of a Store, forms the order and selects payment card as a payment method.
-
The Store redirects the Buyer to the Portmone.com system authorization server, sending a set of necessary parameters like partner Id in the Portmone.com system, order number, its amount, etc.
-
The Portmone.com authorization server establishes connection with the Buyer using secure protocol (TLS 1.2), verifies the data received from the Store.
-
The Portmone.com site receives from the Buyer the parameters of his/her Payment Card and ensures the authorization of the Card.
-
When the 3-D Secure technology is used, the Portmone.com sends the Client to the site of Card Issuing Bank to confirm the transaction.
-
The authorization request is sent through closed banking networks to the Buyer's Card Issuing Bank or to the processing center authorized by the Issuing Bank.
- The Bank sends a positive authorization result to the Portmone.com authorization server.
- The Portmone.com authorization server checks the cryptographic integrity of the data received, adds the information to the database.
- Portmone.com redirects the Client to the Online Store page to confirm successful payment.
- The Store checks the status of the transaction in the Portmone.com system and delivers the goods (provides service).
- Within the terms specified in the contract, Portmone.com will transfer funds (excluding the acquiring fee) to the Store account. Funds are transferred via single payment covering all transactions for the specified day.
-
If card authorization failed (authorization was rejected):
- The Bank sends the payment rejection message to the Portmone.com authorization server.
- The Portmone.com authorization server checks the cryptographic integrity of the data received, adds the information to the database.
- The Portmone.com redirects the request to the previously configured page of the Online Store for failed payment.
-
In case of successful payment, the paid order number and the payment data are transmitted by the POST method to the Online Store page.
-
The Online Store must additionally check the status and amount of the order by one of the methods described in section 8 "Getting authorization results".
2. Test mode
The test mode of the payment gateway means that the Portmone.com system checks the validity of entered data from the Online Store and its Client, creates an order, but payment card authorization is not performed. The Portmone.com payment gateway may provide the different response (successful or failed), depending on what is necessary for the Online Store employees who perform integration.
Please contact our Account Managers for Online Stores to enable and disable test mode
Email: [email protected]
The Portmone.com system provides partners with two test options:
1. Successful payment test
To get a successful response on the Portmone.com default payment page use following payment card details:
Card number: 4444333322221111 Expiry date: Any but not earlier than current day CVV2: Any
2. Failed payment test
To get an error on the Portmone.com default payment page use following payment card details:
Card number: 4111111111111111 Expiry date: Any but not earlier than current day CVV2: Any
Important! Before starting the payment acceptance system into operation, make sure that the test mode is disabled!
3. Order payment
3.1. POST request
Description:
To accept payments by Payment cards, you should send a request using the POST method to the payment gateway page – https://www.portmone.com.ua/gateway/.
Availability and restrictions:
No restrictions.
Request structure:
Please, refer to "3.1 POST order payment request" to study the request structure.
Request parameters description:
| Parameter | Description | Required | Value |
|---|---|---|---|
| payee_id | A unique identifier of the Online Store | Yes | Assigned to each Partner individually when connected to the Portmone.com system |
| shop_order_number | Number of paid order (bill) in the Online Store. Order 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 |
| bill_amount | Amount of the order. Currency is hryvnia (UAH). The decimal separator is the dot symbol "." | Yes | For example: 1.50 |
| bill_currency | Currency of the payment | No | Possible values: UAH (default value), USD, EUR, GBP, PLN, KZT |
| description | Comment to the order / description of payment details | No | Maximum length is 250 symbols |
| success_url | The URL of the Online Store (internal URL of the mobile application) to which the client will be redirected after successful payment. After successful payment of the order Portmone.com will send shop_order_number and the payment data to this address using the POST method.Upon calling this page on the website of the Online Store, you can verify the status and the amount of the transaction in the Portmone.com system. These procedures are described below (see section 8 "Getting authorization results") | No | For example: http://example.com/success.html |
| failure_url | The URL of the Online Store to which the client will be redirected in case of payment rejection | No | For example: http://example.com/failure.html |
| lang | Payment system interface language | No | uk – Ukrainian, en – English |
| encoding | Encoding | No | The default is UTF-8 |
| preauth_flag | Sets the pre-authorization mode when funds are only blocked on the Client’s card, but not actually charged from the client’s account | No | "Y" – enable pre-authorization mode, "N" – disable pre-authorization mode (the default is "N") |
| attribute1-4 | Service field | No | Filled at company's discretion |
| attribute5 | Used to send the split parameters of the payment (see section 7 "Splitting the payment") | No | Filled in the next format: Desc1:payeeID1;amount1; Desc2:payeeID2;amount2; where Desc1 – description of the order for the first recipient company, payeeID1 – ID of the first recipient company, amount1 – amount to be enrolled to the account of the first recipient, Desc2 – description of the order for the second recipient company, payeeID2 – ID of the second recipient company, amount2 – amount to be enrolled to the account of the second recipient. The number of recipient companies for a single payment request with splitting is limited to the length of the line (up to 500 characters) |
| exp_time | Sets the interval during which the order can be paid. If the parameter value was transferred, then from the moment the payment page was called up, a countdown is displayed, which is visible to the Client on the payment page. After payment time expires, the bill gets the "REJECTED" status and cannot be paid | No | Filled in seconds |
| dt | Request creation time. Used to verify a signature (required if the signature parameter is sent) | Yes | |
| signature | Signature of the request | Yes |
Response structure:
Please, refer to "3.1 POST order payment response (successful)" to study the response structure.
Response parameters description:
| Parameter | Description |
|---|---|
| SHOPBILLID | A unique identifier (Id) assigned to each transaction (payment document) in the Portmone.com system |
| SHOPORDERNUMBER | Number of paid order (bill) in the Online Store system. Maximum length is 128 symbols |
| APPROVALCODE | Authorization code |
| BILL_AMOUNT | Transaction amount sent in request |
| TOKEN | Token value for subsequent payments |
| RESULT | The result of the operation (if successful = 0) |
| CARD_MASK | Payer’s Card mask |
| ATTRIBUTE1 | Service field. Filled at company’s discretion |
| ATTRIBUTE2 | Service field. Filled at company’s discretion |
| ATTRIBUTE3 | Service field. Filled at company’s discretion |
| ATTRIBUTE4 | Service field. Filled at company’s discretion |
| RECEIPT_URL | Link to get a receipt |
| LANG | Payment system interface language. Possible values: uk – Ukrainian, en – English |
| DESCRIPTION | Comment to the order / description of payment details. Maximum length is 250 symbols |
| IPSTOKEN | A unique Visa token |
| ERRORIPSCODE | Error code if Visa token was not created |
| ERRORIPSMESSAGE | Error message if Visa token was not created |
3.2. JSON request
Description:
To make a payment you should send a request to the following URL: https://www.portmone.com.ua/gateway/.
Availability and restrictions:
No restrictions.
Request structure:
Please, refer to "3.2 JSON order payment request" to study the request structure.
Parameters for generating JSON-structure of request:
- payee – this block is required for partner identification
| Parameter | Description | Required |
|---|---|---|
| payeeId | A unique identifier of the Online Store. Assigned to each Partner individually when connected to the Portmone.com system | Yes |
| login | Company’s login. Used to verify a signature (required if the signature parameter is sent) | Yes |
| dt | Request creation time. Used to verify a signature (required if the signature parameter is sent) | Yes |
| signature | Signature of the request | Yes |
| shopSiteId | Digital identifier of a sales channel | No |
- order – this block contains the order data
| Parameter | Description | Required |
|---|---|---|
| description | Payment description (comment to the order/ payment details). Maximum number of characters 250 | No |
| shopOrderNumber | Number of a paid order in the Partner’s system. Maximum length is 128 symbols | No |
| billAmount | Amount of the payment | Yes |
| successUrl | The URL of the Online Store to which the client will be redirected after a successful payment. Maximum number of characters 250 | No |
| failureUrl | The URL of the Online Store to which the client will be redirected in case of payment rejection. Maximum number of characters 250 | No |
| preauthFlag | Payment pre-authorization flag (value "Y" indicates that this payment is carried out using the pre-authorization procedure (see section 6 "Payments with pre-authorization"), value "N" is a regular payment without pre-authorization) | No |
| preauthConfirm | Date of automatic withdrawal for payments with pre-authorization. Can be used when the preauthFlag = Y parameter is passed in the request. Should be sent in the following format: YYYYMMDDHH24MISS (date and time after which the pre-authorization is confirmed automatically). It can not be less than the current date | No |
| preauthReject | Date of automatic cancellation of pre-authorization. Can be used when the preauthFlag = Y parameter is passed in the request. Should be sent in the following format: YYYYMMDDHH24MISS (date and time after which the pre-authorization is cancelled automatically). It can not be less than the current date | No |
| billCurrency | Currency of the payment. Default value: UAH | No |
| expTime | Sets the interval (in seconds) during which the order can be paid. If the parameter value was transferred, then from the moment the payment page was called up, a countdown is displayed, which is visible to the Client on the payment page. After payment time expires, the bill gets the "REJECTED" status and cannot be paid | No |
| encoding | Encoding (encodes the request text from the set encoding to UTF-8) | No |
| attribute1 | Service field. Filled at company’s discretion | No |
| attribute2 | Service field. Filled at company’s discretion | No |
| attribute3 | Service field. Filled at company’s discretion | No |
| attribute4 | Service field. Filled at company’s discretion | No |
| attribute5 | Used to send the split parameters of the payment (see section 7 "Splitting the payment") | No |
- paymentTypes – this block allows you to choose payment methods ("Y" – enable, "N" – do not enable). If the parameters are not specified, then the payment methods assigned to the Online Store in the Portmone.com settings are used, or two main payment methods are used: "card", "portmone".
| Parameter | Description | Required |
|---|---|---|
| card | Payment by Card | No |
| portmone | Payment via Portmone.com wallet | No |
| token | Payment by Token (if this option is enabled, other methods are not displayed) | No |
| clicktopay | Payment using Visa Click to Pay | No |
| privat | Payment via LiqPay, with choosing a card from the Privat24 Internet Banking Pay attention! Pre-authorization functionality does not work when paying via Privat24 | No |
| gpay | Payment via Google Pay, with choosing a card from previously stored in the Google Pay account | No |
| createtokenonly | Creates a Token to make payments by Token (if this option is enabled, other methods are not displayed). This parameter allows you to receive a Card Token without making a real payment (1 UAH is blocked on the account and returned within 30 minutes). Suitable for common payments to the Online Store (see section 4 "Order payment using a payment Token") and for subsequent use for card to card payments (see section 5 "Money transfer from card to card") | No |
| gpayonly | Payment via Google Pay, with choosing a card from previously stored in the Google Pay account (if this option is enabled, other methods are not displayed – only the "Buy with GPay" button is displayed on the payment page) | No |
| applepay | Payment via Apple Pay, with choosing a card from previously stored in the Apple Pay account | No |
| applepayonly | Payment via Apple Pay, with choosing a card from previously stored in the Apple Pay account (if this option is enabled, other methods are not displayed – only the "Apple Pay" button is displayed on the payment page) | No |
| kyivstar | Payment from Kyivstar mobile account balance (for prepaid numbers only) | No |
| installment | Installment payment | No |
| link | Payment by the BankPay method (using the payer's Bank). The method works if the following parameters are passed: expTime та "showEmail": "Y" | No |
Important! Due to internal security policies of Google and Apple,
Google PayandApple Paywallets can be unstable when opening a payment page in WebView.
For correct operation, we recommend direct integration of Google Pay and Apple Pay If you have an application, we recommend integrating SDKiOS, SDKAndroid
-
installmentPlan – installment payment parameters (see section 3.7 “Installment Payments”).
-
autopayment – this block allows you to set up automatic payments.
The automatic payments functionality allows customers to sign up for automatic monthly / quarterly / semiannual / annual charges. You can manage the client’s subscription parameters by yourself or provide the Client with the possibility to set up the parameters of autopayment.
To get started with automatic payments, you need to get credentials in your Personal Area.
Important! When changing the password, the Partner must generate new
credentials.
After setting up:
-
A subscription to automatic payments from a Client’s Card will be created. The Portmone.com system controls and processes payments. The Client can disable the service by contacting the Portmone.com customer support or an employee of the Online Store (you can delete the client's subscription in the Personal Area).
-
All subsequent payments will be made on the same
descriptionas the first payment. -
The order number for automatic payments will be formed as follows:
Order number at first payment_RECURENT_Date of automatic payment
| Parameter | Description | Required |
|---|---|---|
| show | Displaying the details of the autopayment subscription to the client on the payment page. Possible values: Y – the client can go to a separate page and see the subscription details; N – the client is unable to view subscription details (only the "Make this payment regular" checkbox is displayed) (see fig. 1) | No |
| edit | Editing automatic payment settings by client. Possible values: Y – all settings can be edited on the subscription details page, the client can save settings (see fig. 2); N – the automatic payment settings provided by the Online Store are displayed and cannot be edited | No |
| settings | A block of parameters for setting up automatic payments | No |
| credentials | Authorization parameters | Yes |
| changeCheckboxState | value Y | Yes |
| defaultCheckboxState | value: Y – the checkbox "Make payment regular" is autofilled,N – the client independently fills in the "Make regular payment" checkbox | No |
The settings block structure:
| Parameter | Description | Required |
|---|---|---|
| period | Frequency of automatic payments. Takes the following values: 1 – monthly, 2 – quarterly, 3 – semiannually, 4 – annually | Yes |
| payDate | Day of the month for automatic payment. Can takes value from 1 to 28 | No |
| startDate | Automatic payments start date. Should be sent in the following format: DD.MM.YYYY. If not specified, yesterday's date is automatically set | No |
| endDate | Automatic payments end date. Should be sent in the following format: DD.MM.YYYY. If not specified, the startDate + 3 years is automatically set (or the current payment date is set, if startDate is not specified) | No |
| amount | Amount of the payment. The decimal separator is the dot symbol (".") | Yes |

Fig. 1 – an example of payment page without displaying the details of the autopayment subscription

Fig. 2 – an example of displaying editable automatic payment parameters
- priorityPaymentTypes – this block allows you to manage placement of payment methods on a page. If the value near the payment method name is 0, a tab with the payment method is not displayed, otherwise is placed in ascending order: 1 – at the top of the list, 2 – at the second position, 3 – at the third position, etc.
Important! In
paymentTypesthe payment method must have the "Y" value, in thepriorityPaymentTypesit must have a numeric value other than 0 ("0" disables the display on the payment page).
- token – settings to work with a Token (see section 4 "Order payment using a payment Token")
| Parameter | Description | Required |
|---|---|---|
| tokenFlag | Enables payment by Token ("N" – do not enable, "Y" – take data processing into account) | Required for payment by Token |
| returnToken | "Y" – enables the option to return the Token to the partner on the success page, "N" or empty value – the Token is not returned on the success page | No |
| token | Token value | Required for payment by Token |
| cardMask | Card mask | Required for payment by Token |
| otherPaymentMethods | Allows you to enable other payment methods when the Token is sent ("N" – disable, "Y" – enable) | No |
- payer – this block describes payer settings
| Parameter | Description | Required |
|---|---|---|
| lang | Payment page interface language. Possible values: uk – Ukrainian, en – English | No |
| emailAddress | Email address of the payer | No |
| showEmail | "Y" or empty value – enables displaying the "e-mail" field on the payment page, "N" – hides the "e-mail" field on the payment page (default value is "Y") | No |
Depending on the sent values of the emailAddress and showEmail parameters, there are 4 options for displaying the "e-mail" field on the payment page:
| Option | emailAddress | showEmail | Displaying on the payment page |
|---|---|---|---|
| 1 | empty value | Y | An empty "e-mail" field is displayed |
| 2 | valid e-mail | Y | A prefilled "e-mail" field is displayed that can be edited |
| 3 | empty value | N | The "e-mail" field is not displayed on the payment page. While the payment page opens, no check is performed of whether the Merchant has sent the e-mail address and its validity |
| 4 | valid e-mail | N | The "e-mail" field is not displayed on the payment page. While the payment page opens, no check is performed of whether the Merchant has sent the e-mail address and its validity. However, the e-mail sent in the request is processed and a payment receipt is sent to it |
- shipping – this block contains shipping information
Nova Poshta Delivery
This functionality allows you to enable Nova Poshta delivery.
| Parameter | Description | Required |
|---|---|---|
| state | Y - enables delivery, N - disables delivery | Yes |
| source | The name of the delivery service. Accepts the value novaposhta | Yes |
Example of an array in the request:
"shipping": {
"collect": {
"state": "Y",
"source": "novaposhta"
}