Skip to content

Connection

Payment API is available in two environments:

Environment Base URL
STAGE https://business.stage.reactivepay.com
PROD https://business.reactivepay.com

Merchant endpoints use Bearer authentication with merchant_private_key:

Authorization: Bearer <merchant_private_key>

Sandbox provides full functionality but it only emulates processing, no actual bank transactions are made. You can use the following PAN for tests:

PAN Status
4617611794313933 Successful 3-D Secure operation
4626233193837898 Declined 3-D Secure operation
4392963203551251 Successful non 3-D Secure operation
4730198364688516 Declined non 3-D Secure operation
4627342642639018 Successful payout
4968357931420422 Declined payout

You can use any cardholder name, expiry date and CVV2/CVC2 with these PANs.

3-D Secure is also emulated with a page that doesn’t require any password but only shows you 2 buttons. One button is for successful authentication, another is for failed authentication.

Errors returned for the initial request:

{
"success": false,
"result": 1,
"status": 403,
"token": "hiuXHoK1bizpMkG3XfcQSq72uGeswfoe",
"processingUrl": "",
"payment": {
"amount": 5000000,
"gateway_amount": 5000000,
"gateway_currency": "RUB",
"currency": "RUB",
"status": "declined",
"two_stage_mode": false,
"commission": 0.0,
"decline_reason": "antifraud: mid:card:amount:value=>[10, 10000]=>5000000"
},
"errors": "Limit breach or risk violation action: , message: mid:card:amount:value=>[10, 10000]=>5000000, result: fail, route: - api_fraud_error"
}

Errors returned after following processingUrl:

{
"success": false,
"result": 1,
"status": 403,
"errors": [
{
"code": "customer_email_not_found",
"kind": "invalid_request_error"
}
]
}
Field Type Description
success boolean false on error
result integer 1 on error
status integer HTTP error code (always 403)
errors array/string Error list or a description string

Amounts are passed in the smallest currency unit:

{
"amount": 1000
}

1000 = 10.00 USD/EUR

Currencies are specified in ISO 4217 format (3-4 characters):

{
"currency": "USD"
}

Tokens are unique operation identifiers — 32-character strings

Status Description Final?
init Operation initialized no
pending Processing no
approved Successfully completed yes
declined Declined yes
refunded Refund completed yes
expired Processing timeout no