PayU Russia

Follow the standard PaymentsOS integration procedure, and then apply the relevant extra specifications described below.

API Version

Minimum required API version: 1.0.0

Payment Methods

The following table lists all supported payment methods.

Payment MethodPayment Method Type
Apple PayeWallet
MAESTROCards
MASTERCARDCards
MIRCards
QIWIBank Transfer
VISACards
VISA ElectronCards

Currencies

RUB

Features

The following table provides an overview of all supported and non-supported features.

FeatureSupported
3DS 1.0 ExternalNo
3DS 1.0 InternalYes
3DS 2.0 ExternalNo
3DS 2.0 InternalNo
InstallmentsNo
Level 2 and 3 DataNo
Retrieve Supported Payment MethodsNo
Retrieve Supported PlansNo
Statement Soft DescriptorNo
Stored Credentials FlagYes
Transaction Processing without CVVYes

Requests

The following table lists all supported requests. Use the bodybuilder to create a sample request body for each request type.

Supported requests for card transactions.
RequestPartial/MultipleMode
AuthorizePartial and multiple are not supportedAsynchronous
Capture Partial is supportedAsynchronous
Refund Both partial and multiple are supportedAsynchronous
Void Not ApplicableAsynchronous
Supported requests for bank transfer transactions.
RequestPartial/MultipleModeNotes
AuthorizePartial and multiple are not supportedAsynchronousAfter the Authorize request, PayU Russia will capture the funds manually. You should thus not invoke a Capture request yourself. To receive a notification when the Capture is done, register webhooks and enable notifications for Create Capture events.
Supported requests for eWallet transactions.
RequestPartial/MultipleMode
AuthorizePartial and multiple are not supportedAsynchronous
Capture Partial is supportedAsynchronous

Setup Procedures

The following table lists the setup procedures that are specific to this provider.

ConfigurationRequired/Optional
In the PaymentsOS Control Center, configure the following credentials:
  • merchant_code: The merchant id in PayU Russia.
  • secret_key: Secret key provided by PayU Russia.
To see your PayU Russia credentials, open your PayU administration page and choose Account Management > Account settings.
Required
In the PaymentsOS Control Center, register webhooks to be notified when a transaction changes its status.Required
In your PayU Russia account, configure the currencies you want to use in transactions. Contact PayU Russia support for assistance.Required
In your PayU Russia account, enable IPNs (Instant Payment Notifications). This will ensure that PaymentsOS is kept in sync with PayU systems. See Configuring IPN Settings below. Contact PayU Russia support for assistance.Required
Disable the cvv check if you do not require customers to enter their cvv code when initiating a payment. This can only be done by PayU Russia support. Contact PayU Russia support for assistance.Optional
Enable partial captures if desired. This can only be done by PayU Russia support. Contact PayU Russia support for assistance.Optional
Enable partial captures if desired. This can only be done by PayU Russia support. Contact PayU Russia support for assistance.Optional

Integration Procedures

The following sections list the integration procedures that are specific to this provider.

Considerations when Creating an Authorization

The authorization amount may be higher than the payment.amount, due to commissions related to installments. The final authorization.amount can be seen in the response to the authorization request.

Configuring IPN settings

You must enable IPNs (Instant Payment Notifications) to keep PaymentsOS in sync with PayU systems. To enable IPNs, login to your PayU Russia account, and open the Account Management > Account Settings > IPN Settings tab.

In your account, configure the following IPN URL:

After aconfiguring the IPN URLs, select the following (required) fields: SALEDATE, REFNOEXT, ORDERSTATUS, IPN_PID[], IPN_PNAME[], IPN_DATE, and IPN_TOTALGENERAL. We recommend selecting all the fields.

As a last step, enable IPNs in your PayU Russia account (by default, IPNs are enabled for Authorized orders only). Click Account Settings > Notifications > Send notifications for and select the following:

  • Canceled and returned orders
  • Complete orders

Integrating Apple Pay

Integrating Apple Pay involves the following:

  • Configuring your Apple Developer Account and adding Apple Pay to your checkout page.

  • Integrating Apple Pay with your PaymentsOS transaction flows.

Configuring your Apple Developer Account

Before following the procedures below, contact us to request a CSR (Certificate Signing Request) certificate. Apple requires this certificate. Then proceed as follows:

  1. Configure your Apple Developer Account for Apple Pay. For help, see this video on the Apple developer site. Note that you will be required to upload the CSR (Certificate Signing Request) certificate as part of the configuration procedures.

  2. When setting up your account in step 1, you will generate a apple_pay.cer file. Send us this file so that we can store it in your account.

  3. Integrate Apple Pay in your checkout page using Apple's Javascript API, as explained on the Apple developer site.

Now proceed to integrate Apple Pay with PaymentsOS.

Integrating Apple Pay with PaymentsOS

