UNPKG

nestjs-yookassa

Version:

A NestJS library for integrating with YooKassa API

276 lines (275 loc) 10.3 kB
import type { Amount } from '../../../../common/interfaces'; import type { ReceiptRegistrationEnum } from '../../../receipt/enums'; import type { CancellationPartyEnum, CancellationReasonEnum, PaymentStatusEnum } from '../../enums'; import type { PaymentMethod } from '../payment-method.interface'; import type { ConfirmationResponse } from './confirmation.response'; import type { YookassaMetadata } from '../../../../common/types/metadata.type'; /** * Информация об отмене платежа. * Содержит комментарий к статусу canceled: кто отменил платеж и по какой причине. */ export interface CancellationDetails { /** * Участник процесса платежа, который принял решение об отмене транзакции. */ party: CancellationPartyEnum; /** * Причина отмены платежа. */ reason: CancellationReasonEnum; } /** * Статусы распределения денег между магазинами. */ export declare enum TransferStatusEnum { /** Ожидает обработки. */ PENDING = "pending", /** Ожидает подтверждения списания. */ WAITING_FOR_CAPTURE = "waiting_for_capture", /** Успешно завершено. */ SUCCEEDED = "succeeded", /** Отменено. */ CANCELED = "canceled" } /** * Операция распределения платежа — перечисление денег магазину. */ interface Settlement { /** * Тип операции. Всегда "payout". */ type: 'payout'; /** * Сумма вознаграждения продавца. */ amount: Amount; /** * Идентификатор покупателя в вашей системе, * например электронная почта или номер телефона. * Не более 200 символов. * Необязательное поле. */ merchant_customer_id?: string; } /** * Данные о сделке, в составе которой проходит платеж. */ interface Deal { /** * Идентификатор сделки. */ id: string; /** * Данные о распределении денег (массив операций). */ settlements: Settlement[]; } /** * Данные о распределении денег — сколько и в какой магазин нужно перевести. */ export interface Transfer<T extends YookassaMetadata = YookassaMetadata> { /** * Идентификатор магазина, в пользу которого принимается оплата. */ account_id: string; /** * Сумма, которую необходимо перечислить магазину. */ amount: Amount; /** * Статус распределения денег между магазинами. */ status: TransferStatusEnum; /** * Комиссия за проданные товары и услуги, удерживаемая с магазина в вашу пользу. * Необязательное поле. */ platform_fee_amount?: Amount; /** * Описание транзакции (не более 128 символов), * которое продавец увидит в личном кабинете ЮKassa. * Например: «Заказ маркетплейса №72». * Необязательное поле. */ description?: string; /** * Дополнительные данные для вашей системы, * передаются в виде набора пар «ключ-значение», * максимум 16 ключей, имя ключа не более 32 символов, * значение ключа не более 512 символов. * Необязательное поле. */ metadata?: T; } /** * Данные о прохождении аутентификации по 3‑D Secure. */ export interface ThreeDSecure { /** * Отображение пользователю формы для прохождения аутентификации по 3‑D Secure. * true — форма была показана пользователю, * false — платеж проходил без аутентификации по 3‑D Secure. */ applied: boolean; } /** * Данные об авторизации платежа при оплате банковской картой. * Присутствуют только для способов оплаты: банковская карта, Mir Pay, SberPay, T-Pay. */ export interface AuthorizationDetails<T extends YookassaMetadata = YookassaMetadata> { /** * Retrieval Reference Number — идентификатор банковской транзакции. * Необязательное поле. */ rrn?: string; /** * Код авторизации, выдается эмитентом и подтверждает проведение авторизации. * Необязательное поле. */ auth_code?: string; /** * Данные о прохождении пользователем аутентификации по 3‑D Secure. */ three_d_secure: ThreeDSecure; /** * Данные о распределении денег — сколько и в какой магазин нужно перевести. * Присутствует, если используется Сплитование платежей. * Необязательное поле. */ transfers?: Transfer<T>[]; /** * Данные о сделке, в составе которой проходит платеж. * Присутствует, если проводится Безопасная сделка. * Необязательное поле. */ deal?: Deal; /** * Данные о выставленном счете, в рамках которого проведен платеж. * Необязательное поле. */ invoice_details?: { /** * Идентификатор счета в ЮKassa. * Необязательное поле. */ id?: string; }; } /** * Тип, представляющий информацию о платеже. */ export interface CreatePaymentResponse<T extends YookassaMetadata = YookassaMetadata> { /** * Идентификатор платежа. */ id: string; /** * Статус платежа. */ status: PaymentStatusEnum; /** * Сумма платежа. */ amount: Amount; /** * Сумма, полученная от платежа. * Необязательное поле. */ income_amount?: Amount; /** * Описание платежа. * Необязательное поле. */ description?: string; /** * Информация о получателе платежа. */ recipient: { /** * Идентификатор аккаунта получателя. */ account_id: string; /** * Идентификатор шлюза получателя. */ gateway_id: string; }; /** * Метод платежа. * Необязательное поле. */ payment_method?: PaymentMethod<T>; /** * Время захвата платежа. * Необязательное поле. */ captured_at?: string; /** * Время создания платежа. */ created_at: string; /** * Время истечения срока действия платежа. * Необязательное поле. */ expires_at?: string; /** * Подтверждение платежа. * Необязательное поле. */ confirmation?: ConfirmationResponse; /** * Является ли платеж тестовым. */ test: boolean; /** * Сумма возврата, если она есть. * Необязательное поле. */ refunded_amount?: Amount; /** * Был ли платеж произведен. */ paid: boolean; /** * Может ли платеж быть возвращен. */ refundable: boolean; /** * Статус регистрации чека. * Необязательное поле. */ receipt_registration?: ReceiptRegistrationEnum; /** * Дополнительные метаданные платежа. * Необязательное поле. */ metadata?: T; /** * Информация об отмене платежа. * Необязательное поле. */ cancellation_details?: CancellationDetails; /** * Данные об авторизации платежа при оплате банковской картой. * Присутствуют только для способов оплаты: банковская карта, Mir Pay, SberPay, T-Pay. * Необязательное поле. */ authorization_details?: AuthorizationDetails<T>; /** * Данные о распределении денег — сколько и в какой магазин нужно перевести. * Необязательное поле. */ transfers?: Transfer<T>; /** * Данные о сделке, в составе которой проходит платеж. * Необязательное поле. */ deal?: Deal; /** * Идентификатор покупателя в вашей системе, например электронная почта или номер телефона. * Необязательное поле. */ merchant_customer_id?: string; } export {};