Class: Dodopayments::Resources::CreditEntitlements::Balances
- Inherits:
-
Object
- Object
- Dodopayments::Resources::CreditEntitlements::Balances
- Defined in:
- lib/dodopayments/resources/credit_entitlements/balances.rb,
sig/dodopayments/resources/credit_entitlements/balances.rbs
Instance Method Summary collapse
-
#create_ledger_entry(customer_id, credit_entitlement_id:, amount:, entry_type:, expires_at: nil, idempotency_key: nil, metadata: nil, reason: nil, request_options: {}) ⇒ Dodopayments::Models::CreditEntitlements::BalanceCreateLedgerEntryResponse
Some parameter documentations has been truncated, see Models::CreditEntitlements::BalanceCreateLedgerEntryParams for more details.
-
#initialize(client:) ⇒ Balances
constructor
private
A new instance of Balances.
-
#list(credit_entitlement_id, customer_id: nil, page_number: nil, page_size: nil, request_options: {}) ⇒ Dodopayments::Internal::DefaultPageNumberPagination<Dodopayments::Models::CreditEntitlements::CustomerCreditBalance>
Returns a paginated list of customer credit balances for the given credit entitlement.
-
#list_grants(customer_id, credit_entitlement_id:, page_number: nil, page_size: nil, status: nil, request_options: {}) ⇒ Dodopayments::Internal::DefaultPageNumberPagination<Dodopayments::Models::CreditEntitlements::BalanceListGrantsResponse>
Returns a paginated list of credit grants with optional filtering by status.
-
#list_ledger(customer_id, credit_entitlement_id:, end_date: nil, page_number: nil, page_size: nil, start_date: nil, transaction_type: nil, request_options: {}) ⇒ Dodopayments::Internal::DefaultPageNumberPagination<Dodopayments::Models::CreditEntitlements::CreditLedgerEntry>
Some parameter documentations has been truncated, see Models::CreditEntitlements::BalanceListLedgerParams for more details.
-
#retrieve(customer_id, credit_entitlement_id:, request_options: {}) ⇒ Dodopayments::Models::CreditEntitlements::CustomerCreditBalance
Returns the credit balance details for a specific customer and credit entitlement.
Constructor Details
#initialize(client:) ⇒ Balances
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Balances.
302 303 304 |
# File 'lib/dodopayments/resources/credit_entitlements/balances.rb', line 302 def initialize(client:) @client = client end |
Instance Method Details
#create_ledger_entry(customer_id, credit_entitlement_id:, amount:, entry_type:, expires_at: nil, idempotency_key: nil, metadata: nil, reason: nil, request_options: {}) ⇒ Dodopayments::Models::CreditEntitlements::BalanceCreateLedgerEntryResponse
Some parameter documentations has been truncated, see Models::CreditEntitlements::BalanceCreateLedgerEntryParams for more details.
For credit entries, a new grant is created. For debit entries, credits are deducted from existing grants using FIFO (oldest first).
Authentication
Requires an API key with Editor role.
Path Parameters
credit_entitlement_id- The unique identifier of the credit entitlementcustomer_id- The unique identifier of the customer
Request Body
entry_type- "credit" or "debit"amount- Amount to credit or debitreason- Optional human-readable reasonexpires_at- Optional expiration for credited amount (only for credit type)idempotency_key- Optional key to prevent duplicate entries
Responses
201 Created- Ledger entry created successfully400 Bad Request- Invalid request (e.g., debit with insufficient balance)404 Not Found- Credit entitlement or customer not found409 Conflict- Idempotency key already exists500 Internal Server Error- Database or server error
156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
# File 'lib/dodopayments/resources/credit_entitlements/balances.rb', line 156 def create_ledger_entry(customer_id, params) parsed, = Dodopayments::CreditEntitlements::BalanceCreateLedgerEntryParams.dump_request(params) credit_entitlement_id = parsed.delete(:credit_entitlement_id) do raise ArgumentError.new("missing required path argument #{_1}") end @client.request( method: :post, path: [ "credit-entitlements/%1$s/balances/%2$s/ledger-entries", credit_entitlement_id, customer_id ], body: parsed, model: Dodopayments::Models::CreditEntitlements::BalanceCreateLedgerEntryResponse, options: ) end |
#list(credit_entitlement_id, customer_id: nil, page_number: nil, page_size: nil, request_options: {}) ⇒ Dodopayments::Internal::DefaultPageNumberPagination<Dodopayments::Models::CreditEntitlements::CustomerCreditBalance>
Returns a paginated list of customer credit balances for the given credit entitlement.
Authentication
Requires an API key with Viewer role or higher.
Path Parameters
credit_entitlement_id- The unique identifier of the credit entitlement
Query Parameters
page_size- Number of items per page (default: 10, max: 100)page_number- Zero-based page number (default: 0)customer_id- Optional filter by specific customer
Responses
200 OK- Returns list of customer balances404 Not Found- Credit entitlement not found500 Internal Server Error- Database or server error
88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/dodopayments/resources/credit_entitlements/balances.rb', line 88 def list(credit_entitlement_id, params = {}) parsed, = Dodopayments::CreditEntitlements::BalanceListParams.dump_request(params) query = Dodopayments::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: ["credit-entitlements/%1$s/balances", credit_entitlement_id], query: query, page: Dodopayments::Internal::DefaultPageNumberPagination, model: Dodopayments::CreditEntitlements::CustomerCreditBalance, options: ) end |
#list_grants(customer_id, credit_entitlement_id:, page_number: nil, page_size: nil, status: nil, request_options: {}) ⇒ Dodopayments::Internal::DefaultPageNumberPagination<Dodopayments::Models::CreditEntitlements::BalanceListGrantsResponse>
Returns a paginated list of credit grants with optional filtering by status.
Authentication
Requires an API key with Viewer role or higher.
Path Parameters
credit_entitlement_id- The unique identifier of the credit entitlementcustomer_id- The unique identifier of the customer
Query Parameters
page_size- Number of items per page (default: 10, max: 100)page_number- Zero-based page number (default: 0)status- Filter by status: active, expired, depleted
Responses
200 OK- Returns list of grants404 Not Found- Credit entitlement not found500 Internal Server Error- Database or server error
215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 |
# File 'lib/dodopayments/resources/credit_entitlements/balances.rb', line 215 def list_grants(customer_id, params) parsed, = Dodopayments::CreditEntitlements::BalanceListGrantsParams.dump_request(params) query = Dodopayments::Internal::Util.encode_query_params(parsed) credit_entitlement_id = parsed.delete(:credit_entitlement_id) do raise ArgumentError.new("missing required path argument #{_1}") end @client.request( method: :get, path: ["credit-entitlements/%1$s/balances/%2$s/grants", credit_entitlement_id, customer_id], query: query, page: Dodopayments::Internal::DefaultPageNumberPagination, model: Dodopayments::Models::CreditEntitlements::BalanceListGrantsResponse, options: ) end |
#list_ledger(customer_id, credit_entitlement_id:, end_date: nil, page_number: nil, page_size: nil, start_date: nil, transaction_type: nil, request_options: {}) ⇒ Dodopayments::Internal::DefaultPageNumberPagination<Dodopayments::Models::CreditEntitlements::CreditLedgerEntry>
Some parameter documentations has been truncated, see Models::CreditEntitlements::BalanceListLedgerParams for more details.
Returns a paginated list of credit transaction history with optional filtering.
Authentication
Requires an API key with Viewer role or higher.
Path Parameters
credit_entitlement_id- The unique identifier of the credit entitlementcustomer_id- The unique identifier of the customer
Query Parameters
page_size- Number of items per page (default: 10, max: 100)page_number- Zero-based page number (default: 0)transaction_type- Filter by transaction typestart_date- Filter entries from this dateend_date- Filter entries until this date
Responses
200 OK- Returns list of ledger entries404 Not Found- Credit entitlement not found500 Internal Server Error- Database or server error
282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 |
# File 'lib/dodopayments/resources/credit_entitlements/balances.rb', line 282 def list_ledger(customer_id, params) parsed, = Dodopayments::CreditEntitlements::BalanceListLedgerParams.dump_request(params) query = Dodopayments::Internal::Util.encode_query_params(parsed) credit_entitlement_id = parsed.delete(:credit_entitlement_id) do raise ArgumentError.new("missing required path argument #{_1}") end @client.request( method: :get, path: ["credit-entitlements/%1$s/balances/%2$s/ledger", credit_entitlement_id, customer_id], query: query, page: Dodopayments::Internal::DefaultPageNumberPagination, model: Dodopayments::CreditEntitlements::CreditLedgerEntry, options: ) end |
#retrieve(customer_id, credit_entitlement_id:, request_options: {}) ⇒ Dodopayments::Models::CreditEntitlements::CustomerCreditBalance
Returns the credit balance details for a specific customer and credit entitlement.
Authentication
Requires an API key with Viewer role or higher.
Path Parameters
credit_entitlement_id- The unique identifier of the credit entitlementcustomer_id- The unique identifier of the customer
Responses
200 OK- Returns the customer's balance404 Not Found- Credit entitlement or customer balance not found500 Internal Server Error- Database or server error
36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/dodopayments/resources/credit_entitlements/balances.rb', line 36 def retrieve(customer_id, params) parsed, = Dodopayments::CreditEntitlements::BalanceRetrieveParams.dump_request(params) credit_entitlement_id = parsed.delete(:credit_entitlement_id) do raise ArgumentError.new("missing required path argument #{_1}") end @client.request( method: :get, path: ["credit-entitlements/%1$s/balances/%2$s", credit_entitlement_id, customer_id], model: Dodopayments::CreditEntitlements::CustomerCreditBalance, options: ) end |