UNPKG

yookassa-sdk-node

Version:
1,407 lines (1,325 loc) 62 kB
openapi: 3.0.0 info: title: YooKassa API description: This is a basic OpenAPI schema for the payment section of the YooKassa v3 API. version: 1.0.0 contact: name: YooKassa Support url: https://yookassa.ru email: support@yookassa.ru servers: - url: https://api.yookassa.ru/v3 paths: /payments: get: summary: Список платежей operationId: get-payment-list parameters: - name: 'created_at.gte' in: query description: 'Фильтр по времени создания: время должно быть больше указанного значения или равно ему («с такого-то момента включительно»)' required: false schema: type: string format: date-time - name: 'created_at.gt' in: query description: 'Фильтр по времени создания: время должно быть больше указанного значения («с такого-то момента, не включая его»)' required: false schema: type: string format: date-time - name: 'created_at.lte' in: query description: 'Фильтр по времени создания: время должно быть меньше указанного значения или равно ему («по такой-то момент включительно»)' required: false schema: type: string format: date-time - name: 'created_at.lt' in: query description: 'Фильтр по времени создания: время должно быть меньше указанного значения («по такой-то момент, не включая его»)' required: false schema: type: string format: date-time - name: 'captured_at.gte' in: query description: 'Фильтр по времени подтверждения: время должно быть больше указанного значения или равно ему («с такого-то момента включительно»)' required: false schema: type: string format: date-time - name: 'captured_at.gt' in: query description: 'Фильтр по времени подтверждения: время должно быть больше указанного значения («с такого-то момента, не включая его»)' required: false schema: type: string format: date-time - name: 'captured_at.lte' in: query description: 'Фильтр по времени подтверждения: время должно быть меньше указанного значения или равно ему («по такой-то момент включительно»)' required: false schema: type: string format: date-time - name: 'captured_at.lt' in: query description: 'Фильтр по времени подтверждения: время должно быть меньше указанного значения («по такой-то момент, не включая его»)' required: false schema: type: string format: date-time - name: 'payment_method' in: query description: 'Фильтр по коду способа оплаты' required: false schema: type: string - name: 'status' in: query description: 'Фильтр по статусу платежа' required: false schema: type: string - name: 'limit' in: query description: 'Размер выдачи результатов запроса — количество объектов, передаваемых в ответе' required: false schema: type: integer minimum: 1 maximum: 100 default: 10 - name: 'cursor' in: query description: 'Указатель на следующий фрагмент списка' required: false schema: type: string responses: '200': $ref: '#/components/responses/PaymentListResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '404': $ref: '#/components/responses/ErrorResponse' '429': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' post: summary: Создание платежа operationId: create-payment requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreatePaymentRequest' parameters: - $ref: '#/components/parameters/IdempotenceKey' security: - BasicAuth: [] responses: '200': $ref: '#/components/responses/PaymentResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '404': $ref: '#/components/responses/ErrorResponse' '429': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' /payments/{payment_id}: get: summary: Информация о платеже operationId: get-payment description: Запрос позволяет получить информацию о текущем состоянии платежа по его уникальному идентификатору parameters: - name: payment_id in: path required: true description: ID платежа schema: type: string security: - BasicAuth: [] responses: '200': $ref: '#/components/responses/PaymentResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '404': $ref: '#/components/responses/ErrorResponse' '429': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' /payments/{payment_id}/cancel: post: summary: Отмена платежа operationId: cancel-payment description: | Отменяет платеж, находящийся в статусе `waiting_for_capture`. Отмена платежа значит, что вы не готовы выдать пользователю товар или оказать услугу. Как только вы отменяете платеж, мы начинаем возвращать деньги на счет плательщика. Для платежей банковскими картами, из кошелька ЮMoney или через SberPay отмена происходит мгновенно. Для остальных способов оплаты возврат может занимать до нескольких дней externalDocs: description: Документация YooKassa url: https://yookassa.ru/developers/payment-acceptance/getting-started/payment-process#capture-and-cancel parameters: - name: payment_id in: path required: true description: ID платежа schema: type: string - $ref: '#/components/parameters/IdempotenceKey' security: - BasicAuth: [] responses: '200': $ref: '#/components/responses/PaymentResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '404': $ref: '#/components/responses/ErrorResponse' '429': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' /invoices: post: summary: Создание счета operationId: create-invoice requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateInvoiceRequest' parameters: - $ref: '#/components/parameters/IdempotenceKey' security: - BasicAuth: [] responses: '200': $ref: '#/components/responses/InvoiceResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '404': $ref: '#/components/responses/ErrorResponse' '429': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' /invoices/{invoice_id}: get: summary: Информация о счете operationId: get-invoice parameters: - name: invoice_id in: path required: true description: ID счёта schema: type: string security: - BasicAuth: [] responses: '200': $ref: '#/components/responses/InvoiceResponse' '400': $ref: '#/components/responses/ErrorResponse' '401': $ref: '#/components/responses/ErrorResponse' '403': $ref: '#/components/responses/ErrorResponse' '404': $ref: '#/components/responses/ErrorResponse' '429': $ref: '#/components/responses/ErrorResponse' '500': $ref: '#/components/responses/ErrorResponse' components: securitySchemes: BasicAuth: type: http scheme: basic description: <Идентификатор магазина>:<Секретный ключ> parameters: IdempotenceKey: name: Idempotence-Key in: header required: true schema: type: string responses: ErrorResponse: description: Тело ответа при ошибке content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' PaymentResponse: description: Объект платежа в актуальном статусе content: application/json: schema: $ref: '#/components/schemas/Payment' PaymentListResponse: description: Список платежей content: application/json: schema: type: object properties: type: type: string enum: - list items: type: array items: $ref: '#/components/schemas/Payment' next_cursor: type: string required: - type - items InvoiceResponse: description: Объект счёта в актуальном статусе content: application/json: schema: $ref: '#/components/schemas/Invoice' schemas: ErrorResponse: type: object description: Error response for invalid or failed requests. properties: type: type: string enum: ['error'] id: type: string description: Идентификатор ошибки. Используйте его, если вам необходимо обратиться в техническую поддержку example: '249e2cf0-000f-5000-a000-1df11df15d3c' code: type: string description: | Код ошибки - `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: - invalid_request - invalid_credentials - forbidden - not_found - too_many_requests - internal_server_error description: type: string description: Описание ошибки на английском языке parameter: type: string description: Название заголовка или параметра тела ответа, из-за которого произошла ошибка required: - type - id - code CreatePaymentRequest: type: object description: | Запрос на создание платежа **FIXME**: Описать `airline`, `transfer`, `deal`, `receiver` properties: amount: $ref: '#/components/schemas/Amount' description: type: string description: > Описание транзакции (не более 128 символов), которое вы увидите в личном кабинете ЮKassa, а пользователь — при оплате example: 'Оплата заказа № 72 для user@yoomoney.ru' receipt: $ref: '#/components/schemas/Receipt' recipient: $ref: '#/components/schemas/Recipient' payment_token: type: string description: Одноразовый токен для проведения оплаты, сформированный с помощью Checkout.js или мобильного SDK payment_method_id: type: string description: Идентификатор сохраненного способа оплаты payment_method_data: type: object description: FIXME confirmation: type: object description: FIXME save_payment_method: type: boolean description: | Сохранение платежных данных для проведения автоплатежей. Возможные значения: - `true` сохранить способ оплаты (сохранить платежные данные); - `false` провести платеж без сохранения способа оплаты. Доступно только после согласования с менеджером ЮKassa. capture: type: boolean description: | Автоматический прием поступившего платежа. Возможные значения: - `true` оплата списывается сразу (платеж в одну стадию); - `false` оплата холдируется и списывается по вашему запросу (платеж в две стадии). default: false client_ip: type: string description: IPv4 или IPv6-адрес пользователя. Если не указан, используется IP-адрес TCP-подключения metadata: type: object description: | Любые дополнительные данные, которые нужны вам для работы (например, ваш внутренний идентификатор заказа). Передаются в виде набора пар «ключ-значение» и возвращаются в ответе от ЮKassa. Ограничения: максимум 16 ключей, имя ключа не больше 32 символов, значение ключа не больше 512 символов, тип данных — строка в формате UTF-8. additionalProperties: type: string description: Значение ключа, не больше 512 символов, строка в формате UTF-8 maxLength: 512 maxProperties: 16 merchant_customer_id: type: string description: Идентификатор покупателя в вашей системе, например электронная почта или номер телефона. Не более 200 символов. Присутствует, если вы хотите запомнить банковскую карту и отобразить ее при повторном платеже в виджете ЮKassa. required: - amount CreateInvoiceRequest: type: object description: Запрос на создание инвойса. properties: payment_data: $ref: '#/components/schemas/CreateInvoicePaymentData' cart: type: array description: Корзина заказа список товаров или услуг, который отобразится на странице счета перед оплатой items: $ref: '#/components/schemas/InvoiceCartItem' expires_at: type: string format: date-time description: Срок действия счета дата и время, до которых можно оплатить выставленный счет. Указывается по UTC и передается в формате ISO 8601 example: '2024-10-18T10:51:18.139Z' locale: type: string description: | Язык интерфейса, писем и смс, которые будет видеть или получать пользователь. Формат соответствует ISO/IEC 15897 enum: - ru_RU - en_US description: type: string description: Описание выставленного счета (не более 128 символов), которое вы увидите в личном кабинете ЮKassa, а пользователь на странице счета example: Счет на оплату по договору 37 metadata: $ref: '#/components/schemas/Metadata' required: - payment_data - cart - expires_at CreateInvoicePaymentData: type: object description: | Данные для проведения платежа по выставленному счету properties: amount: $ref: '#/components/schemas/Amount' receipt: $ref: '#/components/schemas/Receipt' recipient: $ref: '#/components/schemas/Recipient' save_payment_method: type: boolean description: | Сохранение платежных данных для проведения автоплатежей. Возможные значения: - `true` сохранить способ оплаты (сохранить платежные данные); - `false` провести платеж без сохранения способа оплаты. Доступно только после согласования с менеджером ЮKassa. capture: type: boolean description: | Автоматический прием поступившего платежа. Возможные значения: - `true` оплата списывается сразу (платеж в одну стадию); - `false` оплата холдируется и списывается по вашему запросу (платеж в две стадии). client_ip: type: string description: IPv4 или IPv6-адрес пользователя. Если не указан, используется IP-адрес TCP-подключения description: type: string description: > Описание транзакции (не более 128 символов), которое вы увидите в личном кабинете ЮKassa, а пользователь — при оплате example: 'Оплата заказа № 72 для user@yoomoney.ru' metadata: $ref: '#/components/schemas/Metadata' required: - amount Metadata: type: object description: | Любые дополнительные данные, которые нужны вам для работы (например, ваш внутренний идентификатор заказа). Передаются в виде набора пар «ключ-значение» и возвращаются в ответе от ЮKassa. Ограничения: максимум 16 ключей, имя ключа не больше 32 символов, значение ключа не больше 512 символов, тип данных — строка в формате UTF-8. additionalProperties: type: string description: Значение ключа, не больше 512 символов, строка в формате UTF-8 maxLength: 512 maxProperties: 16 DateFilter: type: object properties: gte: type: string description: Время должно быть больше указанного значения или равно ему («с такого-то момента включительно») example: 2018-07-18T10:51:18.139Z gt: type: string description: Время должно быть больше указанного значения example: 2018-07-18T10:51:18.139Z lte: type: string description: Время должно быть меньше указанного значения или равно ему example: 2018-07-18T10:51:18.139Z lt: type: string description: Время должно быть меньше указанного значения example: 2018-07-18T10:51:18.139Z Receipt: type: object description: | Данные для формирования чека **FIXME: Нужно описать недостающие необязательные поля** properties: customer: $ref: '#/components/schemas/Customer' items: type: array description: Список товаров или услуг, включенных в чек. items: $ref: '#/components/schemas/ReceiptItem' required: - items Customer: type: object description: | Информация о пользователе. Необходимо указать как минимум контактные данные: для Чеков от ЮKassa — электронную почту (`customer.email`), в остальных случаях — электронную почту (`customer.email`) или номер телефона (`customer.phone`). properties: full_name: type: string description: | Для юрлица — название организации, для ИП и физического лица — ФИО. Если у физлица отсутствует ИНН, в этом же параметре передаются паспортные данные. Не более 256 символов. Можно передавать, если используете Чеки от ЮKassa или онлайн-кассу Orange Data, Атол Онлайн. inn: type: string description: | ИНН пользователя (10 или 12 цифр). Если у физического лица отсутствует ИНН, необходимо передать паспортные данные в параметре full_name. Можно передавать, если используете Чеки от ЮKassa или онлайн-кассу Orange Data, Атол Онлайн. email: type: string description: Электронная почта пользователя для отправки чека. Обязательный параметр, если используете Чеки от ЮKassa или если используете другое решение (стороннюю онлайн-кассу, чеки самозанятых) и не передаете phone. phone: type: string description: Телефон пользователя для отправки чека. Указывается в формате ITU-T E.164. Обязательный параметр, если не передан email. example: '79000000000' ReceiptItem: type: object description: | Информация о товаре или услуге в чеке **FIXME: Нужно описать недостающие необязательные поля** properties: description: type: string description: Название товара (от 1 до 128 символов). Тег в 54 ФЗ 1030 minLength: 1 maxLength: 128 amount: $ref: '#/components/schemas/Amount' vat_code: type: integer description: | Ставка НДС (тег в 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` minimum: 1 maximum: 6 quantity: type: number format: float description: | Количество товара (тег в 54 ФЗ — 1023). - Для чеков по 54-ФЗ: можно передать целое или дробное число. Разделитель дробной части точка, разделитель тысяч отсутствует. Максимально возможное значение и максимальное количество знаков после точки (для дробных значений) зависят от модели вашей онлайн-кассы. Для чеков от ЮKassa максимально возможное значение 99999.999, не более 3 знаков после точки. - Для чеков самозанятых: только целые положительные числа (без точки и дробной части). Пример: 1. example: 1 measure: type: string description: | Мера количества предмета расчета (тег в 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 required: - description - amount - vat_code - quantity Payment: type: object description: Объект платежа содержит всю информацию о платеже, актуальную на текущий момент времени properties: id: type: string description: Идентификатор платежа в ЮKassa status: type: string description: Статус платежа enum: - pending - waiting_for_capture - succeeded - canceled amount: $ref: '#/components/schemas/Amount' income_amount: description: Сумма платежа, которую получит магазин, значение `amount` за вычетом комиссии ЮKassa allOf: - $ref: '#/components/schemas/Amount' description: description: Описание транзакции (не более 128 символов), которое вы увидите в личном кабинете ЮKassa, а пользователь при оплате example: Оплата заказа 72 для user@yoomoney.ru recipient: $ref: '#/components/schemas/Recipient' payment_method: $ref: '#/components/schemas/PaymentMethod' captured_at: type: string format: date-time description: Время подтверждения платежа. Указывается по UTC и передается в формате ISO 8601 example: '2017-11-03T11:52:31.827Z' created_at: type: string format: date-time description: Время создания заказа. Указывается по UTC и передается в формате ISO 8601 example: '2017-11-03T11:52:31.827Z' expires_at: type: string format: date-time description: | Время, до которого вы можете бесплатно отменить или подтвердить платеж. В указанное время платеж в статусе waiting_for_capture будет автоматически отменен. Указывается по UTC и передается в формате ISO 8601 example: '2017-11-03T11:52:31.827Z' confirmation: $ref: '#/components/schemas/Confirmation' test: type: boolean description: Признак тестовой операции refunded_amount: $ref: '#/components/schemas/Amount' paid: type: boolean description: Признак оплаты заказа refundable: type: boolean description: Возможность провести возврат по API receipt_registration: type: string description: | Статус регистрации чека. Возможные значения: - `pending` — данные в обработке; - `succeeded` — чек успешно зарегистрирован; - `canceled` — чек зарегистрировать не удалось; если используете Чеки от ЮKassa, обратитесь в техническую поддержку, в остальных случаях сформируйте чек вручную. Присутствует, если вы используете решения ЮKassa для отправки чеков в налоговую. enum: - pending - succeeded - canceled metadata: $ref: '#/components/schemas/Metadata' cancellation_details: type: object description: | Комментарий к статусу canceled: кто отменил платеж и по какой причине properties: party: type: string description: Участник процесса платежа, который принял решение об отмене транзакции enum: - yoo_money - payment_network - merchant reason: type: string description: https://yookassa.ru/developers/payment-acceptance/after-the-payment/declined-payments#cancellation-details-reason enum: - 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 required: - party - reason authorization_details: type: object description: | Данные об авторизации платежа при оплате банковской картой. Присутствуют только для этих способов оплаты: банковская карта, Mir Pay, SberPay, T-Pay. properties: rrn: type: string description: Retrieval Reference Number уникальный идентификатор транзакции в системе эмитента auth_code: type: string description: Код авторизации. Выдается эмитентом и подтверждает проведение авторизации three_d_secure: type: object properties: applied: type: boolean description: Отображение пользователю формы для прохождения аутентификации по 3‑D Secure required: - applied required: - three_d_secure transfers: type: array description: Данные о распределении денег сколько и в какой магазин нужно перевести. Присутствует, если вы используете Сплитование платежей items: type: object deal: type: object description: Данные о сделке, в составе которой проходит платеж. Присутствует, если вы проводите Безопасную сделку properties: id: type: string settlements: type: array items: type: object properties: type: type: string enum: ['payout'] amount: $ref: '#/components/schemas/Amount' required: - type - amount required: - id - settlements merchant_customer_id: type: string description: Идентификатор покупателя в вашей системе, например электронная почта или номер телефона. Присутствует, если вы хотите запомнить банковскую карту и отобразить ее при повторном платеже в виджете ЮKassa maxLength: 200 invoice_details: type: object description: Данные о выставленном счете, в рамках которого проведен платеж properties: id: type: string description: Идентификатор счета в ЮКасса required: - id - status - amount - recipient - created_at - paid - refundable PaymentMethod: oneOf: - $ref: '#/components/schemas/PaymentMethodSberLoan' - $ref: '#/components/schemas/PaymentMethodAlfabank' - $ref: '#/components/schemas/PaymentMethodMobileBalance' - $ref: '#/components/schemas/PaymentMethodBankCard' - $ref: '#/components/schemas/PaymentMethodInstallments' - $ref: '#/components/schemas/PaymentMethodCash' - $ref: '#/components/schemas/PaymentMethodSBP' - $ref: '#/components/schemas/PaymentMethodB2BSberbank' - $ref: '#/components/schemas/PaymentMethodElectronicCertificate' - $ref: '#/components/schemas/PaymentMethodYooMoney' - $ref: '#/components/schemas/PaymentMethodApplePay' - $ref: '#/components/schemas/PaymentMethodGooglePay' - $ref: '#/components/schemas/PaymentMethodQiwi' - $ref: '#/components/schemas/PaymentMethodSberbank' - $ref: '#/components/schemas/PaymentMethodTinkoffBank' - $ref: '#/components/schemas/PaymentMethodWeChat' - $ref: '#/components/schemas/PaymentMethodWebMoney' PaymentMethodBase: type: object required: - id - saved properties: id: type: string saved: type: boolean title: type: string PaymentMethodSberLoan: allOf: - $ref: '#/components/schemas/PaymentMethodBase' - type: object required: - type properties: type: type: string enum: ['sber_loan'] login: type: string discount_amount: $ref: '#/components/schemas/Amount' loan_option: type: string enum: [loan, installments_3, installments_6, installments_12] PaymentMethodAlfabank: allOf: - $ref: '#/components/schemas/PaymentMethodBase' - type: object required: - type properties: type: type: string enum: ['alfabank'] login: type: string PaymentMethodMobileBalance: allOf: - $ref: '#/components/schemas/PaymentMethodBase' - type: object required: - type properties: type: type: string enum: [] type: object required: - type - id - saved properties: type: type: string enum: [mobile_balance] id: type: string saved: type: boolean title: type: string PaymentMethodBankCard: allOf: - $ref: '#/components/schemas/PaymentMethodBase' - type: object required: - type properties: type: type: string enum: [bank_card] card: $ref: '#/components/schemas/Card' PaymentMethodInstallments: allOf: - $ref: '#/components/schemas/PaymentMethodBase' - type: object required: - type properties: type: type: string enum: [installments] PaymentMethodCash: allOf: - $ref: '#/components/schemas/PaymentMethodBase' - type: object required: - type properties: type: type: string enum: [cash] PaymentMethodSBP: allOf: - $ref: '#/components/schemas/PaymentMethodBase' - type: object required: - type properties: type: type: string enum: [sbp] PaymentMethodB2BSberbank: allOf: - $ref: '#/components/schemas/PaymentMethodBase' - type: object required: - type properties: type: type: string enum: [b2b_sberbank] PaymentMethodElectronicCertificate: allOf: - $ref: '#/components/schemas/PaymentMethodBase' - type: object required: - type properties: type: type: string enum: [electronic_certificate] PaymentMethodYooMoney: allOf: - $ref: '#/components/schemas/PaymentMethodBase' - type: object required: - type properties: type: type: string enum: [yoo_money] account_number: type: string PaymentMethodApplePay: allOf: - $ref: '#/components/schemas/PaymentMethodBase' - type: object required: - type properties: type: type: string enum: [apple_pay] PaymentMethodGooglePay: allOf: - $ref: '#/components/schemas/PaymentMethodBase' - type: object required: - type properties: type: type: string enum: [google_pay] PaymentMethodQiwi: allOf: - $ref: '#/components/schemas/PaymentMethodBase' - type: object required: - type properties: type: type: string enum: [qiwi] PaymentMethodSberbank: allOf: - $ref: '#/components/schemas/PaymentMethodBase' - type: object required: - type properties: type: type: string enum: [sberbank] card: $ref: '#/components/schemas/Card' phone: type: string example: 79000000000 PaymentMethodTinkoffBank: allOf: - $ref: '#/components/schemas/PaymentMethodBase' - type: object required: - type properties: type: type: string enum: [tinkoff_bank] card: $ref: '#/components/schemas/Card' PaymentMethodWeChat: allOf: - $ref: '#/components/schemas/PaymentMethodBase' - type: object required: - type properties: type: type: string enum: [wechat] PaymentMethodWebMoney: allOf: - $ref: '#/components/schemas/PaymentMethodBase' - type: object required: - type properties: type: type: string enum: [webmoney] Card: type: object description: Данные банковской карты properties: first6: type: string description: Первые 6 цифр номера карты (BIN) last4: type: string description: Последние 4 цифры номера карты expiry_year: type: string description: Срок действия, год, YYYY expiry_month: type: string description: Срок действия, месяц, MM card_type: type: string enum: - MasterCard - Visa - Mir - UnionPay - JCB - AmericanExpress - DinersClub - DiscoverCard - InstaPayment - InstaPaymentTM - Laser - Dankort - Solo - Switch - Unknown. required: - first6 - last4 - cart - card_type Invoice: type: object description: | Объект счета (Invoice) содержит всю информацию о счете, актуальную на текущий момент времени. Он формируется при создании счета и приходит в ответ на любой запрос, связанный с счетами. Набор возвращаемых параметров зависит от статуса объекта (значение параметра status) и того, какие параметры вы передали в запросе на создание счета. Объект может содержать параметры и значения, не описанные в этом Справочнике API. Их следует игнорировать. properties: id: type: string description: Идентификатор счета в ЮКасса status: type: string description: | Статус счета. Возможные значения: - `pending` счет создан и ожидает успешной оплаты; - `succeeded` счет успешно оплачен, есть связанный платеж в статусе succeeded (финальный и неизменяемый статус для платежей в одну стадию); - `canceled` вы отменили счет, успешный платеж по нему не поступил или был отменен (при оплате в две стадии) либо истек срок действия счета (финальный и неизменяемый статус). enum: - pending - succeeded - canceled cart: type: array description: Корзина заказа список товаров или услуг, который отобразится на странице счета перед оплатой items: $ref: '#/components/schemas/InvoiceCartItem' delivery_method: $ref: '#/components/schemas/InvoiceDeliveryMethod' payment_details: $ref: '#/components/schemas/InvoicePaymentDetails' created_at: type: string description: Дата и время создания счета на оплату. Указывается по UTC и передается в формате ISO 8601 example: 2017-11-03T11:52:31.827Z expires_at: type: string description: Срок действия счета дата и время, до которых можно оплатить выставленный счет. Указывается по UTC и передается в формате ISO 8601 example: 2017-11-03T11:52:31.827Z description: type: string description: Описание выставленного счета (не более 128 символов), которое вы увидите в личном кабинете ЮKassa, а пользователь на странице счета maxLength: 128 example: Счет на оплату по договору 37 metadata: $ref: '#/components/schemas/Metadata' required: - id - status - cart - created_at InvoiceCartItem: type: object properties: description: type: string description: Название товара или услуги (от 1 до 128 символов). Пользователь увидит его на странице счета перед оплатой price: description: Полная цена товара или услуги. Пользователь увидит ее на странице счета перед оплатой allOf: - $ref: '#/components/schemas/Amount' discount_price: description: Итоговая цена товара с учетом скидки. Если передана, то на странице счета цена отобразится с учетом скидки. Не нужно передавать, если пользователь оплачивает полную стоимость товара или услуги allOf: - $ref: '#/components/schemas/Amount' quantity: type: number description: | Количество товара. Можно передать целое или дробное число. Разделитель дробной части — точка, разделитель тысяч отсутствует, максимум три знака после точки. Пример: 5.000 example: 5.000 required: - description - price - quantity InvoiceDeliveryMethod: type: object description: Данные о выбранном способе доставки счета. Присутствует только для счетов в статусе `pending` properties: type: type: string enum: ['self'] url: type: string description: URL страницы счета, который необходимо передать пользователю для оплаты required: - type InvoicePaymentDetails: type: object description: Данные о платеже по выставленному счету. Присутствуют, только если платеж успешно подтвержден пользователем properties: id: type: string description: Идентификатор платежа в ЮKassa status: type: string description: | Статус платежа. Возможные значения: - `waiting_for_capture` для платежей в две стадии: платеж оплачен, деньги авторизованы, вам необходимо списать оплату или отменить платеж; - `succeeded` платеж успешно завершен, деньги будут перечислены на ваш расчетный счет в соответствии с вашим договором с ЮKassa (финальный и неизменяемый статус); - `canceled` для платежей в две стадии: вы отменили платеж по API (финальный и неизменяемый статус). enum: - waiting_for_capture - succeeded - canceled required: - id - status Amount: type: object description: |- Сумма платежа. Иногда партнеры ЮKassa берут с пользователя дополнительную комиссию, которая не входит в эту сумму properties: value: type: string description: |- Сумма в выбранной валюте. Всегда дробное значение. Разделитель дробной части — точка, разделитель тысяч отсутствует. Количество знаков после точки зависит от выбранной валюты example: '1000.00' currency: type: string description: |- Трехбуквенный код валюты в формате ISO-4217. Должен соответствовать валюте субаккаунта (`recipient.gateway_id`), если вы разделяете потоки платежей, и валюте аккаунта (shopId в личном кабинете), если не разделяете example: RUB required: - value - currency Confirmation: description: Выбранный способ подтверждения платежа. Присутствует, когда платеж ожидает подтверждения от пользователя oneOf: - $ref: '#/components/schemas/ConfirmationEmbedded' - $ref: '#/components/schemas/ConfirmationExternal' - $ref: '#/components/schemas/ConfirmationMobileApplication' - $ref: '#/components/schemas/ConfirmationQR' - $ref: '#/components/schemas/ConfirmationRedirect' ConfirmationEmbedded: type: object description: Действия, необходимые для подтверждения платежа, будут зависеть от способа оплаты, который пользователь выберет в виджете ЮKassa. Подтверждение от пользователя получит ЮKassa вам необходимо только встроить виджет к себе на страницу properties: type: type: string enum: ['embedded'] confirmation_token: type: string description: Токен для инициализации платежного виджета ЮKassa required: - type - confirmation_token ConfirmationExternal: type: object description: Для подтверждения платежа пользователю необходимо совершить действия во внешней системе (например, ответить на смс). От вас требуется только сообщить пользователю о дальнейших шагах properties: type: type: string enum: ['external'] required: - type ConfirmationMobileApplication: type: object description: Для подтверждения платежа пользователю необходимо совершить действия в мобильном приложении (например, в приложении интернет-банка). Вам нужно перенаправить пользователя на confirmation_url, полученный в платеже properties: type: type: string enum: ['mobile_application'] confirmation_url: type: string description: Диплинк на мобильное приложение, в котором пользователь подтверждает платеж required: - type - confirmation_url ConfirmationQR: type: object description: Для подтверждения платежа пользователю необходимо просканировать QR-код. От вас требуется сгенерировать QR-код, используя любой доступный инструмент, и отобразить его на странице оплаты properties: type: type: string enum: ['qr'] confirmation_data: type: string description: Данные для генерации QR-кода required: - type - confirmation_data ConfirmationRedirect: type: object description: Пользователю необходимо что-то сделать на странице ЮKassa или ее партнера (например, ввести данные банковской карты или пройти аутентификацию по 3-D Secure). Вам нужно перенаправить пользователя на confirmation_url, полученный в платеже . При успешной оплате если что-то пойдет не так) ЮKassa вернет пользователя на return_url, который вы отправите в запросе на создание платежа properties: type: type: string enum: ['redirect'] confirmation_url: type: string description: URL, на который необходимо перенаправить пользователя для подтверждения оплаты enforce: type: string description: |- Запрос на проведение платежа с аутентификацией по 3-D Secure. Будет работать, если оплату банковской картой вы по умолчанию принимаете без подтверждения платежа пользователем. В остальных случаях аутентификацией по 3-D Secure будет управлять ЮKassa. Если хотите принимать платежи без дополнительного подтверждения пользователем, напишите вашему менеджеру ЮKassa return_url: type: string description: URL, на который вернется пользователь после подтверждения или отмены платежа на веб-странице. Не более 2048 символов maxLength: 2048 required: - type - confirmation_url Recipient: type: object description: | Получатель платежа **Для создания платежей** Нужен, если вы разделяете потоки платежей в рамках одного аккаунта или создаете платеж в адрес другого аккаунта. properties: account_id: type: string description: Идентификатор магазина в ЮKassa gateway_id: type: string description: Идентификатор субаккаунта. Используется для разделения потоков платежей в рамках одного аккаунта required: - account_id - gateway_id WebhookEvent: description: Входящее уведомление oneOf: - $ref: '#/components/schemas/WebhookEventPaymentWaitingForCapture' - $ref: '#/components/schemas/WebhookEventPaymentSucceeded' - $ref: '#/components/schemas/WebhookEventPaymentCanceled' WebhookEventPaymentWaitingForCapture: type: object properties: type: type: string enum: ['notification'] event: type: string enum: ['payment.waiting_for_capture'] object: $ref: '#/components/schemas/Payment' required: - type - event - object WebhookEventPaymentSucceeded: type: object properties: type: type: string enum: ['notification'] event: type: string enum: ['payment.succeeded'] object: $ref: '#/components/schemas/Payment' required: - type - event - object WebhookEventPaymentCanceled: type: object properties: type: type: string enum: ['notification'] event: type: string enum: ['payment.canceled'] object: $ref: '#/components/schemas/Payment' required: - type - event - object