ДОКУМЕНТАЦИЯ API

Уточните назначенный профиль. Черновые разделы и ограничения проверки отмечены.

Открытые вопросы →

PAYSTAR / ДОКУМЕНТАЦИЯ ДЛЯ РАЗРАБОТЧИКОВ

Справочники

Имена полей, идентификаторы валют, обработка ошибок и схемы, сгруппированные для поиска.

Скачивайте только нужный справочник по ссылкам в каждом разделе. Все отдельные файлы → · Общий файл справочников →

Скачать только статусы заявок · JSON ↓ · Статусы заявок в загрузках →

[01]

Дополнительные поля

Скачать только дополнительные поля · JSON ↓ · Дополнительные поля в загрузках →

Каждый элемент содержит key и обязательное скалярное значение не null value. Новые примеры используют lowerCamelCase; обязательные поля зависят от pipeline. Эти 47 имён — справочный каталог, а не универсальная схема запроса. Уточните актуальный обязательный набор вашего терминала у менеджера интеграции.

Структура массива и пример
ПолеОбязательностьТип и значение
keyОбязательноstring

Документированное стандартное написание — lowerCamelCase.

minLength: 1

valueОбязательноstring | number | boolean

Скалярное значение, зависящее от сценария. Наличие и значение не null — нормативные требования; форматы и диапазоны задаются схемой выбранного сценария.

AdditionalFieldValue

JSON · пример массива полейВыделите текст для копирования
{
  "additionalFields": [
    {
      "key": "payeerIdentifier",
      "value": "Merch-Customer-12345"
    }
  ]
}
платёжный метод и карта7 полей
ПолеОписание и область примененияБезопасный пример
productCodeВнутренний код продукта или услуги.

Зависит от профиля; не обязательно для всех.

Merch-12345
cardNumberПолный PAN карты. Передавайте только через H2H-сценарий с разрешённой обработкой по PCI.

Зависит от профиля; не обязательно для всех.

<PAN>
cardExpireMonthМесяц окончания действия карты в формате MM.

Зависит от профиля; не обязательно для всех.

05
cardExpireYearГод окончания действия карты в формате YY.

Зависит от профиля; не обязательно для всех.

26
cardCvvCVV/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>
browserAcceptHeaderHTTP-заголовок 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 поле
ПолеОписание и область примененияБезопасный пример
storeUrlURL сайта мерчанта или страницы оплаты.

Зависит от профиля; не обязательно для всех.

https://merchant.example.com/
прочее2 поля
ПолеОписание и область примененияБезопасный пример
ipIP-адрес конечного пользователя.

Зависит от профиля; не обязательно для всех.

203.0.113.10
payeerIdentifierИдентификатор плательщика/клиента на стороне мерчанта.

Зависит от профиля; не обязательно для всех.

Merch-Customer-12345
тестовая среда1 поле
ПолеОписание и область примененияБезопасный пример
ExpectedResultУправление тестовой средой из прежней документации; регистр, поддерживаемые результаты и применимость профиля требуют подтверждения. Этим набором тестов не проверено.

optional_test_only

status=failed

[02]

Коды валют

Скачать только валюты · JSON ↓ · Валюты в загрузках →

179 опубликованных справочных идентификаторов.

currency — строковый ключ без проверки длины или шаблона написания. Значения вроде USDT_TRC20 можно передавать. Прохождение проверки схемы запроса не означает, что валюта известна, включена для профиля или доступна для маршрутизации.

  1. Поиск во внутреннем справочнике валют. PayStar ищет переданный ключ. Неизвестная валюта отклоняется на этом этапе.
  2. Поиск маршрута pipeline. Для известной валюты создание платежа ищет маршрут по условиям pipeline. Подходящего маршрута может не быть даже для известной валюты.

Фиат обычно использует коды ISO 4217 alpha-3, например RUB. Криптовалюта может использовать ключ актива/сети, например USDT_TRC20. Используйте точное значение для вашей интеграции; пример не обещает поддержку криптовалюты вашим ключом. Уточните доступные валюты и лимиты у менеджера. Не предполагайте поиск без учёта регистра или поддержку алиасов.

Каталог ниже — опубликованный справочник в стиле ISO, а не полный внутренний справочник валют. Он не перечисляет поддержку криптовалют. Balance остаётся запросом только на чтение со своими результатами; последовательность маршрутизации создания к нему не относится.

