UNPKG

yookassa-sdk

Version:

Интерфейс для интеграции с YooKassa, позволяет выполнять различные операции, такие как создание платежей, возвратов, чеков и управление ими. Написан на TypeScript.

171 lines (144 loc) 7.35 kB
import { IAmount } from '../general.types'; import { Payments } from './payment.type'; /** Способы оплаты */ export type IPaymentMethod = | IPaymentMethodAlfabank | IPaymentMethodMobileBalance | IPaymentMethodCard | IPaymentMethodInstallments | IPaymentMethodCash | IPaymentMethodSbp | IPaymentMethodB2b_sberbank | IPaymentMethodTinkoff_bank | IPaymentMethodYooMoney | IPaymentMethodQiwi | IPaymentMethodSberbank | IPaymentMethodSberLoan; export enum PaymentMethodsEnum { /** Банковская карта или карта МИР */ bank_card = 'bank_card', /** ЮMoney */ yoo_money = 'yoo_money', /** QIWI Кошелек */ qiwi = 'qiwi', /** SberPay */ sberbank = 'sberbank', /** Альфа-Клик */ alfabank = 'alfabank', /** Тинькофф */ tinkoff_bank = 'tinkoff_bank', /** СберБанк Бизнес Онлайн */ b2b_sberbank = 'b2b_sberbank', /** СБП (Система быстрых платежей) */ sbp = 'sbp', /** Баланс телефона */ mobile_balance = 'mobile_balance', /** Наличные */ cash = 'cash', /** Заплатить по частям */ installments = 'installments', /** "Покупки в кредит" от Сбербанка" */ sber_loan = 'sber_loan', } interface IGeneralPayMethod { type: PaymentMethodsEnum; /** Идентификатор способа оплаты. */ id: string; /** С помощью сохраненного способа оплаты можно проводить [безакцептные списания](https://yookassa.ru/developers/payment-acceptance/scenario-extensions/recurring-payments) */ saved: boolean; /** Название способа оплаты. */ title?: string; } /** Банковская карта */ export interface IPaymentMethodCard extends IGeneralPayMethod { /** Код способа оплаты. */ type: PaymentMethodsEnum.bank_card; /** Данные банковской карты (необходимы, если вы собираете данные карты пользователей на своей стороне). */ card?: { /** Номер банковской карты. */ number: string; /** Срок действия, год, YYYY. */ expiry_year?: string; /** Срок действия, месяц, MM. */ expiry_month: string; /** Код CVC2 или CVV2, 3 или 4 символа, печатается на обратной стороне карты. */ csc?: string; /** Имя владельца карты. */ cardholder?: string; }; } /** Баланс телефона */ export interface IPaymentMethodMobileBalance extends IGeneralPayMethod { /** Код способа оплаты. */ type: PaymentMethodsEnum.mobile_balance; /** Телефон, с баланса которого осуществляется платеж. Указывается в формате ITU-T E.164, например 79000000000. */ phone: string; } /** ЮMoney */ export interface IPaymentMethodYooMoney { type: PaymentMethodsEnum.yoo_money; } /** QIWI Кошелек */ export interface IPaymentMethodQiwi { type: PaymentMethodsEnum.qiwi; /** Телефон, на который зарегистрирован аккаунт в QIWI. Указывается в формате ITU-T E.164, например 79000000000. */ phone?: string; } /** SberPay */ export interface IPaymentMethodSberbank { type: PaymentMethodsEnum.sberbank; /** Телефон пользователя, на который зарегистрирован аккаунт в SberPay. Необходим для подтверждения оплаты по смс (сценарий подтверждения external). Указывается в формате ITU-T E.164, например 79000000000. */ phone?: string; } /** Альфа-Клик */ export interface IPaymentMethodAlfabank { type: PaymentMethodsEnum.alfabank; /** Логин пользователя в Альфа-Клике (привязанный телефон или дополнительный логин). Обязателен для сценария External . */ login?: string; } /** Тинькофф */ export interface IPaymentMethodTinkoff_bank { type: PaymentMethodsEnum.tinkoff_bank; } /** СберБанк Бизнес Онлайн */ export interface IPaymentMethodB2b_sberbank { type: PaymentMethodsEnum.b2b_sberbank; /** Назначение платежа (не больше 210 символов). */ payment_purpose: string; /** Данные о налоге на добавленную стоимость (НДС). Платеж может облагаться или не облагаться НДС. Товары могут облагаться по одной ставке НДС или по разным. */ vat_data: { /** Код способа расчета НДС. */ type: 'mixed' | 'calculated' | 'untaxed'; /** Сумма НДС. */ amount?: IAmount; }; } /** СБП (Система быстрых платежей) */ export interface IPaymentMethodSbp { type: PaymentMethodsEnum.sbp; } /** Наличные */ export interface IPaymentMethodCash { type: PaymentMethodsEnum.cash; /** Телефон пользователя, на который придет смс с кодом платежа (для внесения наличных). Указывается в формате ITU-T E.164, например 79000000000. Поле можно оставить пустым: пользователь сможет заполнить его при оплате на стороне ЮKassa. */ phone?: string; } /** Заплатить по частям */ export interface IPaymentMethodInstallments { type: PaymentMethodsEnum.installments; } //MARK: "Покупки в кредит" от Сбербанка" /** "Покупки в кредит" от Сбербанка" */ export interface IPaymentMethodSberLoan extends IGeneralPayMethod { type: PaymentMethodsEnum.sber_loan; /** Сумма скидки для рассрочки. Присутствует для платежей в статусе `waiting_for_capture` и `succeeded`, если пользователь выбрал рассрочку. */ discount_amount?: IAmount; /** Тариф кредита, который пользователь выбрал при оплате. * * Возможные значения: * -`loan` — кредит; * `installments_XX` — рассрочка, где `XX` — количество месяцев для выплаты рассрочки. Например, `installments_3` — рассрочка на 3 месяца. * Присутствует для платежей в статусе `waiting_for_capture` и `succeeded`. */ loan_option?: 'loan' | `installments_${number}`; }