Once your Apple Developer account is setup and you've added Apple Pay to your checkout page, you are ready to integrate Apple Pay with PaymentsOS.

When the customer chooses to pay with Apple Pay, Apple will return a token to your web page. Here's a sample token:

{
  "version": "EC_v1",
  "data": "DjI8Ez7nPhVo742aGEzABz/TfxCPt9LSdf2/h+0xIgVJbi3fQqd4lv3ogoTI3SQ7vZrDAWI8g2lbd5sflXBHc0z+wSeybsCcqZB3n1edRFXU7+6DYmdhFFWWCejwUc6XZWmsSaVNEQf+Kc0SeYrj8Eskdapj8bYX/QXxXSPqS4IKSjB+f3O0gUXSq7LK/jA9dl+BbWW0l3gXERU6n5rcYndO5rnjiwNUpnm7EMIMfNU+IPbsubpL82kbL2MdMJB1grel03J4JKld6G0pFSmjR2mF/xBY/yKkADRhoQkVlDRicuKVMpdRXXbIQjw/yRkLv/u8iy1wXI5YmEBB+W4QpPYsuxys94gMPaKhcaEK/OaT099aFrNBezbuLMTcTzbhXOpPwWn9pkAK0eZNOQ==",
  "signature": "MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIID5jCCA4ugAwIBAgIIaGD2mdnMpw8wCgYIKoZIzj0EAwIwejEuMCwGA1UEAwwlQXBwbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE2MDYwMzE4MTY0MFoXDTIxMDYwMjE4MTY0MFowYjEoMCYGA1UEAwwfZWNjLXNtcC1icm9rZXItc2lnbl9VQzQtU0FOREJPWDEUMBIGA1UECwwLaU9TIFN5c3RlbXMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgjD9q8Oc914gLFDZm0US5jfiqQHdbLPgsc1LUmeY+M9OvegaJajCHkwz3c6OKpbC9q+hkwNFxOh6RCbOlRsSlaOCAhEwggINMEUGCCsGAQUFBwEBBDkwNzA1BggrBgEFBQcwAYYpaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwNC1hcHBsZWFpY2EzMDIwHQYDVR0OBBYEFAIkMAua7u1GMZekplopnkJxghxFMAwGA1UdEwEB...",
  "header": {
    "ephemeralPublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZMzlWOx8Xo8pXlOvzYONy+gvUy59ZOeuCov3kzc7fESczZTyvmA9dU9AdVMFaYyfCXlMG5oedi3Wy4yubqfxtg==",
    "publicKeyHash": "xrJqUFO2jN5edGS8iETkfNXtwqnwSqRUUrQJBysFpZ8=",
    "transactionId": "aa0b77fbb4f64cd3e5deef65177938b2d836e0d7d93d58000d8d54cfca19ae13"
  }
}

Now pass the token's fields as key-value pairs in the payment_method.additional_details field of the Create Authorization request. Make sure to also include all fields from the token's header object using key names as shown in the example below (include just the fields, not the entire object). Here's a sample request body:

{
  "payment_method": {
    "source_type": "ewallet",
    "type": "untokenized",
    "vendor": "apple_pay",
    "additional_details": {
      "data": "DjI8Ez7nPhVo742aGEzABz/TfxCPt9LSdf2/h+0xIgVJbi3fQqd4lv3ogoTI3SQ7vZrDAWI8g2lbd5sflXBHc0z+wSeybsCcqZB3n1edRFXU7+6DYmdhFFWWCejwUc6XZWmsSaVNEQf+Kc0SeYrj8Eskdapj8bYX/QXxXSPqS4IKSjB+f3O0gUXSq7LK/jA9dl+BbWW0l3gXERU6n5rcYndO5rnji...",
      "ephemeral_public_key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZMzlWOx8Xo8pXl...",
      "public_key_hasH": "xrJqUFO2jN5edGS8iETkfNXtwqnwSqRUUrQJBysFpZ8=",
      "transaction_id": "aa0b77fbb4f64cd3e5deef65177938b2d836e0d7d93d58000d8d54cfca19ae13",
      "signature": "MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIID5j...",
      "version": "EC_v1"
    }
  }
}

Using the Bodybuilder to Generate the Sample Request

When using the BodyBuilder to generate sample requests, make sure to choose the eWallet payment type.

You can now complete the transaction by invoking the Create Capture request.

Testing

The following table lists the card numbers you can use for testing.

Card Number Expiry Date CVV Notes
4150399999000900 01/21 620 None
4012001037141112 01/21 any Enrolled in 3DS
4058889968744754 01/21 866 400 RUB on account. Try large amounts
4058889902715340 01/21 702 Status: Restricted
4058889987820056 01/21 794 Limit: 10 RUB
4058889945545159 01/21 694 Status: Not active
4058889967077602 01/21 136 Status: Compromised
5408145000011841 01/21 110 None

results matching ""

    No results matching ""