Class: Dodopayments::Resources::CreditEntitlements::Balances
- Inherits:
-
Object
- Object
- Dodopayments::Resources::CreditEntitlements::Balances
- Defined in:
- lib/dodopayments/resources/credit_entitlements/balances.rb
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 entitlement
-
‘customer_id` - The unique identifier of the customer
# Request Body
-
‘entry_type` - “credit” or “debit”
-
‘amount` - Amount to credit or debit
-
‘reason` - Optional human-readable reason
-
‘expires_at` - Optional expiration for credited amount (only for credit type)
-
‘idempotency_key` - Optional key to prevent duplicate entries
# Responses
-
‘201 Created` - Ledger entry created successfully
-
‘400 Bad Request` - Invalid request (e.g., debit with insufficient balance)
-
‘404 Not Found` - Credit entitlement or customer not found
-
‘409 Conflict` - Idempotency key already exists
-
‘500 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 balances
-
‘404 Not Found` - Credit entitlement not found
-
‘500 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 entitlement
-
‘customer_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 grants
-
‘404 Not Found` - Credit entitlement not found
-
‘500 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 entitlement
-
‘customer_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 type
-
‘start_date` - Filter entries from this date
-
‘end_date` - Filter entries until this date
# Responses
-
‘200 OK` - Returns list of ledger entries
-
‘404 Not Found` - Credit entitlement not found
-
‘500 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 entitlement
-
‘customer_id` - The unique identifier of the customer
# Responses
-
‘200 OK` - Returns the customer’s balance
-
‘404 Not Found` - Credit entitlement or customer balance not found
-
‘500 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 |