PAYSTAR / ДОКУМЕНТАЦИЯ ДЛЯ РАЗРАБОТЧИКОВ
Справочники
Имена полей, идентификаторы валют, обработка ошибок и схемы, сгруппированные для поиска.
Скачивайте только нужный справочник по ссылкам в каждом разделе. Все отдельные файлы → · Общий файл справочников →
Скачать только статусы заявок · JSON ↓ · Статусы заявок в загрузках →
[01]
Дополнительные поля
Скачать только дополнительные поля · JSON ↓ · Дополнительные поля в загрузках →
Каждый элемент содержит key и обязательное скалярное значение не null value. Новые примеры используют lowerCamelCase; обязательные поля зависят от pipeline. Эти 47 имён — справочный каталог, а не универсальная схема запроса. Уточните актуальный обязательный набор вашего терминала у менеджера интеграции.
Структура массива и пример
| Поле | Обязательность | Тип и значение |
|---|---|---|
key | Обязательно | stringДокументированное стандартное написание — lowerCamelCase. minLength: 1 |
value | Обязательно | string | number | booleanСкалярное значение, зависящее от сценария. Наличие и значение не null — нормативные требования; форматы и диапазоны задаются схемой выбранного сценария. |
{
"additionalFields": [
{
"key": "payeerIdentifier",
"value": "Merch-Customer-12345"
}
]
}платёжный метод и карта7 полей
| Поле | Описание и область применения | Безопасный пример |
|---|---|---|
productCode | Внутренний код продукта или услуги. Зависит от профиля; не обязательно для всех. | Merch-12345 |
cardNumber | Полный PAN карты. Передавайте только через H2H-сценарий с разрешённой обработкой по PCI. Зависит от профиля; не обязательно для всех. | <PAN> |
cardExpireMonth | Месяц окончания действия карты в формате MM. Зависит от профиля; не обязательно для всех. | 05 |
cardExpireYear | Год окончания действия карты в формате YY. Зависит от профиля; не обязательно для всех. | 26 |
cardCvv | CVV/CVC, 3–4 цифры. Хранение запрещено. Зависит от профиля; не обязательно для всех. | <CVV> |
cardHolder | Имя, напечатанное на карте. Зависит от профиля; не обязательно для всех. | JOHN DOE |
cardToken | Токенизированный идентификатор карты, выданный банком/провайдером. Зависит от профиля; не обязательно для всех. | <BANK_CARD_TOKEN> |
токенизация1 поле
| Поле | Описание и область применения | Безопасный пример |
|---|---|---|
cardStorageToken | Токен для последующих платежей в сценарии мерчанта с токенизацией; доступность и ответственность за хранение зависят от назначенного профиля. Зависит от профиля; не обязательно для всех. | <PAYSTAR_CARD_STORAGE_TOKEN> |
платёжный метод1 поле
| Поле | Описание и область применения | Безопасный пример |
|---|---|---|
type | Выбор типа платежа в примерах, например card; не включён в каталог полей. Зависит от профиля; не обязательно для всех. | card |
идентификация клиента и KYC6 полей
| Поле | Описание и область применения | Безопасный пример |
|---|---|---|
firstName | Имя клиента. Зависит от профиля; не обязательно для всех. | John |
middleName | Второе имя/отчество клиента. Зависит от профиля; не обязательно для всех. | Michael |
lastName | Фамилия клиента. Зависит от профиля; не обязательно для всех. | Smith |
customerDocumentId | Идентификатор государственного документа; укажите тип документа, если требуется. Зависит от профиля; не обязательно для всех. | Passport <ID> |
customerBirthdayDate | Дата рождения в формате YYYY-MM-DD. Зависит от профиля; не обязательно для всех. | 1990-04-05 |
customerNationality | Гражданство, ISO 3166-1 alpha-3. Зависит от профиля; не обязательно для всех. | NLD |
контакты и адрес клиента10 полей
| Поле | Описание и область применения | Безопасный пример |
|---|---|---|
email | Электронная почта клиента. Зависит от профиля; не обязательно для всех. | customer@example.com |
phoneNumber | Номер телефона клиента. Зависит от профиля; не обязательно для всех. | 31612345678 |
telecomOperator | Значение enum/название мобильной сети для платежей связи и маршрутизации. Зависит от профиля; не обязательно для всех. | vodafone-uk |
dialingCode | Международный телефонный код. Зависит от профиля; не обязательно для всех. | 31 |
customerAddress | Улица и адрес клиента. Зависит от профиля; не обязательно для всех. | 123 Main Street |
customerCity | Город/населённый пункт клиента. Зависит от профиля; не обязательно для всех. | Amsterdam |
customerState | Штат или регион, если применимо. Зависит от профиля; не обязательно для всех. | Noord-Holland |
customerZipCode | Почтовый индекс или ZIP-код. Зависит от профиля; не обязательно для всех. | 1012 AB |
customerCountryCode | Код страны ISO 3166-1 alpha-3. Зависит от профиля; не обязательно для всех. | NLD |
customerCountry | Полное название страны, если требуется конечному PSP. Зависит от профиля; не обязательно для всех. | Netherlands |
банковские и платёжные реквизиты7 полей
| Поле | Описание и область применения | Безопасный пример |
|---|---|---|
beneficiaryName | Официальное имя получателя/владельца счёта. Зависит от профиля; не обязательно для всех. | John Smith |
bankName | Значение enum/название банка для маршрутизации. Зависит от профиля; не обязательно для всех. | all |
bankAccount | Номер банковского счёта получателя. Зависит от профиля; не обязательно для всех. | <ACCOUNT_NUMBER> |
iban | Международный номер банковского счёта. Зависит от профиля; не обязательно для всех. | <IBAN> |
bankCode | Национальный идентификатор банка, зависящий от страны. Зависит от профиля; не обязательно для всех. | <BANK_CODE> |
bankBranch | Идентификатор/название местного отделения. Зависит от профиля; не обязательно для всех. | <BRANCH> |
ifcsCode | Документированный ключ для индийского кода IFSC. Зависит от профиля; не обязательно для всех. | HDFC0001234 |
криптовалюта1 поле
| Поле | Описание и область применения | Безопасный пример |
|---|---|---|
cryptoWalletAdress | Документированный ключ адреса криптокошелька; также может потребоваться сеть. Зависит от профиля; не обязательно для всех. | <WALLET_ADDRESS> |
браузер и 3DS10 полей
| Поле | Описание и область применения | Безопасный пример |
|---|---|---|
browserUserAgent | Полная строка User-Agent браузера. Зависит от профиля; не обязательно для всех. | <USER_AGENT> |
browserAcceptHeader | HTTP-заголовок Accept браузера. Зависит от профиля; не обязательно для всех. | text/html,application/xhtml+xml |
browserLanguage | Язык браузера. Зависит от профиля; не обязательно для всех. | en-GB |
browserJavaEnabled | Включена ли Java. Зависит от профиля; не обязательно для всех. | true |
browserJavascriptEnabled | Включён ли JavaScript. Зависит от профиля; не обязательно для всех. | true |
browserColorDepth | Глубина цвета экрана в битах. Зависит от профиля; не обязательно для всех. | 24 |
browserScreenWidth | Ширина экрана в пикселях. Зависит от профиля; не обязательно для всех. | 1920 |
browserScreenHeight | Высота экрана в пикселях. Зависит от профиля; не обязательно для всех. | 1080 |
browserTZ | Смещение часового пояса относительно UTC в минутах. Зависит от профиля; не обязательно для всех. | -120 |
browserChallengeWindowSize | Код окна проверки 3DS: 01=250x400, 02=390x400, 03=500x600. Зависит от профиля; не обязательно для всех. | 03 |
мерчант и магазин1 поле
| Поле | Описание и область применения | Безопасный пример |
|---|---|---|
storeUrl | URL сайта мерчанта или страницы оплаты. Зависит от профиля; не обязательно для всех. | https://merchant.example.com/ |
прочее2 поля
| Поле | Описание и область применения | Безопасный пример |
|---|---|---|
ip | IP-адрес конечного пользователя. Зависит от профиля; не обязательно для всех. | 203.0.113.10 |
payeerIdentifier | Идентификатор плательщика/клиента на стороне мерчанта. Зависит от профиля; не обязательно для всех. | Merch-Customer-12345 |
тестовая среда1 поле
| Поле | Описание и область применения | Безопасный пример |
|---|---|---|
ExpectedResult | Управление тестовой средой из прежней документации; регистр, поддерживаемые результаты и применимость профиля требуют подтверждения. Этим набором тестов не проверено. optional_test_only | status=failed |
[02]
Коды валют
Скачать только валюты · JSON ↓ · Валюты в загрузках →
179 опубликованных справочных идентификаторов.
currency — строковый ключ без проверки длины или шаблона написания. Значения вроде USDT_TRC20 можно передавать. Прохождение проверки схемы запроса не означает, что валюта известна, включена для профиля или доступна для маршрутизации.
- Поиск во внутреннем справочнике валют. PayStar ищет переданный ключ. Неизвестная валюта отклоняется на этом этапе.
- Поиск маршрута pipeline. Для известной валюты создание платежа ищет маршрут по условиям pipeline. Подходящего маршрута может не быть даже для известной валюты.
Фиат обычно использует коды ISO 4217 alpha-3, например RUB. Криптовалюта может использовать ключ актива/сети, например USDT_TRC20. Используйте точное значение для вашей интеграции; пример не обещает поддержку криптовалюты вашим ключом. Уточните доступные валюты и лимиты у менеджера. Не предполагайте поиск без учёта регистра или поддержку алиасов.
Каталог ниже — опубликованный справочник в стиле ISO, а не полный внутренний справочник валют. Он не перечисляет поддержку криптовалют. Balance остаётся запросом только на чтение со своими результатами; последовательность маршрутизации создания к нему не относится.
Каталог валют alpha-3179 записей
| Код | Числовой код | Валюта |
|---|---|---|
AED | 784 | Дирхам ОАЭ |
AFN | 971 | Афгани |
ALL | 008 | Лек |
AMD | 051 | Армянский драм |
ANG | 532 | Нидерландский антильский гульден |
AOA | 973 | Кванза |
ARS | 032 | Аргентинское песо |
AUD | 036 | Австралийский доллар |
AWG | 533 | Арубанский флорин |
AZN | 944 | Азербайджанский манат |
BAM | 977 | Конвертируемая марка |
BBD | 052 | Барбадосский доллар |
BDT | 050 | Така |
BGN | 975 | Болгарский лев |
BHD | 048 | Бахрейнский динар |
BIF | 108 | Бурундийский франк |
BMD | 060 | Бермудский доллар |
BND | 096 | Брунейский доллар |
BOB | 068 | Боливиано |
BOV | 984 | Мвдол |
BRL | 986 | Бразильский реал |
BSD | 044 | Багамский доллар |
BTN | 064 | Нгултрум |
BWP | 072 | Пула |
BYN | 933 | Белорусский рубль |
BZD | 084 | Белизский доллар |
CAD | 124 | Канадский доллар |
CDF | 976 | Конголезский франк |
CHE | 947 | Евро WIR |
CHF | 756 | Швейцарский франк |
CHW | 948 | Франк WIR |
CLF | 990 | Унидад де фоменто |
CLP | 152 | Чилийское песо |
CNY | 156 | Китайский юань |
COP | 170 | Колумбийское песо |
COU | 970 | Единица реальной стоимости |
CRC | 188 | Коста-риканский колон |
CUC | 931 | Конвертируемое песо |
CUP | 192 | Кубинское песо |
CVE | 132 | Эскудо Кабо-Верде |
CZK | 203 | Чешская крона |
DJF | 262 | Франк Джибути |
DKK | 208 | Датская крона |
DOP | 214 | Доминиканское песо |
DZD | 012 | Алжирский динар |
EGP | 818 | Египетский фунт |
ERN | 232 | Накфа |
ETB | 230 | Эфиопский быр |
EUR | 978 | Евро |
FJD | 242 | Доллар Фиджи |
FKP | 238 | Фунт Фолклендских островов |
GBP | 826 | Фунт стерлингов |
GEL | 981 | Лари |
GHS | 936 | Ганский седи |
GIP | 292 | Гибралтарский фунт |
GMD | 270 | Даласи |
GNF | 324 | Гвинейский франк |
GTQ | 320 | Кетсаль |
GYD | 328 | Гайанский доллар |
HKD | 344 | Гонконгский доллар |
HNL | 340 | Лемпира |
HTG | 332 | Гурд |
HUF | 348 | Форинт |
IDR | 360 | Индонезийская рупия |
ILS | 376 | Новый израильский шекель |
INR | 356 | Индийская рупия |
IQD | 368 | Иракский динар |
IRR | 364 | Иранский риал |
ISK | 352 | Исландская крона |
JMD | 388 | Ямайский доллар |
JOD | 400 | Иорданский динар |
JPY | 392 | Иена |
KES | 404 | Кенийский шиллинг |
KGS | 417 | Сом |
KHR | 116 | Риель |
KMF | 174 | Коморский франк |
KPW | 408 | Северокорейская вона |
KRW | 410 | Вона |
KWD | 414 | Кувейтский динар |
KYD | 136 | Доллар Каймановых островов |
KZT | 398 | Тенге |
LAK | 418 | Лаосский кип |
LBP | 422 | Ливанский фунт |
LKR | 144 | Шри-ланкийская рупия |
LRD | 430 | Либерийский доллар |
LSL | 426 | Лоти |
LYD | 434 | Ливийский динар |
MAD | 504 | Марокканский дирхам |
MDL | 498 | Молдавский лей |
MGA | 969 | Малагасийский ариари |
MKD | 807 | Денар |
MMK | 104 | Кьят |
MNT | 496 | Тугрик |
MOP | 446 | Патака |
MRU | 929 | Угия |
MUR | 480 | Маврикийская рупия |
MVR | 462 | Руфия |
MWK | 454 | Малавийская квача |
MXN | 484 | Мексиканское песо |
MXV | 979 | Мексиканская инвестиционная единица |
MYR | 458 | Малайзийский ринггит |
MZN | 943 | Мозамбикский метикал |
NAD | 516 | Намибийский доллар |
NGN | 566 | Найра |
NIO | 558 | Золотая кордоба |
NOK | 578 | Норвежская крона |
NPR | 524 | Непальская рупия |
NZD | 554 | Новозеландский доллар |
OMR | 512 | Оманский риал |
PAB | 590 | Бальбоа |
PEN | 604 | Соль |
PGK | 598 | Кина |
PHP | 608 | Филиппинское песо |
PKR | 586 | Пакистанская рупия |
PLN | 985 | Злотый |
PYG | 600 | Гуарани |
QAR | 634 | Катарский риал |
RON | 946 | Румынский лей |
RSD | 941 | Сербский динар |
RUB | 643 | Российский рубль |
RWF | 646 | Руандийский франк |
SAR | 682 | Саудовский риял |
SBD | 090 | Доллар Соломоновых островов |
SCR | 690 | Сейшельская рупия |
SDG | 938 | Суданский фунт |
SEK | 752 | Шведская крона |
SGD | 702 | Сингапурский доллар |
SHP | 654 | Фунт Святой Елены |
SLE | 925 | Леоне |
SOS | 706 | Сомалийский шиллинг |
SRD | 968 | Суринамский доллар |
SSP | 728 | Южносуданский фунт |
STN | 930 | Добра |
SVC | 222 | Сальвадорский колон |
SYP | 760 | Сирийский фунт |
SZL | 748 | Лилангени |
THB | 764 | Бат |
TJS | 972 | Сомони |
TMT | 934 | Новый туркменский манат |
TND | 788 | Тунисский динар |
TOP | 776 | Паанга |
TRY | 949 | Турецкая лира |
TTD | 780 | Доллар Тринидада и Тобаго |
TWD | 901 | Новый тайваньский доллар |
TZS | 834 | Танзанийский шиллинг |
UAH | 980 | Гривна |
UGX | 800 | Угандийский шиллинг |
USD | 840 | Доллар США |
USN | 997 | Доллар США (следующий день) |
UYI | 940 | Уругвайское песо в индексируемых единицах (UI) |
UYU | 858 | Уругвайское песо |
UYW | 927 | Пенсионная единица |
UZS | 860 | Узбекский сум |
VED | 926 | Суверенный боливар |
VES | 928 | Суверенный боливар |
VND | 704 | Донг |
VUV | 548 | Вату |
WST | 882 | Тала |
XAF | 950 | Франк КФА BEAC |
XAG | 961 | Серебро |
XAU | 959 | Золото |
XBA | 955 | Единица рынка облигаций — европейская составная единица (EURCO) |
XBB | 956 | Единица рынка облигаций — европейская валютная единица (E.M.U.-6) |
XBC | 957 | Единица рынка облигаций — европейская расчётная единица 9 (E.U.A.-9) |
XBD | 958 | Единица рынка облигаций — европейская расчётная единица 17 (E.U.A.-17) |
XCD | 951 | Восточно-карибский доллар |
XDR | 960 | СДР (специальные права заимствования) |
XOF | 952 | Франк КФА BCEAO |
XPD | 964 | Палладий |
XPF | 953 | Франк КФП |
XPT | 962 | Платина |
XSU | 994 | Сукре |
XTS | 963 | Коды, специально зарезервированные для тестирования |
XUA | 965 | Расчётная единица Африканского банка развития |
XXX | 999 | Коды для операций без участия валюты |
YER | 886 | Йеменский риал |
ZAR | 710 | Рэнд |
ZMW | 967 | Замбийская квача |
ZWG | 924 | Зимбабвийское золото |
[03]
Названия банков
Скачать только области применения банков · JSON ↓ · Области применения банков в загрузках →
bankName может использоваться для маршрутизации, когда определения по BIN недостаточно. Уточните принимаемое значение банка у PayStar; all — документированное обобщённое значение выбора.
Доступный справочник областей применения
| Область применения | Валюта | Документированное значение выбора |
|---|---|---|
| Любой банк и любая география | Profile-specific | all |
| Азербайджан | AZN | Не предоставлено |
| Казахстан | KZT | Не предоставлено |
| Монголия | MNT | Не предоставлено |
| Филиппины | PHP | Не предоставлено |
| Польша | PLN | Не предоставлено |
| Республика Молдова | MDL | Не предоставлено |
| Россия | RUB | Не предоставлено |
| Словакия | EUR | Не предоставлено |
| Таиланд | THB | Не предоставлено |
| Турция | TRY | Не предоставлено |
| Украина | UAH | Не предоставлено |
| Великобритания | GBP | Не предоставлено |
| Вьетнам | VND | Не предоставлено |
[04]
Операторы связи
Скачать только операторов связи · JSON ↓ · Операторы связи в загрузках →
Используйте enum настроенного профиля мобильных платежей; наличие в списке не гарантирует маршрутизацию.
Каталог операторов31 запись
| Страна | Оператор | Значение enum |
|---|---|---|
| Великобритания | Vodafone | vodafone-uk |
| Великобритания | O2 (Telefónica) | o2-uk |
| Великобритания | Everything Everywhere (EE) | everything-everywhere-uk |
| Великобритания | TalkTalk | talk-talk-uk |
| Украина | Kievstar | kievstar-ua |
| Украина | Vodafon Ukraine | vodafon-ua |
| Украина | Lifecell | lifecell-ua |
| Украина | Intertelecom | intertelecom-ua |
| Республика Молдова | Orange Moldova | orange-md |
| Республика Молдова | Moldcell | moldcell-md |
| Республика Молдова | Unite | unite-md |
| Польша | tMobile Poland | tMobile-pl |
| Польша | Orange Poland | orange-pl |
| Польша | Play | play-pl |
| Польша | Plus | plus-pl |
| Польша | Lykamobile | lykamobile-pl |
| Польша | Virgin | virginMobile-pl |
| Венгрия | Magyar Telekom | magyarTelekom-hu |
| Венгрия | Telenor | telenor-hu |
| Венгрия | Vodafone Hungary | vodafone-hu |
| Словакия | T-Com | t-com-sk |
| Словакия | T-Mobile | t-mobile-sk |
| Словакия | Orange Slovensko | orange-sk |
| Словакия | UPC | upc-sk |
| Россия | Beeline | beeline-ru |
| Россия | Megafon | megafon-ru |
| Россия | МТС | mts-ru |
| Россия | Rostelecom | rostelecom-ru |
| Россия | Tele2 | tele2-ru |
| Россия | Yota | yota-ru |
| Россия | Tinkoff Mobile | tmobile-ru |
[05]
Ошибки и следующие действия
Скачать только ошибки · JSON ↓ · Ошибки в загрузках →
Найдите ниже условие ответа. Каждый сценарий указан один раз: с областью применения, телом ответа при наличии и следующим действием. Сопоставляйте документированные структурированные коды, а не точный текст сообщения. Каталог не исчерпывающий.
Неуспешный ответПримеры ответов JSON
HTTP 200 · Заявка создана, обработка неуспешна
Применяется к: Пополнение P2P H2H/H2C, пополнение ECOM H2H, пополнение через готовую форму H2C, пополнение по токену, выплата.
Запрос создал заявку, но обработка завершилась неуспешно. Сохраните PayStar externalId и исходный ID заявки мерчанта. Это не отказ без создания заявки.
HTTP: 200
Заявка создана.
{
"externalId": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
"orderStatus": "Failed"
}Что делать: HTTP 200 означает создание заявки, а не успешный платёж. Это тело использует orderStatus, а не status, и не содержит платёжных реквизитов или URL формы. Проверьте orderStatus и сохраните оба идентификатора заявки.
HTTP 423 · Нет подходящего канала или маршрута
Применяется к: Пополнение P2P H2H/H2C, пополнение ECOM H2H, пополнение через готовую форму H2C, пополнение по токену, выплата.
Валюта, сумма или другие параметры запроса не соответствуют доступным условиям маршрутизации этого pipeline. Заявка не создаётся.
HTTP: 423
Новая заявка не создана.
{
"label": "TEMPORARY_ERROR",
"message": "TEMPORARY_ERROR",
"statusDescrption": "0000-2",
"externalTransactionId": null,
"code": "1.2.4.3"
}Что делать: Проверьте параметры запроса и условия маршрутизации pipeline с менеджером.
HTTP 422 · Недостаточный баланс
Применяется к: Выплата.
Недостаточно средств для создания выплаты. Заявка не создаётся.
HTTP: 422. Соответствие HTTP подтверждено владельцем API (CREATE-HTTP-001, 15 сентября 2026) для этого примера ответа; это не новая живая проверка каждого сценария. Только выплаты.
Новая заявка не создана.
{
"label": "TEMPORARY_ERROR",
"message": "TEMPORARY_ERROR",
"statusDescrption": "1-4010",
"externalTransactionId": null,
"code": "1.1.4.3"
}Что делать: Уточните у менеджера, о каком балансе идёт речь: само тело ответа не определяет счёт или кошелёк.
HTTP 400 · Достигнут настроенный лимит
Применяется к: Пополнение P2P H2H/H2C, пополнение ECOM H2H, пополнение через готовую форму H2C, пополнение по токену, выплата.
Достигнут настроенный лимит. Заявка не создаётся.
HTTP: 400. Соответствие HTTP подтверждено владельцем API (CREATE-HTTP-001, 15 сентября 2026) для этого примера ответа; это не новая живая проверка каждого сценария. Создание пополнения и выплата.
Новая заявка не создана.
{
"label": "LIMITS_ERROR",
"message": "Limit id: aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa was reached",
"statusDescrption": "0001-0",
"externalTransactionId": null
}Что делать: ID лимита приведён для примера. В этом примере нет поля code; не определяйте ошибку по конкретному UUID или точному тексту сообщения.
HTTP 400 · Повтор ID заявки мерчанта
Применяется к: Пополнение P2P H2H/H2C, пополнение ECOM H2H, пополнение через готовую форму H2C, пополнение по токену, выплата.
Заявка с этим ID мерчанта уже существует. Отклонённая попытка не создаёт новую заявку.
HTTP: 400. Соответствие HTTP подтверждено владельцем API (CREATE-HTTP-001, 15 сентября 2026) для этого примера ответа; это не новая живая проверка каждого сценария. Создание пополнения и выплата.
Новая заявка не создана.
{
"label": "VALIDATION_ERROR",
"message": "Order with this external_transaction_id already exist",
"statusDescrption": "1-4007",
"externalTransactionId": null,
"code": "1.1.5.1"
}Исторический пример: метка VALIDATION_ERROR., без code или externalTransactionId. Это не вторая действующая ошибка.
Что делать: Запросите существующую заявку по исходному externalTransactionId из вашего запроса, даже если в этой ошибке externalTransactionId равен null. Не меняйте ID для слепого повтора.
HTTP 400 · Отсутствует обязательный параметр
Применяется к: Пополнение P2P H2H/H2C, пополнение ECOM H2H, пополнение через готовую форму H2C, пополнение по токену, выплата.
Отсутствует поле, обязательное по настройке терминала. Заявка не создаётся.
HTTP: 400. Соответствие HTTP подтверждено владельцем API (CREATE-HTTP-001, 15 сентября 2026) для этого примера ответа; это не новая живая проверка каждого сценария. Создание пополнения и выплата.
Новая заявка не создана.
{
"label": "VALIDATION_ERROR",
"message": "additionalField BankAccount not found in request data. Description: Beneficiary’s bank account number, e.g. 1234567890",
"statusDescrption": "0000-0",
"externalTransactionId": null,
"code": "1.2.4.8"
}Что делать: BankAccount — пример настроенного требования, а не обязательное поле всех сценариев. Используйте список обязательных полей вашего терминала.
HTTP 423 · Неизвестная валюта
Применяется к: deposit_h2h, deposit_h2c.
CUR-002 (9 сен 2026): нераспознанные значения валюты, включая RU и ZZZ, возвращают ответ о неизвестной валюте. Он отличается от ошибки маршрутизации.
HTTP: 423. CUR-002 подтверждён владельцем API; уточнённое сообщение ещё не проверено на живом сервисе. Только Deposit H2H/H2C; не распространяется на Balance или выплаты.
{
"label": "TEMPORARY_ERROR",
"message": "Currency value \"RU\" is unknown",
"statusDescrption": "2-00100-2",
"externalTransactionId": null,
"code": "1.2.4.9"
}Что делать: Используйте точный ключ валюты, включённый для интеграции; не вводите проверку формата alpha-3. Неизвестная валюта определяется при поиске во внутреннем справочнике, до поиска маршрута. Не стройте ветвление по точному тексту сообщения и не повторяйте автоматически неизменённый запрос. Уточнённое сообщение подтверждено владельцем API, но ещё не проверено на живом сервисе.
HTTP 400 · Общая проверка запроса
Применяется к: deposit_create, payout_create.
Некорректный запрос, отсутствующее обязательное поле или недопустимое значение поля.
HTTP: 400. Примеры из прежней документации; отличайте их от проверки настроенных полей. Запросы создания.
{
"label": "VALIDATION_ERROR.",
"message": "External_transaction_id is required property",
"statusDescrption": "0-0000"
}Другие документированные сообщения — та же прежняя структура ответа
Amount is required propertyCurrency is required propertycurrency has invalide value
Что делать: Исправьте запрос по спецификации. Уточните дополнительные поля конкретного сценария у менеджера аккаунта.
Историческая метка VALIDATION_ERROR. и statusDescrption 0-0000 сохранены дословно. Варианты сообщений заменяют только message; не сравнивайте точный текст и не восстанавливайте проверку alpha-3 по историческому сообщению о валюте.
HTTP 423 · Платёж временно недоступен — прежний вариант
Применяется к: deposit_create, payout_create.
Отдельное прежнее тело со statusDescrption 0000-1, а не подтверждённый владельцем API ответ маршрутизации 0000-2.
HTTP: 423. Прежний/общий справочник, а не универсальное соответствие маршрутизации. Ответ создания из прежней документации.
{
"label": "TEMPORARY_ERROR",
"statusDescrption": "0000-1",
"message": "There is currently no possibility to make a payment, please try again later"
}Что делать: Обратитесь к менеджеру аккаунта и проверьте ограничения маршрута, суммы, валюты и дополнительных полей.
HTTP-ответы и транспортные ошибкиВключая ответы без тела JSON
401 · аутентификация
Применяется к: все.
Заголовок/ключ Authorization отсутствует или недействителен.
HTTP: 401. Документированный результат. Все операции.
Может быть пустым; пример JSON не предоставлен.
Что делать: Проверьте Bearer-токен и правильность ключа пополнений/выплат.
403 · доступ запрещён
Применяется к: все.
Доступ запрещён. HTTP-статус или пустое тело не указывают на одну конкретную причину.
HTTP: 403. Документированный результат. Все операции.
Может быть пустым; пример JSON не предоставлен.
| Возможная причина | Что проверить |
|---|---|
| Ключ/pipeline не активирован или не имеет разрешения. | Обратитесь к менеджеру аккаунта. |
| Ключ активен, но относится к другому типу сценария, например ключ выплат используется для пополнения. | Используйте отдельный ключ для нужной операции. |
| Исходный IP отсутствует в разрешённом списке. | Попросите менеджера аккаунта добавить IP в разрешённый список; по документации применение изменения может занять до одного часа. |
Что делать: Попросите менеджера проверить ключ, доступ к сценарию, pipeline и разрешённый список IP.
Прежняя оценка времени применения IP не является заново проверенным SLA.
404 · платёж не найден
Применяется к: status_endpoints.
Заявка по этому запросу не найдена.
HTTP: 404. Документированный результат проверки статуса. Относится к поиску статуса, а не к отказу создания.
Используйте модель ответа метода статуса; этот каталог не придумывает тело ответа.
Что делать: Проверьте, какой идентификатор ожидает endpoint: PayStar externalId или externalTransactionId мерчанта. Продолжайте согласованный процесс разрешения неопределённости.
415 · тип содержимого
Применяется к: Запросы JSON.
Неподдерживаемый тип содержимого запроса.
HTTP: 415. Документированный ответ фреймворка. Тип содержимого запроса.
application/problem+json; не структура PayStar BusinessError.
Что делать: Отправляйте application/json. ProblemDetails — отдельная модель ответа.
500 · ошибка сервера или конфигурации
Применяется к: create_and_some_status_endpoints.
Ошибка сервера или конфигурации не устанавливает, была ли создана заявка.
HTTP: 500. Документированный результат ошибки сервера; возможны и другие 5xx. Затронутые операции.
Универсальное тело JSON не установлено.
Что делать: Не предполагайте, что заявка не создана. Проверьте статус перед любым каскадом/повтором.
Нет HTTP-ответа
Применяется к: все.
Результат создания может быть неизвестен.
HTTP: HTTP не указан. Отсутствие HTTP-ответа — транспортная ошибка, а не код статуса API. Тайм-аут, отсутствие ответа или обрыв соединения.
Нет тела HTTP-ответа.
Что делать: Сохраните исходный ID мерчанта. Проверьте статус по нему перед новой попыткой создания или каскадом; не меняйте ID для слепого повтора.
Поля BusinessError и правила сопоставления
| Поле | Обязательность | Тип и значение |
|---|---|---|
label | Обязательно | string |
message | Обязательно | stringНе стройте ветвление по точному тексту сообщения. |
statusDescrption | Необязательно | string | nullТекущее совместимое написание в протоколе, включая опечатку. |
externalTransactionId | Необязательно | string | null |
code | Необязательно | string | nullКод приложения; полный стабильный каталог ещё не документирован. |
statusDescrption — совместимое написание в протоколе. Поля могут отсутствовать или иметь null согласно документации; отсутствие ID ошибки не устанавливает состояние заявки. Тело created-Failed не относится к структуре BusinessError.
При любой ошибке создания, 499+, тайм-ауте, обрыве соединения или отсутствии ответа проверьте статус заявки до следующей попытки/каскада.
[06]
История платежей
Скачать только историю платежей · JSON ↓ · История платежей в загрузках →
orderStatus — определяющий источник текущего состояния. Статус пополнения включает минимум один элемент истории; это не гарантирует полный след событий. История выплаты может запаздывать или быть пустой. Каталог кодов частичный: сохраняйте неизвестные значения, не угадывая их смысл.
Документированные сегменты действия
| Сегмент | Значение |
|---|---|
A_stage | 1 — PayStar2 — создание в шлюзе3 — готовая платёжная страница / взаимодействие пользователя4 — опрос шлюза |
B_operation_result | 0 — информация1 — успех2 — неуспех |
C_payment_state | 0 — инициализация1 — создано2 — обработка3 — успех4 — неуспех5 — без изменений |
RR_reason_group | 00 — отсутствует11..19 — техническая ошибка21..29 — авторизация31..39 — бизнес-условия41..49 — риск51..59 — пользователь61..69 — эмитент |
Примеры и частичные коды конфигурации
| Код | Значение |
|---|---|
1.1.1.00 | PayStar: платёж создан |
2.1.1.00 | Шлюз: платёж создан |
2.1.2.00 | Шлюз: обработка |
4.1.3.00 | Опрос шлюза: платёж успешен |
4.1.4.63 | Опрос шлюза: отказ, недостаточно средств у эмитента |
2.2.4.16 | Смысл не установлен; сохраняйте как неизвестный. |
| Новый код / прежний код | Контекст |
|---|---|
1.2.4.18.11200-1-1 | В конфигурации pipeline отсутствует formUrl. |
1.2.4.18.20000-911 | У endpoint не настроены pipeline/маршруты. |
1.2.4.18.30000-2 | У pipeline не настроен канал. |
1.2.4.18.40000-180924 | Некорректная конфигурация интеграции шлюза. |
1.2.4.18.50000-4 | Некорректная конфигурация реализации шлюза. |
[07]
Термины интеграции
Идентификаторы, pipeline и платёжные сценарии
| Термин | Значение |
|---|---|
| Pipeline | Конфигурация, которой назначены ключ, доступ, маршруты, лимиты и обязательные поля. |
| ID мерчанта | Ваш исходный externalTransactionId, переданный при создании заявки. |
| ID PayStar | externalId, возвращённый PayStar для принятой заявки. |
| H2H | Межсерверная интеграция; различайте профили P2P, эквайринга и оплаты по токену. |
| H2C / готовая платёжная форма | Клиент использует готовую платёжную форму. P2P может использовать URL формы PayStar, возвращённый вместе с реквизитами; отдельный профиль готовой карточной формы отвечает за ввод карты. |
| Callback | Настроенное асинхронное уведомление о платеже на ваш сервер. |
| Операционное событие | Оповещение платформы/аккаунта, отдельное от платёжного callback. |
| cardStorageToken | Токен сохранённой карты PayStar; не взаимозаменяем с банковским cardToken. |
| Маршрутизация | Выбор доступного настроенного маршрута; справочник валют не гарантирует маршрут. |
[08]
Справочник схем
Файлы схем в загрузках: OpenAPI JSON · OpenAPI YAML.
Базовые схемы и утверждённые владельцем API дополнения ниже также доступны для скачивания. Ответ ECOM остаётся наблюдаемым черновиком, а не новой утверждённой схемой.
CurrencyCode
{
"type": "string",
"example": "RUB",
"description": "Currency key as a string, with no lexical length or pattern validation. Values such as USDT_TRC20 can be submitted; this does not guarantee that a value is known or enabled. For payment creation, PayStar first looks up the exact submitted value in its internal currency dictionary, then searches for a route matching the pipeline conditions. Use the currency key provided for your integration. Fiat commonly uses ISO 4217 alpha-3 codes; crypto may use an asset/network key. Requiredness and operation-specific business errors remain unchanged.",
"x-paystar-owner-confirmed": true,
"x-paystar-currency-key": {
"decision": "CUR-CRYPTO-001",
"approvedAt": "2026-09-10",
"lexicalFormatValidation": false,
"paymentCreationProcessingOrder": [
"internal currency dictionary lookup",
"route lookup using pipeline conditions"
],
"illustrativeInput": "USDT_TRC20",
"illustrativeInputGuaranteesSupport": false,
"catalogScope": "Published ISO-style reference only; not an exhaustive internal currency dictionary or an enabled-currency list.",
"unchanged": [
"string type",
"field requiredness",
"operation-specific HTTP outcomes",
"amount rules"
],
"unconfirmed": [
"crypto catalog and profile support",
"dictionary casing and alias matching",
"missing/null/empty business behavior"
],
"balanceScope": "Shared lexical schema only; no order creation or route lookup is asserted for Balance."
}
}Amount
{
"type": "number",
"exclusiveMinimum": 0,
"example": 100,
"description": "Amount in major currency units. JSON number is normative; quoted numeric strings remain backward-compatible. Normal requests and displayed examples use two decimal places. Flow-specific min/max are routing configuration.",
"x-paystar-normal-decimal-places": 2,
"x-paystar-display-format": "0.00",
"x-paystar-string-compatibility": true
}ExternalTransactionId
{
"type": "string",
"minLength": 1,
"description": "Unique merchant-generated identifier used for status lookup and safe retry resolution."
}AdditionalFieldValue
{
"description": "Flow-specific scalar. Presence and non-null value are normative; formats and ranges belong to the selected flow schema.",
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}AdditionalField
{
"type": "object",
"required": [
"key",
"value"
],
"properties": {
"key": {
"type": "string",
"minLength": 1,
"description": "Canonical documented casing is lowerCamelCase."
},
"value": {
"$ref": "#/components/schemas/AdditionalFieldValue"
}
}
}BaseDepositRequest
{
"type": "object",
"required": [
"amount",
"currency",
"externalTransactionId"
],
"properties": {
"amount": {
"allOf": [
{
"$ref": "#/components/schemas/Amount"
}
],
"x-paystar-p2p-rounding": {
"mode": "half-up",
"decimalPlaces": 2,
"examples": {
"100.124": 100.12,
"100.125": 100.13,
"100.126": 100.13
}
}
},
"currency": {
"$ref": "#/components/schemas/CurrencyCode"
},
"externalTransactionId": {
"$ref": "#/components/schemas/ExternalTransactionId"
},
"callbackUrl": {
"type": "string",
"format": "uri",
"description": "Optional callback URL."
},
"processingRedirectUrl": {
"type": "string",
"format": "uri"
},
"failedRedirectUrl": {
"type": "string",
"format": "uri"
},
"successRedirectUrl": {
"type": "string",
"format": "uri"
},
"additionalFields": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AdditionalField"
},
"description": "Array of objects with key and value. The required field set depends on the individual configuration of each terminal (pipeline). Ask your integration manager for the current required fields before sending a request. A catalog entry is not automatically required or supported for every terminal."
}
}
}P2PDepositRequest
{
"title": "P2P H2H deposit request",
"allOf": [
{
"$ref": "#/components/schemas/BaseDepositRequest"
},
{
"type": "object",
"required": [
"processingRedirectUrl",
"failedRedirectUrl",
"successRedirectUrl"
]
}
]
}H2CDepositRequest
{
"title": "H2C hosted-form deposit request",
"allOf": [
{
"$ref": "#/components/schemas/BaseDepositRequest"
}
],
"x-paystar-pci-rule": "Merchant must not collect card data."
}TokenDepositRequest
{
"title": "Tokenized H2H deposit request",
"allOf": [
{
"$ref": "#/components/schemas/BaseDepositRequest"
},
{
"type": "object",
"required": [
"additionalFields"
],
"properties": {
"additionalFields": {
"type": "array",
"minContains": 1,
"contains": {
"type": "object",
"required": [
"key",
"value"
],
"properties": {
"key": {
"const": "cardStorageToken"
}
}
},
"items": {
"$ref": "#/components/schemas/AdditionalField"
}
}
}
}
]
}PayoutRequest
{
"type": "object",
"required": [
"amount",
"currency",
"externalTransactionId"
],
"properties": {
"amount": {
"$ref": "#/components/schemas/Amount"
},
"currency": {
"$ref": "#/components/schemas/CurrencyCode"
},
"externalTransactionId": {
"$ref": "#/components/schemas/ExternalTransactionId"
},
"callbackUrl": {
"type": "string",
"format": "uri"
},
"additionalFields": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AdditionalField"
},
"description": "Required key set is merchant- and flow-configured. Confirm it with the PayStar manager.",
"x-paystar-requiredness": "flow-specific"
}
},
"description": "Deposit redirect fields are not payout request fields and must not be added to canonical payout examples."
}P2PPaymentDetails
{
"type": "object",
"properties": {
"card": {
"type": [
"string",
"null"
],
"description": "Sensitive payment detail; redact in stored evidence."
},
"fio": {
"type": [
"string",
"null"
]
},
"bank": {
"type": [
"string",
"null"
]
},
"formUrl": {
"type": "string",
"format": "uri",
"description": "Required non-null PayStar payment-form URI in a valid accepted P2P response. The merchant may use this H2C presentation instead of displaying the returned payment instructions itself. Use the full returned URL, not this illustrative EXAMPLE_ONLY query. Never log one-time query tokens.",
"example": "https://p2p.paystar.uk/?EXAMPLE_ONLY"
},
"number": {
"description": "Recipient phone payment instruction at paymentDetails.number, not phoneNumber or card. It is a string in the owner example; preserve the plus sign and value as returned. No numeric conversion, E.164, length, requiredness or nullability rule is inferred.",
"example": "<RECIPIENT_PHONE_NUMBER>",
"x-paystar-observed-type": "string",
"x-paystar-confirmation": {
"source": "owner-provided example",
"date": "2026-09-10",
"decision": "P2P-DETAILS-001",
"requiredness": "not established for all profiles",
"nullability": "not established",
"noNewValueConstraints": true
}
},
"iban": {
"description": "IBAN payment instruction at paymentDetails.iban. Keep it as a string. Confirmed by the owner example, not a universal required field.",
"example": "<IBAN>",
"x-paystar-observed-type": "string",
"x-paystar-confirmation": {
"source": "owner-provided example",
"date": "2026-09-10",
"decision": "P2P-DETAILS-001",
"requiredness": "not established for all profiles",
"nullability": "not established",
"noNewValueConstraints": true
}
},
"accountNumber": {
"description": "Account-number payment instruction at paymentDetails.accountNumber, not bankAccount. Keep the string exactly as returned, including leading zeroes. It can coexist with qrUrl, as in the owner example.",
"example": "<ACCOUNT_NUMBER>",
"x-paystar-observed-type": "string",
"x-paystar-confirmation": {
"source": "owner-provided example",
"date": "2026-09-10",
"decision": "P2P-DETAILS-001",
"requiredness": "not established for all profiles",
"nullability": "not established",
"noNewValueConstraints": true
}
},
"qrUrl": {
"description": "QR content at paymentDetails.qrUrl. The owner labels this value Base64; despite the field name, it is not confirmed to be an HTTP URL. Actual QR bytes, MIME type and raw-Base64 versus data-URI envelope remain unconfirmed.",
"example": "<BASE64_QR_DATA>",
"x-paystar-observed-type": "string",
"x-paystar-confirmation": {
"source": "owner-provided example",
"date": "2026-09-10",
"decision": "P2P-DETAILS-001",
"requiredness": "not established for all profiles",
"nullability": "not established",
"noNewValueConstraints": true
}
},
"method": {
"description": "Method label at paymentDetails.method. ArsCbu is an owner-provided example, not a complete enum or a unique response-variant discriminator.",
"example": "ArsCbu",
"x-paystar-observed-type": "string",
"x-paystar-confirmation": {
"source": "owner-provided example",
"date": "2026-09-10",
"decision": "P2P-DETAILS-001",
"requiredness": "not established for all profiles",
"nullability": "not established",
"noNewValueConstraints": true
}
}
},
"required": [
"formUrl"
],
"description": "Payment instructions and the PayStar form URL returned together for P2P with an H2H gateway integration (P2P-FORM-001, owner-confirmed 2026-09-10).",
"x-paystar-detail-mapping": {
"decision": "P2P-DETAILS-001",
"confirmedAt": "2026-09-10",
"source": "owner-provided examples; no new live test",
"phoneNumberPathConfirmed": true,
"phoneNumberResponsePath": "paymentDetails.number",
"qrEncodingDetailsConfirmed": false,
"methodEnumConfirmed": false,
"exclusiveVariants": false
},
"examples": [
{
"fio": "<RECIPIENT_NAME>",
"bank": "<BANK_NAME>",
"number": "<RECIPIENT_PHONE_NUMBER>",
"formUrl": "https://checkout.example/EXAMPLE_ONLY"
},
{
"fio": "<RECIPIENT_NAME>",
"iban": "<IBAN>",
"formUrl": "https://checkout.example/EXAMPLE_ONLY"
},
{
"fio": "<RECIPIENT_NAME>",
"method": "ArsCbu",
"formUrl": "https://checkout.example/EXAMPLE_ONLY",
"accountNumber": "<ACCOUNT_NUMBER>"
},
{
"qrUrl": "<BASE64_QR_DATA>",
"fio": "<RECIPIENT_NAME>",
"method": "ArsCbu",
"formUrl": "https://checkout.example/EXAMPLE_ONLY",
"accountNumber": "<ACCOUNT_NUMBER>"
}
]
}P2PDepositCreateResponse
{
"type": "object",
"required": [
"externalId",
"orderStatus",
"paymentDetails"
],
"properties": {
"externalId": {
"type": "string"
},
"orderStatus": {
"type": "string",
"enum": [
"Processing"
]
},
"paymentDetails": {
"$ref": "#/components/schemas/P2PPaymentDetails"
}
},
"description": "When the gateway integration uses H2H, the same P2P create request returns both payment instructions and a PayStar payment-form URL. The merchant can display the instructions in its own checkout (H2H) or send the customer to the returned PayStar form (H2C), without creating another order or changing the request.",
"example": {
"externalId": "<PAYSTAR_ORDER_ID>",
"orderStatus": "Processing",
"paymentDetails": {
"card": "<REDACTED_PAYMENT_DETAIL>",
"fio": "<RECIPIENT_NAME>",
"bank": "<BANK_NAME>",
"formUrl": "https://p2p.paystar.uk/?EXAMPLE_ONLY"
}
},
"examples": [
{
"externalId": "<PAYSTAR_ORDER_ID>",
"orderStatus": "Processing",
"paymentDetails": {
"card": "<REDACTED_PAYMENT_DETAIL>",
"fio": "<RECIPIENT_NAME>",
"bank": "<BANK_NAME>",
"formUrl": "https://p2p.paystar.uk/?EXAMPLE_ONLY"
}
},
{
"externalId": "<PAYSTAR_ORDER_ID>",
"orderStatus": "Processing",
"paymentDetails": {
"fio": "<RECIPIENT_NAME>",
"bank": "<BANK_NAME>",
"number": "<RECIPIENT_PHONE_NUMBER>",
"formUrl": "https://checkout.example/EXAMPLE_ONLY"
}
},
{
"externalId": "<PAYSTAR_ORDER_ID>",
"orderStatus": "Processing",
"paymentDetails": {
"fio": "<RECIPIENT_NAME>",
"iban": "<IBAN>",
"formUrl": "https://checkout.example/EXAMPLE_ONLY"
}
},
{
"externalId": "<PAYSTAR_ORDER_ID>",
"orderStatus": "Processing",
"paymentDetails": {
"fio": "<RECIPIENT_NAME>",
"method": "ArsCbu",
"formUrl": "https://checkout.example/EXAMPLE_ONLY",
"accountNumber": "<ACCOUNT_NUMBER>"
}
},
{
"externalId": "<PAYSTAR_ORDER_ID>",
"orderStatus": "Processing",
"paymentDetails": {
"qrUrl": "<BASE64_QR_DATA>",
"fio": "<RECIPIENT_NAME>",
"method": "ArsCbu",
"formUrl": "https://checkout.example/EXAMPLE_ONLY",
"accountNumber": "<ACCOUNT_NUMBER>"
}
}
]
}H2CDepositCreateResponse
{
"type": "object",
"required": [
"externalId",
"orderStatus",
"formUrl"
],
"properties": {
"externalId": {
"type": "string"
},
"orderStatus": {
"type": "string",
"enum": [
"Init"
]
},
"formUrl": {
"type": "string",
"format": "uri"
}
}
}TokenDepositCreateResponse
{
"type": "object",
"required": [
"externalId",
"orderStatus"
],
"properties": {
"externalId": {
"type": "string"
},
"orderStatus": {
"type": "string",
"enum": [
"Processing"
]
},
"paymentDetails": {
"type": "object",
"properties": {
"formUrl": {
"type": [
"string",
"null"
],
"format": "uri"
}
}
}
}
}PayoutCreateResponse
{
"type": "object",
"required": [
"externalId",
"orderStatus"
],
"properties": {
"externalId": {
"type": "string"
},
"orderStatus": {
"type": "string",
"enum": [
"Created"
]
}
}
}OrderHistoryItem
{
"type": "object",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "History record time in UTC for deposit and payout status responses. If returned without Z or an offset, interpret this field as UTC, not local time (owner-confirmed 2026-09-08). The missing suffix remains a date-time wire-format discrepancy; this clarification does not relax the schema."
},
"action": {
"type": [
"string",
"null"
],
"description": "Payment History action code."
},
"newCode": {
"type": [
"string",
"null"
],
"description": "Additional Payment History code returned by the current API."
}
}
}ExternalParams
{
"type": "object",
"properties": {
"cardToken": {
"type": [
"string",
"null"
],
"writeOnly": false,
"description": "Sensitive; access and logging must be restricted."
},
"cardStorageToken": {
"type": [
"string",
"null"
],
"writeOnly": false,
"description": "Sensitive; access and logging must be restricted."
},
"cardHolder": {
"type": [
"string",
"null"
]
},
"cardNumber": {
"type": [
"string",
"null"
],
"description": "Must be masked when returned."
}
},
"additionalProperties": true,
"description": "Flow-dependent object; it may be absent or contain null fields."
}DepositStatusResponse
{
"type": "object",
"required": [
"externalId",
"orderStatus",
"orderHistory"
],
"properties": {
"externalId": {
"type": "string"
},
"orderStatus": {
"type": "string",
"enum": [
"Init",
"Created",
"Processing",
"Success",
"Failed"
],
"description": "Current deposit order state. P2P exception (P2P-STATE-001, owner-confirmed 2026-09-10): Failed is not unconditionally final; the same order with unchanged identifiers can be corrected to Success, usually after initiation by merchant support. The merchant must handle the corresponding callback update. A reverse Success-to-Failed business transition need not be implemented. This does not change other deposit flows, introduce new status values, define callback delivery guarantees or prescribe indefinite polling."
},
"amount": {
"$ref": "#/components/schemas/Amount"
},
"externalParams": {
"$ref": "#/components/schemas/ExternalParams"
},
"currency": {
"$ref": "#/components/schemas/CurrencyCode",
"description": "Currency key of the deposit, for example ARS. The response field is confirmed by owner examples; universal presence is not separately established. No alpha-3-only restriction is imposed."
},
"orderHistory": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OrderHistoryItem"
},
"description": "Required non-empty payment history: at least one item in deposit status responses, by merchant ID or PayStar ID (owner-confirmed 2026-09-11). Use orderStatus for the current state. A non-empty history is not a guarantee of a complete trace.",
"minItems": 1
}
},
"x-paystar-p2p-status-correction": {
"decision": "P2P-STATE-001",
"confirmedAt": "2026-09-10",
"scope": "P2P deposits, including merchant-side H2H/H2C presentation",
"from": "Failed",
"to": "Success",
"sameOrder": true,
"identifiersUnchanged": true,
"usualInitiator": "merchant support",
"callbackHandlingRequired": true,
"reverseBusinessTransitionRequired": false,
"liveCorrectionVerified": false,
"liveCallbackDeliveryVerified": false,
"correctionDeadlineConfirmed": false,
"pollingStopPolicyConfirmed": false,
"deliveryContract": "Payload, signature, acknowledgement and retry details still require approved fixtures; this lifecycle decision does not define them.",
"handling": "Process an authenticated Success correction for the existing P2P order even if it was Failed. Do not discard it solely because the order ID has been seen. Apply the successful business effect idempotently. Do not downgrade a stored Success to Failed; this does not waive callback validation or the agreed acknowledgement protocol."
},
"x-paystar-deposit-history": {
"decision": "DEP-STATUS-001",
"confirmedAt": "2026-09-11",
"scope": [
"getDepositStatusByMerchantId",
"getDepositStatusByPayStarId"
],
"required": true,
"minItems": 1,
"currentStateField": "orderStatus",
"completeTraceGuaranteed": false,
"payoutAndCallbackRulesChanged": false
}
}PayoutStatusResponse
{
"type": "object",
"required": [
"externalId",
"orderStatus"
],
"properties": {
"externalId": {
"type": "string"
},
"orderStatus": {
"type": "string",
"enum": [
"Created",
"Processing",
"Success",
"Failed"
]
},
"amount": {
"$ref": "#/components/schemas/Amount"
},
"externalParams": {
"$ref": "#/components/schemas/ExternalParams"
},
"orderHistory": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OrderHistoryItem"
},
"description": "Not guaranteed to be populated and may be delayed."
}
}
}Balance
{
"type": "object",
"required": [
"currency",
"merchantBalance",
"merchantOverdraft",
"pipelineBalance",
"pipelineAvailableBalance",
"pipelineProcessingOrdersDeposit",
"pipelineProcessingOrdersWithdrawals"
],
"properties": {
"currency": {
"type": "string"
},
"merchantBalance": {
"type": "number"
},
"merchantOverdraft": {
"type": "number"
},
"pipelineBalance": {
"type": "number"
},
"pipelineAvailableBalance": {
"type": "number"
},
"pipelineProcessingOrdersDeposit": {
"type": "number"
},
"pipelineProcessingOrdersWithdrawals": {
"type": "number"
}
}
}BusinessError
{
"type": "object",
"required": [
"label",
"message"
],
"properties": {
"label": {
"type": "string",
"examples": [
"VALIDATION_ERROR",
"REQUEST_VALIDATION_ERROR",
"TEMPORARY_ERROR",
"NOT_FOUND",
"INTERNAL_SERVER_ERROR"
]
},
"message": {
"type": "string",
"description": "Do not branch on exact message text."
},
"statusDescrption": {
"type": [
"string",
"null"
],
"description": "Current compatible wire spelling, including the typo."
},
"externalTransactionId": {
"type": [
"string",
"null"
]
},
"code": {
"type": [
"string",
"null"
],
"description": "Application code; the complete stable catalog is not yet documented."
}
}
}ProblemDetails415
{
"type": "object",
"required": [
"type",
"title",
"status"
],
"properties": {
"type": {
"type": "string",
"format": "uri"
},
"title": {
"type": "string",
"example": "Unsupported Media Type"
},
"status": {
"type": "integer",
"const": 415
},
"traceId": {
"type": "string"
}
}
}CreatedFailedResponse
{
"type": "object",
"required": [
"externalId",
"orderStatus"
],
"properties": {
"externalId": {
"type": "string"
},
"orderStatus": {
"type": "string",
"enum": [
"Failed"
]
}
}
}Нужны обязательные поля, валюты или лимиты для вашего pipeline?
Уточнить профиль у Егора ↗