#1. BASICS: Store system communicates with Payment gateway using web-services.
##1.1. Services: There are two web-services provided for access from Store system to Payment gateway:
Service | Test location | Production location |
---|---|---|
order | https://tws.egopay.ru/order/v41/ | https://ws.egopay.ru/order/v41/ |
status | https://tws.egopay.ru/status/v41/ | https://ws.egopay.ru/status/v41/ |
Payment gateway conforms to the following industry standards and protocols:
Note: We require standard redundant HTTP client implementation requirements. To receive recommendations, ask Support Team to provide it in the separate document.
##1.2. Identification: Basic HTTP authorization is required for any request. The Store system will be provided with test and production access credentials - login and password or certificate. Access to Payment gateway services can be limited by the list of ip addresses on the basis of security factor. Store is also provided with shop_id - special unique Store identifier in Payment gateway system for request performance.
Note: shop_id is not equal to Acquirer terminals (MID/TID). Shop_id is used to perform operations with the order, while Acquirer terminals are used to complete authorization.
##1.3 Types and global rules: Float type parameters values must be separated with dot (“.”) symbol. This rule is especially relevant to amount parameter in which major monetary unit (e.g. rubles) and minor monetary unit (e.g. kopecks) must be separated by dot.
Datetime parameter values must be in UTC timezone format.
Blank space is also a symbol.
The general timeout for responses is 30 seconds. Average services method call response time equate 2-3 seconds.
In case of SOAP fault the faultstring field will contain an error code (p. 8.1). Store system will receive SOAP fault to incorrect by scheme or by values request.
Example:
<?xml version="1.0" encoding="utf-8"?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Body>
<soap-env:Fault>
<faultcode>registerFault</faultcode>
<faultstring>SYSTEM_ERROR</faultstring>
<detail />
</soap-env:Fault>
</soap-env:Body>
</soap-env:Envelope>
##1.4 Schemes: There are 2 basic schemes of card data entry:
For payment-gateway-side Payment gateway support only re-direct mechanic. On order registration request (in register method response) Store system will recieve re-direct url to perform Customer browser re-direct to this url. This url will land Customer to secure Payment gateway page and card data entry will be made on secured Payment gateway side.
For store-system-side Payment gateway support 2 mechanics:
Possible to integrate host-to-host by 2 different ways:
Note: In case of one-call scheme card , exp , cvv , holder , amount parameters (card parameter in order registration request) are all mandatory.
##1.5 Order and operations on it:
Order is Payment gateway primary entry, and represents settlement acts between Store and Customer in context of their deal.
Acts are:
The Payment may have the following stages:
The Store system initiate operations on order by calling proper order service methods. Payment gateway supports:
##1.6 Confirmation: Confirmation is the process of informing that Payment gateway have to start settlement initiation process between Store and Aquirer. Before the order is confirmed, Payment gateway system holds money authorization on Customer bank account without charging of it. After sending confirmation, capture process begins and Payment gateway schedules payment settlement process.
Payment gateway system supports 2 basic configuration of confirmation:
Store has a 2 options for setup Payment gateway reaction on expiry time of confirmation awaiting:
Note: Store may configure expiration period, ask Support Team for this.
##1.7 Order processing
A set of activites in order processing depends on
and consists of the:
Note: Store system can set Customer browser re-direct pages settings, to assign web pages to which Payment gateway will initiate Customer browser re-direct after successful or unsuccessful order processing completion. If Store request has no re-direct pages settings, Customer will be re-directed to Store home page, registered in Payment gateway database.
Tip: If Store system want to use timelimit to limit total time of processing, it has to appreciate above information and total overhead from Payment gateway internal processes (avg 2-3 sec).
Tip: Store system can limit the list of cards for performing order payment by: - setting default payment document type; - using allowed cards filters (Ask Support team to create card profile(s)). Fraud control and marketing action are the main purposes for using this feature(s).
In case of payment-gateway-side card data entry scheme the following features are available:
standard interface Payment page. Standard pages are automatically adapted according to the browser or device window width: less then 800 pixels - mobile, more then 800 pixels - standard interface. Russian language of graphical user interface is set by default. Ask Support team to adjust others available translations (p 8.6).
standard iframe Payment page. Iframe page can be used only in case of SSL-certificate presence on Store web site. Default iframe page size - 700x500 pixels. Ask Support team to assign iframe page to Store shop_id.
Payment page(s) customization - ask our Support team to provide standard templates for changes performing. Blocks #footer, #header, css can be changed. Pictures can be added. All customized payment pages should be checked, approved, named, uploaded by Support team. To manage several customized pages opening Store system should use Showcase parameter. Order comment can be added on Payment page.
##1.8 Customer notification about complied authorization According to Payment Systems standards the Customer must be notified about complied payment. Notification responsibility can be divided among Store and Payment gateway, or laid on one the participants of this process.
Payment gateway supports the following methods of Customer notification:
If Store decides to perform Customer notification by its own, Payment gateway can deactivate notification.
To set up one of the chosen variants Store must ask Support Team for it.
##1.9 Obtaining processing status and results Payment gateway supports the following types of Store system informing about order processing status and results:
Tips: Combined variant assumes that Store system will use both push notification and pull request types. This approach is the most preferable as in case of unavailability of Store system or Payment gateway notification service, Store system can request for order status via different methods of status service or vice versa.
##1.10 Liability levels
Note: Store system doesn’t obtain exclusive right to choose one or another Payment gateway liability level. It is approved by Store together with the Acquirer.
#2. ORDER REGISTRATION:
Service: order
Method: register
Request parameters:
Path | Mandatory(M) / Optional(O) | Type | Length | Description | Example |
---|---|---|---|---|---|
order | M | complex | Payment order | ||
order/shop_id | M | number (integer) | Store identifier | 123 | |
order/number | M | string | max 64 | Payment order number May contain unicode content Сase insensive - will be converted to upper-case Can be equal to Store web order number |
100500AA |
cost | M | complex | Total cost of the order that must be charged | ||
cost/amount | M | float | Amount | 100 100.00 |
|
cost/currency | M | string | Currency code | RUB | |
description | O | complex | Payment order description | ||
description/customer | O | complex | Information about Customer | ||
description/customer/id | O | string | min 1 max 64 | Recurrent payment Customer identifier, is used only in recurrent payment cases | 1 |
description/customer/name | O | string | max 128 | Customer full name | Vasya Pupkin Вася Пупкин |
description/customer/phone | O | string | max 15 | Customer phone number | +79011230405 |
description/customer/email | O | string | max 256 | Customer email address | vasya@gmail.com |
description/device | O | complex | Customer browser/device information | ||
description/device/ip | O | string | min 2 max 40 | IP v4 address | 188.225.12.161 |
description/device/agent | O | string | max 256 | Browser description | Chrome / Opera / Safari etc. |
description/device/uid | O | string | 32 | Device id | 123e4567-e89b-12d3-a456-426655440000 |
description/timelimit | O | datetime | Time frames for Customer to perform payment If no value for timelimit provided, 15 minutes by default |
2016-01-01T00:00:00+00:00 | |
description/shopref | O | simple | min 1 max 64 |
Store system additional reference to operation in payment order | |
description/item | O | complex | Travel specific parameters. You can find their description in separate document. | ||
description/part | O | complex | Travel specific parameters. You can find their description in separate document. | ||
postdata | O | complex | Secure Payment gateway page settings. Possible variants of value/name values are described below this table. | ||
postdata/entry | O | complex | |||
postdata/entry/value | M | string | Secure Payment gateway page settings | ||
postdata/entry/name | M | string | Secure Payment gateway page settings | ||
cards | O | complex | Cards and connected information for every card | ||
cards/card | O | complex | Card and connected information | ||
cards/card/number | M | string | min 13 max 19 |
Primary account number (PAN) of cards | 4111111111111111 |
cards/card/id | O | string | min 1 max 64 | Recurrent payment card identifier, is used only in recurrent payment cases | |
cards/card/exp | M | complex | Card expiration date | ||
cards/card/exp/year | M | number | 4 | Year of date | 3015 |
cards/card/exp/month | M | number | max 2 | Moth of date | 12 |
cards/card/cvv | O | string | min 3 max 4 |
CVC2/CVV2/4DBC Isn’t used only for cards that don’t have this code, otherwise Store system should transfer it. |
123 |
cards/card/holder | O | string | min 2 max 64 |
Card holder name | Vasya Pupkin |
cards/card/amount | M | complex | Amount for charge from the card. In case of performing several cards payment total amount of the order must be equal to cards/card/amount from every cards/card block. | ||
cards/card/amount/amount | M | float | Amount | 100 100.00 |
|
cards/card/amount/currency | M | string | max 3 | Currency code | RUB |
cards/card/three_d_secure | O | complex | 3Ds results | ||
cards/card/three_d_secure/verification_id | M | string | base64 | CAVV /TAVV value | |
cards/card/three_d_secure/xid | O | string | base64 | 3D secure xid if available | |
cards/card/three_d_secure/eci | M | string | min 1 max 2 |
ecommerce indicator |
Postdata value/name values:
Key | Value (example) | Description |
---|---|---|
Showcase | template name or payment session type | Is used to open certain customized Payment page. Total list of payment session types is in p 8.7. |
Language | en | Is used to display the correct user interface language. |
Comment | your text here | Is used to add comments on Payment page. |
ChoosenCardType | VI | Is used to choose default payment document type. |
AllowedCards | new profile name | Is used to limit the list of cards for performing payment |
ReturnURLOk | https://abc124.ru/order/success/ | Is used to denote the re-direct url in case of successful authorization process. |
ReturnURLFault | https://abc124.ru/order/fail/ | Is used to denote the re-direct url in case of unsuccessful authorization process. |
ReceiptURL | https://abc124.ru/order/ | Is used to denote the re-direct url after authorization process complition where the final status is displayed. |
Note: The main difference between ReturnURLOk/ReturnURLFault and ReceiptURL is that ReceiptURL parameter has no indicator of order processing status. This means that Store system should define order status itself (to display it to Customer) using Payment gateway services information.
Example:
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:egop="http://egopay.ru">
<soapenv:Header />
<soapenv:Body>
<egop:registerRequest>
<egop:order>
<egop:shop_id>22222</egop:shop_id>
<egop:number>123-123</egop:number>
</egop:order>
<egop:cost>
<egop:currency>RUB</egop:currency>
<egop:amount>100</egop:amount>
</egop:cost>
<egop:description>
<egop:timelimit>2025-01-23T10:42:00.000Z</egop:timelimit>
<egop:shopref>75f76cf3-8e9e-452d-a912-e942992517d9</egop:shopref>
</egop:description>
<egop:cards>
<egop:card>
<egop:cvv>222</egop:cvv>
<egop:amount>
<egop:currency>RUB</egop:currency>
<egop:amount>100</egop:amount>
</egop:amount>
<egop:three_d_secure>
<egop:verification_id>QUFBQkJFaDJpUUFBQUFBQUIzYUpBQUFBQUFB</egop:verification_id>
<egop:xid>b2sQUFBQkJFaDJpUUF=</egop:xid>
<egop:eci>5</egop:eci>
</egop:three_d_secure>
<egop:holder>Pupkin Vasya</egop:holder>
<egop:exp>
<egop:month>12</egop:month>
<egop:year>2025</egop:year>
</egop:exp>
<egop:number>5100000000000008</egop:number>
</egop:card>
</egop:cards>
<egop:postdata>
<egop:entry>
<egop:value>ReceiptURL</egop:value>
<egop:name>https://abc124.ru/order/</egop:name>
</egop:entry>
</egop:postdata>
</egop:registerRequest>
</soapenv:Body>
</soapenv:Envelope>
Response parameters:
In case of successful request processing by Payment gateway, Store system will receive the following parameters in response:
Path | Mandatory(M) / Optional(O) | Originated by Payment gateway(A) / by Store system(S) | Type | Length | Description | Example |
---|---|---|---|---|---|---|
event | M | A | complex | Order operations list | ||
event/error | M | A | complex | Error description | ||
event/error/category | M | A | string | max 64 | Source of error, system by default | |
event/error/code | M | A | string | max 64 | Error code, ok by default | |
event/error/id | M | A | number (integer) | max 64 | Unique numerical identifier error, 0 by default | |
event/error/tcode | M | A | string | max 2 | Backoffice represented code, OK by default | |
event/shopref | O | S | simple | min 1 max 64 |
Store system additional reference to operation in payment order | |
event/code | M | A | string | max 64 | Event description of the event (p. 8.5) | |
event/id | M | A | simple | min 1 max 64 |
Unique numerical event identifier | |
session | O | A | complex | Secure Payment gateway page settings | ||
session/url | M | A | string | Re-direct url | ||
session/id | M | A | string | min 1 max 128 |
Unique session identifier | |
session/paycode | O | A | string | max 14 | Offline payment code |
Example:
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:egop="http://egopay.ru">
<soapenv:Header />
<soapenv:Body>
<egop:registerResponse>
<egop:event>
<egop:error>
<egop:category>system</egop:category>
<egop:code>ok</egop:code>
<egop:id>0</egop:id>
<egop:tcode>OK</egop:tcode>
</egop:error>
<egop:code>change</egop:code>
<egop:shopref>75f76cf3-8e9e-452d-a912-e942992517d9</egop:shopref>
<egop:id>123423</egop:id>
</egop:event>
</egop:registerResponse>
</soapenv:Body>
</soapenv:Envelope>
In case if the response timeout is reached, the Store system can resend the register request or send one of the requests of status service, get status response and repeat register request.
Note: Incorrect request will lead to SOAP fault in response (p. 1.3).
Average time of initiated authorization process equate 5 seconds. 99% authorization responses will be provided in 90 seconds.
If the register request is completed successfuly, Payment gateway set order status to registered. When the order is registered, Payment gateway begins order processing and changes order status to in_progress. After, order status changes depens on authorization results:
Then authorized, Payment gateway changes order status depens on confirmation configuration (p. 1.6):
In case of register request timeout and Store system use pull mechanics to receive processing status, Store system should should start to request status by get_by_order requests as described in p. 3.
#3. ORDER STATUS RETRIEVE At any time after the order was registered, Store system can retrieve order status using get_by_order request.
Service: status
Method: get_by_order
Request parameters:
Path | Mandatory(M) / Optional(O) | Type | Length | Description | Example |
---|---|---|---|---|---|
shop_id | M | number (integer) | Store identifier | 123 | |
number | M | string | max 64 | Payment order number in Store system | 100500AA |
Example:
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:egop="http://egopay.ru">
<soapenv:Header/>
<soapenv:Body>
<egop:get_by_orderRequest>
<egop:shop_id>22222</egop:shop_id>
<egop:number>123-123</egop:number>
</egop:get_by_orderRequest>
</soapenv:Body>
</soapenv:Envelope>
Response parameters:
Path | Mandatory(M) / Optional(O) | Originated by Payment gateway(A) / by Store system(S) | Type | Length | Description | Example |
---|---|---|---|---|---|---|
payments | O | A | complex | Payment details | ||
payments/Payment | O | A | complex | |||
payments/Payment/authorg | M | A | string | max 64 | Acquirer code | |
payments/Payment/id | M | A | string | max 12 | Unique payment identifier Is used to complete refund/partial refund request |
|
payments/Payment/ptype | M | A | string | max 64 | ‘card’ by default | |
payments/Payment/aref | M | A | simple | min 1 max 64 |
Link to the parameter “id” from attempt class | |
payments/Payment/salepoint | O | A | Terminal code | |||
payments/Payment/date | M | A | datetime | Authorization date and time | ||
payments/Payment/authcode | M | A | string | max 64 | Approval code | 123456 |
payments/Payment/amount | M | A | complex | |||
payments/Payment/amount/amount | M | A | float | Authorized amount | 100 100.00 |
|
payments/Payment/amount/currency | M | A | string | max 3 | Currency code | RUB |
status | M | A | Order status (p. 8.3) | |||
documents | O | complex | List of Customer’s payment documents | |||
documents/Document | M | complex | Customer card information | |||
documents/Document/token | O | A | string | max 128 | Recurrent payment Customer identifier, using only in recurrent payment cases | |
documents/Document/exp | M | A - for re-direct scheme S - for host-to-host scheme |
complex | Card expiration date | ||
documents/Document/exp/month | M | A - for re-direct scheme S - for host-to-host scheme |
number | Month of date | ||
documents/Document/exp/year | M | A - for re-direct scheme S - for host-to-host scheme |
number | Year of date | ||
documents/Document/code | M | A | string | max 2 | Payment system card code | VI – visa, CA - MasterCard |
documents/Document/number | M | A - for re-direct scheme S - for host-to-host scheme |
string | min 13 max 19 |
Primary account number (PAN) of cards | |
documents/Document/desc | O | A | complex | Additional card information | ||
documents/Document/desc/country | M | A | string | max 2 | Сountry code expressed in 2 letters, according ISO 3166-2 standard | RU |
documents/Document/desc/product | O | A | string | max 64 | Сard type (level) | gold |
documents/Document/desc/bank | O | A | string | max 64 | Bank name (that issued Customer card) | Sberbank |
documents/Document/id | M | A | simple | min 1 max 64 |
Unique Customer card identifier | |
clearing | O | S | complex | Denotes the type of money settlements Travel specific parameters. |
||
order | M | complex | ||||
order/shop_id | M | number (integer) | Store identifier | 123 | ||
order/number | M | S | string | max 128 | Payment order number | 100500AA |
customer | O | A | complex | |||
customer/id | O | S | string | max 128 | Recurrent payment Customer identifier, is used only in recurrent payment cases | 1 |
customer/name | M | A - for re-direct scheme S - for host-to-host scheme |
string | max 128 | Customer full name | Vasya Pupkin |
customer/phone | O | A - for re-direct scheme S - for host-to-host scheme |
string | max 15 | Customer phone number, must be provided in international format | +79011230405 |
customer/email | O | A - for re-direct scheme S - for host-to-host scheme |
string | max 256 | Customer email address | vasya@gmail.com |
events | O | A | complex | Order operations list | ||
events/Event | M | A | complex | Operation description | ||
events/Event/error | M | A | complex | Error description | ||
events/Event/error/category | M | A | string | max 64 | Source of error | |
events/Event/error/code | M | A | string | max 64 | Error code | |
events/Event/error/id | M | A | number (integer) | max 64 | Unique numerical identifier error | |
events/Event/error/tcode | M | A | string | max 2 | Backoffice represented code | |
events/Event/shopref | O | S | simple | min 1 max 64 |
Store system additional reference to operation in payment order | |
events/Event/code | M | A | string | max 64 | Event description (p. 8.4) | |
events/Event/id | M | A | simple | min 1 max 64 |
Unique numerical event identifier | |
devices | O | complex | Customer browser/device information | |||
devices/Device | M | A - for re-direct scheme S - for host-to-host scheme |
complex | |||
devices/Device/name | O | A - for re-direct scheme S - for host-to-host scheme |
string | max 256 | Browser description | Chrome / Opera / Safari etc. |
devices/Device/ver | O | A - for re-direct scheme S - for host-to-host scheme |
string | max 256 | Browser version | 44.0 |
devices/Device/os | O | A - for re-direct scheme S - for host-to-host scheme |
string | max 256 | Operating system | Android |
devices/Device/os_ver | O | A - for re-direct scheme S - for host-to-host scheme |
string | max 256 | Operating system version | 5.1 |
devices/Device/model | O | A - for re-direct scheme S - for host-to-host scheme |
string | max 256 | Device vendor name | Samsung Galaxy 6 |
devices/Device/id | O | A | simple | min 1 max 64 |
Unique identifier of Customer device | |
devices/Device/ip | O | A - for re-direct scheme S - for host-to-host scheme |
string | max 40 | IP v4 address | 188.225.12.161 |
devices/Device/uid | O | A - for re-direct scheme S - for host-to-host scheme |
string | min 32 max 32 | Device id | 123e4567-e89b-12d3-a456-426655440000 |
attempts | O | A | complex | |||
attempts/Attempt | M | A | complex | |||
attempts/Attempt/error | M | A | complex | Error information | ||
attempts/Attempt/error/code | M | A | string | max 64 | Error code (p. 8.2) | |
attempts/Attempt/error/category | M | A | string | max 64 | Error code (p. 8.2) | |
attempts/Attempt/error/tcode | M | A | string | max 2 | ||
attempts/Attempt/error/id | M | A | number (integer) | max 64 | Error code (p. 8.2) | |
attempts/Attempt/docid | M | A | simple | min 1 max 64 |
Link to the parameter“id” from document class | |
attempts/Attempt/holder | O | A | string | max 64 | Card holder name | |
attempts/Attempt/secure | M | A | string | 3ds authentication status (p. 8.5) | ||
attempts/Attempt/devid | O | A | simple | min 1 max 64 |
Link to the parameter “id” from device class | |
attempts/Attempt/id | O | A | simple | min 1 max 64 |
Unique identifier of Customer payment session | |
attempts/Attempt/date | M | A | datetime | Authorization date and time | ||
attempts/Attempt/change | M | A | complex | Order change event identification | ||
attempts/Attempt/change/reference | O | S | simple | min 1 max 64 |
Store system additional reference to operation in payment order | |
attempts/Attempt/change/event | M | A | simple | min 1 max 64 |
Contains an attribute with the link to events/Event/id parameter that stands for the beginning of order change or payment refund. | |
items | O | S | complex | Denotes the list of order items. Travel specific parameters. |
Example:
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:egop="http://egopay.ru">
<soapenv:Header/>
<soapenv:Body>
<egop:get_by_orderResponse
xmlns="http://egopay.ru">
<egop:payments>
<egop:Payment>
<egop:date>2016-04-13T12:29:09</egop:date>
<egop:ptype>card</egop:ptype>
<egop:authorg>ucs</egop:authorg>
<egop:aref>100073124696</egop:aref>
<egop:id>610412255284</egop:id>
<egop:amount>
<egop:amount>100.0</egop:amount>
<egop:currency>RUB</egop:currency>
</egop:amount>
<egop:authcode>123456</egop:authcode>
</egop:Payment>
</egop:payments>
<egop:attempts>
<egop:Attempt>
<egop:date>2016-04-13T12:28:43</egop:date>
<egop:change>
<egop:reference>test attempt1</egop:reference>
<egop:event id="1169739" />
</egop:change>
<egop:secure>authenticated</egop:secure>
<egop:holder>Vasya Pupkin</egop:holder>
<egop:devid>163510</egop:devid>
<egop:id>100071124694</egop:id>
<egop:docid>17168</egop:docid>
<egop:error>
<egop:tcode>FM</egop:tcode>
<egop:category>bank</egop:category>
<egop:id>51</egop:id>
<egop:code>funds</egop:code>
</egop:error>
</egop:Attempt>
<egop:Attempt>
<egop:date>2016-04-13T12:29:05</egop:date>
<egop:change>
<egop:reference>test attempt2</egop:reference>
<egop:event id="1169745" />
</egop:change>
<egop:secure>authenticated</egop:secure>
<egop:holder>Vasya Pupkin</egop:holder>
<egop:devid>163512</egop:devid>
<egop:id>100073124696</egop:id>
<egop:docid>1401</egop:docid>
<egop:error>
<egop:tcode>OK</egop:tcode>
<egop:category>system</egop:category>
<egop:id>0</egop:id>
<egop:code>ok</egop:code>
</egop:error>
</egop:Attempt>
</egop:attempts>
<egop:customer>
<egop:phone>79112223344</egop:phone>
<egop:email>vasya@gmail.com</egop:email>
<egop:id>1</egop:id>
</egop:customer>
<egop:documents>
<egop:Document>
<egop:id>17168</egop:id>
<egop:desc>
<egop:product>gold</egop:product>
<egop:bank>Sberbank</egop:bank>
<egop:country>RU</egop:country>
</egop:desc>
<egop:code>CA</egop:code>
<egop:number>510000*0032</egop:number>
</egop:Document>
<egop:Document>
<egop:id>1401</egop:id>
<egop:desc>
<egop:bank>Alfabank</egop:bank>
<egop:country>RU</egop:country>
</egop:desc>
<egop:code>CA</egop:code>
<egop:number>510000*0008</egop:number>
</egop:Document>
</egop:documents>
<egop:devices>
<egop:Device>
<egop:ip>188.225.12.161</egop:ip>
<egop:ver>44.0</egop:ver>
<egop:model>Samsung Galaxy 6</egop:model>
<egop:os>Android</egop:os>
<egop:id>163510</egop:id>
<egop:os_ver>5.1</egop:os_ver>
<egop:name>Chrome Mobile</egop:name>
</egop:Device>
<egop:Device>
<egop:ip>188.225.12.161</egop:ip>
<egop:ver>44.0</egop:ver>
<egop:model>Samsung Galaxy 6</egop:model>
<egop:os>Android</egop:os>
<egop:id>163512</egop:id>
<egop:os_ver>5.1</egop:os_ver>
<egop:name>Chrome Mobile</egop:name>
</egop:Device>
</egop:devices>
<egop:status>acknowledged</egop:status>
<egop:order>
<egop:shop_id>123</egop:shop_id>
<egop:number>12345</egop:number>
</egop:order>
<egop:events>
<egop:Event>
<egop:id>1169738</egop:id>
<egop:shopref>test attempt1</egop:shopref>
<egop:code>registration</egop:code>
<egop:error>
<egop:code>OK
</egop:tcode>
<egop:category>system</egop:category>
<egop:id>0</egop:id>
<egop:code>ok</egop:code>
</egop:error>
</egop:Event>
<egop:Event>
<egop:id>1169739</egop:id>
<egop:shopref>test attempt1</egop:shopref>
<egop:code>change</egop:code>
<egop:error>
<egop:tcode>OK</egop:tcode>
<egop:category>system</egop:category>
<egop:id>0</egop:id>
<egop:code>ok</egop:code>
</egop:error>
</egop:Event>
<egop:Event>
<egop:id>1169740</egop:id>
<egop:shopref>test attempt1</egop:shopref>
<egop:code>check</egop:code>
<egop:error>
<egop:tcode>OK</egop:tcode>
<egop:category>system</egop:category>
<egop:id>0</egop:id>
<egop:code>ok</egop:code>
</egop:error>
</egop:Event>
<egop:Event>
<egop:id>1169741</egop:id>
<egop:shopref>test attempt1</egop:shopref>
<egop:code>attempt</egop:code>
<egop:error>
<egop:tcode>OK</egop:tcode>
<egop:category>system</egop:category>
<egop:id>0</egop:id>
<egop:code>ok</egop:code>
</egop:error>
</egop:Event>
<egop:Event>
<egop:id>1169745</egop:id>
<egop:shopref>test attempt2</egop:shopref>
<egop:code>change</egop:code>
<egop:error>
<egop:tcode>OK</egop:tcode>
<egop:category>system</egop:category>
<egop:id>0</egop:id>
<egop:code>ok</egop:code>
</egop:error>
</egop:Event>
<egop:Event>
<egop:id>1169746</egop:id>
<egop:shopref>test attempt2</egop:shopref>
<egop:code>check</egop:code>
<egop:error>
<egop:tcode>OK</egop:tcode>
<egop:category>system</egop:category>
<egop:id>0</egop:id>
<egop:code>ok</egop:code>
</egop:error>
</egop:Event>
<egop:Event>
<egop:id>1169747</egop:id>
<egop:shopref>test attempt2</egop:shopref>
<egop:code>accept</egop:code>
<egop:error>
<egop:tcode>OK</egop:tcode>
<egop:category>system</egop:category>
<egop:id>0</egop:id>
<egop:code>ok</egop:code>
</egop:error>
</egop:Event>
<egop:Event>
<egop:id>1169747</egop:id>
<egop:shopref>test attempt2</egop:shopref>
<egop:code>acknowledge</egop:code>
<egop:error>
<egop:tcode>OK</egop:tcode>
<egop:category>system</egop:category>
<egop:id>0</egop:id>
<egop:code>ok</egop:code>
</egop:error>
</egop:Event>
</egop:events>
</egop:get_by_orderResponse>
</soap-env:Body>
</soap-env:Envelope>
Note: Incorrect request will lead to SOAP fault in response (p. 1.3).
get_by_order_period / get_by_payment_period methods are used to get information about the orders registration or payments completion within requested timeframe respectively.
Service: status
Methods: get_by_order_period, get_by_payment_period
Request parameters:
Path | Mandatory(M) / Optional(O) | Type | Length | Description | Example |
---|---|---|---|---|---|
shop_id | M | number (integer) | Store identifier | 123 | |
start | M | datetime | date and time of the beginning of creation/payment period | 2016-01-01T00:00:00+00:00 | |
stop | M | datetime | date and time of the end of creation/payment period | 2016-01-01T02:00:00+00:00 |
Example:
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:egop="http://egopay.ru">
<soapenv:Header/>
<soapenv:Body>
<egop:get_by_order_periodRequest>
<egop:shop_id>22222</egop:shop_id>
<egop:start>2016-01-23T10:42:00.000Z</egop:start>
<egop:stop>2016-01-23T11:42:00.000Z</egop:stop>
</egop:get_by_order_periodRequest>
</soapenv:Body>
</soapenv:Envelope>
Max period value – 2 hours.
Response parameters: include the list of orders, each of that consists of items described above in get_by_order method (see response parameters for get_by_order request).
Note: Incorrect request will lead to SOAP fault in response (p. 1.3).
All described methods of status service are used in 2 cases:
#4. ORDER CONFIRMATION: After successful order processing, order status changes to not_acknowledged.
Method usage rules and regulations:
Note: In scenario when Store system did not receive response it may resend it. Payment gateway use shopref parameter (is generated for each new request by Store system) to identify is Payment gateway process this request or not. If case when Payment gateway identify that request already processed, Store system will receive already_processed failure (p. 8.1).
Service: order
Method: confirm
Request parameters:
Path | Mandatory(M) / Optional(O) | Type | Length | Description | Example |
---|---|---|---|---|---|
order | M | complex | |||
order/shop_id | M | number (integer) | Store identifier | 123 | |
order/number | M | string | max 64 | Payment order number in Store system | 100500AA |
cost | M | complex | Information about the amount that must be confirmed | ||
cost/amount | M | float | Amount | 100 equals 100.00 | |
cost/currency | M | string | Currency code | RUB | |
shopref | O | simple | min 1 max 64 |
Store system additional reference to operation in payment order | |
items | O | complex | Denotes the list of order items. Is used only for travel services sales | ||
tickets | O | complex | Denotes the list of issued tickets. Travel specific parameters. |
Example:
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:egop="http://egopay.ru">
<soapenv:Header />
<soapenv:Body>
<egop:confirmRequest>
<egop:order>
<egop:shop_id>22222</egop:shop_id>
<egop:number>123-123</egop:number>
</egop:order>
<egop:cost>
<egop:currency>RUB</egop:currency>
<egop:amount>100</egop:amount>
</egop:cost>
<egop:shopref>90bcdcc5-d31d-401a-b9f8-35e86c31aefe</egop:shopref>
</egop:confirmRequest>
</soapenv:Body>
</soapenv:Envelope>
Response parameters: Are the same as in p. 2 (order registration response).
Note: Incorrect request will lead to SOAP fault in response (p. 1.3).
If the confirm request is completed successfully, Payment gateway changes order status to acknowledged. In case of missed order confirmation request, Payment gateway changes order status to canceled.
When Store uses manual confirmation scheme, Payment gateway changes status of every successfully payed order to not_acknowledged. If the confirm request is completed successfully, Payment gateway changes order status to acknowledged. Depending on the chosen type of Payment gateway reaction on expiry time of confirmation awaiting, order status can be changed to:
#5. ORDER CANCELATION Cancel method is used to stop payment process of the order, which is already registered in Payment gateway, but isn’t paid for any reason.
Method usage rules and regulations:
Service: order
Method: cancel
Request parameters:
Path | Mandatory(M) / Optional(O) | Type | Length | Description | Example |
---|---|---|---|---|---|
order | M | complex | |||
order/shop_id | M | number (integer) | Store identifier | 123 | |
order/number | M | string | max 64 | Payment order number | 100500AA |
Example:
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:egop="http://egopay.ru">
<soapenv:Header/>
<soapenv:Body>
<egop:cancelRequest>
<egop:order>
<egop:shop_id>22222</egop:shop_id>
<egop:number>123-123</egop:number>
</egop:order>
</egop:cancelRequest>
</soapenv:Body>
</soapenv:Envelope>
Response parameters: Are the same as in p. 2 (order registration response).
Note: Incorrect request will lead to SOAP fault in response (p. 1.3).
If the cancel request is completed successfuly, Payment gateway changes order status to not_authorized.
#6. ORDER REJECT Reject method is used to reverse payment authorization of the order, which is already paid for in Payment gateway. Only authorized payment can be reversed.
Method usage rules and regulations:
Service: order
Method: reject
Request parameters:
Path | Mandatory(M) / Optional(O) | Type | Length | Description | Example |
---|---|---|---|---|---|
order | M | complex | |||
order/shop_id | M | number (integer) | Store identifier | 123 | |
order/number | M | string | max 64 | Payment order number | 100500AA |
Example:
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:egop="http://egopay.ru">
<soapenv:Header />
<soapenv:Body>
<egop:rejectRequest>
<egop:order>
<egop:shop_id>22222</egop:shop_id>
<egop:number>123-123</egop:number>
</egop:order>
</egop:rejectRequest>
</soapenv:Body>
</soapenv:Envelope>
Response parameters: Are the same as in p. 2 (order registration response).
Note: Incorrect request will lead to SOAP fault in response (p. 1.3).
If the reject request is completed successfuly, Payment gateway sets order status to canceled.
#7. PAYMENT REFUND The Store must use refund method to complete the payment refund (after the order was confirmed and transaction process is completed).
Method usage rules and regulations:
Note: In scenario when Store system did not receive response it may resend it. Payment gateway use shopref parameter (is generated for each new request by Store system) to identify is Payment gateway process this request or not. If case when Payment gateway identify that request already processed, Store system will receive already_processed failure (p. 8.1).
Service: order
Method: refund
Request parameters:
Path | Mandatory(M) / Optional(O) | Type | Length | Description | Example |
---|---|---|---|---|---|
order | M | complex | |||
order/shop_id | M | number (integer) | Store identifier | 123 | |
order/number | M | string | max 64 | Payment order number | 100500AA |
payment_id | O | number (integer) | max 12 | Authorization identification – this parameter returns in status service responses. It can be absent if the order consists of only one transaction. | 1231231 |
cost | M | complex | Information about the amount that must be refunded | ||
cost/amount | M | float | Amount | 100 equals 100.00 | |
cost/currency | M | string | Currency code | RUB | |
shopref | O | simple | min 1 max 128 |
Store system additional reference to operation in payment order | |
items | O | complex | Denotes the list of order items. Travel specific parameters. |
Example: Total cost of the order is 100 RUB, 100 RUB must be refunded.
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:egop="http://egopay.ru">
<soapenv:Header />
<soapenv:Body>
<egop:refundRequest>
<egop:order>
<egop:shop_id>22222</egop:shop_id>
<egop:number>123-123</egop:number>
</egop:order>
<egop:payment_id>222222111111</egop:payment_id>
<egop:cost>
<egop:currency>RUB</egop:currency>
<egop:amount>100</egop:amount>
</egop:cost>
<egop:shopref>d7715995-85ce-4465-bb1b-64f7359e3681</egop:shopref>
</egop:refundRequest>
</soapenv:Body>
</soapenv:Envelope>
Response parameters: Are the same as in p. 2 (order registration response).
Note: Incorrect request will lead to SOAP fault in response (p. 1.3).
If the refund request is completed successfuly, Payment gateway sets order status to refunded.
The Store must use refund method to complete the partial payment refund (after the order was confirmed and transaction process is completed). The Store system should correct refund/cost/amount parameter to perform partial refund.
Service: order
Method: refund
Request parameters: Are the same as for refund method.
Example: Total cost of the order is 100 RUB, 60 RUB must be refunded.
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:egop="http://egopay.ru">
<soapenv:Header />
<soapenv:Body>
<egop:refundRequest>
<egop:order>
<egop:shop_id>22222</egop:shop_id>
<egop:number>123-123</egop:number>
</egop:order>
<egop:payment_id>222222111111</egop:payment_id>
<egop:cost>
<egop:currency>RUB</egop:currency>
<egop:amount>60</egop:amount>
</egop:cost>
<egop:shopref>d7715995-85ce-4465-bb1b-64f7359e3681</egop:shopref>
</egop:refundRequest>
</soapenv:Body>
</soapenv:Envelope>
Response parameters: Are the same as in p. 2 (order registration response).
Note: Incorrect request will lead to SOAP fault in response (p. 1.3).
If the refund request is completed successfuly, Payment gateway sets order status to refunded.
#8. REFERENCES ##8.1. REQUEST PROCESSING SOAP FAULT CODES | Error code | Description | Action expected | |:———–|:————|:—————-| | ALREADY_PROCESSED | order number is already registred in Payment gateway| Check and correct order number
Resend registration request with new order number. | | ACCESS_DENIED | unsuccessful Store authentication | Check credentials and shop_id;
Resend request. | | SYSTEM_ERROR | system malfunction | Resend request latet;
Contact Acquirer Support Team. | | SYSTEM_ERROR | incorrect request performance | Check request accuracy;
Resend request. | | ORDER_ERROR | order not found in service provider system | Check number or host parameters;
Resend request. | | INVALID_ORDER | such order number is not registred in Payment gateway | Check request
Resend request | | PRICING_ERROR | mismatched good/service price in Store sytem and in service provider system |Check relevant good/service price;
Resend request. | | BOOKING_ERROR | incorrect booking status in GDS system | Check booking status and items parameter;
Correct and resend request | | WRONG_AMOUNT | incorrect amount parameter | Check order cost, correct it;
Resend request. | | SESSION_ERROR | GDS session receipt fail | Resend request | | MAX_ATTEMPTS | number of allowed payment attempts is exceeded | Pay attention to Customer | | REPEAT_NEEDED | request processing fail | Resend request later |
##8.2. ORDER ROCESSING ERRORS CODES | ID | CATEGORY | CODE | TCODE | Cause | Solution | |:—|:———|:—–|:——–|:—-|:———| | 0 | system | ok | OK |Operation is completed successfully| | 501 | system | black-list | BL |Customer card is blacklisted | Contact Acquirer Support Team to recieve updated antifraud settings. | 998 | system | max_attempts | LE |number of payments attempts is exceeded| Recommend Customer to appeal to issue bank (of his card) support. | 999 | system | in_progress | IN |order is still processing | Check order status after a while and repeat the request if needed | | 102/103 | system | network | CE | | Repeat the request within the frames of established timelimit.
In case if the problem remains (for example 30% of orders registered within 30 minutes remain unpaid because of system/common error) contact Acquirer Support Team.
! Please, be able to provide us with the examples of such orders. | | 670 | system | fraud | FM |operation is declined by Payment gateway anti-fraud system | Store system support should pay attention to Customer, his order cart and card | | 776 | system | operator | RE |authorization process was interrupted by Backoffice operator | | 333 | system | common | SE | services malfunction | Repeat the request within the frames of established timelimit.
In case if the problem remains for example 30% of orders registered within 30 minutes – remain unpaid because of system/error error – contact Acquirer Support Team.
! Please, be able to provide us with the examples of such orders. | | 334 | system | timeout | TE |processing timeout| Check order status;
Resend request. | | 335 | system | session | SE |Payment gateway is unable to process the request| Resen reqest;
If the problem remains - contact Acquirer Support Team. | 336 | system | denied | SD | payment can’t be performed via this card| Check payment document. | 400 | system | already_processed | AP |the order is already processed | Check request | 681 | system | unavailable_method | SD |Incorrect service/method combination | Check request | 12/13/57/58 | bank | i-prohibition | TD | online payments are restricted for this card | Recommend Customer to appeal to issue bank (of his card) support. | | 4/7/41/43 | bank | fraud | FM |operation is declined by Bank anti-fraud system | Store system support should pay attention to Customer, his order cart and card. | | 666/5 | bank | common | CE |common/indeterminate error | Repeat the request within the frames of established timelimit.
In case if the problem remains for example 30% of orders registered within 30 minutes – remain unpaid because of bank/common error – contact Acquirer Support Team.
! Please, be able to provide us with the examples of such orders. | | 96/82/101 | bank | network | NE |Acquirer’s system is unavailable | Repeat the request within the frames of established timelimit.
In case if the problem remains for example 30% of orders registered within 30 minutes – remain unpaid because of bankerror – contact Acquirer Support Team.
! Please, be able to provide us with the examples of such orders. | | 51 | bank | funds | IF |insufficient funds for order processing | Recommend Customer to appeal to issue bank (of his card) support or check card balance via bank online resources.| | 54/678 | bank | account | IE | Customer entered incorrect card data | Check the accuracy of entered card data, notify Customer about the mistake.| | 61 | bank | limit | LE | operations limit over card is exceeded | Recommend Customer to appeal to issue bank (of his card) support.| | 674 | bank | timeout | TE |order processing timeout| Check order status;
Advice Customer to repeat payment attempt. | 667 | 3dsecure | reject | UE |Customer closed or refreshed secure bank page | | | 668 | 3dsecure | failed | AE |Customer entered incorrect secure bank code | | | 673/672 | 3dsecure | timeout | TE |3ds verification processing timeout | | | 6731/6721 | 3dsecure | network | NE |3ds verification processing timeout | | | 6690 | shop | common | OE | incorrect shop_id settings | Contact Acquirer Support Team.| | 6691 | shop | price | OE |incorrect order cost | Check total order cost and cost of every order item. | | 6692 | shop | status | OE | the order is already processed (paid or canceled) | Check order number and current order status. | | 6693 | shop | network | CE |order processing timeout| Check order status;
Resend request. | | 6694 | shop | commission | OE |incorrect order commission cost | Check and correct commission cost in request to GDS. | | 6695 | shop | invalid_fop | OE |incorrect form of payment | Contact Acquirer Support Team. | | 6696 | shop | wrong_amount | OE | incorrect value of amount parameter | Check “Amount” parameter in request. | | 6700/6701/6702/
6703/6704/6705/
6706/6707/6708/
6709/6710/6711 | shop | error | OE | | 6712 | shop | session | OE | Payment gateway and Store system communication failure | Contact Acquirer Support Team. | | 671 | shop | network | OE | Store system is unavailable | Check the availability of Store system. | | 886 | shop | common | FE | common/indeterminate error | Contact Acquirer Support Team.| | 777 | shop | cancel | RE | order processing was canceled by Store system | | | 675 | user | timeout | TE | Customer ran out of time to perform payment | Check order timelimit. We recommend to set timelimit no less than 5-7 min – according to our statistics it is average time the customer spend on making payment. | | 676 | user | cancel | UE |Customer clicked the button “Back” / “Cancel payment”
or
Customer ‘refreshed’ the payment page | We recommend to notify customer not to leave page while the payment is processing and not to refresh it. | | 677 | user | duplicate | UE | Store system sent several equal order registration request simultaneously | Check Online store settings. | | 679 | user | card_not_binded | IE | incorrect token/customer id | Check request;
Resend request. | | 680 | user | unsupported_card | IE |payment can’t be performed via this card| Check payment document. | | 682 | user | network | UN |network connaction fail | Customer connection failed during 3ds secure authentication process.|
##8.3.ORDER STATUS | Status | Description | Action expected | |:——-|:————|:—————-| | registered | order is registered in Payment gateway system | no action expected | | in_progress | order processing, authorization response is expected | no action expected | | authorized | successful authorization, good/service receipt formation | no action expected | | not_authorized | unsuccessful order processing | Store system can:
perform no request;
create new order;
initiate new payment session | | canceled | authorization is canceled | no action expected | | failed | unsuccessful good/service receipt formation | Store should check availability of good/service, then:
either confirm it manualy via Backoffice system
or
cancel it manualy via Backoffice system. | | not_acknowledged | unsuccessful order confirmation
or
unsuccessful good/service receipt formation| Send confirm or reject request.
In case of unsuccessful good/service receipt formation - no action expected. | | acknowledged | successful order processing, successful receipt formation and successful order confirmation | no action expected | | refunded | successful payment refund | no action expected |
##8.4 EVENT CODES | Code | Description | |:—–|:————| | register| order registration in PG system | | change | order content has changed | | accept | order processing | | reject | payment reject | | acknowledge | order acknowledgement | | refund | payment refund | | cancel | order cancelation | | partial_cancel | partial order cancelation | | attempt | unsuccessful authorization attempt | | check | order content check | | notify | PG services auto notification | | payment_cancel | payment cancelation | | payment_change | order cost has changed | | charge | payment write-off | | subscription_create | recurrent payments schedule creation | | subscription_activate | recurrent payments schedule activation | | subscription_cancel | recurrent payments schedule cancelation |
##8.5 3DS AUTHENTIFICATION STATUS | Status | Description | |:——-|:————| | attempted | 3ds secure code input attempt | | unavailable | 3ds check is unavailable | | started | 3ds check is in process - card is enrolled | | created | 3ds check is in process - re-direct to secure bank page| | unprovided | card doesn’t support 3ds check mechanism | | authenticated | successful authentication | | ready | 3ds check is in process | | not_used | 3ds check wasn’t used (in case of non-3ds scheme of work) | | not_determined | card’s bank hasn’t sent the enrollment response | | not_authenticated | unsuccessful authentication | | not_enrolled | card is not enrolled |
##8.6 User interface language
| Abbreviation | Description | |————–|————-| | ru | Russian | | en | English | | de | German | | cn | Chinese |
##8.7 Payment session types | Abbreviation | Description | |————–|————————————————————| | redirect | Re-direct to Payment gateway secure page | | iframe | iframe format adapted secure Payment gateway page opening | | mobile | mobile format adapted secure Payment gateway page opening | | rest | host-to-host scheme of card data transfer | | token | recurring payment performance |