Parallel

Заявка на приём

Создание заявки, способ получения чека, статусы и сроки, отмена

Создать заявку

POST/api/v2/invoices
curl -X POST https://api.parallel-pay.com/api/v2/invoices \
  -H "Authorization: Bearer $PARALLEL_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "internal_id": "order-1001",
    "direction": "IN",
    "amount": "1000",
    "currency": "RUB",
    "method": "SBP",
    "receipt_delivery": "UPLOAD"
  }'

HTTP Status: 201 Created

{
  "internal_id": "order-1001",
  "invoice_id": "cm3k8x7y80001z8j4k5m6n7o8",
  "direction": "IN",
  "created_at": "2026-11-09T12:00:00+03:00",
  "updated_at": "2026-11-09T12:00:00+03:00",
  "amount": "1000",
  "currency": "RUB",
  "deal_rate": "95.5",
  "requisites": {
    "bank": "sberbank",
    "bank_name": "Сбербанк",
    "full_name": "Ivan I.",
    "method": "SBP",
    "phone_number": "+79001234567"
  },
  "attachments": [],
  "receipt_delivery": "UPLOAD",
  "status": "IN_PROGRESS",
  "pay_until": "2026-11-09T12:15:00+03:00"
}

Покажите клиенту requisites: банк, имя получателя и телефон или номер карты. Клиент должен заплатить до pay_until.

Параметры

Поле

Тип

Коды банков для bank — из GET /api/v2/banks.

Повторный запрос

Повторный запрос с тем же internal_id вернёт ту же заявку с кодом 200 OK. Новой заявки он не создаст. В первый раз ответ — 201 Created. Поэтому после обрыва связи или ответа 503 смело повторяйте запрос с тем же internal_id.

Ошибки при создании

HTTPcodeЧто делать
400VALIDATION_ERRORИсправьте тело запроса: подробности в message
403RECEIPT_DELIVERY_DISABLEDЭтот receipt_delivery не подключён магазину. Подключённые — в in.receipt_delivery из GET /api/v2/sla
503NO_REQUISITESСейчас нет реквизитов на эту сумму. Повторите позже с тем же internal_id
503UNAVAILABLEВременный сбой. Повторите позже с тем же internal_id

Как к нам попадёт чек

receipt_delivery обязателен: от него зависят поля ответа и путь заявки.

UPLOADEMAIL
Откуда платит клиентИз любого банкаТолько из приложения Т-Банка
Как приходит чекВы загружаете файл: Чеки и допыКлиент отправляет чек из приложения Т-Банка на receipt_email
Что показать клиентуРеквизитыРеквизиты и payer_warning
Доп и финансовая ответственностьЕсть, если подключены магазинуНет: чек с почты присылает сам Т-Банк
Если чек не подтвердил оплатуPROOF_REQUIRED: нужен допСнова IN_PROGRESS: клиент может прислать другой чек до pay_until

Какие способы подключены вашему магазину — в in.receipt_delivery из GET /api/v2/sla.

Заявка с чеком на почту

В ответе на заявку с "receipt_delivery": "EMAIL" есть receipt_email и payer_warning. Пример — оплата на карту:

HTTP Status: 201 Created

{
  "internal_id": "order-1002",
  "invoice_id": "cm3k8z1a20003z8j4b5c6d7e8",
  "direction": "IN",
  "created_at": "2026-11-09T12:00:00+03:00",
  "updated_at": "2026-11-09T12:00:00+03:00",
  "amount": "1000",
  "currency": "RUB",
  "deal_rate": "95.5",
  "requisites": {
    "bank": "tbank",
    "bank_name": "Т-Банк",
    "full_name": "Ivan I.",
    "method": "TO_CARD",
    "card_number": "2200700012345673"
  },
  "attachments": [],
  "receipt_delivery": "EMAIL",
  "receipt_email": "inbox+k7m9q2@example.com",
  "payer_warning": "Оплачивайте только из приложения Т-Банка. После оплаты отправьте чек из приложения на inbox+k7m9q2@example.com: без него оплата не зачтётся.",
  "status": "IN_PROGRESS",
  "pay_until": "2026-11-09T12:15:00+03:00"
}

Покажите клиенту текст payer_warning рядом с реквизитами. Почта receipt_email своя у каждой заявки.

Узнать состояние заявки

GET/api/v2/invoices/{invoice_id}
curl https://api.parallel-pay.com/api/v2/invoices/cm3k8x7y80001z8j4k5m6n7o8 \
  -H "Authorization: Bearer $PARALLEL_TOKEN"

Ответ — заявка целиком, в том же виде, что в ответе на создание и в теле вебхука. Запрашивайте её, если вебхук не дошёл или вебхук ещё не настроен.

Статусы

Статус показывает, чей сейчас ход. У каждого статуса, где ход за кем-то, есть свой срок.

