square.rb 8.0.0.20201216 → 26.1.0.20230119

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +79 -221
  4. data/lib/square/api/apple_pay_api.rb +15 -8
  5. data/lib/square/api/bank_accounts_api.rb +5 -5
  6. data/lib/square/api/base_api.rb +27 -9
  7. data/lib/square/api/booking_custom_attributes_api.rb +555 -0
  8. data/lib/square/api/bookings_api.rb +107 -15
  9. data/lib/square/api/cards_api.rb +171 -0
  10. data/lib/square/api/cash_drawers_api.rb +2 -2
  11. data/lib/square/api/catalog_api.rb +167 -73
  12. data/lib/square/api/checkout_api.rb +205 -3
  13. data/lib/square/api/customer_custom_attributes_api.rb +561 -0
  14. data/lib/square/api/customer_groups_api.rb +17 -8
  15. data/lib/square/api/customer_segments_api.rb +15 -6
  16. data/lib/square/api/customers_api.rb +67 -33
  17. data/lib/square/api/devices_api.rb +3 -2
  18. data/lib/square/api/disputes_api.rb +109 -105
  19. data/lib/square/api/gift_card_activities_api.rb +132 -0
  20. data/lib/square/api/gift_cards_api.rb +298 -0
  21. data/lib/square/api/inventory_api.rb +263 -24
  22. data/lib/square/api/invoices_api.rb +21 -21
  23. data/lib/square/api/labor_api.rb +70 -68
  24. data/lib/square/api/location_custom_attributes_api.rb +584 -0
  25. data/lib/square/api/locations_api.rb +21 -14
  26. data/lib/square/api/loyalty_api.rb +333 -50
  27. data/lib/square/api/merchants_api.rb +11 -9
  28. data/lib/square/api/mobile_authorization_api.rb +4 -4
  29. data/lib/square/api/o_auth_api.rb +78 -25
  30. data/lib/square/api/order_custom_attributes_api.rb +601 -0
  31. data/lib/square/api/orders_api.rb +84 -45
  32. data/lib/square/api/payments_api.rb +72 -24
  33. data/lib/square/api/payouts_api.rb +173 -0
  34. data/lib/square/api/refunds_api.rb +18 -7
  35. data/lib/square/api/sites_api.rb +43 -0
  36. data/lib/square/api/snippets_api.rb +146 -0
  37. data/lib/square/api/subscriptions_api.rb +190 -15
  38. data/lib/square/api/team_api.rb +46 -46
  39. data/lib/square/api/terminal_api.rb +172 -22
  40. data/lib/square/api/transactions_api.rb +15 -191
  41. data/lib/square/api/v1_transactions_api.rb +52 -124
  42. data/lib/square/api/vendors_api.rb +257 -0
  43. data/lib/square/api/webhook_subscriptions_api.rb +327 -0
  44. data/lib/square/api_helper.rb +217 -57
  45. data/lib/square/client.rb +90 -18
  46. data/lib/square/configuration.rb +64 -20
  47. data/lib/square/exceptions/validation_exception.rb +13 -0
  48. data/lib/square/http/api_response.rb +7 -9
  49. data/lib/square/http/faraday_client.rb +40 -9
  50. data/lib/square/http/http_client.rb +31 -12
  51. data/lib/square/http/http_request.rb +6 -2
  52. data/lib/square/utilities/date_time_helper.rb +151 -0
  53. data/lib/square/utilities/file_wrapper.rb +1 -2
  54. data/lib/square.rb +56 -44
  55. data/test/api/test_locations_api.rb +2 -5
  56. data/test/test_helper.rb +2 -2
  57. metadata +83 -15
  58. data/lib/square/api/v1_employees_api.rb +0 -751
  59. data/lib/square/api/v1_items_api.rb +0 -1766
@@ -5,14 +5,14 @@ module Square
5
5
  super(config, http_call_back: http_call_back)
6
6
  end
7
7
 
8
- # Creates a new [Order](#type-order) which can include information on
8
+ # Creates a new [order]($m/Order) that can include information about
9
9
  # products for
10
10
  # purchase and settings to apply to the purchase.
