NAV Navbar

For any question, we are one click away

Contact us

Apple Pay

Before accepting payments via Apple Pay, follow the steps in the sections below. On completing these steps, you can start developing your mobile application (mobile app development documentation is not included in this document, for more information see Apple Pay documentation).

Create Merchant ID

To create your Merchant ID, follow these steps.

  1. In the personal area of the Apple Member Center, go to Certificates, Identifiers & Profiles.
  2. In the Identifiers section select Merchant IDs.
  3. On the resulting page click + (Add) in the right upper corner.
  4. In the Merchant ID Description and Identifier fields enter a description of your Apple merchant identifier and the identifier itself accordingly.
  5. Click Continue.
  6. On the resulting page check the data you entered and click Register.
  7. On the resulting page click Done.

Creation of a Merchant ID certificate

For each transaction you need to request an Apple Pay payment session with fro which your merchant identification certificate wil be required. The procedure below contains the information on how to create this certificate.

  1. Log into your Apple developer account at https://developer.apple.com.
  2. Follow Apple developer account help instructions to create an identification certificate.
  3. Select the previously created merchant ID when prompted.
  4. Follow Apple instructions to create a CSR yourself. The CSR that you received from the bank cannot be used to create a merchant identification certificate.
  5. Download and save the generated merchant identification certificate (.cer file).
  6. After you follow Apple's instructions, add the merchant's identification certificate to your keychain.
  7. Export the certificate from your keychain as a .p12 file.
  8. Convert the .p12 file into .rem file using the following command:
    openssl pkcs12 -in your-file.p12 -out apple-pay-cert.pem -nodes -clcerts.
  9. Upload the apple-pay-cert.pem file to your server and the .p12 file to the your personal cabinet in the payment gateway.

When requesting an Apple Pay payment session, use the full path to the file apple-pay-cert.pem.

Certificate registration

To receive payments via Apple Pay, you need to have a key pair (private and public key) and the corresponding public key certificate. The required actions in the personal cabinet depend on whether you already have a key pair and the corresponding certificate or not.

Initial conditions Required steps
You do not have a key pair and the public key certificate
  1. Create a key pair
  2. Download CSR from the personal cabinet
  3. Sign the certificate at Apple Pay

After that the following actions will become available.
You have a key pair and your public key certificate is registered at Apple Pay Upload the file containing your key pair
After that the following actions will become available.

Create new certificate

To create a key pair, follow these steps.

  1. Log in to your personal cabinet and click in the left panel (Certificates section).
  2. Select Apple Pay.
  3. Click Create key pair.
    The following form will display.
  4. Fill in the required fields (see the table below).
Setting Description

Encryption algorithm

This radio button allows to select one of the two cryptographic algorithms that will be used for key pair generation.
  • RSA - RSA algorithm.
  • ECC - elliptic curves cryptography .

Country (C)

Enter two-letter code of the country where your organization is located.

Locality Name (L)

Enter the name of the locality where your organization is located.

Organization Name (O)

Enter the name of your organization.

Apple ID

Merchant Apple ID.

State Name (ST)

Enter state name where your organization is located.

Common Name (CN)

Enter the domain name of your site, for example, test.com.

Organization Unit (OU)

Enter the name of your organization unit.

The created key pair will be displayed in the Apple Pay section (see the figure below).

Proceed to CSR download

Upload previously created certificate

To upload an existing key pair, follow these steps.

  1. Log in to your personal cabinet and click in the left panel (Certificates section).
  2. Select Apple Pay.
  3. In the Merchant identification certificates section click Add key.
    The following form will be displayed.
  4. Fill in the following fields.
    • Apple ID - enter your Merchant Apple ID.
    • Password - enter the password for your PKCS12 file.
    • Default domain - enter the domain of your online store.
  5. Drag your key pair file to the designated area on the page.
    It will be displayed below.
  6. Click Create. The uploaded key pair will be displayed in the Merchant identification certificates section.

After uploading your key pair the following actions will become available.

Export CSR

To download CSR, follow these steps.

  1. Log in to your personal cabinet and click in the left panel (Certificates section).
  2. Select the required payment service (Apple Pay, Google Pay, or Samsung Pay).
  3. Click next to your certificate and select Download CSR (see the figure below).

    Save file dialog will display.
  4. Specify the path to which the file will be saved or save it to the default folder.

Also, the following actions are available.

Edit Merchant ID

To edit your Apple Merchant ID, follow these steps.

  1. Log in to your personal cabinet and click in the left panel (Certificates section).
  2. Select Apple Pay.
  3. Click and select Edit. (see the figure below).

    The following form will be displayed.
  4. Edit Aplle ID field and click Confirm.

Disable certificate

To disable a certificate (key), follow these steps.

  1. Log in to your personal cabinet and click in the left panel (Certificates section).
  2. Select the required payment service (Apple Pay, Google Pay, or Samsung Pay).
  3. Click next to your certificate and select Disable key (see the figure below).

    The following dialog will display.
  4. Click Confirm.

Whether a disabled certificate is displayed in the personal cabinet depends on Allowed certificates setting that is at the upper left corner of the Certificates section (see the figure below).

Setting Description
Allowed certificates enabled Disabled certificates are not displayed in the Keys list.
Allowed certificates disabled Disabled certificates are displayed in the Keys list. Allowed cell will have False value (see the figure below).

Actions necessary for web integration

For Web integration, follow these steps.

  1. Register and confirm your domain in Apple.
    • If the payment page is located on your side, register your domain.
    • If the payment page is located on the payment gateway side, specify the payment gateway domain.
  2. Create a merchant identification certificate, convert it to a .rem file, and upload it to your server.

This certificate is used to authenticate connections to Apple Pay servers.

Registration of a domain in Apple

To register a certificate in Apple, follow these steps.

  1. Log in to your Apple developer account at https://developer.apple.com.
  2. Follow Apple developer account help instructions to register a domain.

Select the previously created merchant ID when prompted.

Integration scheme

sequenceDiagram participant Payer participant Merchant's resource participant Apple Pay system participant Payment gateway Payer->>Merchant's resource: 1. Selecting to pay with Apple Pay Merchant's resource->>Apple Pay system: 2. Sending payment details Apple Pay system->>Apple Pay system: 3. Creating PKPaymentToken Object with PaymentData Apple Pay system-->>Merchant's resource: 4. Sending payment data Merchant's resource->>Merchant's resource: 5. Extracting PaymentData and encoding the content in Base64 Merchant's resource->>Payment gateway: 6. Request for payment with PaymentData value encoded in Base64 Payment gateway->>Payment gateway: 7. Decryption of the payment data and payment Payment gateway-->>Merchant's resource: 8. Sending a response with the payment result Merchant's resource-->>Payer: 9. Displaying the result
  1. The user in the mobile application selects the payment option using Apple Pay.
  2. The payment data is sent to the Apple Pay system for processing.
  3. To process the payment data an object PKPaymentToken Object, which has paymentDataattribute, is created in the Apple Pay system (here and further see Apple Pay documentation).
  4. Apple Pay sends a response to the merchant (mobile application).
  5. The merchant exctracts paymentData attribute out of received PKPaymentToken Object object and encodes its contents in Base64.
  6. The merchant creates a payment request containing paymentDataattribute, which is received from the Apple Pay response and encoded in Base64, and sends it to the payment gateway for processing (see Request for payment via Apple Pay).
  7. The payment system processes the request.
  8. The payment system returns a response with the result.
  9. The mobile application displays the payment result to the user.

Link Description
Apple Pay A section of the apple.com site containing general information on Apple Pay.
Developer Apple Pay A section of the apple.com site dedicated to developers and containing links and reference information concerning Apple Pay.
Apple Pay Sandbox A section of the apple.com site containing information on testing.
Apple Pay Guide A section of the apple.com site containing a programming reference.
Apple Pay Guidelines A section of the App Store reference dedicated to Apple Pay.
Apple Pay API API reference (application programming interface).
PKPaymentToken Object structure Description of the PKPaymentToken Object structure.
Login page The development environment login page.
  • PDF document containing general information on Apple Pay and reference links.
  • PDF document containing recommendations on designing sites and mobile applications in the Apple style.

Google Pay

Introduction

There are several implementation options for Google Pay.

Payment option Description
From your mobile application Payment is made from your mobile application installed on customer's mobile device. In this scenario the application requests encrypted data from Google Pay. This data must be sent to the payment gateway.
See also redirection to ACS.
From a Web payment page on your side Payment is made from a Web page. In this case, the merchant requests the encrypted payment data from Google Pay. Then the merchant must send this data to the payment gateway.
See also redirection to ACS.
From a Web payment page located on the side of the payment gateway Payment is made from a Web page. In this case, the merchant redirects the customer to the payment page on the payment gateway side.

Integration schemes

Payment from a mobile app

sequenceDiagram participant Customer participant Application participant Google Pay participant Payment gateway Customer->>Application: 1. Select Google Pay payment. Application->Google Pay: 2. Request masked card data. Google Pay-->>Application: 3. Response to the request. Application-->>Customer: 4. Display of the masked card data. Customer->>Application: 5. Payment confirmation. Application->>Google Pay: 6. Request the encrypted card data. Google Pay->>Google Pay: 7. Data encryption. Google Pay-->>Application: 8. Return the encrypted payment data. Application->>Payment gateway: 9. Google Pay payment request. Payment gateway->>Payment gateway: 10. Decrypt the payment data, and payment. Payment gateway-->>Application: 11. Payment result. Application-->>Customer: 12. Payment result.
  1. A customer selects to pay via Google Pay.
  2. The application requests masked card data from Google Pay.
  3. Google Pay returns masked card data to the application.
  4. The application displays the masked card data to the customer.
  5. The customer confirms payment.
  6. The application requests encrypted card data from Google Pay .
  7. Google Pay encrypts the data using merchant's public key.
  8. Google returns the encrypted payment data to the application.
  9. The application sends a Google Pay payment request to the payment gateway, the request contains the token received from Google Pay.
  10. The payment gateway decrypts the received token and processes the payment.
  11. The payment gateway returns the payment result to the application.
  12. The application displays the payment result to the customer.