СтатусЧей ходСрок
IN_PROGRESSКлиента: заплатить и прислать чекpay_until
REVIEWНаш: проверить файлыreview_until
PROOF_REQUIREDВаш: прислать доп — видео оплаты — или взять финансовую ответственность. Только у UPLOADproof_until
PAIDНичей: оплачена, USDT на балансе—
DISPUTEНаш: разбираем спорСрок не обещаем
REVERSEDНичей: зачисление отменено по спору—
EXPIREDНичей: срок вышел. Статус окончательный—
CANCELEDНичей: заявка отменена. Статус окончательный—

Обычный путь: IN_PROGRESS → REVIEW → PAID.

Переходы

ИзЧто произошлоВ
IN_PROGRESSВы загрузили файл или чек пришёл на почтуREVIEW
IN_PROGRESSВышел pay_untilEXPIRED
IN_PROGRESSВы отменили заявку, файлов по ней нетCANCELED
НеоплаченнаяParallel отменил заявкуCANCELED
REVIEWФайл прошёл проверкуPAID
REVIEWВсе файлы не прошли проверкуPROOF_REQUIRED
PROOF_REQUIREDВы загрузили файл, например видео оплатыREVIEW
PROOF_REQUIREDВышел proof_untilEXPIRED
IN_PROGRESS, REVIEW, PROOF_REQUIREDВы взяли финансовую ответственностьPAID
PAIDParallel открыл спор: денег пришло меньше, чем зачтеноDISPUTE
DISPUTEСпор решён, на реквизиты что-то пришлоPAID с paid_amount = сколько пришло
DISPUTEСпор решён, не пришло ничегоREVERSED

Сколько зачислено

У PAID есть paid_amount — сколько рублей зачтено. Он бывает меньше amount: если клиент заплатил меньше, заявку зачитываем на сумму из чека. На баланс зачисляется paid_amount / deal_rate USDT.

Сроки

  • IN_PROGRESS после pay_until → EXPIRED.
  • PROOF_REQUIRED после proof_until → EXPIRED.
  • EXPIRED и CANCELED — окончательные статусы. Оплата, пришедшая позже, их не меняет.

Сколько минут длится каждый срок у вашего магазина — в pay_minutes, review_minutes и proof_minutes из GET /api/v2/sla.

Отменить заявку

POST/api/v2/invoices/{invoice_id}/cancel

Отменить можно заявку в статусе IN_PROGRESS, по которой ещё нет ни одного файла. Тела у запроса нет.

curl -X POST https://api.parallel-pay.com/api/v2/invoices/cm3k8x7y80001z8j4k5m6n7o8/cancel \
  -H "Authorization: Bearer $PARALLEL_TOKEN"

Ответ — заявка в статусе CANCELED:

{
  "internal_id": "order-1001",
  "invoice_id": "cm3k8x7y80001z8j4k5m6n7o8",
  "direction": "IN",
  "created_at": "2026-11-09T12:00:00+03:00",
  "updated_at": "2026-11-09T12:03:00+03:00",
  "amount": "1000",
  "currency": "RUB",
  "deal_rate": "95.5",
  "requisites": {
    "bank": "sberbank",
    "bank_name": "Сбербанк",
    "full_name": "Ivan I.",
    "method": "SBP",
    "phone_number": "+79001234567"
  },
  "attachments": [],
  "receipt_delivery": "UPLOAD",
  "status": "CANCELED",
  "canceled_at": "2026-11-09T12:03:00+03:00",
  "cancellation": {
    "code": "CANCELED_BY_MERCHANT",
    "message": "Заявку отменил магазин"
  }
}

В другом статусе или если по заявке уже есть файл:

HTTP Status: 409 Conflict

{
  "error": {
    "code": "INVALID_STATUS",
    "message": "Отменить можно только заявку в статусе IN_PROGRESS без файлов"
  }
}

Отмена с нашей стороны

Parallel может отменить неоплаченную заявку сам. Тогда придёт вебхук со статусом CANCELED, а причина будет в cancellation.code:

  • REQUISITES_NOT_WORKING — реквизиты не принимают перевод. Иногда прикладываем скриншот: file_name и file_url;
  • OTHER — другая причина, подробности в message.

Пример поля cancellation:

{
  "code": "REQUISITES_NOT_WORKING",
  "message": "Банк получателя не принимает переводы на эти реквизиты",
  "file_name": "screenshot.png",
  "file_url": "https://files.parallel-pay.com/cancellations/cm3k8x7y80001z8j4k5m6n7o8/screenshot.png"
}

Объект заявки

Заявка приходит в ответе на создание, на GET, на действия с заявкой и в теле вебхука. Она складывается из трёх частей: общие поля, поля способа получения чека и поля статуса.

Общие поля

Поле

Тип

Реквизиты: СБП

Поле

Тип

Реквизиты: перевод на карту

Поле

Тип

Поля UPLOAD

Поле

Тип

Поля EMAIL

Поле

Тип

Поля статуса

IN_PROGRESS:

Поле

Тип

REVIEW:

Поле

Тип

PROOF_REQUIRED:

Поле

Тип

PAID:

Поле

Тип

DISPUTE — поле dispute описано на странице Споры:

Поле

Тип

REVERSED:

Поле

Тип

EXPIRED:

Поле

Тип

CANCELED:

Поле

Тип

Поле

Тип

На этой странице