Каталог валют alpha-3179 записей
КодЧисловой кодВалюта
AED784Дирхам ОАЭ
AFN971Афгани
ALL008Лек
AMD051Армянский драм
ANG532Нидерландский антильский гульден
AOA973Кванза
ARS032Аргентинское песо
AUD036Австралийский доллар
AWG533Арубанский флорин
AZN944Азербайджанский манат
BAM977Конвертируемая марка
BBD052Барбадосский доллар
BDT050Така
BGN975Болгарский лев
BHD048Бахрейнский динар
BIF108Бурундийский франк
BMD060Бермудский доллар
BND096Брунейский доллар
BOB068Боливиано
BOV984Мвдол
BRL986Бразильский реал
BSD044Багамский доллар
BTN064Нгултрум
BWP072Пула
BYN933Белорусский рубль
BZD084Белизский доллар
CAD124Канадский доллар
CDF976Конголезский франк
CHE947Евро WIR
CHF756Швейцарский франк
CHW948Франк WIR
CLF990Унидад де фоменто
CLP152Чилийское песо
CNY156Китайский юань
COP170Колумбийское песо
COU970Единица реальной стоимости
CRC188Коста-риканский колон
CUC931Конвертируемое песо
CUP192Кубинское песо
CVE132Эскудо Кабо-Верде
CZK203Чешская крона
DJF262Франк Джибути
DKK208Датская крона
DOP214Доминиканское песо
DZD012Алжирский динар
EGP818Египетский фунт
ERN232Накфа
ETB230Эфиопский быр
EUR978Евро
FJD242Доллар Фиджи
FKP238Фунт Фолклендских островов
GBP826Фунт стерлингов
GEL981Лари
GHS936Ганский седи
GIP292Гибралтарский фунт
GMD270Даласи
GNF324Гвинейский франк
GTQ320Кетсаль
GYD328Гайанский доллар
HKD344Гонконгский доллар
HNL340Лемпира
HTG332Гурд
HUF348Форинт
IDR360Индонезийская рупия
ILS376Новый израильский шекель
INR356Индийская рупия
IQD368Иракский динар
IRR364Иранский риал
ISK352Исландская крона
JMD388Ямайский доллар
JOD400Иорданский динар
JPY392Иена
KES404Кенийский шиллинг
KGS417Сом
KHR116Риель
KMF174Коморский франк
KPW408Северокорейская вона
KRW410Вона
KWD414Кувейтский динар
KYD136Доллар Каймановых островов
KZT398Тенге
LAK418Лаосский кип
LBP422Ливанский фунт
LKR144Шри-ланкийская рупия
LRD430Либерийский доллар
LSL426Лоти
LYD434Ливийский динар
MAD504Марокканский дирхам
MDL498Молдавский лей
MGA969Малагасийский ариари
MKD807Денар
MMK104Кьят
MNT496Тугрик
MOP446Патака
MRU929Угия
MUR480Маврикийская рупия
MVR462Руфия
MWK454Малавийская квача
MXN484Мексиканское песо
MXV979Мексиканская инвестиционная единица
MYR458Малайзийский ринггит
MZN943Мозамбикский метикал
NAD516Намибийский доллар
NGN566Найра
NIO558Золотая кордоба
NOK578Норвежская крона
NPR524Непальская рупия
NZD554Новозеландский доллар
OMR512Оманский риал
PAB590Бальбоа
PEN604Соль
PGK598Кина
PHP608Филиппинское песо
PKR586Пакистанская рупия
PLN985Злотый
PYG600Гуарани
QAR634Катарский риал
RON946Румынский лей
RSD941Сербский динар
RUB643Российский рубль
RWF646Руандийский франк
SAR682Саудовский риял
SBD090Доллар Соломоновых островов
SCR690Сейшельская рупия
SDG938Суданский фунт
SEK752Шведская крона
SGD702Сингапурский доллар
SHP654Фунт Святой Елены
SLE925Леоне
SOS706Сомалийский шиллинг
SRD968Суринамский доллар
SSP728Южносуданский фунт
STN930Добра
SVC222Сальвадорский колон
SYP760Сирийский фунт
SZL748Лилангени
THB764Бат
TJS972Сомони
TMT934Новый туркменский манат
TND788Тунисский динар
TOP776Паанга
TRY949Турецкая лира
TTD780Доллар Тринидада и Тобаго
TWD901Новый тайваньский доллар
TZS834Танзанийский шиллинг
UAH980Гривна
UGX800Угандийский шиллинг
USD840Доллар США
USN997Доллар США (следующий день)
UYI940Уругвайское песо в индексируемых единицах (UI)
UYU858Уругвайское песо
UYW927Пенсионная единица
UZS860Узбекский сум
VED926Суверенный боливар
VES928Суверенный боливар
VND704Донг
VUV548Вату
WST882Тала
XAF950Франк КФА BEAC
XAG961Серебро
XAU959Золото
XBA955Единица рынка облигаций — европейская составная единица (EURCO)
XBB956Единица рынка облигаций — европейская валютная единица (E.M.U.-6)
XBC957Единица рынка облигаций — европейская расчётная единица 9 (E.U.A.-9)
XBD958Единица рынка облигаций — европейская расчётная единица 17 (E.U.A.-17)
XCD951Восточно-карибский доллар
XDR960СДР (специальные права заимствования)
XOF952Франк КФА BCEAO
XPD964Палладий
XPF953Франк КФП
XPT962Платина
XSU994Сукре
XTS963Коды, специально зарезервированные для тестирования
XUA965Расчётная единица Африканского банка развития
XXX999Коды для операций без участия валюты
YER886Йеменский риал
ZAR710Рэнд
ZMW967Замбийская квача
ZWG924Зимбабвийское золото