Payment page is on the the online store side

sequenceDiagram participant Customer participant Merchant participant Google Pay participant Payment gateway Customer->>Merchant: 1. Select payment via Google Pay. Merchant->>Google Pay: 2. Request for Google Pay payment. Google Pay->>Google Pay: 3. Encrypt payment data. Google Pay-->>Merchant:4 . Return encrypted data. Merchant->>Payment gateway: 5. Google Pay request. Payment gateway->>Payment gateway: 6. Data decryption, and payment. Payment gateway-->>Merchant: 7. Payment result. Merchant-->>Customer: 8. Payment result.
  1. The customer creates an order on the online store Website and chooses to pay via Google Pay.
  2. The online store generates a request for Google Pay.
  3. The Google Pay generates the encrypted payment data.
  4. The online store receives the encrypted payment data.
  5. The online store generates a Google Pay payment request, the request contains the received encrypted payment data.
  6. The payment gateway decrypts the received data and makes the payment.
  7. The payment gateway returns the payment result to the online store.
  8. The payment result is displayed to the customer.

Payment page is on the payment gateway side

sequenceDiagram participant Customer participant Merchant participant Payment gateway participant Google Pay Customer->>Merchant: 1. Order placement. Merchant->>Payment gateway: 2. Order registration. Payment gateway-->>Merchant: 3. Order number and redirection URL. Merchant-->>Customer: 4. Customer redirection. Customer->>Payment gateway: 5. Proceed to the URL received. Payment gateway->>Payment gateway: 6. Display the payment form. Customer->>Payment gateway: 7. Select Google Pay as a payment method. Payment gateway->Google Pay: 8. Data exchange. Payment gateway->>Payment gateway: 9. Make payment. Payment gateway-->>Customer: 10. Redirection to the final page. Customer->>Payment gateway: 11. Open of the final page. Payment gateway-->>Customer: 12. Display payment status to the customer.

If the payment page is located on the Google Pay side, the scheme is the following.

  1. A customer creates an order on the merchant's Website.
  2. The merchant registers the order in the payment gateway.
  3. The payment gateway returns a unique order number and the URL to which the customer must be redirected.
  4. The store system redirects the customer to the URL from step 3.
  5. The customer's browser opens the URL.
  6. The customer receives a payment form.
  7. The customer choose to pay via Google Pay and confirms the choice.
  8. The payment data is exchanged between the payment gateway and Google Pay - the payment gateway receives the payment data.
  9. The payment gateway processes the payment.
  10. The customer is redirected to the final page.
  11. The customer's browser displays the final page.
  12. The payment status is displayed.

Payment scenario with user redirection to ACS

sequenceDiagram participant Customer participant Merchant's resource participant Google Pay participant Payment gateway participant ACS of the issuing bank Customer->>Merchant's resource: 1. Select Google Pay. Merchant's resource->>Google Pay: 2. Request masked card data. Google Pay-->>Merchant's resource: 3. Return the masked card data. Merchant's resource-->>Customer: 4. Display the masked card data. Customer->>Merchant's resource: 5. Payment confirmation. Merchant's resource->>Google Pay: 6. Request encrypted card data. Google Pay->>Google Pay: 7. Data encryption. Google Pay-->>Merchant's resource: 8. Return the encrypted data. Merchant's resource->>Payment gateway: 9. Request Google Pay payment. Payment gateway->>Payment gateway: 10. Decrypt data and check for 3DS involvement. opt The card is involved in 3DS Payment gateway-->>Merchant's resource: 11. Redirect URL to ACS. Merchant's resource-->>Customer: 12. Redirection to ACS. Customer->>ACS of the issuing bank: 13. Authentication against ACS. ACS of the issuing bank->>ACS of the issuing bank: 14. Verification of the authentication data. ACS of the issuing bank-->>Payment gateway: 15. Sending authentication data to the payment gateway. end Payment gateway->>Payment gateway: 16. Making payment. Payment gateway-->>Merchant's resource: 17. Payment result. Merchant's resource->>Payment gateway: 18. Request payment status. Payment gateway-->>Merchant's resource: 19. Return payment status. Merchant's resource-->>Customer: 20. Display the result.

If the customer chooses to pay via Google Pay with a non-tokenized card, the payment gateway will redirect the customer to the issuing ACS.

  1. A customer chooses to pay via Google Pay.
  2. The application requests Google Pay masked card data.
  3. Google Pay returns the masked card data.
  4. The application displays the masked card data to the customer.
  5. The customer confirms payment.
  6. The application requests Google Pay the encrypted card data.
  7. Google encrypts the data using your public key.
  8. Google returns the encrypted payment data to the application.
  9. The application sends a Google Pay payment request to the payment gateway, the request contains the token received from the Google Pay.
  10. The payment gateway decrypts the received token and checks the card, whether it is tokenized or not. If not, it checks for involvement in 3-D Secure.
  11. If the card is involved in 3-D Secure, the payment gateway sends a response to the payment request that contains a redirect link to the ACS server (acsUrl) and the value of the PaReq authentication request.
  12. The merchant redirects the customer to the ACS site. The merchant redirects the customer to the address specified in the acsUrl parameter with the request body MD=mdorder&PaReq=pareq&TermUrl=redirect, where:
    • mdorder - unique order number in the payment gateway system
    • pareq - parameter from the response to the payment request,
    • redirect - parameter from the response to the payment request (return address from ACS).
  13. The customer authenticates at the ACS Website.
  14. ACS verifies the authentication data.
  15. ACS returns the result of the authentication to the payment gateway (PaRes).
  16. The payment gateway makes the payment.
  17. The payment gateway sends the payment result to the merchant.
  18. The merchant requests the payment status.
  19. The payment gateway returns the payment result.
  20. The merchant sends the result to the customer.

Requirements for the payment page on merchant's side

Payment page on the merchant's side must meet the following requirements.

paymentsClient.isReadyToPay({allowedPaymentMethods: allowedPaymentMethods})
    .then(function(response) {
      if (response.result) {
        // in this case the button should be displayed
        addGooglePayButton();
      }
    })
    .catch(function(err) {
      // show error in developer console for debugging
      console.error(err);
    });

function addGooglePayButton() {
  var button = document.createElement('button');
  button.className = 'google-pay';
  button.appendChild(document.createTextNode('Google Pay'));
  sbutton.addEventListener('click', onGooglePaymentButtonClicked);
  document.getElementById('container').appendChild(button);
}
var paymentsClient =
    new google.payments.api.PaymentsClient({environment: 'TEST'});
function getGooglePaymentDataConfiguration() {
  return {
    merchantId: '00000000000000000000', //constant for the bank's RBE; for the environment: 'TEST' is not indicated
    transactionInfo = {
        totalPriceStatus: 'FINAL',
        totalPrice: '123.45', //amount in major units
        currencyCode: 'EUR' //ISO 4217
    },
    paymentMethodTokenizationParameters: {
        tokenizationType: 'PAYMENT_GATEWAY',
        parameters: {
            gateway: 'some-bank', //constant for the bank's RBE
            gatewayMerchantId: 'exampleGatewayMerchantId' //merchant identifier in the payment gateway
        }
    },
    allowedPaymentMethods: ['CARD', 'TOKENIZED_CARD'],
    cardRequirements: {
        allowedCardNetworks: ['MASTERCARD', 'VISA']
    }
  };
}
var paymentDataRequest = getGooglePaymentDataConfiguration();
paymentsClient.loadPaymentData(paymentDataRequest).then(function(paymentData){
  processPayment(paymentData);
}).catch(function(err){
  // show error in developer console for debugging
  console.error(err);
});

Create key pair

To create a key pair, follow these steps.

  1. Log in to your personal cabinet and click in the left panel (Certificates section).
  2. Select Google Pay.
  3. In the Keys section click Create key pair.
    The following form will be displayed.
  4. Fill in the Google ID field with your Google ID obtained from Google Pay, then click Confirm.
  5. The created key pair will be displayed in the Keys section (see the figure below).

Download public key

To download your public key, follow these steps.

  1. Log in to your personal cabinet and click in the left panel (Certificates section).
  2. Select Google Pay.
  3. Click next to your certificate and select Download key (see the figure below).
  4. In the Save file window select the path to which the file will be saved or save it to your default folder.

Also, the following action are available.

Edit Google ID

To edit your Google ID, follow these steps.

  1. Log in to your personal cabinet and click in the left panel (Certificates section).
  2. Select Google Pay.
  3. Click next to your certificate and select Edit (see the figure below).
    The following form will be displayed.
  4. Edit the Google ID field, then click Confirm.

Disable certificate

To disable a certificate (key), follow these steps.

  1. Log in to your personal cabinet and click in the left panel (Certificates section).
  2. Select the required payment service (Apple Pay, Google Pay, or Samsung Pay).
  3. Click next to your certificate and select Disable key (see the figure below).

    The following dialog will display.
  4. Click Confirm.

