Payment methods

  1. Main page
  2. Payment methods

Bank card (Royal Pay side)

Acquiring. Card data is collecting on the Royal Pay side. Additional fields for /deposit/create request:

Field
Type
Mandatory
Description
Example
Field
payment_system
Type
string
Mandatory
Yes
Description
Payment system name.
Example
CardGate
Field
note
Type
string
Mandatory
Yes
Description
Payment description for client.
Example
Account deposit 321
Field
system_fields
Type
object
Mandatory
Yes
Description
Container for additional fields of payment system.
Example
Field
system_fields > client_id
Type
string
Mandatory
No
Description
Client ID in the Merchant system
Example
321

The example of the request:

{
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "RUB",
    "payment_system": "CardGate",
    "note": "Account deposit 321",
    "system_fields": {
        "client_id": "321"
    },
    "url": {
        "callback_url": "https://site.com/callback",
        "fail_url": "https://site.com/fail",
        "pending_url": "https://site.com/pending",
        "success_url": "https://site.com/success"
    }
}

Answer is common Royal Pay response with Redirect block to Royal Pay checkout page. After checkout client will be redirected to 3DS and then returned according the url block if present.

Bank card (Merchant side)

Acquiring. Card data is collecting on the Merchant side. Additional fields for /deposit/create request:

Field
Type
Mandatory
Description
Example
Field
payment_system
Type
string
Mandatory
Yes
Description
Payment system name.
Example
CardGateS2S
Field
system_fields
Type
object
Mandatory
Yes
Description
Container for additional fields of payment system.
Example
Field
system_fields > client_id
Type
string
Mandatory
Yes
Description
Client ID in the Merchant system
Example
321
Field
system_fields > card_number
Type
string
Mandatory
Yes
Description
Card number
Example
4111111111111111
Field
system_fields > card_month
Type
integer(2)
Mandatory
Yes
Description
Card expiry month
Example
01
Field
system_fields > card_year
Type
integer(4)
Mandatory
Yes
Description
Card expiry year
Example
2020
Field
system_fields > cardholder_name
Type
string
Mandatory
Yes
Description
Cardholder name
Example
Mr Cardholder
Field
system_fields > card_cvv
Type
integer
Mandatory
Yes
Description
Card security code
Example
345
Field
system_fields > client_email
Type
string
Mandatory
No
Description
Client e-mail
Example
test@test.com
Field
system_fields > client_phone
Type
string
Mandatory
No
Description
Client phone in international format
Example
+37111111111
Field
system_fields > client_ip
Type
string
Mandatory
No
Description
Client ip-address
Example
192.168.1.1
Field
system_fields > client_user_agent
Type
string
Mandatory
No
Description
User-agent of client browser
Example
Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2

Optional fields can be needed in live mode. Please specify it before going live.

The example of the request:

{
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "RUB",
    "payment_system": "CardGateS2S",
    "note": "Account deposit 321",
    "system_fields": {
        "client_id": "321",
        "card_number": "4111111111111111",
        "card_month": "01",
        "card_year": "2020",
        "cardholder_name": "Mr Cardholder",
        "card_cvv": "345"
    },
    "url": {
        "callback_url": "https://site.com/callback",
        "fail_url": "https://site.com/fail",
        "pending_url": "https://site.com/pending",
        "success_url": "https://site.com/success"
    }
}

Answer is common Royal Pay response with Redirect block to 3DS page. After passing 3DS client will be returned according the url block if present.

Attention! Redirect block can contain different "url", "method" and "params".

The example of the common response:

{
    "status": "created",
    "id": "300",
    "transaction_id": "123",
    "type": "deposit",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.3",
    "amount_client": "9.20",
    "currency": "RUB",
    "payment_system": "CardGateS2S",
    "redirect": {
        "url": "https://bank.com/3ds",
        "method": "POST",
        "params": {
            "pareq": "12345678"
        }
    }
}

In some cases answer may not contain redirect block. It could happen in some cases like not enrolled in 3DS card or some unexpected system behavior. Merchant system should await for callback with final status or check status of the transaction by itself.

The example of that kind of response:

{
    "status": "created",
    "id": "300",
    "transaction_id": "123",
    "type": "deposit",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.3",
    "amount_client": "9.20",
    "currency": "RUB",
    "payment_system": "CardGateS2S"
}

Bank card (Merchant side two stages payment)

Contact your manager to specify if this method is available.

Acquiring. Card data is collecting on the Merchant side. Merchant gets client after 3DS check and completes payments.