[03]

Названия банков

Скачать только области применения банков · JSON ↓ · Области применения банков в загрузках →

bankName может использоваться для маршрутизации, когда определения по BIN недостаточно. Уточните принимаемое значение банка у PayStar; all — документированное обобщённое значение выбора.

Доступный справочник областей применения
Область примененияВалютаДокументированное значение выбора
Любой банк и любая географияProfile-specificall
АзербайджанAZNНе предоставлено
КазахстанKZTНе предоставлено
МонголияMNTНе предоставлено
ФилиппиныPHPНе предоставлено
ПольшаPLNНе предоставлено
Республика МолдоваMDLНе предоставлено
РоссияRUBНе предоставлено
СловакияEURНе предоставлено
ТаиландTHBНе предоставлено
ТурцияTRYНе предоставлено
УкраинаUAHНе предоставлено
ВеликобританияGBPНе предоставлено
ВьетнамVNDНе предоставлено

[04]

Операторы связи

Скачать только операторов связи · JSON ↓ · Операторы связи в загрузках →

Используйте enum настроенного профиля мобильных платежей; наличие в списке не гарантирует маршрутизацию.

Каталог операторов31 запись
СтранаОператорЗначение enum
ВеликобританияVodafonevodafone-uk
ВеликобританияO2 (Telefónica)o2-uk
ВеликобританияEverything Everywhere (EE)everything-everywhere-uk
ВеликобританияTalkTalktalk-talk-uk
УкраинаKievstarkievstar-ua
УкраинаVodafon Ukrainevodafon-ua
УкраинаLifecelllifecell-ua
УкраинаIntertelecomintertelecom-ua
Республика МолдоваOrange Moldovaorange-md
Республика МолдоваMoldcellmoldcell-md
Республика МолдоваUniteunite-md
ПольшаtMobile PolandtMobile-pl
ПольшаOrange Polandorange-pl
ПольшаPlayplay-pl
ПольшаPlusplus-pl
ПольшаLykamobilelykamobile-pl
ПольшаVirginvirginMobile-pl
ВенгрияMagyar TelekommagyarTelekom-hu
ВенгрияTelenortelenor-hu
ВенгрияVodafone Hungaryvodafone-hu
СловакияT-Comt-com-sk
СловакияT-Mobilet-mobile-sk
СловакияOrange Slovenskoorange-sk
СловакияUPCupc-sk
РоссияBeelinebeeline-ru
РоссияMegafonmegafon-ru
РоссияМТСmts-ru
РоссияRostelecomrostelecom-ru
РоссияTele2tele2-ru
РоссияYotayota-ru
РоссияTinkoff Mobiletmobile-ru