Whether a disabled certificate is displayed in the personal cabinet depends on Allowed certificates setting that is at the upper left corner of the Certificates section (see the figure below).

Setting Description
Allowed certificates enabled Disabled certificates are not displayed in the Keys list.
Allowed certificates disabled Disabled certificates are displayed in the Keys list. Allowed cell will have False value (see the figure below).

Samsung Pay

General information

Before accepting payments via Samsung Pay, follow these steps.

Before you start

  1. Create an account at https://account.samsung.com.
  2. Using the created account, register at https://pay.samsung.com/developers.
  3. At https://pay.samsung.com/developers create Service and select RUNET BUSINESS SYSTEMS LLC as your Payment Gateway.
  4. Proceed to the actions in the personal cabinet of the payment gateway:

Create key pair

To create a key pair, follow these steps.

  1. Log in to your personal cabinet and click in the left panel (Certificates section).
  2. Select Samsung Pay.
  3. In the Keys section click Create key pair.
    The following form will be displayed.
  4. Fill in the fields (see the table below).
Field Description

Country (C)

Enter two-letter code of the country where your organization is located.

State Name (ST)

Enter state name where your organization is located.

Locality Name (L)

Enter the name of the locality where your organization is located.

Common Name (CN)

Enter the domain name of your site, for example, test.com.

Organization Name (O)

Enter the name of your organization.

Organization Unit (OU)

Enter the name of your organization unit.

The created key pair will be displayed in the Keys section (see the figure below).

Proceed to CSR download.

Export CSR

To download CSR, follow these steps.

  1. Log in to your personal cabinet and click in the left panel (Certificates section).
  2. Select the required payment service (Apple Pay, Google Pay, or Samsung Pay).
  3. Click next to your certificate and select Download CSR (see the figure below).

    Save file dialog will display.
  4. Specify the path to which the file will be saved or save it to the default folder.

Now you can register your certificate by uploading the CSR to Samsung Pay.

Also, you can disable your certificate.

Complete registration

In your profile at https://pay.samsung.com/developers upload the certificate signing request as Merchant CSR (merchant certificate signing request).

Disable certificate

To disable a certificate (key), follow these steps.

  1. Log in to your personal cabinet and click in the left panel (Certificates section).
  2. Select the required payment service (Apple Pay, Google Pay, or Samsung Pay).
  3. Click next to your certificate and select Disable key (see the figure below).

    The following dialog will display.
  4. Click Confirm.

Whether a disabled certificate is displayed in the personal cabinet depends on Allowed certificates setting that is at the upper left corner of the Certificates section (see the figure below).

Setting Description
Allowed certificates enabled Disabled certificates are not displayed in the Keys list.
Allowed certificates disabled Disabled certificates are displayed in the Keys list. Allowed cell will have False value (see the figure below).

Integration schemes

Payment from a mobile application

sequenceDiagram participant Payer participant Mobile application participant Samsung Pay participant Payment gateway Payer->>Mobile application: 1. Select Samsung Pay. Mobile application->>Samsung Pay: 2. Payment request. Samsung Pay->>Samsung Pay: 3. Device check. Samsung Pay-->>Mobile application:4 . Response containing 3ds.data parameter. Mobile application->>Payment gateway: 5. Payment request. paymentToken parameter contains 3ds.data. Payment gateway->>Payment gateway: 6. Data decryption and payment. Payment gateway-->>Mobile application: 7. Payment result. Mobile application-->>Payer: 8. Display the result.
  1. A Customer selects Samsung Pay as a payment method.
  2. The application sends payment details to Samsung.
  3. Samsung checks the application.
  4. Samsung sends a response to the application containing, among other things, the 3ds.data parameter with the encrypted data about the payment.
  5. The merchant sends a payment request to the payment gateway. The contents of 3ds.data received from Samsung is included in the paymentToken parameter.
  6. The payment gateway decrypts the contents of paymentToken and makes the payment.
  7. The payment gateway sends the payment result to the application.
  8. The application displays the result to the customer.

Payment from a Web page on the payment gateway side

sequenceDiagram participant Customer participant Merchant's website participant Payment gateway participant Samsung Pay Customer->>Merchant's website: 1. Order placing. Merchant's website->>Payment gateway: 2. Payment request. Payment gateway-->>Customer: 3. Redirection to the payment gateway page. Customer->>Payment gateway: 4. Payment via Samsung Pay. Payment gateway->Samsung Pay: 5. Data exchange. Payment gateway-->>Customer: 6. Redirection to Samsung Pay page. opt The customer's mobile device is not linked to a Samsung account. Customer->>Samsung Pay: 7. Enter login. end Samsung Pay-->>Customer: 8. Request authentication data. Customer->>Samsung Pay: 9. Authentication. Payment gateway->>Samsung Pay: 10. Exchange payment data. Samsung Pay-->>Customer: 11. Display payment result.
  1. A customer creates an order and starts the payment procedure.
  2. The merchant sends an order registration to the payment gateway:
  3. The merchant sends a payment request to the payment gateway.
  4. The customer selects to pay via Samsung Pay.
  5. The payment gateway communicates with Samsung Pay.
  6. The customer is redirected to the Samsung Pay page.
  7. The customer enters their login.
  8. The application on the customer's mobile device requests authentication data.
  9. The customer is authenticated on their device.
  10. The payment gateway exchanges payment data with Samsung Pay.
  11. The customer is redirected to the payment result page.

Payment from a Web page on the merchant's side

sequenceDiagram participant Customer participant Merchant's Website participant Payment gateway participant Samsung Pay Customer->>Merchant's Website: 1. Place an order. Merchant's Website->>Payment gateway: 2. Order registration. Payment gateway-->>Merchant's Website: 3. Order identifier. Merchant's Website-->>Customer: 4. Redirection to the payment page. Customer->>Merchant's Website: 5. Receive the payment page. Merchant's Website-->>Customer: 6. Payment page. Customer->>Merchant's Website: 7. Request Samsung Pay payment. Merchant's Website->>Payment gateway: 8. Payment via Samsung Pay. Payment gateway->Samsung Pay: 9. Data exchange. Payment gateway-->>Merchant's Website: 10. Response to Samsung Pay payment request. Merchant's Website->>Samsung Pay: 11. Redirect the customer to the Samsung Pay page. alt No link between the device and Samsung ID. Samsung Pay->>Customer: 12. Request Samsung ID. Customer-->>Samsung Pay: 13. Enter Samsung ID. end Samsung Pay-->>Customer: 14. Prompt to check linked devices. Samsung Pay->>Customer: 15. Phone authorization request. Customer-->>Samsung Pay: 16. Authorization confirmation. Payment gateway->>Samsung Pay: 17. Data exchange. Payment gateway-->>Merchant's Website: 18. Payment result. Merchant's Website-->>Customer: 19. Payment result.

Payment from a a payment page on the merchant 's side.

  1. A customer creates an order on the merchant 's Website.
  2. The merchant sends an order registration request to the payment gateway.
  3. The payment gateway registers the order and returns the ID of the created.
  4. The store redirects the customer to the merchat's payment page.
  5. The customer's browser opens the merchant's payment page.
  6. The customer gets the payment form.
  7. The customer chooses to pay via Samsung Pay Web.
  8. The merchant sends a payment request via Samsung Pay to the payment gateway.
  9. The payment gateway communicates with Samsung Pay.
  10. The payment gateway sends a response to the payment request.
  11. The payment form redirects the customer to the Samsung Pay page. For this, the JavaScript scenario that calls the connect function is used. This function must send the data from the response received from the payment request.
  12. A form for entering the ID is displayed to the customer.
  13. The customer enters their ID and confirms the link between their ID and device.
  14. Samsung Pay prompts customer authentication.
  15. Samsung Pay sends a notification to the customer's device, so they can select a payment card and confirm the payment.
  16. The customer confirms the payment.
  17. Samsung Pay communicates with the payment gateway.
  18. The payment gateway sends the payment result to the payment page.
  19. The payment page displays the result to the customer.

Connection strings

Requests must meet the following requirements:

The table below contains the URL addresses for accessing REST requests.

Request URL

Apple Pay

https://server/context/applepay/payment.do

Google Pay

https://server/context/google/payment.do

Samsung Pay

https://server/context/samsung/payment.do

Samsung Pay Web

https://server/context/samsungWeb/payment.do

Order registration

https://server/context/rest/register.do

Order registration with pre-authorization

https://server/context/rest/registerPreAuth.do

Order deposit request

https://server/context/rest/deposit.do

Refund request

https://server/context/rest/refund.do

Order status request

https://server/context/rest/getOrderStatusExtended.do

If you test REST requests in the same browser that you accessed the payment gateway merchant console, then, executing any REST request will lead to an error in the payment gateway merchant console. To restore the session with the payment gateway merchant console:

This situation can be avoided in one of the following ways:

REST API reference

Apple Pay order registration

Request parameters

Mandatory Name Type Description
Yes

merchant String Merchant login in the payment gateway.
Yes

orderNumber Alphanumeric Order number (ID) in the merchant's system, must be unique for each merchant.
No

description String Order description in any format.
To enable sending this field to the processing system, contact the technical support service.
No

language Alphabetic ISO 639-1 encoded language key. If the language is not specified, the default language specified in the store settings is used.
No

