Creating a payment

To interact with the API, use the Unitpay PHP-SDK library.

Required parameters:

Type

Description

paymentType

line

account

line

Subscriber ID in the partner's system (for example, the subscriber's login or email)

sum

number

Amount of payment in rubles (for example, 10.00)

projectId

number

Your project ID in the UnitPay system

resultUrl

line

desc

line

Order description

ip

line

Payer's IP address

secretKey

line

Secret key, available in the project settings

Parameters depending on the type of payment:

Value

Description

phone

number

Phone number with country code (for example, 79520000000)

operator

line

Additional payment parameters:

****

Value

Description

currency

line

locale

line

It is mandatory to specify the payment form language, acceptable values: ru, en. By default, the form language is determined based on the country that the user's IP address belongs to

signature

line

Request digital signature. This feature is mandatory for all new Unitpay partners. It protects you from hackers: substituting the description or price of the order, placing a link to the payment on the resources of fraudsters.

backUrl

line

The user's return address from the payment form without making a purchase; the project address is used by default. The project domain must be used in the address. Examples: https://redirect.<project domain>/?someParams", "https://<project domain>/redirect/

subscription

true/false

Use this flag if you want to create a subscription under the payer's card. The subscription ID (subscriptionId) will be transmitted in the PAY method to your payment handler. Subscriptions can only be used after approval by your supervising manager

subscriptionId

number

The subscription ID in respect of which it is necessary to debit the funds. This parameter should be previously received in the PAY method to your payment handler

preauth

true/false

Use this flag to create a payment with pre-authorization. By default, this flag is disabled and the value is 0

preauthExpireLogic

number

Field for the logic of payment blocking with pre-authorization 0 - If there is no request for confirmation or cancellation, payment will be confirmed upon expiration of the lock on the side of the acquirer bank (~114 hours after creating the payment) 1 - If there is no request for confirmation or cancellation, payment will be cancelled upon expiration of the lock on the side of the acquirer bank (~114 hours after creating the payment). If the parameter is not used, the payment will be cancelled after the expiration date.

You can run the query in test mode. Learn more

Request digital signature

For additional security of your payments, we perform mandatory verification of the digital signature when creating a payment. The signature guarantees protection against the substitution of the transmitted values (e.g., changing the payment amount or order number).

****

Value

Description

signature

line

Digital signature. It is formed as sha256( account + "{up}" + currency + "{up}" + desc + "{up}" + sum + "{up}" + secretKey), where sha256 is the hashing method; "{up}" is the parameter separator in the hash function; account, sum, currency, desc are the payment initialization parameters described above; secretKey is the secret key of the project (available in your personal account); Important Note. If you do not transmit currency to the payment form, this parameter should not be used in signature generation.

Пример формирования цифровой подписи на PHP:

function getFormSignature($account, $currency, $desc, $sum, $secretKey) {
    $hashStr = $account.'{up}'.$currency.'{up}'.$desc.'{up}'.$sum.'{up}'.$secretKey;
    return hash('sha256', $hashStr);
}

Пример формирования цифровой подписи на Perl:

sub getSignature {
    my ($method, $params, $secretKey) = @_;
    delete $params-&gt;{sign};
    delete $params-&gt;{signature};
    my $s = $method;
    foreach my $key (sort keys %{$params}) {
        $s .= '{up}' . $params-&gt;{$key};
    }
    $s .= '{up}' . $secretKey;
    use Digest::SHA qw(sha256_hex);
    return sha256_hex($s);
}

Successful response

{"result": {
    "message": "Платеж успешно создан.",
    "paymentId": "1400072",  
    "type": "redirect", 
    "redirectUrl": "http://unitpay.money/pay/redirect/111-ab34c22" 
}}

Value

Description

message

line

Information about the result of payment generation

type

line

redirect — requires redirection to the payment platform gateway invoice — invoice is generated automatically, payment is made by the user through the payment system's account

paymentId

number

Payment number in the UnitPay system

redirectUrl

line

URL for redirecting the user to the payment platform gateway. If the payment does not require redirecting, this parameter will not be available

Error response

{"error": {
    "message": "Описание ошибки"
}}

Value

Description

message

line

Information with a description of the payment generation error

Last updated