Additional fields for /deposit/create request:

Field
Type
Mandatory
Description
Example
Field
payment_system
Type
string
Mandatory
Yes
Description
Payment system name.
Example
CardGateS2S
Field
system_fields
Type
object
Mandatory
Yes
Description
Container for additional fields of payment system.
Example
Field
system_fields > client_id
Type
string
Mandatory
Yes
Description
Client ID in the Merchant system
Example
321
Field
system_fields > card_number
Type
string
Mandatory
Yes
Description
Card number
Example
4111111111111111
Field
system_fields > card_month
Type
integer(2)
Mandatory
Yes
Description
Card expiry month
Example
01
Field
system_fields > card_year
Type
integer(4)
Mandatory
Yes
Description
Card expiry year
Example
2020
Field
system_fields > cardholder_name
Type
string
Mandatory
Yes
Description
Cardholder name
Example
Mr Cardholder
Field
system_fields > card_cvv
Type
integer
Mandatory
Yes
Description
Card security code
Example
345
Field
system_fields > client_email
Type
string
Mandatory
No
Description
Client e-mail
Example
test@test.com
Field
system_fields > client_phone
Type
string
Mandatory
No
Description
Client phone in international format
Example
+37111111111
Field
system_fields > client_ip
Type
string
Mandatory
No
Description
Client ip-address
Example
192.168.1.1
Field
system_fields > client_user_agent
Type
string
Mandatory
No
Description
User-agent of client browser
Example
Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2
Field
url
Type
object
Mandatory
Yes
Description
Container for URL addresses transmitting.
Example
Field
url > term_url
Type
url
Mandatory
Yes
Description
URL for client redirecting after 3DS check.
Example
http://site.com/term

Optional fields can be needed in live mode. Please specify it before going live.

The example of the request:

{
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "RUB",
    "payment_system": "CardGateS2S",
    "note": "Account deposit 321",
    "system_fields": {
        "client_id": "321",
        "card_number": "4111111111111111",
        "card_month": "01",
        "card_year": "2020",
        "cardholder_name": "Mr Cardholder",
        "card_cvv": "345"
    },
    "url": {
        "callback_url": "https://site.com/callback",
        "fail_url": "https://site.com/fail",
        "pending_url": "https://site.com/pending",
        "success_url": "https://site.com/success",
        "term_url": "https://site.com/term"
    }
}

Answer is common Royal Pay response with Redirect block to 3DS page. After passing 3DS client will be returned to term_url. If term_url was not provided payment will proceed by S2S scenario.

Attention! Redirect block can contain different "url", "method" and "params".

The example of the common response:

{
    "status": "created",
    "id": "300",
    "transaction_id": "123",
    "type": "deposit",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.3",
    "amount_client": "9.20",
    "currency": "RUB",
    "payment_system": "CardGateS2S",
    "redirect": {
        "url": "https://bank.com/3ds",
        "method": "POST",
        "params": {
            "pareq": "12345678"
        }
    }
}

In some cases answer may not contain redirect block. It could happen in some cases like not enrolled in 3DS card or some unexpected system behavior. Merchant system should await for callback with final status or check status of the transaction by itself.

The example of that kind of response:

{
    "status": "created",
    "id": "300",
    "transaction_id": "123",
    "type": "deposit",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.3",
    "amount_client": "9.20",
    "currency": "RUB",
    "payment_system": "CardGateS2S"
}

After passing 3DS client will return to term_url page with request. Request can be GET or POST. Fields may differ from method to method.

Merchant must send all gathered fields from request to term_url with /deposit/complete request:

Field
Type
Mandatory
Description
Example
Field
id
Type
integer
Mandatory
Yes
Description
Transaction number in Royal Pay system.
Example
300
Field
system_fields
Type
object
Mandatory
Yes
Description
Container for fields gathered from request to term_url. Can be empty but must present.
Example

The example of the request:

{
    "id": "300",
    "system_fields": {
        "PaRes": "eJzVWWmvo8iS/Sutfh+tbnbbtFxXSl...",
        "MD": "535678"
    }
}

Answer is common Royal Pay response to status request.

{
    "id": "300",
    "status": "ok",
    "type": "deposit",
    "transaction_id": "123",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.30",
    "amount_client": "9.20",
    "currency": "RUB",
    "payment_system": "CardGateS2S",
    "created": 1500000000,
    "updated": 1510000000,
    "system_fields": {
        "card_number": "411111******1111"
    }
}