11
- # To pay for a created order, please refer to the [Pay for
12
- # Orders](https://developer.squareup.com/docs/orders-api/pay-for-orders)
13
- # guide.
14
- # You can modify open orders using the
15
- # [UpdateOrder](#endpoint-orders-updateorder) endpoint.
11
+ # To pay for a created order, see
12
+ # [Pay for
13
+ # Orders](https://developer.squareup.com/docs/orders-api/pay-for-orders).
14
+ # You can modify open orders using the [UpdateOrder]($e/Orders/UpdateOrder)
15
+ # endpoint.
16
16
  # @param [CreateOrderRequest] body Required parameter: An object containing
17
17
  # the fields to POST for the request. See the corresponding object
18
18
  # definition for field details.
@@ -26,7 +26,7 @@ module Square
26
26
  # Prepare headers.
27
27
  _headers = {
28
28
  'accept' => 'application/json',
29
- 'content-type' => 'application/json; charset=utf-8'
29
+ 'Content-Type' => 'application/json'
30
30
  }
31
31
 
32
32
  # Prepare and execute HttpRequest.
@@ -46,8 +46,8 @@ module Square
46
46
  )
47
47
  end
48
48
 
49
- # Retrieves a set of [Order](#type-order)s by their IDs.
50
- # If a given Order ID does not exist, the ID is ignored instead of
49
+ # Retrieves a set of [orders]($m/Order) by their IDs.
50
+ # If a given order ID does not exist, the ID is ignored instead of
51
51
  # generating an error.
52
52
  # @param [BatchRetrieveOrdersRequest] body Required parameter: An object
53
53
  # containing the fields to POST for the request. See the corresponding
@@ -62,7 +62,7 @@ module Square
62
62
  # Prepare headers.
63
63
  _headers = {
64
64
  'accept' => 'application/json',
65
- 'content-type' => 'application/json; charset=utf-8'
65
+ 'Content-Type' => 'application/json'
66
66
  }
67
67
 
68
68
  # Prepare and execute HttpRequest.
@@ -82,7 +82,7 @@ module Square
82
82
  )
83
83
  end
84
84
 
85
- # Calculates an [Order](#type-order).
85
+ # Enables applications to preview order pricing without creating an order.
86
86
  # @param [CalculateOrderRequest] body Required parameter: An object
87
87
  # containing the fields to POST for the request. See the corresponding
88
88
  # object definition for field details.
@@ -96,7 +96,44 @@ module Square
96
96
  # Prepare headers.
97
97
  _headers = {
98
98
  'accept' => 'application/json',
99
- 'content-type' => 'application/json; charset=utf-8'
99
+ 'Content-Type' => 'application/json'
100
+ }
101
+
102
+ # Prepare and execute HttpRequest.
103
+ _request = config.http_client.post(
104
+ _query_url,
105
+ headers: _headers,
106
+ parameters: body.to_json
107
+ )
108
+ OAuth2.apply(config, _request)
109
+ _response = execute_request(_request)
110
+
111
+ # Return appropriate response type.
112
+ decoded = APIHelper.json_deserialize(_response.raw_body)
113
+ _errors = APIHelper.map_response(decoded, ['errors'])
114
+ ApiResponse.new(
115
+ _response, data: decoded, errors: _errors
116
+ )
117
+ end
118
+
119
+ # Creates a new order, in the `DRAFT` state, by duplicating an existing
120
+ # order. The newly created order has
121
+ # only the core fields (such as line items, taxes, and discounts) copied
122
+ # from the original order.
123
+ # @param [CloneOrderRequest] body Required parameter: An object containing
124
+ # the fields to POST for the request. See the corresponding object
125
+ # definition for field details.
126
+ # @return [CloneOrderResponse Hash] response from the API call
127
+ def clone_order(body:)
128
+ # Prepare query url.
129
+ _query_builder = config.get_base_uri
130
+ _query_builder << '/v2/orders/clone'
131
+ _query_url = APIHelper.clean_url _query_builder
132
+
133
+ # Prepare headers.
134
+ _headers = {
135
+ 'accept' => 'application/json',
136
+ 'Content-Type' => 'application/json'
100
137
  }
101
138
 
102
139
  # Prepare and execute HttpRequest.
@@ -118,17 +155,18 @@ module Square
118
155
 
119
156
  # Search all orders for one or more locations. Orders include all sales,
120
157
  # returns, and exchanges regardless of how or when they entered the Square