[05]

Ошибки и следующие действия

Скачать только ошибки · JSON ↓ · Ошибки в загрузках →

Найдите ниже условие ответа. Каждый сценарий указан один раз: с областью применения, телом ответа при наличии и следующим действием. Сопоставляйте документированные структурированные коды, а не точный текст сообщения. Каталог не исчерпывающий.

Неуспешный ответПримеры ответов JSON
HTTP 200 · Заявка создана, обработка неуспешна

Применяется к: Пополнение P2P H2H/H2C, пополнение ECOM H2H, пополнение через готовую форму H2C, пополнение по токену, выплата.

Запрос создал заявку, но обработка завершилась неуспешно. Сохраните PayStar externalId и исходный ID заявки мерчанта. Это не отказ без создания заявки.

HTTP: 200

Заявка создана.

JSON · тело ответа 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

Новая заявка не создана.

JSON · тело ответа 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) для этого примера ответа; это не новая живая проверка каждого сценария. Только выплаты.

Новая заявка не создана.

JSON · тело ответа HTTP 422Выделите текст для копирования
{
  "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) для этого примера ответа; это не новая живая проверка каждого сценария. Создание пополнения и выплата.

Новая заявка не создана.

JSON · тело ответа HTTP 400Выделите текст для копирования
{
  "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) для этого примера ответа; это не новая живая проверка каждого сценария. Создание пополнения и выплата.

Новая заявка не создана.

JSON · тело ответа HTTP 400Выделите текст для копирования
{
  "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) для этого примера ответа; это не новая живая проверка каждого сценария. Создание пополнения и выплата.

Новая заявка не создана.

JSON · тело ответа HTTP 400Выделите текст для копирования
{
  "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 или выплаты.

JSON · тело ответа HTTP 423Выделите текст для копирования
{
  "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. Примеры из прежней документации; отличайте их от проверки настроенных полей. Запросы создания.

JSON · тело ответа HTTP 400Выделите текст для копирования
{
  "label": "VALIDATION_ERROR.",
  "message": "External_transaction_id is required property",
  "statusDescrption": "0-0000"
}
Другие документированные сообщения — та же прежняя структура ответа
  • Amount is required property
  • Currency is required property
  • currency 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. Прежний/общий справочник, а не универсальное соответствие маршрутизации. Ответ создания из прежней документации.

JSON · тело ответа 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_stage1 — PayStar
2 — создание в шлюзе
3 — готовая платёжная страница / взаимодействие пользователя
4 — опрос шлюза
B_operation_result0 — информация
1 — успех
2 — неуспех
C_payment_state0 — инициализация
1 — создано
2 — обработка
3 — успех
4 — неуспех
5 — без изменений
RR_reason_group00 — отсутствует
11..19 — техническая ошибка
21..29 — авторизация
31..39 — бизнес-условия
41..49 — риск
51..59 — пользователь
61..69 — эмитент
Примеры и частичные коды конфигурации
КодЗначение
1.1.1.00PayStar: платёж создан
2.1.1.00Шлюз: платёж создан
2.1.2.00Шлюз: обработка
4.1.3.00Опрос шлюза: платёж успешен
4.1.4.63Опрос шлюза: отказ, недостаточно средств у эмитента
2.2.4.16Смысл не установлен; сохраняйте как неизвестный.
Новый код / прежний кодКонтекст
1.2.4.18.1
1200-1-1
В конфигурации pipeline отсутствует formUrl.
1.2.4.18.2
0000-911
У endpoint не настроены pipeline/маршруты.
1.2.4.18.3
0000-2
У pipeline не настроен канал.
1.2.4.18.4
0000-180924
Некорректная конфигурация интеграции шлюза.
1.2.4.18.5
0000-4
Некорректная конфигурация реализации шлюза.

Модель истории и предупреждение о времени →

[07]

Термины интеграции

Идентификаторы, pipeline и платёжные сценарии
ТерминЗначение
PipelineКонфигурация, которой назначены ключ, доступ, маршруты, лимиты и обязательные поля.
ID мерчантаВаш исходный externalTransactionId, переданный при создании заявки.
ID PayStarexternalId, возвращённый PayStar для принятой заявки.
H2HМежсерверная интеграция; различайте профили P2P, эквайринга и оплаты по токену.
H2C / готовая платёжная формаКлиент использует готовую платёжную форму. P2P может использовать URL формы PayStar, возвращённый вместе с реквизитами; отдельный профиль готовой карточной формы отвечает за ввод карты.
CallbackНастроенное асинхронное уведомление о платеже на ваш сервер.
Операционное событиеОповещение платформы/аккаунта, отдельное от платёжного callback.
cardStorageTokenТокен сохранённой карты PayStar; не взаимозаменяем с банковским cardToken.
МаршрутизацияВыбор доступного настроенного маршрута; справочник валют не гарантирует маршрут.

[08]

Справочник схем

Файлы схем в загрузках: OpenAPI JSON · OpenAPI YAML.

Базовые схемы и утверждённые владельцем API дополнения ниже также доступны для скачивания. Ответ ECOM остаётся наблюдаемым черновиком, а не новой утверждённой схемой.

CurrencyCode
JSON SchemaВыделите текст для копирования
{
  "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
JSON SchemaВыделите текст для копирования
{
  "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
JSON SchemaВыделите текст для копирования
{
  "type": "string",
  "minLength": 1,
  "description": "Unique merchant-generated identifier used for status lookup and safe retry resolution."
}
AdditionalFieldValue
JSON SchemaВыделите текст для копирования
{
  "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
JSON SchemaВыделите текст для копирования
{
  "type": "object",
  "required": [
    "key",
    "value"
  ],
  "properties": {
    "key": {
      "type": "string",
      "minLength": 1,
      "description": "Canonical documented casing is lowerCamelCase."
    },
    "value": {
      "$ref": "#/components/schemas/AdditionalFieldValue"
    }
  }
}
BaseDepositRequest
JSON SchemaВыделите текст для копирования
{
  "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
JSON SchemaВыделите текст для копирования
{
  "title": "P2P H2H deposit request",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseDepositRequest"
    },
    {
      "type": "object",
      "required": [
        "processingRedirectUrl",
        "failedRedirectUrl",
        "successRedirectUrl"
      ]
    }
  ]
}
H2CDepositRequest
JSON SchemaВыделите текст для копирования
{
  "title": "H2C hosted-form deposit request",
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseDepositRequest"
    }
  ],
  "x-paystar-pci-rule": "Merchant must not collect card data."
}
TokenDepositRequest
JSON SchemaВыделите текст для копирования
{
  "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
JSON SchemaВыделите текст для копирования
{
  "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
JSON SchemaВыделите текст для копирования
{
  "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
JSON SchemaВыделите текст для копирования
{
  "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
JSON SchemaВыделите текст для копирования
{
  "type": "object",
  "required": [
    "externalId",
    "orderStatus",
    "formUrl"
  ],
  "properties": {
    "externalId": {
      "type": "string"
    },
    "orderStatus": {
      "type": "string",
      "enum": [
        "Init"
      ]
    },
    "formUrl": {
      "type": "string",
      "format": "uri"
    }
  }
}
TokenDepositCreateResponse
JSON SchemaВыделите текст для копирования
{
  "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
JSON SchemaВыделите текст для копирования
{
  "type": "object",
  "required": [
    "externalId",
    "orderStatus"
  ],
  "properties": {
    "externalId": {
      "type": "string"
    },
    "orderStatus": {
      "type": "string",
      "enum": [
        "Created"
      ]
    }
  }
}
OrderHistoryItem
JSON SchemaВыделите текст для копирования
{
  "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
JSON SchemaВыделите текст для копирования
{
  "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
JSON SchemaВыделите текст для копирования
{
  "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
JSON SchemaВыделите текст для копирования
{
  "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
JSON SchemaВыделите текст для копирования
{
  "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
JSON SchemaВыделите текст для копирования
{
  "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
JSON SchemaВыделите текст для копирования
{
  "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
JSON SchemaВыделите текст для копирования
{
  "type": "object",
  "required": [
    "externalId",
    "orderStatus"
  ],
  "properties": {
    "externalId": {
      "type": "string"
    },
    "orderStatus": {
      "type": "string",
      "enum": [
        "Failed"
      ]
    }
  }
}

Нужны обязательные поля, валюты или лимиты для вашего pipeline?

Уточнить профиль у Егора ↗