Bank card (Recurring payment)

Contact your manager to specify if this method is available.

Acquiring. Merchant needs to make a common 3DS payment on specific card gate to enable reccuring payments and get reccuring data.

Default gate for this payment is "CardGateRecurring", exact name you can specify with your manager.

Additional data will be sent with notification or with status response.

Additional fields for initial deposit for reccuring payments:

Field
Type
Mandatory
Description
Example
Field
recurring_id
Type
integer
Mandatory
Yes
Description
Data for reccuring payments.
Example
300

The example of notification or status response:

{
    "id": "300",
    "status": "ok",
    "type": "deposit",
    "transaction_id": "123",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.30",
    "amount_client": "9.20",
    "currency": "RUB",
    "payment_system": "CardGateRecurring",
    "created": 1500000000,
    "updated": 1510000000,
    "recurring_id": 300,
    "system_fields": {
        "card_number": "411111******1111"
    }
}

Recurring payment can be made after getting "recurring_id" parameter.

The request is sent by POST to the address:

https://vouchers.royalpay.eu/api/deposit/recurring

The request format is as follows:

Field
Type
Mandatory
Description
Example
Field
amount
Type
float(10,2)
Mandatory
Yes
Description
Transaction amount.
Example
10.00
Field
currency
Type
string(3)
Mandatory
Yes
Description
Transaction currency.
Example
RUB
Field
recurring_id
Type
integer
Mandatory
Yes
Description
Recuring data from 3DS deposit.
Example
300
Field
transaction_id
Type
string
Mandatory
No
Description
Transaction number in the Merchant system.
Example
123
Field
note
Type
string
Mandatory
No
Description
Transaction description for the Merchant.
Example
Recurring deposit 123
Field
url
Type
object
Mandatory
No
Description
Container for URL addresses transmitting.
Example
Field
url > callback_url
Type
url
Mandatory
No
Description
URL for transmitting notification of a payment to the Merchant system.
Example
http://site.com/callback

The example of the request:

{
    "amount": "10.00",
    "currency": "RUB",
    "recurring_id": "300",
    "transaction_id": "123",
    "note": "Recurring deposit 123",
    "url": {
        "callback_url": "https://site.com/callback"
    }
}

Response of Royal Pay:

Field
Type
Mandatory
Description
Example
Field
status
Type
string
Mandatory
Yes
Description
Transaction status 'ok' in the case of success, 'created' in case of non-final status, 'error' if an error arose.
Example
created
Field
id
Type
integer
Mandatory
Yes (success)
Description
Transaction number in Royal Pay system.
Example
301
Field
transaction_id
Type
string
Mandatory
No (success)
Description
Transaction number in the Merchant system, if it was transmitted in the request.
Example
123
Field
type
Type
string
Mandatory
Yes (success)
Description
Transaction type.
Example
deposit
Field
amount_to_pay
Type
float(10,2)
Mandatory
Yes (success)
Description
The amount, required to be paid to the Client.
Example
10.00
Field
amount_merchant
Type
float(10,2)
Mandatory
Yes (success)
Description
The amount that will be credited to the Merchant account (less payment system fee).
Example
9.30 (with a fee, e.g.7%)
Field
amount_client
Type
float(10,2)
Mandatory
Yes (success)
Description
The amount that need to be credited to the client account.
Example
9.20 (with a Merchant fee 1%)
Field
currency
Type
string(3)
Mandatory
Yes (success)
Description
Transaction currency
Example
RUB
Field
payment_system
Type
string
Mandatory
Yes (success)
Description
Payment system name.
Example
CardGateRecurring
Field
created
Type
integer
Mandatory
Yes (success)
Description
Timestamp of the creation date and time.
Example
1510000000
Field
code
Type
integer
Mandatory
Yes (fail)
Description
Error code, list of codes and their description are in the table below.
Example
500
Field
message
Type
string
Mandatory
Yes (fail)
Description
Text description of an error.
Example
Internal server error
Field
description
Type
string
Mandatory
No (fail)
Description
Additional error description, if it is not on Royal Pay side.
Example
Connection problem

The example of successful Royal Pay response:

{
    "status": "ok",
    "id": "301",
    "transaction_id": "123",
    "type": "deposit",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.30",
    "amount_client": "9.30",
    "currency": "RUB",
    "payment_system": "CardGateRecurring"
}

The example of Royal Pay response with non-final status:

{
    "status": "created",
    "id": "301",
    "transaction_id": "123",
    "type": "deposit",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.30",
    "amount_client": "9.30",
    "currency": "RUB",
    "payment_system": "CardGateRecurring"
}

The example of unsuccessful Royal Pay response:

{
    "status": "error",
    "code": "308",
    "message": "Recurring data is not found"
}

Bank card (Authorization)

Contact your manager to specify if this method is available.

Acquiring. Merchant makes Authorization transaction and then finishes this transaction with Capture or Void.

Authorization can be made with bank card data collection on Royal Pay side or merchant side.

Also Authorization can be made as one stage payment or two stage payment if term_url is present.

The request is sent by POST to the address:

https://vouchers.royalpay.eu/api/deposit/authorize

Exmaple of the request (One stage, card data collection on Royal Pay side):

{
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "RUB",
    "payment_system": "CardGate",
    "note": "Account deposit 321",
    "system_fields": {
        "client_id": "321"
    },
    "url": {
        "callback_url": "https://site.com/callback",
        "fail_url": "https://site.com/fail",
        "pending_url": "https://site.com/pending",
        "success_url": "https://site.com/success"
    }
}

The example of the common response:

{
    "status": "created",
    "id": "300",
    "transaction_id": "123",
    "type": "deposit",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.3",
    "amount_client": "9.20",
    "currency": "RUB",
    "payment_system": "CardGate",
    "redirect": {
        "url": "https://vouchers.royalpay.eu/payment/authorize",
        "method": "GET",
        "params": {
            "data": "eyJpZCI6N"
        }
    }
}

Exmaple of the request (One stage, card data collection on merchant side):

{
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "RUB",
    "payment_system": "CardGateS2S",
    "note": "Account deposit 321",
    "system_fields": {
        "client_id": "321",
        "card_number": "4111111111111111",
        "card_month": "01",
        "card_year": "2020",
        "cardholder_name": "Mr Cardholder",
        "card_cvv": "345"
    },
    "url": {
        "callback_url": "https://site.com/callback",
        "fail_url": "https://site.com/fail",
        "pending_url": "https://site.com/pending",
        "success_url": "https://site.com/success"
    }
}

The example of the common response:

{
    "status": "created",
    "id": "300",
    "transaction_id": "123",
    "type": "deposit",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.3",
    "amount_client": "9.20",
    "currency": "RUB",
    "payment_system": "CardGateS2S",
    "redirect": {
        "url": "https://bank.com/3ds",
        "method": "POST",
        "params": {
            "PaReq": "12345678",
            "MD": "abcde",
            "TermUrl": "https://vouchers.royalpay.eu/term_url"
        }
    }
}

After Authorization completion Royal Pay will send notification with "authorized" status in case of success.

The example of the successful notification or status response:

{
    "id": "300",
    "status": "authorized",
    "type": "deposit",
    "transaction_id": "123",
    "amount_payed": "10.00",
    "amount_merchant": "9.30",
    "amount_client": "9.20",
    "currency": "RUB",
    "payment_system": "CardGateS2S",
    "created": 1500000000,
    "updated": 1510000000,
    "system_fields": {
        "card_number": "411111******1111"
    }
}

Exmaple of the request (Two stage, card data collection on Royal Pay side):

{
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "RUB",
    "payment_system": "CardGateTS",
    "note": "Account deposit 321",
    "system_fields": {
        "client_id": "321"
    },
    "url": {
        "callback_url": "https://site.com/callback",
        "fail_url": "https://site.com/fail",
        "pending_url": "https://site.com/pending",
        "success_url": "https://site.com/success",
        "term_url": "https://site.com/term_url"
    }
}

The example of the common response:

{
    "status": "created",
    "id": "300",
    "transaction_id": "123",
    "type": "deposit",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.3",
    "amount_client": "9.20",
    "currency": "RUB",
    "payment_system": "CardGateTS",
    "redirect": {
        "url": "https://vouchers.royalpay.eu/payment/authorize",
        "method": "GET",
        "params": {
            "data": "eyJpZCI6N"
        }
    }
}

Exmaple of the request (Two stage, card data collection on merchant side):

{
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "RUB",
    "payment_system": "CardGateTS",
    "note": "Account deposit 321",
    "system_fields": {
        "client_id": "321",
        "card_number": "4111111111111111",
        "card_month": "01",
        "card_year": "2020",
        "cardholder_name": "Mr Cardholder",
        "card_cvv": "345"
    },
    "url": {
        "callback_url": "https://site.com/callback",
        "fail_url": "https://site.com/fail",
        "pending_url": "https://site.com/pending",
        "success_url": "https://site.com/success",
        "term_url": "https://site.com/term_url"
    }
}