121
- # Ecosystem (e.g. Point of Sale, Invoices, Connect APIs, etc).
122
- # SearchOrders requests need to specify which locations to search and define
123
- # a
124
- # [`SearchOrdersQuery`](#type-searchordersquery) object which controls
125
- # how to sort or filter the results. Your SearchOrdersQuery can:
158
+ # ecosystem (such as Point of Sale, Invoices, and Connect APIs).
159
+ # `SearchOrders` requests need to specify which locations to search and
160
+ # define a
161
+ # [SearchOrdersQuery]($m/SearchOrdersQuery) object that controls
162
+ # how to sort or filter the results. Your `SearchOrdersQuery` can:
126
163
  # Set filter criteria.
127
- # Set sort order.
128
- # Determine whether to return results as complete Order objects, or as
129
- # [OrderEntry](#type-orderentry) objects.
164
+ # Set the sort order.
165
+ # Determine whether to return results as complete `Order` objects or as
166
+ # [OrderEntry]($m/OrderEntry) objects.
130
167
  # Note that details for orders processed with Square Point of Sale while in
131
- # offline mode may not be transmitted to Square for up to 72 hours. Offline
168
+ # offline mode might not be transmitted to Square for up to 72 hours.
169
+ # Offline
132
170
  # orders have a `created_at` value that reflects the time the order was
133
171
  # created,
134
172
  # not the time it was subsequently transmitted to Square.
@@ -145,7 +183,7 @@ module Square
145
183
  # Prepare headers.
146
184
  _headers = {
147
185
  'accept' => 'application/json',
148
- 'content-type' => 'application/json; charset=utf-8'
186
+ 'Content-Type' => 'application/json'
149
187
  }
150
188
 
151
189
  # Prepare and execute HttpRequest.
@@ -165,7 +203,7 @@ module Square
165
203
  )
166
204
  end
167
205
 
168
- # Retrieves an [Order](#type-order) by ID.
206
+ # Retrieves an [Order]($m/Order) by ID.
169
207
  # @param [String] order_id Required parameter: The ID of the order to
170
208
  # retrieve.
171
209
  # @return [RetrieveOrderResponse Hash] response from the API call
@@ -200,23 +238,24 @@ module Square
200
238
  )
201
239
  end
202
240
 
203
- # Updates an open [Order](#type-order) by adding, replacing, or deleting
241
+ # Updates an open [order]($m/Order) by adding, replacing, or deleting
204
242
  # fields. Orders with a `COMPLETED` or `CANCELED` state cannot be updated.
205
- # An UpdateOrder request requires the following:
243
+ # An `UpdateOrder` request requires the following:
206
244
  # - The `order_id` in the endpoint path, identifying the order to update.
207
245
  # - The latest `version` of the order to update.
208
246
  # - The [sparse
209
- # order](https://developer.squareup.com/docs/orders-api/manage-orders#sparse
210
- # -order-objects)
211
- # containing only the fields to update and the version the update is
212
- # being applied to.
247
+ # order](https://developer.squareup.com/docs/orders-api/manage-orders/update
248
+ # -orders#sparse-order-objects)
249
+ # containing only the fields to update and the version to which the update
250
+ # is
251
+ # being applied.
213
252
  # - If deleting fields, the [dot notation
214
- # paths](https://developer.squareup.com/docs/orders-api/manage-orders#on-dot
215
- # -notation)
216
- # identifying fields to clear.
217
- # To pay for an order, please refer to the [Pay for
218
- # Orders](https://developer.squareup.com/docs/orders-api/pay-for-orders)
219
- # guide.
253
+ # paths](https://developer.squareup.com/docs/orders-api/manage-orders/update
254
+ # -orders#identifying-fields-to-delete)
255
+ # identifying the fields to clear.
256
+ # To pay for an order, see
257
+ # [Pay for
258
+ # Orders](https://developer.squareup.com/docs/orders-api/pay-for-orders).
220
259
  # @param [String] order_id Required parameter: The ID of the order to
221
260
  # update.
222
261
  # @param [UpdateOrderRequest] body Required parameter: An object containing
@@ -237,7 +276,7 @@ module Square
237
276
  # Prepare headers.
238
277
  _headers = {
239
278
  'accept' => 'application/json',
240
- 'content-type' => 'application/json; charset=utf-8'
279
+ 'Content-Type' => 'application/json'
241
280
  }
