nestjs-yookassa
Version:
A NestJS library for integrating with YooKassa API
276 lines (275 loc) • 10.3 kB
TypeScript
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 {};