The example of the common response:

{
    "status": "created",
    "id": "300",
    "transaction_id": "123",
    "type": "deposit",
    "amount_to_pay": "10.00",
    "amount_merchant": "9.3",
    "amount_client": "9.20",
    "currency": "RUB",
    "payment_system": "CardGateTS",
    "redirect": {
        "url": "https://bank.com/3ds",
        "method": "POST",
        "params": {
            "PaReq": "12345678",
            "MD": "abcde",
            "TermUrl": "https://site.com/term_url"
        }
    }
}

After 3DS check completion MPI will send a request to term_url provided in the "/api/deposit/authorize" request.

After recieving MPI request merchant needs to complete Authorization transaction.

The request is sent by POST to the address:

https://vouchers.royalpay.eu/api/deposit/completeauthrization

The request format is as follows:

Field
Type
Mandatory
Description
Example
Field
id
Type
integer
Mandatory
Yes
Description
Transaction number in Royal Pay system.
Example
300
Field
system_fields
Type
object
Mandatory
Yes
Description
Container for additional fields of payment system.
Example
Field
system_fields > MD
Type
string
Mandatory
Yes
Description
Parameter "MD" (Merchant Data) got from request on term_url
Example
abcde
Field
system_fields > PaRes
Type
string
Mandatory
Yes
Description
Parameter "PaRes" (Payment Authorization Result) got from request on term_url
Example
eyJpZCI6Nzk0NjEwMDM1LCJjb

Answer is common Royal Pay response with "authorized" status in case of success, "pending" in case of non final status and "error" in case of decline or system problem.

The example of the successful response:

{
    "id": "300",
    "status": "authorized",
    "type": "deposit",
    "transaction_id": "123",
    "amount_payed": "10.00",
    "amount_merchant": "9.30",
    "amount_client": "9.20",
    "currency": "RUB",
    "payment_system": "CardGateTS",
    "created": 1500000000,
    "updated": 1510000000,
    "system_fields": {
        "card_number": "411111******1111"
    }
}

Bank card (Capture)

Acquiring. Captures the funds on the authorized transaction.

Transaction must have "authorized" status. Otherwise error 309 will be risen in the response.

The request is sent by POST to the address:

https://vouchers.royalpay.eu/api/deposit/capture

The request format is as follows:

Field
Type
Mandatory
Description
Example
Field
id
Type
integer
Mandatory
Yes
Description
Transaction number in Royal Pay system.
Example
300

The example of the request:

{
    "id": "300"
}

Answer is common Royal Pay response with "ok" status in case of success, "pending" in case of non final status and "error" in case of decline or system problem.

The example of the successful response:

{
    "id": "300",
    "status": "ok",
    "type": "deposit",
    "transaction_id": "123",
    "amount_payed": "10.00",
    "amount_merchant": "9.30",
    "amount_client": "9.20",
    "currency": "RUB",
    "payment_system": "CardGate",
    "created": 1500000000,
    "updated": 1510000000,
    "system_fields": {
        "card_number": "411111******1111"
    }
}

The example of the response when transaction has not "authorized" status:

{
    "status": "error",
    "code": "309",
    "message": "Transaction has wrong status"
}

Bank card (Void)

Acquiring. Voids the authorization.

Transaction must have "authorized" status. Otherwise error 309 will be risen in the response.

The request is sent by POST to the address:

https://vouchers.royalpay.eu/api/deposit/void

The request format is as follows:

Field
Type
Mandatory
Description
Example
Field
id
Type
integer
Mandatory
Yes
Description
Transaction number in Royal Pay system.
Example
300

The example of the request:

{
    "id": "300"
}

Answer is common Royal Pay response with "cancel" status in case of successful void, "pending" in case of non final status and "error" in case of decline or system problem.

The example of the successful response:

{
    "id": "300",
    "status": "cancel",
    "type": "deposit",
    "transaction_id": "123",
    "amount_payed": "10.00",
    "amount_merchant": "9.30",
    "amount_client": "9.20",
    "currency": "RUB",
    "payment_system": "CardGate",
    "created": 1500000000,
    "updated": 1510000000,
    "system_fields": {
        "card_number": "411111******1111"
    }
}

