Кодекс · III

Статусы и возвраты

Статусы транзакций

У каждой строки транзакции в панели есть один из этих статусов. Статус отражает самое недавнее событие для этой транзакции; возвраты и споры обновляют существующую строку, а не вставляют соседнюю.

СтатусЗначение
succeededПлатёж завершён. Деньги на вашем счёте (за вычетом комиссий провайдера).
pendingПлатёж в пути. Часто встречается с асинхронными способами оплаты (ACH, некоторые крипто-способы), где подтверждение занимает от минут до часов.
failedПлатёж не завершился: карта отклонена, истёкшая авторизация, жёсткий отказ. Деньги не двигались.
partialПокупатель заплатил меньше, чем выставлено (часто, когда крипто-покупатель отправляет сумму, уменьшенную на сетевую комиссию). Поле amount строки отражает то, что фактически получено; смотрите metadata.invoicedAmount для того, что было запрошено.
refundedДеньги возвращены покупателю, полностью или частично. Поле amount строки, это возвращённая сумма; возвраты могут происходить через дни или недели после исходного платежа.
disputedПокупатель (или его банк) открыл спор или возвратный платёж. Смотрите интерфейс провайдера для окна ответа. Поле metadata.reason строки несёт классификацию провайдера дословно.
pending_manualТранзакция с оплатой по почте ожидает вашего физического подтверждения. Смотрите следующий раздел.
manual_canceledВы нажали «Отменить» на ожидающей строке оплаты по почте, прежде чем платёж покупателя пришёл.
manual_expiredОжидающая строка оплаты по почте простояла 30 дней без подтверждения и истекла автоматически.
manual_revokedВы подтвердили получение платежа по почте, но позже отменили подтверждение (например, платёж оказался недействительным). Строка перемещается из succeeded обратно в это завершающее состояние.

Возвраты, споры, частичные платежи

Coin Moebius слушает эти события провайдера и обновляет исходную строку транзакции в панели. В частности:

  • Возвраты: событие charge.refunded от Stripe (полные или частичные возвраты, включая amount_refunded, чтобы частичные возвраты показывали возвращённую долю). IPN refunded от NOWPayments. Статус строки переключается на refunded, поле amount отражает возвращённую сумму, а metadata.originalChargeId / metadata.originalAmount несут контекст исходного платежа.
  • Споры (возвратные платежи): событие charge.dispute.created от Stripe. Статус строки переключается на disputed. Заявленная провайдером причина проходит в metadata.reason дословно, вы можете отрисовать её в собственном интерфейсе как угодно.
  • Частичные платежи: IPN partially_paid от NOWPayments. Статус строки переключается на partial. Поле amount отражает то, что фактически получено (actually_paid); metadata.invoicedAmount, это то, что было запрошено.

В v1 эти события выводятся в панели и через эндпоинт /status. Будущий релиз добавит уведомления по почте и исходящий пересылатель вебхуков, чтобы ваш собственный сервер мог реагировать автоматически. Пока настройте небольшую задачу опроса (см. следующий раздел) или проверяйте панель.

Готовы всё подключить?

Бесплатный тариф покрывает большинство сайтов и никогда не просит карту.