242
281
 
243
282
  # Prepare and execute HttpRequest.
@@ -257,24 +296,24 @@ module Square
257
296
  )
258
297
  end
259
298
 
260
- # Pay for an [order](#type-order) using one or more approved
261
- # [payments](#type-payment),
299
+ # Pay for an [order]($m/Order) using one or more approved
300
+ # [payments]($m/Payment)
262
301
  # or settle an order with a total of `0`.
263
302
  # The total of the `payment_ids` listed in the request must be equal to the
264
303
  # order
265
304
  # total. Orders with a total amount of `0` can be marked as paid by
266
305
  # specifying an empty
267
306
  # array of `payment_ids` in the request.
268
- # To be used with PayOrder, a payment must:
307
+ # To be used with `PayOrder`, a payment must:
269
308
  # - Reference the order by specifying the `order_id` when [creating the
270
- # payment](#endpoint-payments-createpayment).
309
+ # payment]($e/Payments/CreatePayment).
271
310
  # Any approved payments that reference the same `order_id` not specified in
272
311
  # the
273
- # `payment_ids` will be canceled.
312
+ # `payment_ids` is canceled.
274
313
  # - Be approved with [delayed
275
- # capture](https://developer.squareup.com/docs/payments-api/take-payments#de
276
- # layed-capture).
277
- # Using a delayed capture payment with PayOrder will complete the approved
314
+ # capture](https://developer.squareup.com/docs/payments-api/take-payments/ca
315
+ # rd-payments/delayed-capture).
316
+ # Using a delayed capture payment with `PayOrder` completes the approved
278
317
  # payment.
279
318
  # @param [String] order_id Required parameter: The ID of the order being
280
319
  # paid.
@@ -296,7 +335,7 @@ module Square
296
335
  # Prepare headers.
297
336
  _headers = {
298
337
  'accept' => 'application/json',
299
- 'content-type' => 'application/json; charset=utf-8'
338
+ 'Content-Type' => 'application/json'
300
339
  }
301
340
 
302
341
  # Prepare and execute HttpRequest.
@@ -6,6 +6,9 @@ module Square
6
6
  end
7
7
 
8
8
  # Retrieves a list of payments taken by the account making the request.
9
+ # Results are eventually consistent, and new payments or changes to payments
10
+ # might take several
11
+ # seconds to appear.
9
12
  # The maximum results per page is 100.
10
13
  # @param [String] begin_time Optional parameter: The timestamp for the
11
14
  # beginning of the reporting period, in RFC 3339 format. Inclusive. Default:
@@ -23,7 +26,7 @@ module Square
23
26
  # @param [String] location_id Optional parameter: Limit results to the
24
27
  # location supplied. By default, results are returned for the default (main)
25
28
  # location associated with the seller.
26
- # @param [Long] total Optional parameter: The exact amount in the
29
+ # @param [Integer] total Optional parameter: The exact amount in the
27
30
  # `total_money` for a payment.
28
31
  # @param [String] last_4 Optional parameter: The last four digits of a
29
32
  # payment card.
@@ -83,16 +86,14 @@ module Square
83
86
  )
84
87
  end
85
88
 
86
- # Charges a payment source (for example, a card
87
- # represented by customer's card on file or a card nonce). In addition
88
- # to the payment source, the request must include the
89
- # amount to accept for the payment.
90
- # There are several optional parameters that you can include in the request
91
- # (for example, tip money, whether to autocomplete the payment, or a
92
- # reference ID
93
- # to correlate this payment with another system).
94
- # The `PAYMENTS_WRITE_ADDITIONAL_RECIPIENTS` OAuth permission is required
95
- # to enable application fees.
89
+ # Creates a payment using the provided source. You can use this endpoint
90
+ # to charge a card (credit/debit card or
91
+ # Square gift card) or record a payment that the seller received outside of
92
+ # Square
93
+ # (cash payment from a buyer or a payment that an external entity
94
+ # processed on behalf of the seller).
95
+ # The endpoint creates a
96
+ # `Payment` object and returns it in the response.
96
97
  # @param [CreatePaymentRequest] body Required parameter: An object
97
98
  # containing the fields to POST for the request. See the corresponding
98
99
  # object definition for field details.