The example of the response when transaction has not "authorized" status:

{
    "status": "error",
    "code": "309",
    "message": "Transaction has wrong status"
}

Qiwi Wallet

Additional fields for /deposit/create request:

Field
Type
Mandatory
Description
Example
Field
payment_system
Type
string
Mandatory
Yes
Description
Payment system name.
Example
Qiwi
Field
system_fields
Type
object
Mandatory
Yes
Description
Container for additional fields of payment system.
Example
Field
system_fields > qiwi_wallet
Type
string
Mandatory
Yes
Description
Qiwi wallet number
Example
+79008007000
Field
system_fields > qiwi_comment
Type
string
Mandatory
Yes
Description
Payment description showing on Qiwi checkout page
Example
Account deposit 321
Field
system_fields > qiwi_lifetime
Type
date(Y-m-d\TH:i:s)
Mandatory
Yes
Description
Lifetime of payment after it will be considered as failed in the GMT+3 timezone. Default value: +3 days.
Example
2020-01-30T01:02:03
Field
system_fields > qiwi_successUrl
Type
url
Mandatory
Yes
Description
URL for client redirection in case of success
Example
http://site.com/success
Field
system_fields > qiwi_failUrl
Type
url
Mandatory
Yes
Description
URL for client redirection in case of fail
Example
http://site.com/fail

The example of the request:

{
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "RUB",
    "payment_system": "Qiwi",
    "note": "Account deposit 321",
    "system_fields": {
        "qiwi_wallet": "+79008007000",
        "qiwi_comment": "Account deposit 321",
        "qiwi_lifetime": "2020-01-30T01:02:03",
        "qiwi_successUrl": "http://site.com/success",
        "qiwi_failUrl": "http://site.com/fail"
    },
    "url": {
        "callback_url": "https://site.com/callback",
        "fail_url": "https://site.com/fail",
        "pending_url": "https://site.com/pending",
        "success_url": "https://site.com/success"
    }
}

Answer is common Royal Pay response with Redirect block to Qiwi checkout page. After checkout client will be returned according the qiwi_successUrl and qiwi_failUrl.

Additional fields for /deduce/create request:

Field
Type
Mandatory
Description
Example
Field
payment_system
Type
string
Mandatory
Yes
Description
Payment system name.
Example
Qiwi
Field
system_fields
Type
object
Mandatory
Yes
Description
Container for additional fields of payment system.
Example
Field
system_fields > qiwi_wallet
Type
string
Mandatory
Yes
Description
Target wallet number in the Qiwi system to payout funds
Example
+79008007000

The example of the request:

{
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "RUB",
    "payment_system": "Qiwi",
    "note": "Account payout 321",
    "system_fields": {
        "qiwi_wallet": "+79008007000"
    },
    "url": {
        "callback_url": "https://site.com/callback"
    }
}

Answer is common Royal Pay payout response.

Yandex Wallet

Additional fields for /deposit/create request:

Field
Type
Mandatory
Description
Example
Field
payment_system
Type
string
Mandatory
Yes
Description
Payment system name.
Example
YandexMoney
Field
system_fields
Type
object
Mandatory
Yes
Description
Container for additional fields of payment system.
Example
Field
system_fields > client_redirect_url
Type
url
Mandatory
Yes
Description
URL for client redirection after payment process
Example
http://site.com/return

The example of the request:

{
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "RUB",
    "payment_system": "YandexMoney",
    "note": "Account deposit 321",
    "system_fields": {
        "client_redirect_url": "http://site.com/return"
    },
    "url": {
        "callback_url": "https://site.com/callback"
    }
}

Answer is common Royal Pay response with Redirect block to Yandex Money checkout page. After checkout client will be returned according the client_redirect_url.

Additional fields for /deduce/create request:

Field
Type
Mandatory
Description
Example
Field
payment_system
Type
string
Mandatory
Yes
Description
Payment system name.
Example
YandexMoney
Field
system_fields
Type
object
Mandatory
Yes
Description
Container for additional fields of payment system.
Example
Field
system_fields > wallet_number
Type
string
Mandatory
Yes
Description
Target wallet number in the Yandex Money system to payout funds
Example
41001234567890

The example of the request:

{
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "RUB",
    "payment_system": "YandexMoney",
    "note": "Account payout 321",
    "system_fields": {
        "wallet_number": "41001234567890"
    },
    "url": {
        "callback_url": "https://site.com/callback"
    }
}

Answer is common Royal Pay payout response.

