nestjs-yookassa
Version:
A NestJS library for integrating with YooKassa API
363 lines (362 loc) • 14.2 kB
TypeScript
import type { Amount } from './common.interface';
import type { Confirmation } from './confirmation.interface';
import type { PaymentMethod } from './payment-method.interface';
import type { ReceiptRegistrationEnum } from './receipt-details.interface';
/**
* Перечисление возможных статусов платежа.
* @enum {string}
*/
export declare enum PaymentStatusEnum {
/**
* Платеж ожидает обработки.
*/
PENDING = "pending",
/**
* Платеж ожидает захвата.
*/
WAITING_FOR_CAPTURE = "waiting_for_capture",
/**
* Платеж успешно завершен.
*/
SUCCEEDED = "succeeded",
/**
* Платеж отменен.
*/
CANCELED = "canceled"
}
/**
* Инициаторы отмены платежа.
*/
export declare enum CancellationPartyEnum {
/**
* Продавец товаров и услуг (вы).
*/
MERCHANT = "merchant",
/**
* ЮKassa.
*/
YOO_MONEY = "yoo_money",
/**
* Любые участники процесса платежа, кроме ЮKassa и продавца
* (например, эмитент, сторонний платежный сервис).
*/
PAYMENT_NETWORK = "payment_network"
}
/**
* Причины отмены платежа.
*/
export declare enum CancellationReasonEnum {
/** Не пройдена аутентификация по 3-D Secure. */
THREE_D_SECURE_FAILED = "3d_secure_failed",
/** Оплата данным платежным средством отклонена по неизвестным причинам. */
CALL_ISSUER = "call_issuer",
/** Платеж отменен по API при оплате в две стадии. */
CANCELED_BY_MERCHANT = "canceled_by_merchant",
/** Истек срок действия банковской карты. */
CARD_EXPIRED = "card_expired",
/** Запрет оплаты банковской картой, выпущенной в этой стране. */
COUNTRY_FORBIDDEN = "country_forbidden",
/** Закончился срок жизни сделки (для безопасной сделки). */
DEAL_EXPIRED = "deal_expired",
/** Истек срок списания оплаты у двухстадийного платежа. */
EXPIRED_ON_CAPTURE = "expired_on_capture",
/** Истек срок оплаты: пользователь не подтвердил платеж вовремя. */
EXPIRED_ON_CONFIRMATION = "expired_on_confirmation",
/** Платеж заблокирован из-за подозрения в мошенничестве. */
FRAUD_SUSPECTED = "fraud_suspected",
/** Причина не детализирована. */
GENERAL_DECLINE = "general_decline",
/** Превышены ограничения на платежи для кошелька ЮMoney. */
IDENTIFICATION_REQUIRED = "identification_required",
/** Не хватает денег для оплаты. */
INSUFFICIENT_FUNDS = "insufficient_funds",
/** Технические неполадки на стороне ЮKassa. */
INTERNAL_TIMEOUT = "internal_timeout",
/** Неправильно указан номер карты. */
INVALID_CARD_NUMBER = "invalid_card_number",
/** Неправильно указан код CVV2 (CVC2, CID). */
INVALID_CSC = "invalid_csc",
/** Организация, выпустившая платежное средство, недоступна. */
ISSUER_UNAVAILABLE = "issuer_unavailable",
/** Исчерпан лимит платежей для данного платежного средства или магазина. */
PAYMENT_METHOD_LIMIT_EXCEEDED = "payment_method_limit_exceeded",
/** Запрещены операции данным платежным средством. */
PAYMENT_METHOD_RESTRICTED = "payment_method_restricted",
/** Пользователь отозвал разрешение на автоплатежи. */
PERMISSION_REVOKED = "permission_revoked",
/** Нельзя заплатить с номера телефона этого мобильного оператора. */
UNSUPPORTED_MOBILE_OPERATOR = "unsupported_mobile_operator"
}
/**
* Информация об отмене платежа.
* Содержит комментарий к статусу canceled: кто отменил платеж и по какой причине.
*/
export interface CancellationDetails {
/**
* Участник процесса платежа, который принял решение об отмене транзакции.
*/
party: CancellationPartyEnum;
/**
* Причина отмены платежа.
*/
reason: CancellationReasonEnum;
}
/**
* Статусы распределения денег между магазинами.
*/
export declare enum TransferStatusEnum {
/** Ожидает обработки. */
PENDING = "pending",
/** Ожидает подтверждения списания. */
WAITING_FOR_CAPTURE = "waiting_for_capture",
/** Успешно завершено. */
SUCCEEDED = "succeeded",
/** Отменено. */
CANCELED = "canceled"
}
/**
* Операция распределения платежа — перечисление денег магазину.
*/
export interface Settlement {
/**
* Тип операции. Всегда "payout".
*/
type: 'payout';
/**
* Сумма вознаграждения продавца.
*/
amount: Amount;
/**
* Идентификатор покупателя в вашей системе,
* например электронная почта или номер телефона.
* Не более 200 символов.
* Необязательное поле.
*/
merchant_customer_id?: string;
}
/**
* Данные о сделке, в составе которой проходит платеж.
*/
interface Deal {
/**
* Идентификатор сделки.
*/
id: string;
/**
* Данные о распределении денег (массив операций).
*/
settlements: Settlement[];
}
/**
* Данные о счете, в рамках которого проведен платеж.
*/
export interface InvoiceDetails {
/**
* Идентификатор счета в ЮKassa.
* Необязательное поле.
*/
id?: string;
}
/**
* Данные о распределении денег — сколько и в какой магазин нужно перевести.
*/
export interface Transfer {
/**
* Идентификатор магазина, в пользу которого принимается оплата.
*/
account_id: string;
/**
* Сумма, которую необходимо перечислить магазину.
*/
amount: Amount;
/**
* Статус распределения денег между магазинами.
*/
status: TransferStatusEnum;
/**
* Комиссия за проданные товары и услуги, удерживаемая с магазина в вашу пользу.
* Необязательное поле.
*/
platform_fee_amount?: Amount;
/**
* Описание транзакции (не более 128 символов),
* которое продавец увидит в личном кабинете ЮKassa.
* Например: «Заказ маркетплейса №72».
* Необязательное поле.
*/
description?: string;
/**
* Дополнительные данные для вашей системы,
* передаются в виде набора пар «ключ-значение»,
* максимум 16 ключей, имя ключа не более 32 символов,
* значение ключа не более 512 символов.
* Необязательное поле.
*/
metadata?: Record<string, string>;
}
/**
* Данные о прохождении аутентификации по 3‑D Secure.
*/
export interface ThreeDSecure {
/**
* Отображение пользователю формы для прохождения аутентификации по 3‑D Secure.
* true — форма была показана пользователю,
* false — платеж проходил без аутентификации по 3‑D Secure.
*/
applied: boolean;
}
/**
* Данные об авторизации платежа при оплате банковской картой.
* Присутствуют только для способов оплаты: банковская карта, Mir Pay, SberPay, T-Pay.
*/
export interface AuthorizationDetails {
/**
* Retrieval Reference Number — идентификатор банковской транзакции.
* Необязательное поле.
*/
rrn?: string;
/**
* Код авторизации, выдается эмитентом и подтверждает проведение авторизации.
* Необязательное поле.
*/
auth_code?: string;
/**
* Данные о прохождении пользователем аутентификации по 3‑D Secure.
*/
three_d_secure: ThreeDSecure;
/**
* Данные о распределении денег — сколько и в какой магазин нужно перевести.
* Присутствует, если используется Сплитование платежей.
* Необязательное поле.
*/
transfers?: Transfer[];
/**
* Данные о сделке, в составе которой проходит платеж.
* Присутствует, если проводится Безопасная сделка.
* Необязательное поле.
*/
deal?: Deal;
/**
* Данные о выставленном счете, в рамках которого проведен платеж.
* Необязательное поле.
*/
invoice_details?: InvoiceDetails;
}
/**
* Тип, представляющий информацию о платеже.
*/
export interface PaymentDetails {
/**
* Идентификатор платежа.
*/
id: string;
/**
* Статус платежа.
*/
status: PaymentStatusEnum;
/**
* Сумма платежа.
*/
amount: Amount;
/**
* Сумма, полученная от платежа.
* Необязательное поле.
*/
income_amount?: Amount;
/**
* Описание платежа.
* Необязательное поле.
*/
description?: string;
/**
* Информация о получателе платежа.
*/
recipient: {
/**
* Идентификатор аккаунта получателя.
*/
account_id: string;
/**
* Идентификатор шлюза получателя.
*/
gateway_id: string;
};
/**
* Метод платежа.
* Необязательное поле.
*/
payment_method?: PaymentMethod;
/**
* Время захвата платежа.
* Необязательное поле.
*/
captured_at?: string;
/**
* Время создания платежа.
*/
created_at: string;
/**
* Время истечения срока действия платежа.
* Необязательное поле.
*/
expires_at?: string;
/**
* Подтверждение платежа.
* Необязательное поле.
*/
confirmation?: Confirmation;
/**
* Является ли платеж тестовым.
*/
test: boolean;
/**
* Сумма возврата, если она есть.
* Необязательное поле.
*/
refunded_amount?: Amount;
/**
* Был ли платеж произведен.
*/
paid: boolean;
/**
* Может ли платеж быть возвращен.
*/
refundable: boolean;
/**
* Статус регистрации чека.
* Необязательное поле.
*/
receipt_registration?: ReceiptRegistrationEnum;
/**
* Дополнительные метаданные платежа.
* Необязательное поле.
*/
metadata?: object;
/**
* Информация об отмене платежа.
* Необязательное поле.
*/
cancellation_details?: CancellationDetails;
/**
* Данные об авторизации платежа при оплате банковской картой.
* Присутствуют только для способов оплаты: банковская карта, Mir Pay, SberPay, T-Pay.
* Необязательное поле.
*/
authorization_details?: AuthorizationDetails;
/**
* Данные о распределении денег — сколько и в какой магазин нужно перевести.
* Необязательное поле.
*/
transfers?: Transfer;
/**
* Данные о сделке, в составе которой проходит платеж.
* Необязательное поле.
*/
deal?: Deal;
/**
* Идентификатор покупателя в вашей системе, например электронная почта или номер телефона.
* Необязательное поле.
*/
merchant_customer_id?: string;
}
export {};