@@ -106,7 +107,7 @@ module Square
106
107
  # Prepare headers.
107
108
  _headers = {
108
109
  'accept' => 'application/json',
109
- 'content-type' => 'application/json; charset=utf-8'
110
+ 'Content-Type' => 'application/json'
110
111
  }
111
112
 
112
113
  # Prepare and execute HttpRequest.
@@ -154,7 +155,7 @@ module Square
154
155
  # Prepare headers.
155
156
  _headers = {
156
157
  'accept' => 'application/json',
157
- 'content-type' => 'application/json; charset=utf-8'
158
+ 'Content-Type' => 'application/json'
158
159
  }
159
160
 
160
161
  # Prepare and execute HttpRequest.
@@ -209,11 +210,53 @@ module Square
209
210
  )
210
211
  end
211
212
 
212
- # Cancels (voids) a payment. If you set `autocomplete` to `false` when
213
- # creating a payment,
214
- # you can cancel the payment using this endpoint.
215
- # @param [String] payment_id Required parameter: The `payment_id`
216
- # identifying the payment to be canceled.
213
+ # Updates a payment with the APPROVED status.
214
+ # You can update the `amount_money` and `tip_money` using this endpoint.
215
+ # @param [String] payment_id Required parameter: The ID of the payment to
216
+ # update.
217
+ # @param [UpdatePaymentRequest] body Required parameter: An object
218
+ # containing the fields to POST for the request. See the corresponding
219
+ # object definition for field details.
220
+ # @return [UpdatePaymentResponse Hash] response from the API call
221
+ def update_payment(payment_id:,
222
+ body:)
223
+ # Prepare query url.
224
+ _query_builder = config.get_base_uri
225
+ _query_builder << '/v2/payments/{payment_id}'
226
+ _query_builder = APIHelper.append_url_with_template_parameters(
227
+ _query_builder,
228
+ 'payment_id' => { 'value' => payment_id, 'encode' => true }
229
+ )
230
+ _query_url = APIHelper.clean_url _query_builder
231
+
232
+ # Prepare headers.
233
+ _headers = {
234
+ 'accept' => 'application/json',
235
+ 'Content-Type' => 'application/json'
236
+ }
237
+
238
+ # Prepare and execute HttpRequest.
239
+ _request = config.http_client.put(
240
+ _query_url,
241
+ headers: _headers,
242
+ parameters: body.to_json
243
+ )
244
+ OAuth2.apply(config, _request)
245
+ _response = execute_request(_request)
246
+
247
+ # Return appropriate response type.
248
+ decoded = APIHelper.json_deserialize(_response.raw_body)
249
+ _errors = APIHelper.map_response(decoded, ['errors'])
250
+ ApiResponse.new(
251
+ _response, data: decoded, errors: _errors
252
+ )
253
+ end
254
+
255
+ # Cancels (voids) a payment. You can use this endpoint to cancel a payment
256
+ # with
257
+ # the APPROVED `status`.
258
+ # @param [String] payment_id Required parameter: The ID of the payment to
259
+ # cancel.
217
260
  # @return [CancelPaymentResponse Hash] response from the API call
218
261
  def cancel_payment(payment_id:)
219
262
  # Prepare query url.
@@ -249,13 +292,16 @@ module Square
249
292
  # Completes (captures) a payment.
250
293
  # By default, payments are set to complete immediately after they are
251
294
  # created.
252
- # If you set `autocomplete` to `false` when creating a payment, you can
253
- # complete (capture)
254
- # the payment using this endpoint.
295
+ # You can use this endpoint to complete a payment with the APPROVED
296
+ # `status`.
255
297
  # @param [String] payment_id Required parameter: The unique ID identifying
256
298
  # the payment to be completed.
299
+ # @param [CompletePaymentRequest] body Required parameter: An object
300
+ # containing the fields to POST for the request. See the corresponding
301
+ # object definition for field details.
257
302
  # @return [CompletePaymentResponse Hash] response from the API call
258
- def complete_payment(payment_id:)
303
+ def complete_payment(payment_id:,
304
+ body:)
259
305
  # Prepare query url.
260
306
  _query_builder = config.get_base_uri
261
307
  _query_builder << '/v2/payments/{payment_id}/complete'
@@ -267,13 +313,15 @@ module Square
267
313
 
