1. CRYPTO-PROCESSING
Rapira
  • Введение
  • JWT
    • Инструкция по созданию JWT
    • Generate JWT
      POST
  • CRYPTO MERCHANT
    • Адреса
      • Get address by currency
      • Create address by currency
      • Get address details by id
      • Get address list by currency
      • Start use address
      • Stop use address
    • Пополнения
      • Get deposits
  • MARKET
    • Get spot fees
      GET
    • Pairs
      GET
    • Token
      GET
    • Get rates JSON
      GET
    • Get rates XML
      GET
    • Get market depth
      POST
  • BALANCE
    • Get frozen balances
      GET
    • Get balance operations coins and types
      GET
    • Get balance operations
      POST
    • Get frozen balances detailed
      GET
    • Get Balances
      GET
  • SERVER TIME
    • Get server time
      GET
  • ORDER
    • Order history
      GET
    • Order details
      GET
    • Add exchange order
      POST
    • Cancel order
      POST
  • CRYPTO PAYOUT
    • Withdraw
      • Withdraw create
      • Withdraw crypto history Record
      • Withdraw crypto history
  • FIAT PAYOUT
    • Fiat
      • Withdraw fiat history
      • Withdraw fiat history Record
    • FIAT TRANSACTION
      • Fiat Transactions
      • Fiat Withdraw For Record
  • AML
    • AML balance
    • Recheck
    • Check address
    • Check transaction
  • rCode
    • Create rCode
    • rCode withdraw history
    • rCode deposit history
    • rCode details
    • Use rCode
  • OTC
    • Введение в OTC
    • Get payment types
    • Get my ads
    • Create ad
    • Update ad
    • Publish ad
    • Unpublish ad
    • Get offers
    • Fetch ads
    • Get order detail
    • Create order
    • Accept order
    • Decline order
    • Cancel order
    • Chat-history
    • Chat history page query
    • Pay order
    • Release order
    • Cancel appeal
    • Get order history
    • Create appeal
    • Send message
  • CRYPTO-PROCESSING
    • Введение
    • Создание проекта
    • Настройка проекта
    • Работа с инвойсами
    • Projects Settings
      • Get Invoices (Paginated)
      • Set deposit return address
      • Get Available Token Settings
      • Get Project Token Settings
      • Update Project Token Settings
      • Batch Update Project Token Settings
      • Get Projects
      • Edit Project
    • Invoice
      • Available Invoice Currencies
      • Create Invoice
      • Get Invoice
      • Get Available Payment Tokens for Invoice
      • Get Payment Address for Invoice
      • Manual Complete Undepaid Invoice
  • Schemas
    • CryptoProcessing
      • CryptoInvoice
      • CryptoPaymentQuote
      • CryptoDeposit
      • ProjectProcessingTokenSetting
      • ProjectProcessingTokenSettingEditRequest
      • ProjectResponse
  1. CRYPTO-PROCESSING

Работа с инвойсами

После настройки проекта Proccesing, вы можете начинать обрабатывать платежи. В этом материале мы расскажем о процессе выставлении и обработки счетов, а также некоторые нюансы в работе

Можно выделить следующий процесс обработки платежа:
1
Выставление платежного поручения (Invoice)
2
Отправка реквизитов для оплаты
3
Обработка платежа

Шаг №1. Создание Invoice#

Получение валюты инвойса#

Перед началом работы с инвойсами, необходимо понять, в каких валютах вы можете выставить платежное поручение.
При помощи данного метода вы получаете список доступных валют. Речь идет не о валюте оплаты, а о валюте платежного поручения.
Available Invoice Currencies
Пример:
В вашем интернет-магазине покупатель выбрал товар с ценой в USD
Вам необходимо выставить счет в долларах, далее пользователь оплатит счет в нужном ему активе, сконвертированном к валюте счета (инвойса)
Т. е. валюта инвойса может быть как фиатной, так и криптовалютой.

Создание Invoice#

С помощью данного метода вы можете создать Invoice, указав сумму и валюту поручения, срок его оплаты, а также доступные токены для оплаты
Create Invoice

Шаг №2. Получение реквизитов для оплаты инвойса#

Получение доступных способов оплаты#

