Class: Yookassa::Resources::Payment

Inherits:
Base
  • Object
show all
Defined in:
lib/yookassa/resources/payment.rb

Overview

REST resource for the /v3/payments endpoint.

Supports creating, finding, capturing, canceling, and listing payments.

See Also:

Instance Attribute Summary

Attributes inherited from Base

#client

Instance Method Summary collapse

Methods inherited from Base

entity_class, #initialize, resource_path

Constructor Details

This class inherits a constructor from Yookassa::Resources::Base

Instance Method Details

#cancel(payment_id, idempotency_key: nil) ⇒ Entities::Payment

Cancels a payment that has not yet been captured.

Raises:

  • on API failure

Parameters:

  • the payment identifier

  • (defaults to: nil)

    optional idempotency key

Returns:



50
51
52
53
# File 'lib/yookassa/resources/payment.rb', line 50

def cancel(payment_id, idempotency_key: nil)
  data = request(:post, "payments/#{payment_id}/cancel", idempotency_key: idempotency_key)
  Entities::Payment.new(data)
end

#capture(payment_id, params = {}, idempotency_key: nil) ⇒ Entities::Payment

Captures an authorized payment (for two-stage payments).

Raises:

  • on API failure

Parameters:

  • the payment identifier

  • (defaults to: {})

    optional capture parameters (amount for partial capture, etc.)

  • (defaults to: nil)

    optional idempotency key

Returns:



39
40
41
42
# File 'lib/yookassa/resources/payment.rb', line 39

def capture(payment_id, params = {}, idempotency_key: nil)
  data = request(:post, "payments/#{payment_id}/capture", body: params, idempotency_key: idempotency_key)
  Entities::Payment.new(data)
end

#create(params, idempotency_key: nil) ⇒ Entities::Payment

Creates a new payment.

Raises:

  • on API failure

Parameters:

  • payment parameters (amount, confirmation, description, etc.)

  • (defaults to: nil)

    optional idempotency key

Returns:



17
18
19
20
# File 'lib/yookassa/resources/payment.rb', line 17

def create(params, idempotency_key: nil)
  data = request(:post, "payments", body: params, idempotency_key: idempotency_key)
  Entities::Payment.new(data)
end

#find(payment_id) ⇒ Entities::Payment

Retrieves a payment by ID.

Raises:

  • if payment does not exist

Parameters:

  • the payment identifier

Returns:



27
28
29
30
# File 'lib/yookassa/resources/payment.rb', line 27

def find(payment_id)
  data = request(:get, "payments/#{payment_id}")
  Entities::Payment.new(data)
end

#list(**filters) ⇒ Entities::Collection<Entities::Payment>

Lists payments matching the given filters.

Parameters:

  • query filters (status, created_at, limit, cursor, etc.)

Returns:



59
60
61
# File 'lib/yookassa/resources/payment.rb', line 59

def list(**filters)
  build_collection("payments", entity_class: Entities::Payment, query: filters)
end