WebMoney

Additional fields for /deposit/create request:

Field
Type
Mandatory
Description
Example
Field
payment_system
Type
string
Mandatory
Yes
Description
Payment system name.
Example
WebMoney
Field
system_fields
Type
object
Mandatory
Yes
Description
Container for additional fields of payment system.
Example
Field
system_fields > client_success_url
Type
url
Mandatory
Yes
Description
URL for client redirection after successful payment
Example
http://site.com/success
Field
system_fields > client_fail_url
Type
url
Mandatory
Yes
Description
URL for client redirection after unsuccessful payment
Example
http://site.com/fail

The example of the request:

{
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "RUB",
    "payment_system": "WebMoney",
    "note": "Account deposit 321",
    "system_fields": {
        "client_success_url": "http://site.com/success",
        "client_fail_url": "http://site.com/fail"
    },
    "url": {
        "callback_url": "https://site.com/callback"
    }
}

Answer is common Royal Pay response with Redirect block to WebMoney checkout page. After checkout client will be returned to client_success_url or client_fail_url.

Additional fields for /deduce/create request:

Field
Type
Mandatory
Description
Example
Field
payment_system
Type
string
Mandatory
Yes
Description
Payment system name.
Example
WebMoney
Field
system_fields
Type
object
Mandatory
Yes
Description
Container for additional fields of payment system.
Example
Field
system_fields > wallet_number
Type
string
Mandatory
Yes
Description
Target wallet number in the WebMoney system to payout funds
Example
Z112233445566

The example of the request:

{
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "USD",
    "payment_system": "WebMoney",
    "note": "Account payout 321",
    "system_fields": {
        "wallet_number": "Z112233445566"
    },
    "url": {
        "callback_url": "https://site.com/callback"
    }
}

Answer is common Royal Pay payout response.

Royal Pay Vouchers

Check voucher status request:

POST https://vouchers.royalpay.eu/api/voucher/check

Field
Type
Mandatory
Description
Example
Field
payment_system
Type
string
Mandatory
Yes
Description
Payment system name.
Example
Voucher
Field
system_fields
Type
object
Mandatory
Yes
Description
Container for additional fields of payment system.
Example
Field
system_fields > voucher_number
Type
string
Mandatory
Yes
Description
Voucher number.
Example
111122223333444455

Example of the request:

{
    "payment_system": "Voucher",
    "system_fields": {
        "voucher_number": "111122223333444455"
    }
}

Response contains voucher face value and currency or error details. You get successful response only if voucher is ready to be redeemed.

Successful response:

Field
Type
Mandatory
Description
Example
Field
status
Type
string
Mandatory
Yes
Description
Status of the request.
Example
ok
Field
voucher_amount
Type
string
Mandatory
Yes
Description
Voucher face value.
Example
1000.00
Field
voucher_currency
Type
string
Mandatory
Yes
Description
Voucher currency code.
Example
RUB

Example of the successful response:

{
    "status": "ok",
    "voucher_amount": "1000.00",
    "voucher_currency": "RUB"
}

Failed response:

Field
Type
Mandatory
Description
Example
Field
status
Type
string
Mandatory
Yes
Description
Status of the request.
Example
error
Field
code
Type
string
Mandatory
Yes
Description
Error code.
Example
201
Field
message
Type
string
Mandatory
Yes
Description
Text description of an error.
Example
Mandatory field `voucher_number` is not present

Example of the failed response:

{
    "status": "error",
    "code": "201",
    "message": "Mandatory field `voucher_number` is not present"
}

Redeem voucher request:

POST https://vouchers.royalpay.eu/api/voucher/redeem

Field
Type
Mandatory
Description
Example
Field
payment_system
Type
string
Mandatory
Yes
Description
Payment system name.
Example
Voucher
Field
transaction_id
Type
string
Mandatory
No
Description
Transaction number in the Merchant system.
Example
123
Field
note
Type
string
Mandatory
No
Description
Transaction description for the Merchant.
Example
Account deposit 321
Field
system_fields
Type
object
Mandatory
Yes
Description
Container for additional fields of payment system.
Example
Field
system_fields > voucher_number
Type
string
Mandatory
Yes
Description
Voucher number.
Example
111122223333444455
Field
system_fields > voucher_password
Type
string
Mandatory
Yes
Description
Voucher password.
Example
123456
Field
url
Type
object
Mandatory
No
Description
Container for URL addresses transmitting.
Example
Field
url > callback_url
Type
url
Mandatory
No
Description
URL for transmitting notification of a payment to the Merchant system.
Example
http://site.com/callback