Метод возвращает доступные токены оплаты для конкретного инвойса, сгруппированные по сетям.
Get Available Payment Tokens for Invoice
Он нужен, чтобы:
понять, какие способы оплаты доступны именно для этого инвойса;
показать пользователю список доступных сетей и токенов для оплаты;
понять, сколько времени дается на каждый способ оплаты.
Если при создании инвойса вы ограничили его одним токеном, для пользователя возможен один вариант оплаты.
Это значит:
не нужно показывать пользователю список токенов при помощи метода;
можно сразу переходить к получению адреса оплаты для единственного токена при помощи метода ниже ⬇️

Получение адреса для оплаты#

Возвращает платёжный адрес и параметры оплаты для указанного инвойса и выбранного платёжного токена:
Get Payment Address for Invoice
Важно!
адрес выдаётся для конкретного инвойса и конкретного токена;
один адрес может переиспользоваться системой позже, но не может одновременно участвовать в нескольких активных инвойсах;
для активного инвойса адрес безопасно связан именно с ним;
каждый способ оплаты имеет своё время жизни, по его истечению в этом инвойсе нельзя будет воспользоваться этим способом оплаты.

Шаг №3. Обработка платежа#

Получение инвойса#

Получить один инвойс
Возвращает информацию об инвойсе по его идентификатору. Позволяет получить текущий статус инвойса, доступные варианты оплаты, а также связанные депозиты.
Get Invoice
Получить историю инвойсов
Возвращает список инвойсов в виде массива с поддержкой пагинации и фильтрации. Позволяет фильтровать результаты по проектам, сумме, валюте, статусу, транзакциям и времени создания.
Get Invoices (Paginated)

Возврат проблемных депозитов#

Rapira не работает с транзакциями сомнительного происхождения, не прошедших проверку AML!
Если по инвойсу обнаружен проблемный депозит и инвойс получил статус REJECT, нужно указать адрес возврата.
Для проведения возврата грязного депозита используется метод:
Set deposit return address
Алгорит действий следующий:
1.
Найти инвойс через Get Invoice или Get Invoices (Paginated), либо при помощи Webhook-уведомления;
2.
Посмотреть связанные депозиты;
3.
Запросить у покупателя адрес для проведения возврата;
4.
Взять нужный депозит и указать адрес возврата в методе.

Пояснение к полям инвойса и статусов#

Что такое amounts и selectedAmount#

amounts
Это список подготовленных вариантов оплаты по инвойсу.
Каждый вариант содержит:
адрес;
токен;
сеть;
сумму;
курс;
параметры подтверждения;
дата истечения.
selectedAmount
Это не просто “последний выбранный вариант”.
Это тот вариант оплаты, в котором фактически была произведена оплата.
Пример:
инвойс выставлен на 1000 USD;
пользователь выбрал TRX_USDT;
отправил 900 USDT;
тогда selectedAmount будет указывать именно на TRX_USDT.
⚠️ Если потом пользователь будет доплачивать остаток, это нужно делать в тот же вариант оплаты.

Таймаут оплаты#

Поле timeToPayMinutes — это время жизни инвойса, задаваемое магазином.
В рамках этого времени пользователь может выбирать и оплачивать доступные способы оплаты.
Важно
Разные способы оплаты могут иметь разное время доступности.
Это означает:
способ оплаты может стать недоступным раньше, чем закончится время инвойса;
после этого пользователь может выбрать другой
Как это работает
инвойс живёт в течение timeToPayMinutes;
каждый способ оплаты доступен ограниченное время (зависит от сети), см показатель expireTimestamp;
если время способа оплаты истекло:
он больше не отображается;
выбрать его повторно нельзя;
при этом сам инвойс может оставаться активным.

Описание статусов инвойсов#

Ниже представлена статусная модель инвойсов и других его сущностей. Разберем подробнее

Статусная модель инвойса делится на 3 уровня:
1
Статусы инвойса (invoice.status)
Это статус самого платежного поручения (документа)
2
Статусы оплаты (paymentStatus)
Это статус оплаты платежного поручения
3
Статусы депозита (depositStatus)
Статус депозита (транзации оплаты)
Что означают эти статусы:

Статусы инвойса (invoice.status)#

