UNPKG

nestjs-yookassa

Version:

A NestJS library for integrating with YooKassa API

299 lines (298 loc) 10.1 kB
import type { Amount } from './common.interface'; /** * Тип для метода оплаты, который может быть одним из нескольких типов. * @type {PaymentMethodSberLoan | PaymentMethodMobileBalance | PaymentMethodCard | PaymentMethodCash | PaymentMethodSbp | PaymentMethodB2bSberbank | PaymentMethodElectronicСertificate | PaymentMethodYooMoney | PaymentMethodSberbank | PaymentMethodTinkoffBank} */ export type PaymentMethod = PaymentMethodSberLoan | PaymentMethodMobileBalance | PaymentMethodCard | PaymentMethodCash | PaymentMethodSbp | PaymentMethodB2bSberbank | PaymentMethodElectronicСertificate | PaymentMethodYooMoney | PaymentMethodSberbank | PaymentMethodTinkoffBank; /** * Перечисление возможных методов оплаты. * Каждый метод оплаты представлен уникальным типом. * @enum {string} */ export declare enum PaymentMethodsEnum { /** * «Покупки в кредит» от СберБанка */ sber_loan = "sber_loan", /** * Баланс мобильного телефона */ mobile_balance = "mobile_balance", /** * Банковская карта */ bank_card = "bank_card", /** * Наличные */ cash = "cash", /** * Система быстрых платежей */ sbp = "sbp", /** * B2B Сбербанк */ b2b_sberbank = "b2b_sberbank", /** * Электронный сертификат */ electronic_certificate = "electronic_certificate", /** * YooMoney */ yoo_money = "yoo_money", /** * Сбербанк */ sberbank = "sberbank", /** * Альфа-Банк */ alfabank = "alfabank", /** * Тинькофф Банк */ tinkoff_bank = "tinkoff_bank" } export interface PaymentMethodSberLoan { /** * Тип метода — «Покупки в кредит» от СберБанка */ type: PaymentMethodsEnum.sber_loan; } /** * Тип, представляющий способ оплаты через баланс мобильного телефона. */ export interface PaymentMethodMobileBalance { /** * Тип метода — мобильный баланс */ type: PaymentMethodsEnum.mobile_balance; /** * Номер телефона, с которого будет списана сумма. * Указывается в формате ITU-T E.164, например 79000000000. */ phone: string; } /** * Тип, представляющий способ оплаты с использованием банковской карты. */ export interface PaymentMethodCard { /** * Тип метода — банковская карта */ type: PaymentMethodsEnum.bank_card; /** * Данные банковской карты (необходимы, если вы собираете данные карты пользователей на своей стороне). */ card?: { /** * Номер карты. */ number: string; /** * Год истечения срока действия карты. * Необязательное поле. */ expiry_year?: string; /** * Месяц истечения срока действия. */ expiry_month: string; /** * Имя владельца карты. * Необязательное поле. */ cardholder?: string; /** * Код безопасности карты (CVC). * Необязательное поле. */ csc?: string; }; } /** * Тип для подтверждения через наличные. */ export interface PaymentMethodCash { /** * Тип метода — Наличные */ type: PaymentMethodsEnum.cash; /** * Номер телефона для подтверждения наличных платежей. * Необязательное поле. */ phone?: string; } /** * Тип для подтверждения через СБП (Система быстрых платежей). */ export interface PaymentMethodSbp { /** * Тип метода — Система быстрых платежей */ type: PaymentMethodsEnum.sbp; } /** * Тип для подтверждения через B2B Сбербанк. */ export interface PaymentMethodB2bSberbank { /** * Тип метода — B2B Сбербанк */ type: PaymentMethodsEnum.b2b_sberbank; /** * Назначение платежа. */ payment_purpose: string; /** * Данные о НДС. */ vat_data: { /** * Тип НДС. */ type: 'mixed' | 'calculated' | 'untaxed'; rate: number; /** * Сумма НДС. * Необязательное поле. */ amount?: Amount; }; } /** * Тип для подтверждения с использованием электронного сертификата (ФЭС НСПК). */ export interface PaymentMethodElectronicСertificate { /** * Тип метода оплаты — электронный сертификат. * Значение: `electronic_certificate`. */ type: PaymentMethodsEnum.electronic_certificate; /** * Корзина покупки — список товаров, которые можно оплатить по сертификату. * Необходимо передавать только при оплате на готовой странице ЮKassa. */ articles?: { /** * Порядковый номер товара в корзине (от 1 до 999 включительно). */ article_number: number; /** * Код ТРУ. Формат: NNNNNNNNN.NNNNNNNNNYYYYMMMMZZZ * Пример: 329921120.06001010200080001643 */ tru_code: string; /** * Код товара в вашей системе. * Максимум 128 символов. */ article_code?: string; /** * Название товара в вашей системе. * Отображается на форме ЮKassa. * Максимум 128 символов. */ article_name: string; /** * Количество единиц товара. Целое положительное число. */ quantity: number; /** * Цена за единицу товара. */ price: { /** * Сумма в валюте. Дробное значение с точкой в качестве разделителя. * Пример: "1000.00" */ value: string; /** * Трехбуквенный код валюты по ISO-4217. * Пример: "RUB" */ currency: string; }; }[]; /** * Произвольные дополнительные данные. * Максимум 16 ключей, имя ключа — до 32 символов, значение — до 512 символов. */ metadata?: Record<string, string>; /** * Данные банковской карты (если вы собираете данные карты на своей стороне). */ card?: { /** * Номер банковской карты. */ number: string; /** * Год окончания срока действия карты (формат: YYYY). */ expiry_year: string; /** * Месяц окончания срока действия карты (формат: MM). */ expiry_month: string; /** * Имя владельца карты. */ cardholder?: string; /** * CVC/CVV код (3–4 цифры). */ csc?: string; }; /** * Данные от ФЭС НСПК для оплаты по электронному сертификату. * Обязательное поле при оплате со сбором данных на вашей стороне. */ electronic_certificate?: { /** * Сумма, которую необходимо списать с электронного сертификата. * Значение из поля `totalCertAmount`, полученного при предварительном одобрении (Pre-Auth). */ amount: Amount; /** * Идентификатор корзины покупки в НСПК. * Значение `purchaseBasketId`, полученное в ответе от ФЭС НСПК при Pre-Auth. */ basket_id: string; }; } /** * Тип для подтверждения с использованием YooMoney. */ export interface PaymentMethodYooMoney { /** * Тип метода — YooMoney */ type: PaymentMethodsEnum.yoo_money; } /** * Тип для подтверждения через Сбербанк. */ export interface PaymentMethodSberbank { /** * Тип метода — Сбербанк */ type: PaymentMethodsEnum.sberbank; /** * Номер телефона в Сбербанке. * Необязательное поле. */ phone?: string; } /** * Тип для подтверждения через Тинькофф Банк. */ export interface PaymentMethodTinkoffBank { /** * Тип метода — Тинькофф Банк */ type: PaymentMethodsEnum.tinkoff_bank; }