268
314
  # Prepare headers.
269
315
  _headers = {
270
- 'accept' => 'application/json'
316
+ 'accept' => 'application/json',
317
+ 'Content-Type' => 'application/json'
271
318
  }
272
319
 
273
320
  # Prepare and execute HttpRequest.
274
321
  _request = config.http_client.post(
275
322
  _query_url,
276
- headers: _headers
323
+ headers: _headers,
324
+ parameters: body.to_json
277
325
  )
278
326
  OAuth2.apply(config, _request)
279
327
  _response = execute_request(_request)
@@ -0,0 +1,173 @@
1
+ module Square
2
+ # PayoutsApi
3
+ class PayoutsApi < BaseApi
4
+ def initialize(config, http_call_back: nil)
5
+ super(config, http_call_back: http_call_back)
6
+ end
7
+
8
+ # Retrieves a list of all payouts for the default location.
9
+ # You can filter payouts by location ID, status, time range, and order them
10
+ # in ascending or descending order.
11
+ # To call this endpoint, set `PAYOUTS_READ` for the OAuth scope.
12
+ # @param [String] location_id Optional parameter: The ID of the location for
13
+ # which to list the payouts. By default, payouts are returned for the
14
+ # default (main) location associated with the seller.
15
+ # @param [PayoutStatus] status Optional parameter: If provided, only payouts
16
+ # with the given status are returned.
17
+ # @param [String] begin_time Optional parameter: The timestamp for the
18
+ # beginning of the payout creation time, in RFC 3339 format. Inclusive.
19
+ # Default: The current time minus one year.
20
+ # @param [String] end_time Optional parameter: The timestamp for the end of
21
+ # the payout creation time, in RFC 3339 format. Default: The current time.
22
+ # @param [SortOrder] sort_order Optional parameter: The order in which
23
+ # payouts are listed.
24
+ # @param [String] cursor Optional parameter: A pagination cursor returned by
25
+ # a previous call to this endpoint. Provide this cursor to retrieve the next
26
+ # set of results for the original query. For more information, see
27
+ # [Pagination](https://developer.squareup.com/docs/basics/api101/pagination)
28
+ # . If request parameters change between requests, subsequent results may
29
+ # contain duplicates or missing records.
30
+ # @param [Integer] limit Optional parameter: The maximum number of results
31
+ # to be returned in a single page. It is possible to receive fewer results
32
+ # than the specified limit on a given page. The default value of 100 is also
33
+ # the maximum allowed value. If the provided value is greater than 100, it
34
+ # is ignored and the default value is used instead. Default: `100`
35
+ # @return [ListPayoutsResponse Hash] response from the API call
36
+ def list_payouts(location_id: nil,
37
+ status: nil,
38
+ begin_time: nil,
39
+ end_time: nil,
40
+ sort_order: nil,
41
+ cursor: nil,
42
+ limit: nil)
43
+ # Prepare query url.
44
+ _query_builder = config.get_base_uri
45
+ _query_builder << '/v2/payouts'
46
+ _query_builder = APIHelper.append_url_with_query_parameters(
47
+ _query_builder,
48
+ 'location_id' => location_id,
49
+ 'status' => status,
50
+ 'begin_time' => begin_time,
51
+ 'end_time' => end_time,
52
+ 'sort_order' => sort_order,
53
+ 'cursor' => cursor,
54
+ 'limit' => limit
55
+ )
56
+ _query_url = APIHelper.clean_url _query_builder
57
+
58
+ # Prepare headers.
59
+ _headers = {
60
+ 'accept' => 'application/json'
61
+ }
62
+
63
+ # Prepare and execute HttpRequest.
64
+ _request = config.http_client.get(
65
+ _query_url,
66
+ headers: _headers
67
+ )
68
+ OAuth2.apply(config, _request)
69
+ _response = execute_request(_request)
70
+
71
+ # Return appropriate response type.
72
+ decoded = APIHelper.json_deserialize(_response.raw_body)
73
+ _errors = APIHelper.map_response(decoded, ['errors'])
74
+ ApiResponse.new(
75
+ _response, data: decoded, errors: _errors
76
+ )
77
+ end
78
+
79
+ # Retrieves details of a specific payout identified by a payout ID.
80
+ # To call this endpoint, set `PAYOUTS_READ` for the OAuth scope.
81
+ # @param [String] payout_id Required parameter: The ID of the payout to
82
+ # retrieve the information for.
83
+ # @return [GetPayoutResponse Hash] response from the API call
84
+ def get_payout(payout_id:)
85
+ # Prepare query url.
86
+ _query_builder = config.get_base_uri
87
+ _query_builder << '/v2/payouts/{payout_id}'
88
+ _query_builder = APIHelper.append_url_with_template_parameters(
89
+ _query_builder,
90
+ 'payout_id' => { 'value' => payout_id, 'encode' => true }
91
+ )
92
+ _query_url = APIHelper.clean_url _query_builder
93
+
94
+ # Prepare headers.
95
+ _headers = {
96
+ 'accept' => 'application/json'
97
+ }
98
+
99
+ # Prepare and execute HttpRequest.
100
+ _request = config.http_client.get(
101
+ _query_url,
102
+ headers: _headers
103
+ )
104
+ OAuth2.apply(config, _request)
105
+ _response = execute_request(_request)
106
+
107
+ # Return appropriate response type.
108
+ decoded = APIHelper.json_deserialize(_response.raw_body)
109
+ _errors = APIHelper.map_response(decoded, ['errors'])
110
+ ApiResponse.new(
111
+ _response, data: decoded, errors: _errors
112
+ )
113
+ end
114
+
115
+ # Retrieves a list of all payout entries for a specific payout.
116
+ # To call this endpoint, set `PAYOUTS_READ` for the OAuth scope.
117
+ # @param [String] payout_id Required parameter: The ID of the payout to
118
+ # retrieve the information for.
119
+ # @param [SortOrder] sort_order Optional parameter: The order in which
120
+ # payout entries are listed.
121
+ # @param [String] cursor Optional parameter: A pagination cursor returned by
122
+ # a previous call to this endpoint. Provide this cursor to retrieve the next
123
+ # set of results for the original query. For more information, see
124
+ # [Pagination](https://developer.squareup.com/docs/basics/api101/pagination)
125
+ # . If request parameters change between requests, subsequent results may
126
+ # contain duplicates or missing records.
127
+ # @param [Integer] limit Optional parameter: The maximum number of results
128
+ # to be returned in a single page. It is possible to receive fewer results
129
+ # than the specified limit on a given page. The default value of 100 is also
130
+ # the maximum allowed value. If the provided value is greater than 100, it
131
+ # is ignored and the default value is used instead. Default: `100`
132
+ # @return [ListPayoutEntriesResponse Hash] response from the API call
133
+ def list_payout_entries(payout_id:,
134
+ sort_order: nil,
135
+ cursor: nil,
136
+ limit: nil)
137
+ # Prepare query url.
138
+ _query_builder = config.get_base_uri
139
+ _query_builder << '/v2/payouts/{payout_id}/payout-entries'
140
+ _query_builder = APIHelper.append_url_with_template_parameters(
141
+ _query_builder,
142
+ 'payout_id' => { 'value' => payout_id, 'encode' => true }
143
+ )
144
+ _query_builder = APIHelper.append_url_with_query_parameters(
145
+ _query_builder,
146
+ 'sort_order' => sort_order,
147
+ 'cursor' => cursor,
148
+ 'limit' => limit
149
+ )
150
+ _query_url = APIHelper.clean_url _query_builder
151
+
152
+ # Prepare headers.
153
+ _headers = {
154
+ 'accept' => 'application/json'
155
+ }
156
+
157
+ # Prepare and execute HttpRequest.
158
+ _request = config.http_client.get(
159
+ _query_url,
160
+ headers: _headers
161
+ )
162
+ OAuth2.apply(config, _request)
163
+ _response = execute_request(_request)
164
+
165
+ # Return appropriate response type.
166
+ decoded = APIHelper.json_deserialize(_response.raw_body)
167
+ _errors = APIHelper.map_response(decoded, ['errors'])
168
+ ApiResponse.new(
169
+ _response, data: decoded, errors: _errors
170
+ )
171
+ end
172
+ end
173
+ end
@@ -6,6 +6,9 @@ module Square
6
6
  end