UNPAID — оплаты ещё не было;
PENDING_DEPOSIT — депозит получен, но ещё не завершён;
SUCCESS — инвойс успешно завершён;
CANCEL — инвойс завершён по таймауту;
REJECT — по инвойсу обнаружен грязный депозит, требуется указать адрес возврата;
RETURNED — средства возвращены пользователю, появляется после статуса REJECT
Пояснения по статусам инвойса:
✅ Финальный успешный статус — только SUCCESS.
Не нужно считать успешной оплату только потому, что:
депозит (deposit.status) получил статус SUCCESS;
сумма была оплачена точно;
пришёл webhook без повторной проверки API.
Итоговый успех определяется только invoice.status = SUCCESS.
🔄 Промежуточное состояние
UNPAID - депозит не был отправлен
PENDING_DEPOSIT - депозит был отправлен, но находится в обработке блокчейном или отправлена не полная сумма
⚠️ Промежуточное проблемное состояние
REJECT - появляется в случае нахождения проблем при AML-проверке. При получении этого статуса, нужно указать адрес возврата средств (см. метод ниже)
❗ Финальные неуспешные состояния
CANCEL* - появляется, если платежное поручение не было оплачено в установленный срок;
RETURNED - появляется после возврата грязного депозита (то есть после статуса REJECT)

Late deposit (поздний депозит)*#

Для сетей с уникальными адресами (UNIQUE) поддерживается обработка поздних депозитов:
Если депозит поступает после завершения инвойса (status = CANCEL), применяется следующая логика:
если депозит однозначно соответствует ранее выданному адресу и платёжному контексту (CryptoPaymentQuote),то инвойс может быть переведён из CANCEL в:
SUCCESS — при успешной проверке;
REJECT — при негативном результате проверки (например, AML).
⚠️ Ограничения
применяется только для стратегий без переиспользования адресов (UNIQUE);
допускается только при отсутствии конкурирующих платёжных контекстов для этого адреса;
для сетей с переиспользованием адресов (ONLY_USER, FULL_SHARING) автоматический late matching не выполняется.
🎯 Назначение
компенсировать задержки сети (например, долгий выход блока);
не терять корректные платежи пользователя

Статусы оплаты (paymentStatus)#

NONE — оплаты не было;
UNDERPAID — недоплата;
EXACT — точная оплата;
OVERPAID — переплата.
Пояснения по статусам оплаты:
✅ Успешная оплата:
EXACT — точная оплата
OVERPAID — переплата, излишки суммы уходят проекту
в таком случае, инвойс получает invoice.status = SUCCESS
🔄 Промежуточное состояние:
UNDERPAID - пользователь оплатил не полную сумму, но может оплатить остаток
Если после доплаты общая сумма стала достаточной, инвойс может перейти в SUCCESS , если не успеет оплатить, то invoice.status = CANCEL
NONE — оплаты не было, но ожидается поступление. invoice.status = CANCEL появляется в случае отсутствия оплаты в срок
Важный нюанс
Если пользователь начал платить в определённом токене, дальнейшая доплата должна идти в тот же выбранный способ оплаты! Для этого и используется selectedAmount.

Статусы депозита (depositStatus)#

MEMPOOL — транзакция замечена в мемпуле;
PENDING_CONFIRMATION — ожидаются подтверждения сети;
PENDING_AML — ожидается AML-проверка;
MANUAL — депозит отправлен на ручную проверку;
SUCCESS — депозит успешно зачислен;
REJECT — депозит признан проблемным и подлежит возврату;
RETURNED — проблемный депозит возвращён;
CANCEL — технически существует, но практически не используется.
Если депозит получает depositStatus = REJECT после AML-проверки, то invoice.status = REJECT
После проведение возврата средств (см. метод ниже), depositStatus = RETURNED статус инвойса становится invoice.status = RETURNED

В этом материале мы подробно рассказали, как использовать API Rapira в проекте Crypto Processing.
Если у вас есть пожелания по улучшению документации - ждем сообщений в поддержке на сайт или Telegram. Все идеи внимательно проанализируем и оперативно внесем изменения :)
Modified at 2026-04-03 00:08:45
Previous
Настройка проекта
Next
Get Invoices (Paginated)
Built with