Example of the request:

{
    "payment_system": "Voucher",
    "transaction_id": "123",
    "note": "Account deposit 321",
    "system_fields": {
        "voucher_number": "111122223333444455",
        "voucher_password": "123456"
    },
    "url": {
        "callback_url": "http://site.com/callback"
    }
}

Response is common Royal Pay deposit response with ok status and without redirect block. Example of the successful response:

{
    "status": "ok",
    "id": "300",
    "transaction_id": "123",
    "type": "deposit",
    "amount_to_pay": "1000.00",
    "amount_merchant": "950.00",
    "amount_client": "1000.00",
    "currency": "RUB",
    "payment_system": "Voucher"
}

Example of the failed response:

{
    "status": "error",
    "code": "201",
    "message": "Mandatory field `voucher_number` is not present"
}

For testing purposes:

Use "payment_system": "TestVoucher"

Test vouchers:

360046146009394524, password 123456 - successful payment

360046146009399184 - unavailable for payout

360046146009400339 - a voucher of a blocked user

Any other voucher will return a 'Not found' error.

The vouchers may be tested with the 'check' method as well as 'redeemed'.

The value of the successful voucher is 100 RUB.

The example fee is 5%.

ecoPayz

Additional fields for /deposit/create request:

Field
Type
Mandatory
Description
Example
Field
payment_system
Type
string
Mandatory
Yes
Description
Payment system name.
Example
Ecopayz
Field
system_fields
Type
object
Mandatory
Yes
Description
Container for additional fields of payment system.
Example
Field
system_fields > client_first_name
Type
string
Mandatory
Yes
Description
First name in ecoPayz system
Example
Ivan
Field
system_fields > client_last_name
Type
string
Mandatory
Yes
Description
Last name in ecoPayz system
Example
Ivanov
Field
system_fields > client_date_birth
Type
date(Y-m-d)
Mandatory
Yes
Description
Date of birth user (in ecoPayz system).
Example
1991-02-13

The example of the request:

{
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "EUR",
    "payment_system": "Ecopayz",
    "note": "Account deposit 321",
    "system_fields": {
        "client_first_name": "Ivan",
        "client_last_name": "Ivanov",
        "client_date_birth": "1991-02-13"
    },
    "url": {
        "callback_url": "https://site.com/callback",
        "fail_url": "https://site.com/fail",
        "pending_url": "https://site.com/pending",
        "success_url": "https://site.com/success"
    }
}

Additional fields for /deduce/create request:

Field
Type
Mandatory
Description
Example
Field
payment_system
Type
string
Mandatory
Yes
Description
Payment system name.
Example
Ecopayz
Field
system_fields
Type
object
Mandatory
Yes
Description
Container for additional fields of payment system.
Example
Field
system_fields > client_account_number
Type
string
Mandatory
Yes
Description
Account number user in ecopayz system
Example
1234567890

The example of the request:

{
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "EUR",
    "payment_system": "Ecopayz",
    "note": "Account payout 321",
    "system_fields": {
        "client_account_number": "1234567890"
    },
    "url": {
        "callback_url": "https://site.com/callback"
    }
}

Answer is common Royal Pay payout response.

Privat24

Additional fields for /deposit/create request:

Field
Type
Mandatory
Description
Example
Field/b>
payment_system
Type
string
Mandatory
Yes
Description
Payment system name.
Example
DepositUA
Field
system_fields
Type
object
Mandatory
Yes
Description
Container for additional fields of payment system.
Example
Field
system_fields > user_id
Type
string
Mandatory
Yes
Description
Client ID in the Merchant system
Example
321
Field
system_fields > email
Type
string
Mandatory
Yes
Description
Client e-mail
Example
test@test.com
Field
system_fields > return_url
Type
string
Mandatory
Yes
Description
URL for client redirection after payment process
Example
http://site.com/return

The example of the request:

{
    "transaction_id": "123",
    "amount": "10.00",
    "currency": "UAH",
    "payment_system": "DepositUA",
    "note": "Account deposit 321",
    "system_fields": {
        "user_id": "321",
        "email": "test@test.com",
        "return_url": "http://site.com/return"
    },
    "url": {
        "callback_url": "https://site.com/callback"
    }
}

Answer is common Royal Pay response with Redirect block to Privat24 checkout page. After checkout client will be returned according the redirect_url.