7
7
 
8
8
  # Retrieves a list of refunds for the account making the request.
9
+ # Results are eventually consistent, and new refunds or changes to refunds
10
+ # might take several
11
+ # seconds to appear.
9
12
  # The maximum results per page is 100.
10
13
  # @param [String] begin_time Optional parameter: The timestamp for the
11
14
  # beginning of the requested reporting period, in RFC 3339 format. Default:
@@ -26,12 +29,15 @@ module Square
26
29
  # associated with the seller.
27
30
  # @param [String] status Optional parameter: If provided, only refunds with
28
31
  # the given status are returned. For a list of refund status values, see
29
- # [PaymentRefund](#type-paymentrefund). Default: If omitted, refunds are
32
+ # [PaymentRefund]($m/PaymentRefund). Default: If omitted, refunds are
30
33
  # returned regardless of their status.
31
- # @param [String] source_type Optional parameter: If provided, only refunds
32
- # with the given source type are returned. - `CARD` - List refunds only for
33
- # payments where `CARD` was specified as the payment source. Default: If
34
- # omitted, refunds are returned regardless of the source type.
34
+ # @param [String] source_type Optional parameter: If provided, only returns
35
+ # refunds whose payments have the indicated source type. Current values
36
+ # include `CARD`, `BANK_ACCOUNT`, `WALLET`, `CASH`, and `EXTERNAL`. For
37
+ # information about these payment source types, see [Take
38
+ # Payments](https://developer.squareup.com/docs/payments-api/take-payments).
39
+ # Default: If omitted, refunds are returned regardless of the source
40
+ # type.
35
41
  # @param [Integer] limit Optional parameter: The maximum number of results
