UNPKG

yookassa-sdk-node

Version:
1,172 lines (1,170 loc) 53.5 kB
/** This file was auto-generated by openapi-typescript. Do not make direct changes to the file. */ export interface paths { '/payments': { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Список платежей */ get: operations['get-payment-list']; put?: never; /** Создание платежа */ post: operations['create-payment']; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; '/payments/{payment_id}': { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Информация о платеже * * Запрос позволяет получить информацию о текущем состоянии платежа по его уникальному * идентификатору */ get: operations['get-payment']; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; '/payments/{payment_id}/cancel': { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Отмена платежа * * Отменяет платеж, находящийся в статусе `waiting_for_capture`. * * Отмена платежа значит, что вы не готовы выдать пользователю товар или оказать услугу. Как только вы отменяете платеж, мы начинаем возвращать деньги на счет плательщика. Для платежей банковскими картами, из кошелька ЮMoney или через SberPay отмена происходит мгновенно. Для остальных способов оплаты возврат может занимать до нескольких дней */ post: operations['cancel-payment']; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; '/invoices': { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** Создание счета */ post: operations['create-invoice']; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; '/invoices/{invoice_id}': { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Информация о счете */ get: operations['get-invoice']; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; } export type webhooks = Record<string, never>; export interface components { schemas: { /** Error response for invalid or failed requests. */ ErrorResponse: { /** @enum {string} */ type: 'error'; /** * Идентификатор ошибки. Используйте его, если вам необходимо обратиться в техническую * поддержку * * @example * 249e2cf0-000f-5000-a000-1df11df15d3c */ id: string; /** * Код ошибки * * - `invalid_request` — неправильный запрос, например ошибка в значении параметра или нарушение логики проведения операции (HTTP 400) * - `invalid_credentials` — некорректные данные для аутентификации запросов (HTTP 401) * - `forbidden` — не хватает прав для выполнения операции (HTTP 403) * - `not_found` — запрашиваемый ресурс не найден (HTTP 404) * - `too_many_requests` — превышен лимит запросов в единицу времени (HTTP 429) * - `internal_server_error` — технические неполадки на стороне ЮKassa (HTTP 500) * * @enum {string} */ code: | 'invalid_request' | 'invalid_credentials' | 'forbidden' | 'not_found' | 'too_many_requests' | 'internal_server_error'; /** Описание ошибки на английском языке */ description?: string; /** Название заголовка или параметра тела ответа, из-за которого произошла ошибка */ parameter?: string; }; /** * Запрос на создание платежа * * **FIXME**: Описать `airline`, `transfer`, `deal`, `receiver` */ CreatePaymentRequest: { amount: components['schemas']['Amount']; /** * Описание транзакции (не более 128 символов), которое вы увидите в личном кабинете ЮKassa, а * пользователь — при оплате * * @example * Оплата заказа № 72 для user@yoomoney.ru */ description?: string; receipt?: components['schemas']['Receipt']; recipient?: components['schemas']['Recipient']; /** * Одноразовый токен для проведения оплаты, сформированный с помощью Checkout.js или * мобильного SDK */ payment_token?: string; /** Идентификатор сохраненного способа оплаты */ payment_method_id?: string; /** FIXME */ payment_method_data?: Record<string, never>; /** FIXME */ confirmation?: Record<string, never>; /** * Сохранение платежных данных для проведения автоплатежей. Возможные значения: * * - `true` — сохранить способ оплаты (сохранить платежные данные); * - `false` — провести платеж без сохранения способа оплаты. * * Доступно только после согласования с менеджером ЮKassa. */ save_payment_method?: boolean; /** * Автоматический прием поступившего платежа. Возможные значения: * * - `true` — оплата списывается сразу (платеж в одну стадию); * - `false` — оплата холдируется и списывается по вашему запросу (платеж в две стадии). * * @default false */ capture: boolean; /** IPv4 или IPv6-адрес пользователя. Если не указан, используется IP-адрес TCP-подключения */ client_ip?: string; /** * Любые дополнительные данные, которые нужны вам для работы (например, ваш внутренний * идентификатор заказа). Передаются в виде набора пар «ключ-значение» и возвращаются в ответе * от ЮKassa. Ограничения: максимум 16 ключей, имя ключа не больше 32 символов, значение ключа * не больше 512 символов, тип данных — строка в формате UTF-8. */ metadata?: { [key: string]: string; }; /** * Идентификатор покупателя в вашей системе, например электронная почта или номер телефона. Не * более 200 символов. Присутствует, если вы хотите запомнить банковскую карту и отобразить ее * при повторном платеже в виджете ЮKassa. */ merchant_customer_id?: string; }; /** Запрос на создание инвойса. */ CreateInvoiceRequest: { payment_data: components['schemas']['CreateInvoicePaymentData']; /** * Корзина заказа — список товаров или услуг, который отобразится на странице счета перед * оплатой */ cart: components['schemas']['InvoiceCartItem'][]; /** * Format: date-time * * Срок действия счета — дата и время, до которых можно оплатить выставленный счет. * Указывается по UTC и передается в формате ISO 8601 * * @example * 2024-10-18T10:51:18.139Z */ expires_at: string; /** * Язык интерфейса, писем и смс, которые будет видеть или получать пользователь. Формат * соответствует ISO/IEC 15897 * * @enum {string} */ locale?: 'ru_RU' | 'en_US'; /** * Описание выставленного счета (не более 128 символов), которое вы увидите в личном кабинете * ЮKassa, а пользователь на странице счета * * @example * Счет на оплату по договору 37 */ description?: string; metadata?: components['schemas']['Metadata']; }; /** Данные для проведения платежа по выставленному счету */ CreateInvoicePaymentData: { amount: components['schemas']['Amount']; receipt?: components['schemas']['Receipt']; recipient?: components['schemas']['Recipient']; /** * Сохранение платежных данных для проведения автоплатежей. Возможные значения: * * - `true` — сохранить способ оплаты (сохранить платежные данные); * - `false` — провести платеж без сохранения способа оплаты. * * Доступно только после согласования с менеджером ЮKassa. */ save_payment_method?: boolean; /** * Автоматический прием поступившего платежа. Возможные значения: * * - `true` — оплата списывается сразу (платеж в одну стадию); * - `false` — оплата холдируется и списывается по вашему запросу (платеж в две стадии). */ capture?: boolean; /** IPv4 или IPv6-адрес пользователя. Если не указан, используется IP-адрес TCP-подключения */ client_ip?: string; /** * Описание транзакции (не более 128 символов), которое вы увидите в личном кабинете ЮKassa, а * пользователь — при оплате * * @example * Оплата заказа № 72 для user@yoomoney.ru */ description?: string; metadata?: components['schemas']['Metadata']; }; /** * Любые дополнительные данные, которые нужны вам для работы (например, ваш внутренний * идентификатор заказа). Передаются в виде набора пар «ключ-значение» и возвращаются в ответе * от ЮKassa. Ограничения: максимум 16 ключей, имя ключа не больше 32 символов, значение ключа * не больше 512 символов, тип данных — строка в формате UTF-8. */ Metadata: { [key: string]: string; }; DateFilter: { /** * Время должно быть больше указанного значения или равно ему («с такого-то момента * включительно») * * @example * 2018-07-18T10:51:18.139Z */ gte?: string; /** * Время должно быть больше указанного значения * * @example * 2018-07-18T10:51:18.139Z */ gt?: string; /** * Время должно быть меньше указанного значения или равно ему * * @example * 2018-07-18T10:51:18.139Z */ lte?: string; /** * Время должно быть меньше указанного значения * * @example * 2018-07-18T10:51:18.139Z */ lt?: string; }; /** * Данные для формирования чека * * **FIXME: Нужно описать недостающие необязательные поля** */ Receipt: { customer?: components['schemas']['Customer']; /** Список товаров или услуг, включенных в чек. */ items: components['schemas']['ReceiptItem'][]; }; /** * Информация о пользователе. Необходимо указать как минимум контактные данные: для Чеков от * ЮKassa — электронную почту (`customer.email`), в остальных случаях — электронную почту * (`customer.email`) или номер телефона (`customer.phone`). */ Customer: { /** * Для юрлица — название организации, для ИП и физического лица — ФИО. Если у физлица * отсутствует ИНН, в этом же параметре передаются паспортные данные. Не более 256 символов. * * Можно передавать, если используете Чеки от ЮKassa или онлайн-кассу Orange Data, Атол Онлайн. */ full_name?: string; /** * ИНН пользователя (10 или 12 цифр). Если у физического лица отсутствует ИНН, необходимо * передать паспортные данные в параметре full_name. * * Можно передавать, если используете Чеки от ЮKassa или онлайн-кассу Orange Data, Атол Онлайн. */ inn?: string; /** * Электронная почта пользователя для отправки чека. Обязательный параметр, если используете * Чеки от ЮKassa или если используете другое решение (стороннюю онлайн-кассу, чеки * самозанятых) и не передаете phone. */ email?: string; /** * Телефон пользователя для отправки чека. Указывается в формате ITU-T E.164. Обязательный * параметр, если не передан email. * * @example * 79000000000; */ phone?: string; }; /** * Информация о товаре или услуге в чеке * * **FIXME: Нужно описать недостающие необязательные поля** */ ReceiptItem: { /** Название товара (от 1 до 128 символов). Тег в 54 ФЗ — 1030 */ description: string; amount: components['schemas']['Amount']; /** * Ставка НДС (тег в 54 ФЗ — 1199). * * Для чеков по 54-ФЗ — перечень возможных значений: * - для Чеков от ЮKassa: https://yookassa.ru/developers/payment-acceptance/receipts/54fz/yoomoney/parameters-values#vat-codes * - для сторонних онлайн-касс: https://yookassa.ru/developers/payment-acceptance/receipts/54fz/other-services/parameters-values#vat-codes * * Для чеков самозанятых — фиксированное значение: `1` */ vat_code: number; /** * Format: float * * Количество товара (тег в 54 ФЗ — 1023). * * - Для чеков по 54-ФЗ: можно передать целое или дробное число. Разделитель дробной части — точка, разделитель тысяч отсутствует. Максимально возможное значение и максимальное количество знаков после точки (для дробных значений) зависят от модели вашей онлайн-кассы. Для чеков от ЮKassa максимально возможное значение — 99999.999, не более 3 знаков после точки. * - Для чеков самозанятых: только целые положительные числа (без точки и дробной части). Пример: 1. * * @example * 1; */ quantity: number; /** * Мера количества предмета расчета (тег в 54 ФЗ — 2108) — единица измерения товара, например * штуки, граммы. * * Обязательный параметр, если используете Чеки от ЮKassa или онлайн-кассу, обновленную до ФФД 1.2. * * Перечень возможных значений: * - для Чеков от ЮKassa: https://yookassa.ru/developers/payment-acceptance/receipts/54fz/yoomoney/parameters-values#measure * - для сторонних онлайн-касс: https://yookassa.ru/developers/payment-acceptance/receipts/54fz/other-services/parameters-values#measure * * @example * piece; */ measure?: string; }; /** Объект платежа содержит всю информацию о платеже, актуальную на текущий момент времени */ Payment: { /** Идентификатор платежа в ЮKassa */ id: string; /** * Статус платежа * * @enum {string} */ status: 'pending' | 'waiting_for_capture' | 'succeeded' | 'canceled'; amount: components['schemas']['Amount']; /** Сумма платежа, которую получит магазин, — значение `amount` за вычетом комиссии ЮKassa */ income_amount?: components['schemas']['Amount']; /** * Описание транзакции (не более 128 символов), которое вы увидите в личном кабинете ЮKassa, а * пользователь — при оплате * * @example * Оплата заказа № 72 для user@yoomoney.ru */ description?: unknown; recipient: components['schemas']['Recipient']; payment_method?: components['schemas']['PaymentMethod']; /** * Format: date-time * * Время подтверждения платежа. Указывается по UTC и передается в формате ISO 8601 * * @example * 2017-11-03T11:52:31.827Z */ captured_at?: string; /** * Format: date-time * * Время создания заказа. Указывается по UTC и передается в формате ISO 8601 * * @example * 2017-11-03T11:52:31.827Z */ created_at: string; /** * Format: date-time * * Время, до которого вы можете бесплатно отменить или подтвердить платеж. В указанное время * платеж в статусе waiting_for_capture будет автоматически отменен. Указывается по UTC и * передается в формате ISO 8601 * * @example * 2017-11-03T11:52:31.827Z */ expires_at?: string; confirmation?: components['schemas']['Confirmation']; /** Признак тестовой операции */ test?: boolean; refunded_amount?: components['schemas']['Amount']; /** Признак оплаты заказа */ paid: boolean; /** Возможность провести возврат по API */ refundable: boolean; /** * Статус регистрации чека. Возможные значения: - `pending` — данные в обработке; - * `succeeded` — чек успешно зарегистрирован; - `canceled` — чек зарегистрировать не удалось; * если используете Чеки от ЮKassa, обратитесь в техническую поддержку, в остальных случаях * сформируйте чек вручную. Присутствует, если вы используете решения ЮKassa для отправки * чеков в налоговую. * * @enum {string} */ receipt_registration?: 'pending' | 'succeeded' | 'canceled'; metadata?: components['schemas']['Metadata']; /** Комментарий к статусу canceled: кто отменил платеж и по какой причине */ cancellation_details?: { /** * Участник процесса платежа, который принял решение об отмене транзакции * * @enum {string} */ party: 'yoo_money' | 'payment_network' | 'merchant'; /** * https://yookassa.ru/developers/payment-acceptance/after-the-payment/declined-payments#cancellation-details-reason * * @enum {string} */ reason: | '3d_secure_failed' | 'call_issuer' | 'canceled_by_merchant' | 'card_expired' | 'country_forbidden' | 'deal_expired' | 'expired_on_capture' | 'expired_on_confirmation' | 'fraud_suspected' | 'general_decline' | 'identification_required' | 'insufficient_funds' | 'internal_timeout' | 'invalid_card_number' | 'invalid_csc' | 'issuer_unavailable' | 'payment_method_limit_exceeded' | 'payment_method_restricted' | 'permission_revoked' | 'unsupported_mobile_operator'; }; /** * Данные об авторизации платежа при оплате банковской картой. Присутствуют только для этих * способов оплаты: банковская карта, Mir Pay, SberPay, T-Pay. */ authorization_details?: { /** Retrieval Reference Number — уникальный идентификатор транзакции в системе эмитента */ rrn?: string; /** Код авторизации. Выдается эмитентом и подтверждает проведение авторизации */ auth_code?: string; three_d_secure: { /** Отображение пользователю формы для прохождения аутентификации по 3‑D Secure */ applied: boolean; }; }; /** * Данные о распределении денег — сколько и в какой магазин нужно перевести. Присутствует, * если вы используете Сплитование платежей */ transfers?: Record<string, never>[]; /** * Данные о сделке, в составе которой проходит платеж. Присутствует, если вы проводите * Безопасную сделку */ deal?: { id: string; settlements: { /** @enum {string} */ type: 'payout'; amount: components['schemas']['Amount']; }[]; }; /** * Идентификатор покупателя в вашей системе, например электронная почта или номер телефона. * Присутствует, если вы хотите запомнить банковскую карту и отобразить ее при повторном * платеже в виджете ЮKassa */ merchant_customer_id?: string; /** Данные о выставленном счете, в рамках которого проведен платеж */ invoice_details?: { /** Идентификатор счета в ЮКасса */ id?: string; }; }; PaymentMethod: | components['schemas']['PaymentMethodSberLoan'] | components['schemas']['PaymentMethodAlfabank'] | components['schemas']['PaymentMethodMobileBalance'] | components['schemas']['PaymentMethodBankCard'] | components['schemas']['PaymentMethodInstallments'] | components['schemas']['PaymentMethodCash'] | components['schemas']['PaymentMethodSBP'] | components['schemas']['PaymentMethodB2BSberbank'] | components['schemas']['PaymentMethodElectronicCertificate'] | components['schemas']['PaymentMethodYooMoney'] | components['schemas']['PaymentMethodApplePay'] | components['schemas']['PaymentMethodGooglePay'] | components['schemas']['PaymentMethodQiwi'] | components['schemas']['PaymentMethodSberbank'] | components['schemas']['PaymentMethodTinkoffBank'] | components['schemas']['PaymentMethodWeChat'] | components['schemas']['PaymentMethodWebMoney']; PaymentMethodBase: { id: string; saved: boolean; title?: string; }; PaymentMethodSberLoan: components['schemas']['PaymentMethodBase'] & { /** @enum {string} */ type: 'sber_loan'; login?: string; discount_amount?: components['schemas']['Amount']; /** @enum {string} */ loan_option?: 'loan' | 'installments_3' | 'installments_6' | 'installments_12'; }; PaymentMethodAlfabank: components['schemas']['PaymentMethodBase'] & { /** @enum {string} */ type: 'alfabank'; login?: string; }; PaymentMethodMobileBalance: { /** @enum {string} */ type: 'mobile_balance'; id: string; saved: boolean; title?: string; } & (WithRequired<components['schemas']['PaymentMethodBase'], 'id' | 'saved'> & { /** @enum {string} */ type: never; }); PaymentMethodBankCard: components['schemas']['PaymentMethodBase'] & { /** @enum {string} */ type: 'bank_card'; card?: components['schemas']['Card']; }; PaymentMethodInstallments: components['schemas']['PaymentMethodBase'] & { /** @enum {string} */ type: 'installments'; }; PaymentMethodCash: components['schemas']['PaymentMethodBase'] & { /** @enum {string} */ type: 'cash'; }; PaymentMethodSBP: components['schemas']['PaymentMethodBase'] & { /** @enum {string} */ type: 'sbp'; }; PaymentMethodB2BSberbank: components['schemas']['PaymentMethodBase'] & { /** @enum {string} */ type: 'b2b_sberbank'; }; PaymentMethodElectronicCertificate: components['schemas']['PaymentMethodBase'] & { /** @enum {string} */ type: 'electronic_certificate'; }; PaymentMethodYooMoney: components['schemas']['PaymentMethodBase'] & { /** @enum {string} */ type: 'yoo_money'; account_number?: string; }; PaymentMethodApplePay: components['schemas']['PaymentMethodBase'] & { /** @enum {string} */ type: 'apple_pay'; }; PaymentMethodGooglePay: components['schemas']['PaymentMethodBase'] & { /** @enum {string} */ type: 'google_pay'; }; PaymentMethodQiwi: components['schemas']['PaymentMethodBase'] & { /** @enum {string} */ type: 'qiwi'; }; PaymentMethodSberbank: components['schemas']['PaymentMethodBase'] & { /** @enum {string} */ type: 'sberbank'; card?: components['schemas']['Card']; /** * @example * 79000000000; */ phone?: string; }; PaymentMethodTinkoffBank: components['schemas']['PaymentMethodBase'] & { /** @enum {string} */ type: 'tinkoff_bank'; card?: components['schemas']['Card']; }; PaymentMethodWeChat: components['schemas']['PaymentMethodBase'] & { /** @enum {string} */ type: 'wechat'; }; PaymentMethodWebMoney: components['schemas']['PaymentMethodBase'] & { /** @enum {string} */ type: 'webmoney'; }; /** Данные банковской карты */ Card: { /** Первые 6 цифр номера карты (BIN) */ first6: string; /** Последние 4 цифры номера карты */ last4: string; /** Срок действия, год, YYYY */ expiry_year?: string; /** Срок действия, месяц, MM */ expiry_month?: string; /** @enum {string} */ card_type: | 'MasterCard' | 'Visa' | 'Mir' | 'UnionPay' | 'JCB' | 'AmericanExpress' | 'DinersClub' | 'DiscoverCard' | 'InstaPayment' | 'InstaPaymentTM' | 'Laser' | 'Dankort' | 'Solo' | 'Switch' | 'Unknown.'; }; /** * Объект счета (Invoice) содержит всю информацию о счете, актуальную на текущий момент времени. * Он формируется при создании счета и приходит в ответ на любой запрос, связанный с счетами. * * Набор возвращаемых параметров зависит от статуса объекта (значение параметра status) и того, какие параметры вы передали в запросе на создание счета. * * Объект может содержать параметры и значения, не описанные в этом Справочнике API. Их следует игнорировать. */ Invoice: { /** Идентификатор счета в ЮКасса */ id: string; /** * Статус счета. Возможные значения: * * - `pending` — счет создан и ожидает успешной оплаты; * - `succeeded` — счет успешно оплачен, есть связанный платеж в статусе succeeded (финальный и неизменяемый статус для платежей в одну стадию); * - `canceled` — вы отменили счет, успешный платеж по нему не поступил или был отменен (при оплате в две стадии) либо истек срок действия счета (финальный и неизменяемый статус). * * @enum {string} */ status: 'pending' | 'succeeded' | 'canceled'; /** * Корзина заказа — список товаров или услуг, который отобразится на странице счета перед * оплатой */ cart: components['schemas']['InvoiceCartItem'][]; delivery_method?: components['schemas']['InvoiceDeliveryMethod']; payment_details?: components['schemas']['InvoicePaymentDetails']; /** * Дата и время создания счета на оплату. Указывается по UTC и передается в формате ISO 8601 * * @example * 2017-11-03T11:52:31.827Z */ created_at: string; /** * Срок действия счета — дата и время, до которых можно оплатить выставленный счет. * Указывается по UTC и передается в формате ISO 8601 * * @example * 2017-11-03T11:52:31.827Z */ expires_at?: string; /** * Описание выставленного счета (не более 128 символов), которое вы увидите в личном кабинете * ЮKassa, а пользователь на странице счета * * @example * Счет на оплату по договору 37 */ description?: string; metadata?: components['schemas']['Metadata']; }; InvoiceCartItem: { /** * Название товара или услуги (от 1 до 128 символов). Пользователь увидит его на странице * счета перед оплатой */ description: string; /** Полная цена товара или услуги. Пользователь увидит ее на странице счета перед оплатой */ price: components['schemas']['Amount']; /** * Итоговая цена товара с учетом скидки. Если передана, то на странице счета цена отобразится * с учетом скидки. Не нужно передавать, если пользователь оплачивает полную стоимость товара * или услуги */ discount_price?: components['schemas']['Amount']; /** * Количество товара. Можно передать целое или дробное число. Разделитель дробной части — * точка, разделитель тысяч отсутствует, максимум три знака после точки. Пример: 5.000 * * @example * 5; */ quantity: number; }; /** Данные о выбранном способе доставки счета. Присутствует только для счетов в статусе `pending` */ InvoiceDeliveryMethod: { /** @enum {string} */ type: 'self'; /** URL страницы счета, который необходимо передать пользователю для оплаты */ url?: string; }; /** * Данные о платеже по выставленному счету. Присутствуют, только если платеж успешно подтвержден * пользователем */ InvoicePaymentDetails: { /** Идентификатор платежа в ЮKassa */ id: string; /** * Статус платежа. Возможные значения: * * - `waiting_for_capture` — для платежей в две стадии: платеж оплачен, деньги авторизованы, вам необходимо списать оплату или отменить платеж; * - `succeeded` — платеж успешно завершен, деньги будут перечислены на ваш расчетный счет в соответствии с вашим договором с ЮKassa (финальный и неизменяемый статус); * - `canceled` — для платежей в две стадии: вы отменили платеж по API (финальный и неизменяемый статус). * * @enum {string} */ status: 'waiting_for_capture' | 'succeeded' | 'canceled'; }; /** * Сумма платежа. Иногда партнеры ЮKassa берут с пользователя дополнительную комиссию, которая * не входит в эту сумму */ Amount: { /** * Сумма в выбранной валюте. Всегда дробное значение. Разделитель дробной части — точка, * разделитель тысяч отсутствует. Количество знаков после точки зависит от выбранной валюты * * @example * 1000.0; */ value: string; /** * Трехбуквенный код валюты в формате ISO-4217. Должен соответствовать валюте субаккаунта * (`recipient.gateway_id`), если вы разделяете потоки платежей, и валюте аккаунта (shopId в * личном кабинете), если не разделяете * * @example * RUB; */ currency: string; }; /** * Выбранный способ подтверждения платежа. Присутствует, когда платеж ожидает подтверждения от * пользователя */ Confirmation: | components['schemas']['ConfirmationEmbedded'] | components['schemas']['ConfirmationExternal'] | components['schemas']['ConfirmationMobileApplication'] | components['schemas']['ConfirmationQR'] | components['schemas']['ConfirmationRedirect']; /** * Действия, необходимые для подтверждения платежа, будут зависеть от способа оплаты, который * пользователь выберет в виджете ЮKassa. Подтверждение от пользователя получит ЮKassa — вам * необходимо только встроить виджет к себе на страницу */ ConfirmationEmbedded: { /** @enum {string} */ type: 'embedded'; /** Токен для инициализации платежного виджета ЮKassa */ confirmation_token: string; }; /** * Для подтверждения платежа пользователю необходимо совершить действия во внешней системе * (например, ответить на смс). От вас требуется только сообщить пользователю о дальнейших * шагах */ ConfirmationExternal: { /** @enum {string} */ type: 'external'; }; /** * Для подтверждения платежа пользователю необходимо совершить действия в мобильном приложении * (например, в приложении интернет-банка). Вам нужно перенаправить пользователя на * confirmation_url, полученный в платеже */ ConfirmationMobileApplication: { /** @enum {string} */ type: 'mobile_application'; /** Диплинк на мобильное приложение, в котором пользователь подтверждает платеж */ confirmation_url: string; }; /** * Для подтверждения платежа пользователю необходимо просканировать QR-код. От вас требуется * сгенерировать QR-код, используя любой доступный инструмент, и отобразить его на странице * оплаты */ ConfirmationQR: { /** @enum {string} */ type: 'qr'; /** Данные для генерации QR-кода */ confirmation_data: string; }; /** * Пользователю необходимо что-то сделать на странице ЮKassa или ее партнера (например, ввести * данные банковской карты или пройти аутентификацию по 3-D Secure). Вам нужно перенаправить * пользователя на confirmation_url, полученный в платеже . При успешной оплате (и если что-то * пойдет не так) ЮKassa вернет пользователя на return_url, который вы отправите в запросе на * создание платежа */ ConfirmationRedirect: { /** @enum {string} */ type: 'redirect'; /** URL, на который необходимо перенаправить пользователя для подтверждения оплаты */ confirmation_url: string; /** * Запрос на проведение платежа с аутентификацией по 3-D Secure. Будет работать, если оплату * банковской картой вы по умолчанию принимаете без подтверждения платежа пользователем. В * остальных случаях аутентификацией по 3-D Secure будет управлять ЮKassa. Если хотите * принимать платежи без дополнительного подтверждения пользователем, напишите вашему * менеджеру ЮKassa */ enforce?: string; /** * URL, на который вернется пользователь после подтверждения или отмены платежа на * веб-странице. Не более 2048 символов */ return_url?: string; }; /** * Получатель платежа * * **Для создания платежей** * Нужен, если вы разделяете потоки платежей в рамках одного аккаунта или создаете платеж в адрес другого аккаунта. */ Recipient: { /** Идентификатор магазина в ЮKassa */ account_id: string; /** * Идентификатор субаккаунта. Используется для разделения потоков платежей в рамках одного * аккаунта */ gateway_id: string; }; /** Входящее уведомление */ WebhookEvent: | components['schemas']['WebhookEventPaymentWaitingForCapture'] | components['schemas']['WebhookEventPaymentSucceeded'] | components['schemas']['WebhookEventPaymentCanceled']; WebhookEventPaymentWaitingForCapture: { /** @enum {string} */ type: 'notification'; /** @enum {string} */ event: 'payment.waiting_for_capture'; object: components['schemas']['Payment']; }; WebhookEventPaymentSucceeded: { /** @enum {string} */ type: 'notification'; /** @enum {string} */ event: 'payment.succeeded'; object: components['schemas']['Payment']; }; WebhookEventPaymentCanceled: { /** @enum {string} */ type: 'notification'; /** @enum {string} */ event: 'payment.canceled'; object: components['schemas']['Payment']; }; }; responses: { /** Тело ответа при ошибке */ ErrorResponse: { headers: { [name: string]: unknown; }; content: { 'application/json': components['schemas']['ErrorResponse']; }; }; /** Объект платежа в актуальном статусе */ PaymentResponse: { headers: { [name: string]: unknown; }; content: { 'application/json': components['schemas']['Payment']; }; }; /** Список платежей */ PaymentListResponse: { headers: { [name: string]: unknown; }; content: { 'application/json': { /** @enum {string} */ type: 'list'; items: components['schemas']['Payment'][]; next_cursor?: string; }; }; }; /** Объект счёта в актуальном статусе */ InvoiceResponse: { headers: { [name: string]: unknown; }; content: { 'application/json': components['schemas']['Invoice']; }; }; }; parameters: { IdempotenceKey: string; }; requestBodies: never; headers: never; pathItems: never; } export type $defs = Record<string, never>; export interface operations { 'get-payment-list': { parameters: { query?: { /** * Фильтр по времени создания: время должно быть больше указанного значения или равно ему * («с такого-то момента включительно») */ 'created_at.gte'?: string; /** * Фильтр по времени создания: время должно быть больше указанного значения («с такого-то * момента, не включая его») */ 'created_at.gt'?: string; /** * Фильтр по времени создания: время должно быть меньше указанного значения или равно ему * («по такой-то момент включительно») */ 'created_at.lte'?: string; /** * Фильтр по времени создания: время должно быть меньше указанного значения («по такой-то * момент, не включая его») */ 'created_at.lt'?: string; /** * Фильтр по времени подтверждения: время должно быть больше указанного значения или равно * ему («с такого-то момента включительно») */ 'captured_at.gte'?: string; /** * Фильтр по времени подтверждения: время должно быть больше указанного значения («с * такого-то момента, не включая его») */ 'captured_at.gt'?: string; /** * Фильтр по времени подтверждения: время должно быть меньше указанного значения или равно * ему («по такой-то момент включительно») */ 'captured_at.lte'?: string; /** * Фильтр по времени подтверждения: время должно быть меньше указанного значения («по * такой-то момент, не включая его») */ 'captured_at.lt'?: string; /** Фильтр по коду способа оплаты */ payment_method?: string; /** Фильтр по статусу платежа */ status?: string; /** Размер выдачи результатов запроса — количество объектов, передаваемых в ответе */ limit?: number; /** Указатель на следующий фрагмент списка */ cursor?: string; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { 200: components['responses']['PaymentListResponse']; 400: components['responses']['ErrorResponse']; 401: components['responses']['ErrorResponse']; 403: components['responses']['ErrorResponse']; 404: components['responses']['ErrorResponse']; 429: components['responses']['ErrorResponse']; 500: components['responses']['ErrorResponse']; }; }; 'create-payment': { parameters: { query?: never; header: { 'Idempotence-Key': components['parameters']['IdempotenceKey']; }; path?: never; cookie?: never; }; requestBody: { content: { 'application/json': components['schemas']['CreatePaymentRequest']; }; }; responses: { 200: components['responses']['PaymentResponse']; 400: components['responses']['ErrorResponse']; 401: components['responses']['ErrorResponse']; 403: components['responses']['ErrorResponse']; 404: components['responses']['ErrorResponse']; 429: components['responses']['ErrorResponse']; 500: components['responses']['ErrorResponse']; }; }; 'get-payment': { parameters: { query?: never; header?: never; path: { /** ID платежа */ payment_id: string; }; cookie?: never; }; requestBody?: never; responses: { 200: components['responses']['PaymentResponse']; 400: components['responses']['ErrorResponse']; 401: components['responses']['ErrorResponse']; 403: components['responses']['ErrorResponse']; 404: components['responses']['ErrorResponse']; 429: components['responses']['ErrorResponse']; 500: components['responses']['ErrorResponse']; }; }; 'cancel-payment': { parameters: { query?: never; header: { 'Idempotence-Key': components['parameters']['IdempotenceKey']; }; path: { /** ID платежа */ payment_id: string; }; cookie?: never; }; requestBody?: never; responses: { 200: components['responses']['PaymentResponse']; 400: components['responses']['ErrorResponse']; 401: components['responses']['ErrorResponse']; 403: components['responses']['ErrorResponse']; 404: components['responses']['ErrorResponse']; 429: components['responses']['ErrorResponse']; 500: components['responses']['ErrorResponse']; }; }; 'create-invoice': { parameters: { query?: never; header: { 'Idempotence-Key': components['parameters']['IdempotenceKey']; }; path?: never; cookie?: never; }; requestBody: { content: { 'application/json': components['schemas']['CreateInvoiceRequest']; }; }; responses: { 200: components['responses']['InvoiceResponse']; 400: components['responses']['ErrorResponse']; 401: components['responses']['ErrorResponse']; 403: components['responses']['ErrorResponse']; 404: components['responses']['ErrorResponse']; 429: components['responses']['ErrorResponse']; 500: components['responses']['ErrorResponse']; }; }; 'get-invoice': { parameters: { query?: never; header?: never; path: { /** ID счёта */ invoice_id: string; }; cookie?: never; }; requestBody?: never; responses: { 200: components['responses']['InvoiceResponse']; 400: components['responses']['ErrorResponse']; 401: components['responses']['ErrorResponse']; 403: components['responses']['ErrorResponse']; 404: components['responses']['ErrorResponse']; 429: components['responses']['ErrorResponse']; 500: components['responses']['ErrorResponse']; }; }; } type WithRequired<T, K extends keyof T> = T & { [P in K]-?: T[P]; };