Connection
Base URLs
Section titled “Base URLs”Payment API is available in two environments:
| Environment | Base URL |
|---|---|
| STAGE | https://business.stage.reactivepay.com |
| PROD | https://business.reactivepay.com |
Authentication
Section titled “Authentication”Merchant endpoints use Bearer authentication with merchant_private_key:
Authorization: Bearer <merchant_private_key>Test cards
Section titled “Test cards”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.
Error response format
Section titled “Error response format”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" } ]}Error response fields
Section titled “Error response fields”| 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 |
Basic data types
Section titled “Basic data types”Amounts
Section titled “Amounts”Amounts are passed in the smallest currency unit:
{ "amount": 1000}1000 = 10.00 USD/EUR
Currencies
Section titled “Currencies”Currencies are specified in ISO 4217 format (3-4 characters):
{ "currency": "USD"}Tokens
Section titled “Tokens”Tokens are unique operation identifiers — 32-character strings
Operation statuses
Section titled “Operation statuses”| 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 |