36
42
  # to be returned in a single page. It is possible to receive fewer results
37
43
  # than the specified limit on a given page. If the supplied value is
@@ -83,7 +89,12 @@ module Square
83
89
  end
84
90
 
85
91
  # Refunds a payment. You can refund the entire payment amount or a
86
- # portion of it.
92
+ # portion of it. You can use this endpoint to refund a card payment or
93
+ # record a
94
+ # refund of a cash or external payment. For more information, see
95
+ # [Refund
96
+ # Payment](https://developer.squareup.com/docs/payments-api/refund-payments)
97
+ # .
87
98
  # @param [RefundPaymentRequest] body Required parameter: An object
88
99
  # containing the fields to POST for the request. See the corresponding
89
100
  # object definition for field details.
@@ -97,7 +108,7 @@ module Square
97
108
  # Prepare headers.
98
109
  _headers = {
99
110
  'accept' => 'application/json',
100
- 'content-type' => 'application/json; charset=utf-8'
111
+ 'Content-Type' => 'application/json'
101
112
  }
102
113
 
103
114
  # Prepare and execute HttpRequest.
@@ -0,0 +1,43 @@
1
+ module Square
2
+ # SitesApi
3
+ class SitesApi < BaseApi
4
+ def initialize(config, http_call_back: nil)
5
+ super(config, http_call_back: http_call_back)
6
+ end
7
+
8
+ # Lists the Square Online sites that belong to a seller. Sites are listed in
9
+ # descending order by the `created_at` date.
10
+ # __Note:__ Square Online APIs are publicly available as part of an early
11
+ # access program. For more information, see [Early access program for Square
12
+ # Online
13
+ # APIs](https://developer.squareup.com/docs/online-api#early-access-program-
14
+ # for-square-online-apis).
15
+ # @return [ListSitesResponse Hash] response from the API call
16
+ def list_sites
17
+ # Prepare query url.
18
+ _query_builder = config.get_base_uri
19
+ _query_builder << '/v2/sites'
20
+ _query_url = APIHelper.clean_url _query_builder
21
+
22
+ # Prepare headers.
23
+ _headers = {
24
+ 'accept' => 'application/json'
25
+ }
26
+
27
+ # Prepare and execute HttpRequest.
28
+ _request = config.http_client.get(
29
+ _query_url,
30
+ headers: _headers
31
+ )
32
+ OAuth2.apply(config, _request)
33
+ _response = execute_request(_request)
34
+
35
+ # Return appropriate response type.
36
+ decoded = APIHelper.json_deserialize(_response.raw_body)
37
+ _errors = APIHelper.map_response(decoded, ['errors'])
38
+ ApiResponse.new(
39
+ _response, data: decoded, errors: _errors
40
+ )
41
+ end
42
+ end
43
+ end