myob_acumatica 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +30 -3
- data/Gemfile.lock +1 -1
- data/README.md +106 -38
- data/examples/invoice.rb +64 -9
- data/examples/payment.rb +255 -0
- data/examples/tax.rb +99 -0
- data/lib/myob_acumatica/api/payment.rb +506 -0
- data/lib/myob_acumatica/api/tax.rb +350 -0
- data/lib/myob_acumatica/version.rb +1 -1
- data/lib/myob_acumatica.rb +2 -0
- metadata +6 -2
@@ -0,0 +1,506 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module MyobAcumatica
|
4
|
+
module Api
|
5
|
+
# Provides methods to interact with the Payment API endpoints.
|
6
|
+
|
7
|
+
module Payment
|
8
|
+
module_function
|
9
|
+
|
10
|
+
# Deletes a payment by ID.
|
11
|
+
#
|
12
|
+
# @example Delete a payment by ID
|
13
|
+
# MyobAcumatica::Api::Payment.delete_by_id(
|
14
|
+
# access_token: access_token,
|
15
|
+
# id: payment['id'],
|
16
|
+
# logger: logger
|
17
|
+
# )
|
18
|
+
#
|
19
|
+
# @param access_token [String] OAuth2 access token.
|
20
|
+
# @param id [String] Unique payment ID.
|
21
|
+
# @param instance_name [String] The instance name.
|
22
|
+
# @param endpoint_name [String] The endpoint name.
|
23
|
+
# @param endpoint_version [String] The endpoint version.
|
24
|
+
# @param logger [Logger, nil] Optional logger.
|
25
|
+
# @return [nil]
|
26
|
+
def delete_by_id(access_token:, id:,
|
27
|
+
instance_name: INSTANCE_NAME,
|
28
|
+
endpoint_name: ENDPOINT_NAME,
|
29
|
+
endpoint_version: ENDPOINT_VERSION,
|
30
|
+
logger: nil)
|
31
|
+
Http.request(
|
32
|
+
instance_name: instance_name,
|
33
|
+
access_token: access_token,
|
34
|
+
method: :delete,
|
35
|
+
endpoint_name: endpoint_name,
|
36
|
+
endpoint_version: endpoint_version,
|
37
|
+
path: "Payment/#{id}",
|
38
|
+
logger: logger
|
39
|
+
)
|
40
|
+
end
|
41
|
+
|
42
|
+
# Deletes a payment by composite keys.
|
43
|
+
#
|
44
|
+
# @example Delete a payment by keys
|
45
|
+
# MyobAcumatica::Api::Payment.delete_by_keys(
|
46
|
+
# access_token: access_token,
|
47
|
+
# keys: [payment['Type']['value'], payment['ReferenceNbr']['value']],
|
48
|
+
# logger: logger
|
49
|
+
# )
|
50
|
+
#
|
51
|
+
# @param access_token [String] OAuth2 access token.
|
52
|
+
# @param keys [Array<String>] Keys uniquely identifying the payment.
|
53
|
+
# @param instance_name [String] The instance name.
|
54
|
+
# @param endpoint_name [String] The endpoint name.
|
55
|
+
# @param endpoint_version [String] The endpoint version.
|
56
|
+
# @param logger [Logger, nil] Optional logger.
|
57
|
+
# @return [nil]
|
58
|
+
def delete_by_keys(access_token:, keys:,
|
59
|
+
instance_name: INSTANCE_NAME,
|
60
|
+
endpoint_name: ENDPOINT_NAME,
|
61
|
+
endpoint_version: ENDPOINT_VERSION,
|
62
|
+
logger: nil)
|
63
|
+
Http.request(
|
64
|
+
instance_name: instance_name,
|
65
|
+
access_token: access_token,
|
66
|
+
method: :delete,
|
67
|
+
endpoint_name: endpoint_name,
|
68
|
+
endpoint_version: endpoint_version,
|
69
|
+
path: "Payment/#{keys.join('/')}",
|
70
|
+
logger: logger
|
71
|
+
)
|
72
|
+
end
|
73
|
+
|
74
|
+
# Retrieves the ad-hoc schema for the payment endpoint.
|
75
|
+
#
|
76
|
+
# @example Retrieve ad-hoc schema
|
77
|
+
# MyobAcumatica::Api::Payment.get_ad_hoc_schema(
|
78
|
+
# access_token: access_token,
|
79
|
+
# logger: logger
|
80
|
+
# )
|
81
|
+
#
|
82
|
+
# @param access_token [String] OAuth2 access token.
|
83
|
+
# @param instance_name [String] The instance name.
|
84
|
+
# @param endpoint_name [String] The endpoint name.
|
85
|
+
# @param endpoint_version [String] The endpoint version.
|
86
|
+
# @param logger [Logger, nil] Optional logger.
|
87
|
+
# @return [Hash] Ad-hoc schema.
|
88
|
+
def get_ad_hoc_schema(access_token:,
|
89
|
+
instance_name: INSTANCE_NAME,
|
90
|
+
endpoint_name: ENDPOINT_NAME,
|
91
|
+
endpoint_version: ENDPOINT_VERSION,
|
92
|
+
logger: nil)
|
93
|
+
Http.request(
|
94
|
+
instance_name: instance_name,
|
95
|
+
access_token: access_token,
|
96
|
+
method: :get,
|
97
|
+
endpoint_name: endpoint_name,
|
98
|
+
endpoint_version: endpoint_version,
|
99
|
+
path: 'Payment/$adHocSchema',
|
100
|
+
logger: logger
|
101
|
+
)
|
102
|
+
end
|
103
|
+
|
104
|
+
# Retrieves a payment by unique ID.
|
105
|
+
#
|
106
|
+
# @example Get payment by ID
|
107
|
+
# MyobAcumatica::Api::Payment.get_by_id(
|
108
|
+
# access_token: access_token,
|
109
|
+
# id: payment['id'],
|
110
|
+
# logger: logger
|
111
|
+
# )
|
112
|
+
#
|
113
|
+
# @param access_token [String] OAuth2 access token.
|
114
|
+
# @param id [String] Unique payment ID.
|
115
|
+
# @param query_params [Hash] Optional query parameters.
|
116
|
+
# @param instance_name [String] The instance name.
|
117
|
+
# @param endpoint_name [String] The endpoint name.
|
118
|
+
# @param endpoint_version [String] The endpoint version.
|
119
|
+
# @param logger [Logger, nil] Optional logger.
|
120
|
+
# @return [Hash] The payment.
|
121
|
+
def get_by_id(access_token:, id:, query_params: {},
|
122
|
+
instance_name: INSTANCE_NAME,
|
123
|
+
endpoint_name: ENDPOINT_NAME,
|
124
|
+
endpoint_version: ENDPOINT_VERSION,
|
125
|
+
logger: nil)
|
126
|
+
Http.request(
|
127
|
+
instance_name: instance_name,
|
128
|
+
access_token: access_token,
|
129
|
+
method: :get,
|
130
|
+
endpoint_name: endpoint_name,
|
131
|
+
endpoint_version: endpoint_version,
|
132
|
+
path: "Payment/#{id}",
|
133
|
+
query_params: query_params,
|
134
|
+
logger: logger
|
135
|
+
)
|
136
|
+
end
|
137
|
+
|
138
|
+
# Retrieves a payment by composite keys.
|
139
|
+
#
|
140
|
+
# @example Get payment by keys
|
141
|
+
# MyobAcumatica::Api::Payment.get_by_keys(
|
142
|
+
# access_token: access_token,
|
143
|
+
# keys: [payment['Type']['value'], payment['ReferenceNbr']['value']],
|
144
|
+
# logger: logger
|
145
|
+
# )
|
146
|
+
#
|
147
|
+
# @param access_token [String] OAuth2 access token.
|
148
|
+
# @param keys [Array<String>] Keys uniquely identifying the payment.
|
149
|
+
# @param query_params [Hash] Optional query parameters.
|
150
|
+
# @param instance_name [String] The instance name.
|
151
|
+
# @param endpoint_name [String] The endpoint name.
|
152
|
+
# @param endpoint_version [String] The endpoint version.
|
153
|
+
# @param logger [Logger, nil] Optional logger.
|
154
|
+
# @return [Hash] The payment.
|
155
|
+
def get_by_keys(access_token:, keys:, query_params: {},
|
156
|
+
instance_name: INSTANCE_NAME,
|
157
|
+
endpoint_name: ENDPOINT_NAME,
|
158
|
+
endpoint_version: ENDPOINT_VERSION,
|
159
|
+
logger: nil)
|
160
|
+
Http.request(
|
161
|
+
instance_name: instance_name,
|
162
|
+
access_token: access_token,
|
163
|
+
method: :get,
|
164
|
+
endpoint_name: endpoint_name,
|
165
|
+
endpoint_version: endpoint_version,
|
166
|
+
path: "Payment/#{keys.join('/')}",
|
167
|
+
query_params: query_params,
|
168
|
+
logger: logger
|
169
|
+
)
|
170
|
+
end
|
171
|
+
|
172
|
+
# Retrieves a list of payments.
|
173
|
+
#
|
174
|
+
# @example List payments of type 'Payment'
|
175
|
+
# MyobAcumatica::Api::Payment.get_list(
|
176
|
+
# access_token: access_token,
|
177
|
+
# query_params: { '$filter' => "Type eq 'Payment'" },
|
178
|
+
# logger: logger
|
179
|
+
# )
|
180
|
+
#
|
181
|
+
# @param access_token [String] OAuth2 access token.
|
182
|
+
# @param query_params [Hash] Optional query parameters.
|
183
|
+
# @param instance_name [String] The instance name.
|
184
|
+
# @param endpoint_name [String] The endpoint name.
|
185
|
+
# @param endpoint_version [String] The endpoint version.
|
186
|
+
# @param logger [Logger, nil] Optional logger.
|
187
|
+
# @return [Array<Hash>] List of payments.
|
188
|
+
def get_list(access_token:, query_params: {},
|
189
|
+
instance_name: INSTANCE_NAME,
|
190
|
+
endpoint_name: ENDPOINT_NAME,
|
191
|
+
endpoint_version: ENDPOINT_VERSION,
|
192
|
+
logger: nil)
|
193
|
+
Http.request(
|
194
|
+
instance_name: instance_name,
|
195
|
+
access_token: access_token,
|
196
|
+
method: :get,
|
197
|
+
endpoint_name: endpoint_name,
|
198
|
+
endpoint_version: endpoint_version,
|
199
|
+
path: 'Payment',
|
200
|
+
query_params: query_params,
|
201
|
+
logger: logger
|
202
|
+
)
|
203
|
+
end
|
204
|
+
|
205
|
+
# Creates or updates a payment entity.
|
206
|
+
#
|
207
|
+
# @example Create a new payment
|
208
|
+
# payment = MyobAcumatica::Api::Payment.put_entity(
|
209
|
+
# access_token: access_token,
|
210
|
+
# entity: {
|
211
|
+
# 'CustomerID' => { 'value' => 'JOHNGOODPAYER' },
|
212
|
+
# 'ApplicationDate' => { 'value' => '2025-05-6' },
|
213
|
+
# 'PaymentMethod' => { 'value' => 'CASH' },
|
214
|
+
# 'CashAccount' => { 'value' => 'CASHACCC' },
|
215
|
+
# 'Hold' => { 'value' => false }
|
216
|
+
# },
|
217
|
+
# logger: logger
|
218
|
+
# )
|
219
|
+
#
|
220
|
+
# @param access_token [String] OAuth2 access token.
|
221
|
+
# @param entity [Hash] Payment entity.
|
222
|
+
# @param query_params [Hash] Optional query parameters.
|
223
|
+
# @param instance_name [String] The instance name.
|
224
|
+
# @param endpoint_name [String] The endpoint name.
|
225
|
+
# @param endpoint_version [String] The endpoint version.
|
226
|
+
# @param logger [Logger, nil] Optional logger.
|
227
|
+
# @return [Hash] Created or updated payment.
|
228
|
+
def put_entity(access_token:, entity:, query_params: {},
|
229
|
+
instance_name: INSTANCE_NAME,
|
230
|
+
endpoint_name: ENDPOINT_NAME,
|
231
|
+
endpoint_version: ENDPOINT_VERSION,
|
232
|
+
logger: nil)
|
233
|
+
Http.request(
|
234
|
+
instance_name: instance_name,
|
235
|
+
access_token: access_token,
|
236
|
+
method: :put,
|
237
|
+
endpoint_name: endpoint_name,
|
238
|
+
endpoint_version: endpoint_version,
|
239
|
+
path: 'Payment',
|
240
|
+
body: entity,
|
241
|
+
query_params: query_params,
|
242
|
+
logger: logger
|
243
|
+
)
|
244
|
+
end
|
245
|
+
|
246
|
+
# Uploads a file to a payment record.
|
247
|
+
#
|
248
|
+
# @example Upload a PDF to a payment
|
249
|
+
# MyobAcumatica::Api::Payment.put_file(
|
250
|
+
# access_token: access_token,
|
251
|
+
# keys: [payment['Type']['value'], payment['ReferenceNbr']['value']],
|
252
|
+
# file_path: 'examples/dummy.pdf',
|
253
|
+
# logger: logger
|
254
|
+
# )
|
255
|
+
#
|
256
|
+
# @param access_token [String] OAuth2 access token.
|
257
|
+
# @param keys [Array<String>] Keys identifying the payment.
|
258
|
+
# @param file_path [String] Path to the file.
|
259
|
+
# @param instance_name [String] The instance name.
|
260
|
+
# @param endpoint_name [String] The endpoint name.
|
261
|
+
# @param endpoint_version [String] The endpoint version.
|
262
|
+
# @param logger [Logger, nil] Optional logger.
|
263
|
+
# @raise [MyobAcumatica::Error] If upload link not found.
|
264
|
+
# @return [nil]
|
265
|
+
def put_file(access_token:, keys:, file_path:,
|
266
|
+
instance_name: INSTANCE_NAME,
|
267
|
+
endpoint_name: ENDPOINT_NAME,
|
268
|
+
endpoint_version: ENDPOINT_VERSION,
|
269
|
+
logger: nil)
|
270
|
+
payment = get_by_keys(
|
271
|
+
access_token: access_token,
|
272
|
+
keys: keys,
|
273
|
+
instance_name: instance_name,
|
274
|
+
logger: logger
|
275
|
+
)
|
276
|
+
put_url_template = payment.dig('_links', 'files:put')
|
277
|
+
raise MyobAcumatica::Error, 'files:put link not found' unless put_url_template
|
278
|
+
|
279
|
+
filename = File.basename(file_path)
|
280
|
+
path = put_url_template.gsub('{filename}', filename)
|
281
|
+
Http.request(
|
282
|
+
instance_name: instance_name,
|
283
|
+
access_token: access_token,
|
284
|
+
method: :put,
|
285
|
+
endpoint_name: endpoint_name,
|
286
|
+
endpoint_version: endpoint_version,
|
287
|
+
path: path,
|
288
|
+
body: File.binread(file_path),
|
289
|
+
content_type: 'application/octet-stream',
|
290
|
+
logger: logger
|
291
|
+
)
|
292
|
+
end
|
293
|
+
|
294
|
+
# Invokes a custom action on a payment.
|
295
|
+
#
|
296
|
+
# @example Release a payment via invoke_action
|
297
|
+
# MyobAcumatica::Api::Payment.invoke_action(
|
298
|
+
# access_token: access_token,
|
299
|
+
# action_name: 'ReleasePayment',
|
300
|
+
# entity: { 'id' => payment['id'] },
|
301
|
+
# logger: logger
|
302
|
+
# )
|
303
|
+
#
|
304
|
+
# @param access_token [String] OAuth2 access token.
|
305
|
+
# @param action_name [String] Action name.
|
306
|
+
# @param entity [Hash] Payment entity.
|
307
|
+
# @param parameters [Hash] Optional parameters.
|
308
|
+
# @param instance_name [String] The instance name.
|
309
|
+
# @param endpoint_name [String] The endpoint name.
|
310
|
+
# @param endpoint_version [String] The endpoint version.
|
311
|
+
# @param logger [Logger, nil] Optional logger.
|
312
|
+
# @return [Hash, nil] Action response.
|
313
|
+
def invoke_action(access_token:, action_name:, entity:, parameters: {},
|
314
|
+
instance_name: INSTANCE_NAME,
|
315
|
+
endpoint_name: ENDPOINT_NAME,
|
316
|
+
endpoint_version: ENDPOINT_VERSION,
|
317
|
+
logger: nil)
|
318
|
+
Http.request(
|
319
|
+
instance_name: instance_name,
|
320
|
+
access_token: access_token,
|
321
|
+
method: :post,
|
322
|
+
endpoint_name: endpoint_name,
|
323
|
+
endpoint_version: endpoint_version,
|
324
|
+
path: "Payment/#{action_name}",
|
325
|
+
body: { 'entity' => entity, 'parameters' => parameters },
|
326
|
+
logger: logger
|
327
|
+
)
|
328
|
+
end
|
329
|
+
|
330
|
+
# Captures a credit card payment.
|
331
|
+
#
|
332
|
+
# @example Capture an authorised credit card payment
|
333
|
+
# MyobAcumatica::Api::Payment.capture_credit_card_payment(
|
334
|
+
# access_token: access_token,
|
335
|
+
# entity: { 'ReferenceNbr' => { 'value' => payment['ReferenceNbr']['value'] } },
|
336
|
+
# parameters: { 'Amount' => { 'value' => 60.0 } },
|
337
|
+
# logger: logger
|
338
|
+
# )
|
339
|
+
#
|
340
|
+
# @param access_token [String] OAuth2 access token.
|
341
|
+
# @param entity [Hash] Payment entity.
|
342
|
+
# @param parameters [Hash] Optional parameters.
|
343
|
+
# @param instance_name [String] The instance name.
|
344
|
+
# @param endpoint_name [String] The endpoint name.
|
345
|
+
# @param endpoint_version [String] The endpoint version.
|
346
|
+
# @param logger [Logger, nil] Optional logger.
|
347
|
+
# @return [Hash] Response from the capture action.
|
348
|
+
def capture_credit_card_payment(access_token:, entity:, parameters: {},
|
349
|
+
instance_name: INSTANCE_NAME,
|
350
|
+
endpoint_name: ENDPOINT_NAME,
|
351
|
+
endpoint_version: ENDPOINT_VERSION,
|
352
|
+
logger: nil)
|
353
|
+
Http.request(
|
354
|
+
instance_name: instance_name,
|
355
|
+
access_token: access_token,
|
356
|
+
method: :post,
|
357
|
+
endpoint_name: endpoint_name,
|
358
|
+
endpoint_version: endpoint_version,
|
359
|
+
path: 'Payment/CaptureCreditCardPayment',
|
360
|
+
body: { 'entity' => entity, 'parameters' => parameters },
|
361
|
+
logger: logger
|
362
|
+
)
|
363
|
+
end
|
364
|
+
|
365
|
+
# Performs a card operation such as Authorize or Capture.
|
366
|
+
#
|
367
|
+
# @example Authorise a card payment
|
368
|
+
# MyobAcumatica::Api::Payment.card_operation(
|
369
|
+
# access_token: access_token,
|
370
|
+
# entity: { 'ReferenceNbr' => { 'value' => payment['ReferenceNbr']['value'] } },
|
371
|
+
# parameters: {
|
372
|
+
# 'Operation' => { 'value' => 'Authorize' },
|
373
|
+
# 'Amount' => { 'value' => 60.0 }
|
374
|
+
# },
|
375
|
+
# logger: logger
|
376
|
+
# )
|
377
|
+
#
|
378
|
+
# @param access_token [String] OAuth2 access token.
|
379
|
+
# @param entity [Hash] Payment entity.
|
380
|
+
# @param parameters [Hash] Operation parameters.
|
381
|
+
# @param instance_name [String] The instance name.
|
382
|
+
# @param endpoint_name [String] The endpoint name.
|
383
|
+
# @param endpoint_version [String] The endpoint version.
|
384
|
+
# @param logger [Logger, nil] Optional logger.
|
385
|
+
# @return [Hash] Response from the card operation.
|
386
|
+
def card_operation(access_token:, entity:, parameters: {},
|
387
|
+
instance_name: INSTANCE_NAME,
|
388
|
+
endpoint_name: ENDPOINT_NAME,
|
389
|
+
endpoint_version: ENDPOINT_VERSION,
|
390
|
+
logger: nil)
|
391
|
+
Http.request(
|
392
|
+
instance_name: instance_name,
|
393
|
+
access_token: access_token,
|
394
|
+
method: :post,
|
395
|
+
endpoint_name: endpoint_name,
|
396
|
+
endpoint_version: endpoint_version,
|
397
|
+
path: 'Payment/CardOperation',
|
398
|
+
body: { 'entity' => entity, 'parameters' => parameters },
|
399
|
+
logger: logger
|
400
|
+
)
|
401
|
+
end
|
402
|
+
|
403
|
+
# Releases a payment.
|
404
|
+
#
|
405
|
+
# @example Release a payment
|
406
|
+
# MyobAcumatica::Api::Payment.release_payment(
|
407
|
+
# access_token: access_token,
|
408
|
+
# entity: { 'id' => payment['id'] },
|
409
|
+
# logger: logger
|
410
|
+
# )
|
411
|
+
#
|
412
|
+
# @param access_token [String] OAuth2 access token.
|
413
|
+
# @param entity [Hash] Payment entity.
|
414
|
+
# @param parameters [Hash] Optional parameters.
|
415
|
+
# @param instance_name [String] The instance name.
|
416
|
+
# @param endpoint_name [String] The endpoint name.
|
417
|
+
# @param endpoint_version [String] The endpoint version.
|
418
|
+
# @param logger [Logger, nil] Optional logger.
|
419
|
+
# @return [Hash] Response from the release action.
|
420
|
+
def release_payment(access_token:, entity:, parameters: {},
|
421
|
+
instance_name: INSTANCE_NAME,
|
422
|
+
endpoint_name: ENDPOINT_NAME,
|
423
|
+
endpoint_version: ENDPOINT_VERSION,
|
424
|
+
logger: nil)
|
425
|
+
Http.request(
|
426
|
+
instance_name: instance_name,
|
427
|
+
access_token: access_token,
|
428
|
+
method: :post,
|
429
|
+
endpoint_name: endpoint_name,
|
430
|
+
endpoint_version: endpoint_version,
|
431
|
+
path: 'Payment/ReleasePayment',
|
432
|
+
body: { 'entity' => entity, 'parameters' => parameters },
|
433
|
+
logger: logger
|
434
|
+
)
|
435
|
+
end
|
436
|
+
|
437
|
+
# Voids a card payment.
|
438
|
+
#
|
439
|
+
# @example Void a credit card payment
|
440
|
+
# MyobAcumatica::Api::Payment.void_card_payment(
|
441
|
+
# access_token: access_token,
|
442
|
+
# entity: { 'ReferenceNbr' => { 'value' => payment['ReferenceNbr']['value'] } },
|
443
|
+
# logger: logger
|
444
|
+
# )
|
445
|
+
#
|
446
|
+
# @param access_token [String] OAuth2 access token.
|
447
|
+
# @param entity [Hash] Payment entity.
|
448
|
+
# @param parameters [Hash] Optional parameters.
|
449
|
+
# @param instance_name [String] The instance name.
|
450
|
+
# @param endpoint_name [String] The endpoint name.
|
451
|
+
# @param endpoint_version [String] The endpoint version.
|
452
|
+
# @param logger [Logger, nil] Optional logger.
|
453
|
+
# @return [Hash] Response from the void card payment action.
|
454
|
+
def void_card_payment(access_token:, entity:, parameters: {},
|
455
|
+
instance_name: INSTANCE_NAME,
|
456
|
+
endpoint_name: ENDPOINT_NAME,
|
457
|
+
endpoint_version: ENDPOINT_VERSION,
|
458
|
+
logger: nil)
|
459
|
+
Http.request(
|
460
|
+
instance_name: instance_name,
|
461
|
+
access_token: access_token,
|
462
|
+
method: :post,
|
463
|
+
endpoint_name: endpoint_name,
|
464
|
+
endpoint_version: endpoint_version,
|
465
|
+
path: 'Payment/VoidCardPayment',
|
466
|
+
body: { 'entity' => entity, 'parameters' => parameters },
|
467
|
+
logger: logger
|
468
|
+
)
|
469
|
+
end
|
470
|
+
|
471
|
+
# Voids a payment.
|
472
|
+
#
|
473
|
+
# @example Void a payment
|
474
|
+
# MyobAcumatica::Api::Payment.void_payment(
|
475
|
+
# access_token: access_token,
|
476
|
+
# entity: { 'ReferenceNbr' => { 'value' => payment['ReferenceNbr']['value'] } },
|
477
|
+
# logger: logger
|
478
|
+
# )
|
479
|
+
#
|
480
|
+
# @param access_token [String] OAuth2 access token.
|
481
|
+
# @param entity [Hash] Payment entity.
|
482
|
+
# @param parameters [Hash] Optional parameters.
|
483
|
+
# @param instance_name [String] The instance name.
|
484
|
+
# @param endpoint_name [String] The endpoint name.
|
485
|
+
# @param endpoint_version [String] The endpoint version.
|
486
|
+
# @param logger [Logger, nil] Optional logger.
|
487
|
+
# @return [Hash] Response from the void payment action.
|
488
|
+
def void_payment(access_token:, entity:, parameters: {},
|
489
|
+
instance_name: INSTANCE_NAME,
|
490
|
+
endpoint_name: ENDPOINT_NAME,
|
491
|
+
endpoint_version: ENDPOINT_VERSION,
|
492
|
+
logger: nil)
|
493
|
+
Http.request(
|
494
|
+
instance_name: instance_name,
|
495
|
+
access_token: access_token,
|
496
|
+
method: :post,
|
497
|
+
endpoint_name: endpoint_name,
|
498
|
+
endpoint_version: endpoint_version,
|
499
|
+
path: 'Payment/VoidPayment',
|
500
|
+
body: { 'entity' => entity, 'parameters' => parameters },
|
501
|
+
logger: logger
|
502
|
+
)
|
503
|
+
end
|
504
|
+
end
|
505
|
+
end
|
506
|
+
end
|