additionalParameters See description Additional parameters of the order that are stored in the merchant personal area for the subsequent viewing. Each new pair of a parameter name and its value must be separated by a comma. Below is a usage example.
{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
No

preAuth String Parameter that defines the necessity of a pre-authorization (putting the amount on hold on the customer's account until its debiting). The following values are available:
  • true - two-phase payment enabled;
  • false - one-phase payments enabled (money are charged right away).
If the parameter is missing, one-phase payment is made.
Yes

paymentToken String The paymentToken parameter must contain a Base64 encoded value of the paymentData property that was received in PKPaymentToken Object from the Apple Pay system (see https://developer.apple.com/library/content/documentation/PassKit/Reference/PaymentTokenJSON/PaymentTokenJSON.html). Thus, to make a request to the payment gateway, the merchant must:
  1. get PKPaymentToken Object containing paymentData from Apple Pay;
  2. extract paymentData value and encode it in Base64;
  3. include the encoded value of the paymentData property as the value of the paymentToken parameter in the payment request that the merchant sends to the payment gateway.

Response parameters

Mandatory Name Type Description
Yes

success String Indicates that the request was successful. The following values are available:
  • true - request processed successfully;
  • false - request failed.
See description data N/A This parameter is returned only if the payment is processed successfully. See the description below.
See description error N/A This parameter is returned only if the payment failed. See the description below.
See description orderStatus N/A Contains order status parameters and is returned only if the payment gateway has recognized all request parameters as correct. See the description below.

data block contains the following elements.

Mandatory Name Type Description
Yes

orderId String Order number in the payment gateway. Unique within the payment gateway.

error block contains the following elements.

Mandatory Name Type Description

code Integer Error code.

description String A detailed technical explanation of the error - the contents of this parameter should not to be displayed to the customer.

message String Error description to be displayed to the user.

orderStatus block contains the following elements.

Mandatory Name Type Description
No

errorCode Integer Error code. Can be missing if the result has not caused an error.
No

orderNumber Alphanumeric Order number (ID) in the merchant's system, must be unique for each merchant.
No

orderStatus Integer The value of this parameter specifies the status of the order in the payment gateway. It is missing if the order has not been found. Below is the list of available values:
  • 0 - order was registered but not paid;
  • 1 - pre-authorized amount is on hold on the buyer's account (for two-phase payments);
  • 2 - order amount is fully authorized;
  • 3 - authorization canceled;
  • 4 - transaction was refunded;
  • 5 - access control server of the issuing bank initiated authorization procedure;
  • 6 - authorization declined.
No

actionCode Integer Response code from the processing bank.
No

actionCodeDescription String actionCode description returned from the processing bank.
No

amount Integer Payment amount in minor currency units (e.g. in cents etc.).
No

currency Integer SO 4217 encoded currency key. If not specified, the default value is used.
No

date String Order registration date.
No

ip String Buyer's IP address. IPv6 is supported in all requests. (up to 39 characters).
See description merchantOrderParams N/A Section with attributes in which the merchant's additional parameters are transmitted. See the description below.
See description attributes N/A Attributes of the order in the payment system (order number). See the description below.
See description cardAuthInfo N/A Information about the buyer's payment card. See the description below.
No

authDateTime String Authorization date and time, shown as the amount of milliseconds passed from 00:00 January 1, 1970 (GMT).
No

terminalId String Terminal identifier.
No

authRefNum String Registration number of the payment authorization that has been assigned to it on the payment registration.
See description paymentAmountInfo N/A A parameter containing embedded parameters with information about confirmation, debiting and refund amounts. See the description below.
See description bankInfo N/A Contains the embedded bankCountryName parameter. See the description below.

merchantOrderParams block contains the following elements.

Mandatory Name Type Description
Yes

name Alphanumeric Name of the merchant's additional parameter.
Yes

value Alphanumeric The value of the merchant's additional parameter - up to 1024 characters.

attributes block contains the following elements.

Mandatory Name Type Description
Yes

name Alphanumeric Name of an additional parameter.
Yes

value Alphanumeric Value of an additional parameter - up to 1024 characters.

cardAuthInfo block contains the following elements.

Mandatory Name Type Description
Yes

expiration Integer Card expiration in the following format: YYYYMM. This parameter is to be specified only after the order has been paid.
Yes

cardholderName Alphabetic Cardholder's name in Latin characters. This parameter is passed only after an order is paid.
Yes

approvalCode String IPS authorization code. This field has a fixed length (six symbols) and can contain digits and Latin letters.
Yes

pan String Masked DPAN: a number that is linked to the customer's mobile device and functions as a payment card number in the Apple Pay system.

paymentAmountInfo block contains the following elements.

Mandatory Name Type Description
Yes

paymentState String Order status, this parameter can have the following values:
  • CREATED - order created (but not paid);
  • APPROVED - order approved (funds are on hold on buyer's account);
  • DEPOSITED - order deposited (buyer is charged);
  • DECLINED - order declined;
  • REVERSED - order canceled;
  • REFUNDED - refund.
Yes

approvedAmount Integer Amount in minimum currency units (e.g. cents) that was put on hold on buyer's account. Used in two-phase payments only.
Yes

depositedAmount Integer Charged amount in minimum currency units (e.g. in cents).
Yes

refundedAmount Integer Refunded amount in minimum currency units.

bankInfo block contains the following elements.

Mandatory Name Type Description
Yes

bankCountryName String Country of the issuing bank.

Error codes

Error code Error message
1 Invalid payment parameters
4 Incorrect value of the [paymentToken.signature] parameter, the check failed
5 Incorrect value of the [validationUrl] parameter
5 Order creation error
5 Payment is declined
6 Incorrect value of the [mdorder] parameter
6 Order is not found
7 System error
9 Invalid order status
10 Incorrect value of the [merchant] parameter
10 Incorrect value of the [paymentToken.signature] parameter, the check failed
10 Invalid value of the [amount] parameter
10 Param [paymentToken.data] is invalid, error decode
10 Incorrect value of the [paymentToken.data] parameter
10 Incorrect value of the [orderNumber] parameter
10 Incorrect value of the [paymentToken] parameter
10 Incorrect value of the [paymentToken.version] parameter
10 Incorrect value of the [paymentToken.header] parameter
10 Incorrect value of the [paymentToken.signature] parameter
10 Incorrect value of the [paymentToken.header.transactionId] parameter
10 Incorrect value of the [paymentToken.header.wrappedKey] parameter
10 Incorrect value of the [paymentToken.header.publicKeyHash] parameter
10 Incorrect value of the [currencyCode] parameter
10 Incorrect value of the [amount] parameter
10 Incorrect value of the [ip] parameter
10 The merchant does not have permission to [VERIFY]
10 There is no private key to decrypt
10 Two-phase payments are not allowed
10 Unknown currency
10 Duplicate order number
10 The amounts in the order and in the shopping cart differ
10 The currencies in the order and in the shopping cart differ
10 Incorrect value of the ofd additional parameter
10 Encryption of the data passed in unsuccessful
10 Merchant hasn't private key
10 Return URL cannot empty
10 Authorization is invalid

Examples

Request example

{
    "merchant": "merchant_name",
    "orderNumber": "applepay123456794",
    "description": "descritpion_text",
    "paymentToken": "eyJ2ZXJza...iM2RlMDVlYjE5In19",
    "language": "en",
    "additionalParameters": {},
    "preAuth": "false"
}

Response in case of a successful payment

{
    "success": true,
    "data": {
        "orderId": "b926351f-a634-49cf-9484-ccb0a3b8cfad"
    },
    "orderStatus": {
        "errorCode": "0",
        "orderNumber": "229",
        "orderStatus": 1,
        "actionCode": 0,
        "actionCodeDescription": "",
        "amount": 960000,
        "currency": "978",
        "date": 1478682458102,
        "ip": "81.18.144.51",
        "merchantOrderParams": [
            {
                "name": "param2",
                "value": "param2"
            },
            {
                "name": "param1",
                "value": "param1"
            }
        ],
        "attributes": [
            {
                "name": "mdOrder",
                "value": "b926351f-a634-49cf-9484-ccb0a3b8cfad"
            }
        ],
        "cardAuthInfo": {
            "expiration": "201907",
            "cardholderName": "CARD HOLDER",
            "approvalCode": "123456",
            "pan": "520424**0010"
        },
        "authDateTime": 1478682459082,
        "terminalId": "12345678",
        "authRefNum": "111111111111",
        "paymentAmountInfo": {
            "paymentState": "APPROVED",
            "approvedAmount": 960000,
            "depositedAmount": 0,
            "refundedAmount": 0
        },
        "bankInfo": {
            "bankCountryName": "<UNKNOWN>"
        }
    }
}

Response in case of a failed payment

{
  "error": {
    "code": 10,
    "description": "Processing Error",
    "message": "Auth is invalid"
  },
  "success": false
}

Google Pay order registration

Request parameters

The payment.do request is used to register an order.

Mandatory Name Type Description
Yes

merchant String Merchant login in the payment gateway.
Yes

orderNumber Alphanumeric Order number (ID) in the merchant's system, must be unique for each merchant.
No

description String Order description in any format.
To enable sending this field to the processing system, contact the technical support service.
No

language Alphabetic ISO 639-1 encoded language key. If the language is not specified, the default language specified in the store settings is used.
No

additionalParameters See description Additional parameters of the order that are stored in the merchant personal area for the subsequent viewing. Each new pair of a parameter name and its value must be separated by a comma. Below is a usage example.
{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}
No

preAuth String Parameter that defines the necessity of a pre-authorization (putting the amount on hold on the customer's account until its debiting). The following values are available:
  • true - two-phase payment enabled;
  • false - one-phase payments enabled (money are charged right away).
If the parameter is missing, one-phase payment is made.
No

clientId Alphanumeric Customer number (ID) in the merchant's system — up to 255 characters . Used to implement the functionality of bindings. Can be returned in the response if the merchant is allowed to create bindings.
Specifying this parameter when processing payments via bindings is mandatory. Otherwise, a payment will be unsuccessful.
Yes

paymentToken String A token obtained from Google Pay and encoded in Base64.
Yes

ip String Buyer's IP address. IPv6 is supported in all requests. (up to 39 characters).
Yes

amount Integer Payment amount in minor currency units (e.g. in cents etc.).
No

currencyCode String Numeric ISO 4217 code of the payment currency. If this parameter is not specified, it is considered to be equal to the default currency code.
See description

email String Customer's email address.
See description

phone Integer Customer's phone number. It is always necessary to specify the country code, but you can specify or omit the + sign. Thus, the following options are valid:
  • +79998887766;
  • 79998887766.Allowed digits number: from 7 to 15.
Yes

returnUrl String The address to which the user will be redirected if the payment is successful. The address must be specified in full including the protocol used (for example, https://test.ru instead of test.ru). Otherwise, the user will be redirected to the address of the following type http://<payment_gateway_address>/<merchant_address>.
No

failUrl String The address to which the user is to be redirected in case of a failed payment. The address must be specified in full including the protocol used (for example, https://test.ru instead of test.ru). Otherwise, the user will be redirected to the address of the following type http://<payment_gateway_address>/<merchant_address>.
No

threeDSSDK String Possible values: true or false. Flag showing that payment comes from 3DS SDK.

Response parameters

Mandatory Name Type Description
Yes

success String Indicates that the request was successful. The following values are available:
  • true - request processed successfully;
  • false - request failed.
See description data N/A This parameter is returned only if the payment is processed successfully. See the description below.
See description error N/A This parameter is returned only if the payment failed. See the description below.
See description orderStatus N/A Contains order status parameters and is returned only if the payment gateway has recognized all request parameters as correct. See the description below.

data block contains the following elements.

Mandatory Name Type Description
Yes

orderId String Order number in the payment gateway. Unique within the payment gateway.
Yes

orderId String Order number in the payment gateway. Unique within the payment gateway.
Only if additional authentication is used on the issuing bank's ACS

termUrl String In a successful response in case of a 3D-Secure payment. URL address for redirecting to ACS.
Only if additional authentication is used on the issuing bank's ACS

acsUrl String On a successful response in case of a 3D-Secure payment. URL address for redirecting to ACS.
Only if additional authentication is used on the issuing bank's ACS

paReq String On a successful response in case of a 3D-Secure payment. Payment Authentication Request.
The parameter is returned if the bindings are used

bindingId String Identifier of a binding created earlier. It can be used only if the merchant has the permission to work with bindings.

error block contains the following elements.

Mandatory Name Type Description

code Integer Error code.

description String A detailed technical explanation of the error - the contents of this parameter should not to be displayed to the customer.

message String Error description to be displayed to the user.

Error codes

Error code Error message
0 The request has been processed without system errors.
1 The funds on the card are not sufficient.
5 Access denied.
10 Incorrect value of the paymentToken parameter.
10 Incorrect value of the orderNumber parameter.
10 Incorrect value of the merchant parameter.
10 Incorrect value of the ip parameter.
10 Encryption of the data passed in unsuccessful.
10 Merchant hasn't private key.

Examples

Request example

{
    "merchant": "OurBestMerchantLogin",
    "orderNumber": "UAF-203974-DE",
    "language": "EN",
    "preAuth": true,
    "description" : "Test description",
    "additionalParameters": 
    {
        "firstParamName": "firstParamValue",
        "secondParamName": "secondParamValue"
    },
    "paymentToken": "eyJt....J9In0=",
    "ip" : "127.0.0.1",
    "amount" : "230000",
    "currencyCode" : 978,
    "failUrl" : "https://est.com",
    "returnUrl" : "https://test_return.com"
  }

Response in case of a successful payment

{
"success":true,
"data": {
 "orderId": "12312312123"
 }
}

Example of the response to the request with the non-tokenized card and redirect to ACS

{"success":true,"data":{"orderId":"e757d0cf-a028-7bdc-acb9-44480008afa2","acsUrl":"https://test.ru/acs/auth/start.do","paReq":"eJxV....DOm3R/rFG/TvQ/wAgGS/bg==","termUrl":"https://server/context/rest/finish3ds.do"}

Response in case of a failed payment

{
  "error": {
    "code": 1,
    "description":
"Processing Error",
    "message":
"The funds on the card are not sufficient"
  },
  "success": false
}

Samsung Pay order registration

The payment.do request is used to register an order in Samsung Pay. See Connection coordinates. This request is only used when paying from the mobile application.

Below an example of a request for a payment through Samsung Pay is given.

Request parameters

Mandatory Name Type Description
Yes

merchant String Merchant login in the payment gateway.
Yes

orderNumber Alphanumeric Order number (ID) in the merchant's system, must be unique for each merchant.
No

description String Order description in any format.
To enable sending this field to the processing system, contact the technical support service.
No

language Alphabetic ISO 639-1 encoded language key. If the language is not specified, the default language specified in the store settings is used.
No

additionalParameters See description Additional parameters of the order that are stored in the merchant personal area for the subsequent viewing. Each new pair of a parameter name and its value must be separated by a comma. Below is a usage example.
{ "firstParamName": "firstParamValue", "secondParamName": "secondParamValue"}

preAuth String Parameter that defines the necessity of a pre-authorization (putting the amount on hold on the customer's account until its debiting). The following values are available:
  • true - two-phase payment enabled;
  • false - one-phase payments enabled (money are charged right away).
If the parameter is missing, one-phase payment is made.
No

preAuth String Parameter that defines the necessity of a pre-authorization (putting the amount on hold on the customer's account until its debiting). The following values are available:
  • true - two-phase payment enabled;
  • false - one-phase payments enabled (money are charged right away).
If the parameter is missing, one-phase payment is made.
No

clientId Alphanumeric Customer number (ID) in the merchant's system — up to 255 characters . Used to implement the functionality of bindings. Can be returned in the response if the merchant is allowed to create bindings.
Specifying this parameter when processing payments via bindings is mandatory. Otherwise, a payment will be unsuccessful.
Yes

paymentToken String The contents of the 3ds.data parameter from the response received from Samsung Pay.
Yes

ip String Buyer's IP address. IPv6 is supported in all requests. (up to 39 characters).
No

currencyCode String Numeric ISO 4217 code of the payment currency. If this parameter is not specified, it is considered to be equal to the default currency code.

Response parameters

Mandatory Name Type Description
Yes

success String Indicates that the request was successful. The following values are available:
  • true - request processed successfully;
  • false - request failed.
See description data N/A This parameter is returned only if the payment is processed successfully. See the description below.
See description error N/A This parameter is returned only if the payment failed. See the description below.

data block contains the following elements.

Mandatory Name Type Description
Yes

orderId String Order number in the payment gateway. Unique within the payment gateway.

error block contains the following elements.

Mandatory Name Type Description

code Integer Error code.

description String A detailed technical explanation of the error - the contents of this parameter should not to be displayed to the customer.

message String Error description to be displayed to the user.

Error codes

Error code Error message
0 The request has been processed without system errors.
1 The funds on the card are not sufficient.
5 Access denied.
7 System error.
10 Incorrect value of the paymentToken parameter.
10 Incorrect value of the orderNumber parameter.
10 Incorrect value of the merchant parameter.
10 Incorrect value of the ip parameter.
10 Incorrect value of the paymentToken.header.alg parameter .
10 Incorrect value of the paymentToken.header.enc parameter.
10 Incorrect value of the paymentToken.header.typ parameter .
10 Incorrect value of the paymentToken.header.channelSecurityContext parameter.
10 Incorrect value of the paymentToken.header.kid parameter.
10 Encryption of the data passed in unsuccessful.

Examples

Request example

{
    "merchant": "OurBestMerchantLogin",
    "orderNumber": "UAF-203974-DE",
    "language": "EN",
    "preAuth": true,
    "description" : "Test description",
    "additionalParameters":
    {
        "firstParamName": "firstParamValue",
        "secondParamName": "secondParamValue"
    },
    "paymentToken": "ew0K...DQp9",
    "ip" : "127.0.0.1"
}

Response in case of a successful payment

{
"success":true,
"data": {
    "orderId": "12312312123"
  }
}

Response in case of a failed payment

{
  "error": {
    "code": 1,
    "description": "Processing Error",
    "message": "Not enough money"
  },
  "success": false
}

Samsung Pay web order registration

The payment.do request is used to register an order (see «Connection coordinates» section). This request is used for payment via the website when the payment form is on the merchant 's page.

Request parameters

Mandatory Name Type Description
Yes

mdOrder String Order number in the payment gateway. Unique within the payment gateway.
Yes

onFailedPaymentBackUrl String The URL to which the customer will be redirected if an error occurs or the waiting period is exceeded.

Response parameters

Mandatory Name Type Description
Yes

successful Boolean Indicates that the operation was successfully processed, the available values are:
  • 1 (success);
  • 0 (fail).
Yes

transactionId String Value that must be passed to Samsung Pay by calling the connect function.
Yes

href String Value that must be passed to to Samsung Pay by calling the connect function .
Yes

mod String Value that must be passed to to Samsung Pay by calling the connect function .
Yes

exp String Value that must be passed to to Samsung Pay by calling the connect function .
Yes

keyId String Value that must be passed to to Samsung Pay by calling the connect function .
Yes

serviceId String Value that must be passed to to Samsung Pay by calling the connect function .
Yes

callbackUrl String Value that must be passed to to Samsung Pay by calling the connect function .
Yes

cancelUrl String Value that must be passed to to Samsung Pay by calling the connect function .
Yes

countryCode String Value that must be passed to to Samsung Pay by calling the connect function .
Yes

resultType String Value that must be passed to to Samsung Pay by calling the connect function .

Order registration

To register an order, use register.do request.

Request parameters

Mandatory Name Type Description
See description

userName String Merchant 's API account login. If you pass your login and password to authenticate in the payment gateway, do not pass token parameter.
See description

password String Merchant's API account password. If you pass your login and password to authenticate in the payment gateway, do not pass token parameter.
See description

token String Value that is used for merchant authentication when requests are sent to the payment gateway. If you pass this parameter do not pass userName and password.
See description

orderNumber Alphanumeric Order number (ID) in the merchant's system, must be unique for each merchant.
Yes

amount Integer Payment amount in minor currency units (e.g. in cents etc.).
No

currency Integer SO 4217 encoded currency key. If not specified, the default value is used.
Yes

returnUrl String The address to which the user will be redirected if the payment is successful. The address must be specified in full including the protocol used (for example, https://test.ru instead of test.ru). Otherwise, the user will be redirected to the address of the following type http://<payment_gateway_address>/<merchant_address>.
No

failUrl String The address to which the user is to be redirected in case of a failed payment. The address must be specified in full including the protocol used (for example, https://test.ru instead of test.ru). Otherwise, the user will be redirected to the address of the following type http://<payment_gateway_address>/<merchant_address>.
No

dynamicCallbackUrl String This parameter allows you to use the functionality of sending callback notifications dynamically. Here you can pass the address to which all "payment" callback notifications, activated for the merchant, will be sent. "Payment" notifications are callback notifications related to the following events: successful hold, payment declined by timeout, cardpresent payment is declined, successful debit, refund, cancellation. At the same time, callback notifications activated for the merchant that are not related to payments (enabling/disabling a binding, creating a binding) will be sent to a static address for callbacks. Mandatory use depends on the merchant configuration on Payment Gateway side.
No

description String Order description in any format.
To enable sending this field to the processing system, contact the technical support service.
No

language Alphabetic ISO 639-1 encoded language key. If the language is not specified, the default language specified in the store settings is used.
No

pageView String By the value of this parameter, it is defined what pages of the payment interface are to be loaded for the customer. The following values are allowed.
  • DESKTOP – for loading pages for PC (in the archive that contains pages of the payment interface the following pages will be searched: payment_<locale>.html and errors_<locale>.html).
  • MOBILE – for loading pages for mobile devices (in the archive that contains pages of the payment interface the following pages will be searched: mobile_payment_<locale>.html and mobile_errors_<locale>.html).
  • If a merchant created payment pages and added their own prefixes, pass the created prefixes in pageView parameter to load the corresponding page. For example, when passing iphone value, pages with iphone_payment_<locale>.html and iphone_error_<locale>.htm will be searched

Where:
  • locale is the ISO 639-1 language key. For example, ru for Russian or en for English.

If this parameter is missing or does not match the format, it is considered that by default pageView=DESKTOP.
No

clientId Alphanumeric Customer number (ID) in the merchant's system — up to 255 characters . Used to implement the functionality of bindings. Can be returned in the response if the merchant is allowed to create bindings.
Specifying this parameter when processing payments via bindings is mandatory. Otherwise, a payment will be unsuccessful.
No

merchantLogin String To register an order on behalf of a child merchant, specify the merchant login in this parameter.
No

jsonParams String Block for passing additional merchant parameters. Fields containing additional info for further storage are pased as follows.
{name1:value1,…,nameN:valueN}
These fields can be transferred to the processing bank for further display in the bank registers.
Contact your bank to enable this functionality.
If customer notifications are configured for the merchant, then, customer's email must be passed in this block in the email parameter.
By default, the followng parameters are passed to the processing bank:
  • orderNumber – order number in the merchant's system;
  • description – order description (up to 99 characters, the following characters are forbidden^ %, +, end of line \r, and line break \n).

If you pass merchantOrderId parameter, then, its value will be passed to the processing bank as order number (instead of orderNumber parameter).
No

sessionTimeoutSecs Integer Order lifetime in seconds. If the parameter is not specified, the value specified in the merchant settings or the default value (1200 seconds = 20 minutes) will be used. If the request contains expirationDate, the value of sessionTimeoutSecs is not taken into account.
No

expirationDate String Data and time of the order expiry. Format used: yyyy-MM-ddTHH:mm:ss.
If this parameter is not passed in the request, sessionTimeoutSecs is used to define the expiry of the order.
No

bindingId String Identifier of a binding created earlier. It can be used only if the merchant has the permission to work with bindings.
No

features String Below are the allowed values.
  • AUTO_PAYMENT - Payment is processed without cardholder authentication (without CVC or 3-D Secure). To process these payments merchant must have sufficient permissions in the payment gateway.
  • VERIFY - If you specify this value in the order registration request, cardholder will be verified (they will have to go through 3-D Secure procedure) however they will not be charged any amount, so in this case amount parameter can be 0. Verification allows to make sure that a payment card is used by its legitimate owner, and further you can charge them without authentication (CVC, 3D-Secure). Even if some amount is passed in the request, the customer will not be charged if VERIFY feature is used. After a successful registration order status is changed to REVERSED (canceled).
  • FORCE_TDS - Force 3-D Secure payment. If a payment card does not support 3-D Secure, the transaction will fail.
  • FORCE_SSL - Force SSL payment (without 3-D Secure).
  • FORCE_FULL_TDS - After 3-D Secure authentication, PaRes status must be Y, which guarantees successful user authentication. Otherwise, the transaction will fail.
No

phone Integer Customer's phone number. It is always necessary to specify the country code, but you can specify or omit the + sign. Thus, the following options are valid:
  • +79998887766;
  • 79998887766.Allowed digits number: from 7 to 15.
No

email String Customer's email address.
See description

billingPayerData Object A block with the client's registration data (address, postal code) necessary for passing the address verification within the AVS/AVV services. Mandatory if the feature is enabled for the merchant on Payment Gateway side.

Below are the parameters of the billingPayerData block (data about the client registration address).

Mandatory Name Type Description
No

billingCity String The city registered on a specific card of the Issuing Bank.
No

billingCountry String The country registered on a specific card of the Issuing Bank ( ISO 3166-1, numeric).
No

billingAddressLine1 String The address registered on a specific card of the Issuing Bank. Line 1. Mandatory to be passed in order AVS verification works.
No

billingAddressLine2 String The address registered on a specific card of the Issuing Bank. Line 2.
No

billingAddressLine3 String The address registered on a specific card of the Issuing Bank. Line 3.
No

billingPostalCode String Postal code registered on a specific card of the Issuing Bank. Mandatory to be passed in order AVS verification works.
No

billingState String The state registered on a specific card of the Issuing Bank (ISO 3166-2).

Response parameters

Mandatory Name Type Description
No

formUrl String URL of the payment form, to which a customer will be redirected The URL is not returned if the registration of the order fails due to an error specified in errorCode.
No

errorCode Integer Error code. Can be missing if the result has not caused an error.
No

orderId String Order number in the payment gateway. Unique within the payment gateway.
No

errorMessage String Error description. Language of the description is set in language parameter of the request.

Error codes

Error code Error message
0 Request processing took place without system errors.
1 Order with given order number is processed already.
1 Order number is invalid
3 Unknown currency.
4 Order number is empty.
4 Empty merchant user name.
4 Empty amount.
4 Empty return URL.
4 Password cannot be empty.
5 Access denied.
5 The user must change his password.
5 [jsonParams] is invalid.
7 System error.
13 Merchant doesn't have the permission to verify payments.
14 Features are invalid.

Examples

Request example

curl --request POST \
  --url https://sandbox.paydoc.io/payment/rest/register.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data amount=2000 \
  --data userName=test_user \
  --data password=test_user_password \
  --data returnUrl=finish.html \
  --data failUrl=errors_ru.html \
  --data email=test@test.ru \
  --data clientId=259753456 \
  --data language=en

Response example

{
  "orderId": "01491d0b-c848-7dd6-a20d-e96900a7d8c0",
  "formUrl": "https://sandbox.paydoc.io/payment/merchants/rbs/payment_en.html?mdOrder=01491d0b-c848-7dd6-a20d-e96900a7d8c0"
}

Order pre-authorization

To request registration of an order with preauthorization registerPreAuth.do method is used.

Request parameters

Mandatory Name Type Description
See description

userName String Merchant 's API account login. If you pass your login and password to authenticate in the payment gateway, do not pass token parameter.
See description

password String Merchant's API account password. If you pass your login and password to authenticate in the payment gateway, do not pass token parameter.
See description

token String Value that is used for merchant authentication when requests are sent to the payment gateway. If you pass this parameter do not pass userName and password.
Yes

orderNumber Alphanumeric Order number (ID) in the merchant's system, must be unique for each merchant.
Yes

amount Integer Payment amount in minor currency units (e.g. in cents etc.).
No

currency Integer SO 4217 encoded currency key. If not specified, the default value is used.
Yes

returnUrl String The address to which the user will be redirected if the payment is successful. The address must be specified in full including the protocol used (for example, https://test.ru instead of test.ru). Otherwise, the user will be redirected to the address of the following type http://<payment_gateway_address>/<merchant_address>.
No

failUrl String The address to which the user is to be redirected in case of a failed payment. The address must be specified in full including the protocol used (for example, https://test.ru instead of test.ru). Otherwise, the user will be redirected to the address of the following type http://<payment_gateway_address>/<merchant_address>.
No

dynamicCallbackUrl String This parameter allows you to use the functionality of sending callback notifications dynamically. Here you can pass the address to which all "payment" callback notifications, activated for the merchant, will be sent. "Payment" notifications are callback notifications related to the following events: successful hold, payment declined by timeout, cardpresent payment is declined, successful debit, refund, cancellation. At the same time, callback notifications activated for the merchant that are not related to payments (enabling/disabling a binding, creating a binding) will be sent to a static address for callbacks. Mandatory use depends on the merchant configuration on Payment Gateway side.
No

description String Order description in any format.
To enable sending this field to the processing system, contact the technical support service.
No

language Alphabetic ISO 639-1 encoded language key. If the language is not specified, the default language specified in the store settings is used.
No

pageView String By the value of this parameter, it is defined what pages of the payment interface are to be loaded for the customer. The following values are allowed.
  • DESKTOP – for loading pages for PC (in the archive that contains pages of the payment interface the following pages will be searched: payment_<locale>.html and errors_<locale>.html).
  • MOBILE – for loading pages for mobile devices (in the archive that contains pages of the payment interface the following pages will be searched: mobile_payment_<locale>.html and mobile_errors_<locale>.html).
  • If a merchant created payment pages and added their own prefixes, pass the created prefixes in pageView parameter to load the corresponding page. For example, when passing iphone value, pages with iphone_payment_<locale>.html and iphone_error_<locale>.htm will be searched

Where:
  • locale is the ISO 639-1 language key. For example, ru for Russian or en for English.

If this parameter is missing or does not match the format, it is considered that by default pageView=DESKTOP.
No

clientId Alphanumeric Customer number (ID) in the merchant's system — up to 255 characters . Used to implement the functionality of bindings. Can be returned in the response if the merchant is allowed to create bindings.
Specifying this parameter when processing payments via bindings is mandatory. Otherwise, a payment will be unsuccessful.
No

merchantLogin String To register an order on behalf of a child merchant, specify the merchant login in this parameter.
No

jsonParams String Block for passing additional merchant parameters. Fields containing additional info for further storage are pased as follows.
{name1:value1,…,nameN:valueN}
These fields can be transferred to the processing bank for further display in the bank registers.
Contact your bank to enable this functionality.
If customer notifications are configured for the merchant, then, customer's email must be passed in this block in the email parameter.
By default, the followng parameters are passed to the processing bank:
  • orderNumber – order number in the merchant's system;
  • description – order description (up to 99 characters, the following characters are forbidden^ %, +, end of line \r, and line break \n).

If you pass merchantOrderId parameter, then, its value will be passed to the processing bank as order number (instead of orderNumber parameter).
No

sessionTimeoutSecs Integer Order lifetime in seconds. If the parameter is not specified, the value specified in the merchant settings or the default value (1200 seconds = 20 minutes) will be used. If the request contains expirationDate, the value of sessionTimeoutSecs is not taken into account.
No

expirationDate String Data and time of the order expiry. Format used: yyyy-MM-ddTHH:mm:ss.
If this parameter is not passed in the request, sessionTimeoutSecs is used to define the expiry of the order.
No

bindingId String Identifier of a binding created earlier. It can be used only if the merchant has the permission to work with bindings.
No

features String Below are the allowed values.
  • AUTO_PAYMENT - Payment is processed without cardholder authentication (without CVC or 3-D Secure). To process these payments merchant must have sufficient permissions in the payment gateway.
  • VERIFY - If you specify this value in the order registration request, cardholder will be verified (they will have to go through 3-D Secure procedure) however they will not be charged any amount, so in this case amount parameter can be 0. Verification allows to make sure that a payment card is used by its legitimate owner, and further you can charge them without authentication (CVC, 3D-Secure). Even if some amount is passed in the request, the customer will not be charged if VERIFY feature is used. After a successful registration order status is changed to REVERSED (canceled).
  • FORCE_TDS - Force 3-D Secure payment. If a payment card does not support 3-D Secure, the transaction will fail.
  • FORCE_SSL - Force SSL payment (without 3-D Secure).
  • FORCE_FULL_TDS - After 3-D Secure authentication, PaRes status must be Y, which guarantees successful user authentication. Otherwise, the transaction will fail.
No

autocompletionDate String The date and time when the two-stage payment was completed automatically in the following format: 2017-12-29T13:02:51. To enable sending this field to the processing system, contact your technical support service.
No

email String Customer's email address.
No

phone Integer Customer's phone number. It is always necessary to specify the country code, but you can specify or omit the + sign. Thus, the following options are valid:
  • +79998887766;
  • 79998887766.Allowed digits number: from 7 to 15.
See description

billingPayerData Object A block with the client's registration data (address, postal code) necessary for passing the address verification within the AVS/AVV services. Mandatory if the feature is enabled for the merchant on Payment Gateway side.

Below are the parameters of the billingPayerData block (data about the client registration address).

Mandatory Name Type Description
No

billingCity String The city registered on a specific card of the Issuing Bank.
No

billingCountry String The country registered on a specific card of the Issuing Bank ( ISO 3166-1, numeric).
No

billingAddressLine1 String The address registered on a specific card of the Issuing Bank. Line 1. Mandatory to be passed in order AVS verification works.
No

billingAddressLine2 String The address registered on a specific card of the Issuing Bank. Line 2.
No

billingAddressLine3 String The address registered on a specific card of the Issuing Bank. Line 3.
No

billingPostalCode String Postal code registered on a specific card of the Issuing Bank. Mandatory to be passed in order AVS verification works.
No

billingState String The state registered on a specific card of the Issuing Bank (ISO 3166-2).

Response parameters

Mandatory Name Type Description
No

orderId String Order number in the payment gateway. Unique within the payment gateway.
No

formUrl String URL of the payment form, to which a customer will be redirected The URL is not returned if the registration of the order fails due to an error specified in errorCode.
No

errorCode Integer Error code. Can be missing if the result has not caused an error.
No

errorMessage String Error description. Language of the description is set in language parameter of the request.

Error codes

Error code Error message
0 Request processing took place without system errors.
1 Order with given order number is processed already.
1 Order number is invalid
3 Unknown currency.
4 Order number is empty.
4 Empty merchant user name.
4 Empty amount.
4 Empty return URL.
4 Password cannot be empty.
5 Wrong amount.
5 Invalid merchant language.
5 Merchant login is invalid.
5 Access denied.
5 The user must change his password.
5 [jsonParams] is invalid.
7 System error.
13 Merchant doesn't have the permission to verify payments.
14 Features are invalid.

Examples

Request example

curl --request POST \
  --url https://sandbox.paydoc.io/payment/rest/registerPreAuth.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data amount=2000 \
  --data userName=test_user \
  --data password=test_user_password \
  --data returnUrl=finish.html \
  --data orderNumber=1255555555555 \
  --data clientId=259753456 \
  --data language=en

Response example

{
  "orderId": "01492437-d2fb-77fa-8db7-9e2900a7d8c0",
  "formUrl": "https://sandbox.paydoc.io/payment/merchants/rbs/payment_en.html?mdOrder=01492437-d2fb-77fa-8db7-9e2900a7d8c0"
}

Deposit order

To complete a pre-authorized order use deposit.do request.

Request parameters

Mandatory Name Type Description
Yes

userName String Merchant's API account login.
Yes

password String Merchant's API account password.
Yes

orderId String Order number in the payment gateway. Unique within the payment gateway.
Yes

amount Integer Payment amount in minor currency units (e.g. in cents etc.).

Response parameters

Mandatory Name Type Description
No

errorCode Integer Error code. Can be missing if the result has not caused an error.
No

errorMessage String Error description. Language of the description is set in language parameter of the request.

Error codes

Error code Error message
5 Access denied.
5 The user must change his password.
5 Wrong amount.
5 Deposit amount must be at least 1 ruble or equal to zero.
6 Unknown order id.
7 Payment must be in the correct state.
7 System error.

Examples

Request example

curl --request POST \
  --url https://sandbox.paydoc.io/payment/rest/deposit.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data userName=test_user \
  --data password=test_user_password \
  --data amount=2000 \
  --data orderId=01492437-d2fb-77fa-8db7-9e2900a7d8c0 \
  --data language=en

Response example

{
  "errorCode": 0,
  "errorMessage":"Success"
}

Refund

Use refund.do to make refund requests.

You cannot refund orders that initialize recurrent payments, as no money are actually charged.

Upon this request, the funds for the specified order are to be returned to the payer. The request will end with an error if the funds have not been debited for this order. The system permits returning funds more than once, but for a total amount not exceeding the initial debit amount.

Request parameters

Mandatory Name Type Description
Yes

orderId String Order number in the payment gateway. Unique within the payment gateway.
Yes

amount Integer Payment amount in minor currency units (e.g. in cents etc.).
No

language Alphabetic ISO 639-1 encoded language key. If the language is not specified, the default language specified in the store settings is used.

Response parameters

Mandatory Name Type Description
No

errorCode Integer Error code. Can be missing if the result has not caused an error.
No

errorMessage String Error description. Language of the description is set in language parameter of the request.

Error codes

Error code Error message
0 Request processing took place without system errors.
5 Access denied.
5 The user must change his password.
5 [orderId] is empty.
5 Wrong amount.
6 Unknown order id.
7 Payment must be in the correct state.
7 Refund amount exceeds deposited amount.
7 System error.

Examples

Request example

curl --request POST \
  --url https://sandbox.paydoc.io/payment/rest/refund.do \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data userName=test_user \
  --data password=test_user_password \
  --data orderId=01491d0b-c848-7dd6-a20d-e96900a7d8c0 \
  --data amount=2000 \
  --data language=en

Response example

{
  "errorCode": 0,
  "errorMessage":"Success"
}

Order status

Request parameters

Mandatory Name Type Description
No

userName String Merchant 's API account login. If you pass your login and password to authenticate in the payment gateway, do not pass token parameter.
No

password String Merchant's API account password. If you pass your login and password to authenticate in the payment gateway, do not pass token parameter.
No

token String Value that is used for merchant authentication when requests are sent to the payment gateway. If you pass this parameter do not pass userName and password.
Yes

orderId String Order number in the payment gateway. Unique within the payment gateway.
Yes

orderNumber Alphanumeric Order number (ID) in the merchant's system, must be unique for each merchant.
No

language Alphabetic ISO 639-1 encoded language key. If the language is not specified, the default language specified in the store settings is used.

Response parameters

There are several sets of the response parameters. Which set of parameters is returned in the response, depends on the version of getOrderStatusExtended specified in the merchant's settings in the payment gateway.

Version Mandatory Name Type Description
All versions. See description

orderNumber Alphanumeric Order number (ID) in the merchant's system, must be unique for each merchant registered in the payment gateway — up to 30 characters. If the Order number is generated on the Payment Gateway side, this parameter is not mandatory.
All versions. No

orderStatus Integer The value of this parameter specifies the status of the order in the payment gateway. It is missing if the order has not been found. Below is the list of available values:
  • 0 - order was registered but not paid;
  • 1 - pre-authorized amount is on hold on the buyer's account (for two-phase payments);
  • 2 - order amount is fully authorized;
  • 3 - authorization canceled;
  • 4 - transaction was refunded;
  • 5 - access control server of the issuing bank initiated authorization procedure;
  • 6 - authorization declined.
All versions. Yes

actionCode Integer Response code from the processing bank.
All versions. Yes

actionCodeDescription String actionCode description returned from the processing bank.
All versions. No

errorCode Integer Error code. Can be missing if the result has not caused an error.
All versions. No

errorMessage String Error description. Language of the description is set in language parameter of the request.
All versions. Yes

amount Integer Payment amount in minor currency units (e.g. in cents etc.).
All versions. No

currency Integer SO 4217 encoded currency key. If not specified, the default value is used.
All versions. Yes

date String Order registration date.
All versions. No

orderDescription String Order description passed to the payment gateway during the registration.
All versions. Yes

ip String Buyer's IP address. IPv6 is supported in all requests. (up to 39 characters).
09 and later. Yes

paymentWay String Payment method (a payment with entering card data, a payment using a binding, etc.).
19 and later. No

avsCode Alphabetic A code of the AVS verification response (checking the address and postal code of the cardholder). Possible values:
  • A – postal code and address are the same.
  • B – address matches, postal code doesn't match.
  • C - postal code matches, address doesn't match.
  • D - postal code and address don't match.
  • E - data validation is requested, but the result is unsuccessful.
  • F - invalid format of the AVS/AVV verification request.

attributes block contains information on the order number in the payment gateway. name parameter contains the word mdOrder, and value parameter contains the actual order number in the payment gateway.

Version Name Type Mandatory Description
All versions. No

name Numeric Name of an additional parameter.
All versions. No

value Numeric Value of an additional parameter - up to 1024 characters.

merchantOrderParams block is passed in the response, if the order contains merchant additional parameters. Each additional parameter is passed in a separate merchantOrderParams element.

Version Name Type Mandatory Description
All versions. No

name Numeric Name of an additional parameter.
All versions. No

value Numeric Value of an additional parameter - up to 1024 characters.

cardAuthInfo element contains a structure consisting of secureAuthInfo element list and the following parameters.

Version Name Type Mandatory Description
All versions. No

maskedPan String Masked number of the card used for the payment. This parameter is to be specified only after the order has been paid.
All versions. No

expiration Integer Card expiration in the following format: YYYYMM. This parameter is to be specified only after the order has been paid.
All versions. No

cardholderName Alphabetic Cardholder's name in Latin characters. This parameter is passed only after an order is paid.
All versions. No

approvalCode String IPS authorization code. This field has a fixed length (six symbols) and can contain digits and Latin letters.
06 and later. No

refund Boolean Whether the funds was forcibly returned to the buyer by the bank. The possible values are:
  • true - funds were reversed;
  • false - funds were not reversed.
08 and later. Yes

paymentSystem String Payment system name. The following variants are possible:
  • VISA;
  • MASTERCARD;
  • AMEX;
  • JCB;
  • CUP;
  • MIR.
08 and later. Yes

product String Additional details on corporate cards. These details are filled in by the technical support service. If such details are missing, an empty value is returned.

secureAuthInfo element consists of eci element and threeDSInfo element that is a list of cavv and xid parameters).

Version Name Type Mandatory Description
All versions. No

eci Integer Electronic commerce indicator. The indicator is specified only after an order has been paid and in case the corresponding permission is present. Below is the explanation of ECI codes.
  • ECI=1 or ECI=6 - merchant supports 3-D Secure, payment card does not support 3-D Secure, payment is processed based on CVV2/CVC code.
  • ECI=2 or ECI=5 - both merchant and payment card support 3-D Secure;
  • ECI=7 - merchant does not support 3-D Secure, payment is processed based on CVV2/CVC code.
All versions. No

cavv String Cardholder authentication value. The indicator is specified only after an order is paid and if the corresponding permission is enabled.
All versions. No

xid String Electronic commerce indicator of the transaction. The indicator is specified only after an order has been paid and in case the corresponding permission is present.

bindingInfo element contains the following parameters.

Version Name Type Mandatory Description
All versions. No

clientId Alphanumeric Customer number (ID) in the merchant's system — up to 255 characters . Used to implement the functionality of bindings. Can be returned in the response if the merchant is allowed to create bindings.
Specifying this parameter when processing payments via bindings is mandatory. Otherwise, a payment will be unsuccessful.
All versions. No

bindingId String Identifier of a binding created earlier. It can be used only if the merchant has the permission to work with bindings.
02 and later. No

authDateTime String Authorization date and time, shown as the amount of milliseconds passed from 00:00 January 1, 1970 (GMT).
02 and later. No

authRefNum String Registration number of the payment authorization that has been assigned to it on the payment registration.
02 and later. No

terminalId String Terminal identifier.

paymentAmountInfo element contains the following parameters.

Version Name Type Mandatory Description
03 and later. No

approvedAmount Integer Amount in minimum currency units (e.g. cents) that was put on hold on buyer's account. Used in two-phase payments only.
03 and later. No

depositedAmount Integer Charged amount in minimum currency units (e.g. in cents).
03 and later. No

refundedAmount Integer Refunded amount in minimum currency units.
03 and later. No

paymentState String Order status, this parameter can have the following values:
  • CREATED - order created (but not paid);
  • APPROVED - order approved (funds are on hold on buyer's account);
  • DEPOSITED - order deposited (buyer is charged);
  • DECLINED - order declined;
  • REVERSED - order canceled;
  • REFUNDED - refund.
11 and later. No

feeAmount Integer Fee amount.

bankInfo element contains the following parameters.

Version Name Type Mandatory Description
03 and later. No

bankName String Issuing bank name.
03 and later. No

bankCountryCode String Country code of the issuing bank.
03 and later. No

bankCountryName String Country of the issuing bank.

Error codes

Error code Error message
0 Request processing took place without system errors.
5 Access denied.
5 The user must change his password.
5 [orderId] is empty.
6 Unregistered orderId.
7 System error.

Examples

Request example

curl --request POST </span>
  --url https://sandbox.paydoc.io/payment/rest/getOrderStatusExtended.do </span>
  --header 'content-type: application/x-www-form-urlencoded' </span>
  --data userName=test_user </span>
  --data password=test_user_password </span>
  --data orderId=01491d0b-c848-7dd6-a20d-e96900a7d8c0 </span>
  --data language=en

Response example

{
  "errorCode": "0",
  "errorMessage": "Success",
  "orderNumber": "7005",
  "orderStatus": 2,
  "actionCode": 0,
  "actionCodeDescription": "",
  "amount": 2000,
  "currency": "978",
  "date": 1617972915659,
  "orderDescription": "",
  "merchantOrderParams": [],
  "transactionAttributes": [],
  "attributes": [
    {
      "name": "mdOrder",
      "value": "01491d0b-c848-7dd6-a20d-e96900a7d8c0"
    }
  ],
  "cardAuthInfo": {
    "maskedPan": "555555*5599",
    "expiration": "202412",
    "cardholderName": "TEST CARDHOLDER",
    "approvalCode": "123456",
    "pan": "555555*5599"
  },
  "bindingInfo": {
    "clientId": "259753456",
    "bindingId": "01491394-63a6-7d45-a88f-7bce00a7d8c0"
  },
  "authDateTime": 1617973059029,
  "terminalId": "123456",
  "authRefNum": "714105591198",
  "paymentAmountInfo": {
    "paymentState": "DEPOSITED",
    "approvedAmount": 2000,
    "depositedAmount": 2000,
    "refundedAmount": 0
  },
  "bankInfo": {
    "bankCountryCode": "UNKNOWN",
    "bankCountryName": "&ltUnknown&gt"
  }
}