payabli 3.0.1 → 3.0.3

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.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +5 -5
  3. data/README.md +4 -1
  4. data/lib/payabli/client.rb +38 -4
  5. data/lib/payabli/customer/client.rb +1 -1
  6. data/lib/payabli/funding/client.rb +49 -0
  7. data/lib/payabli/funding/types/deposit_funds_request.rb +19 -0
  8. data/lib/payabli/internal/http/raw_client.rb +28 -5
  9. data/lib/payabli/internal/oauth_provider.rb +67 -0
  10. data/lib/payabli/money_in/client.rb +79 -35
  11. data/lib/payabli/money_out/client.rb +63 -3
  12. data/lib/payabli/money_out/types/renew_v_card_request.rb +13 -0
  13. data/lib/payabli/payment_link/client.rb +7 -0
  14. data/lib/payabli/payment_link/types/pay_link_data_invoice.rb +1 -1
  15. data/lib/payabli/token/client.rb +51 -0
  16. data/lib/payabli/token/types/create_server_side_token_request.rb +17 -0
  17. data/lib/payabli/types/add_device_response.rb +4 -0
  18. data/lib/payabli/types/add_method_response.rb +4 -0
  19. data/lib/payabli/types/add_response_response.rb +4 -0
  20. data/lib/payabli/types/auth_capture_payout_response_data.rb +2 -0
  21. data/lib/payabli/types/authorize_payment_method.rb +4 -0
  22. data/lib/payabli/types/bill_pay_out_data.rb +15 -9
  23. data/lib/payabli/types/cancel_payout_response_data.rb +27 -0
  24. data/lib/payabli/types/capture_all_out_response_response_data_item.rb +2 -0
  25. data/lib/payabli/types/contacts_response.rb +3 -3
  26. data/lib/payabli/types/deposit_funds_response.rb +16 -0
  27. data/lib/payabli/types/get_method_response_response_data_customers_item.rb +42 -0
  28. data/lib/payabli/types/get_pay_link_from_id_response.rb +4 -0
  29. data/lib/payabli/types/method_element.rb +4 -0
  30. data/lib/payabli/types/methods_list.rb +6 -0
  31. data/lib/payabli/types/modify_approval_bill_response.rb +4 -0
  32. data/lib/payabli/types/notification_log_detail.rb +24 -0
  33. data/lib/payabli/types/payabli_access_token_response.rb +17 -0
  34. data/lib/payabli/types/payabli_api_response_0000.rb +1 -1
  35. data/lib/payabli/types/query_payout_transaction_records_item.rb +54 -34
  36. data/lib/payabli/types/query_payout_transaction_records_item_payment_data.rb +16 -16
  37. data/lib/payabli/types/query_payout_transaction_summary.rb +17 -17
  38. data/lib/payabli/types/query_response_settlements_records_item.rb +2 -0
  39. data/lib/payabli/types/query_transaction_events.rb +2 -2
  40. data/lib/payabli/types/refund_v_2_request.rb +21 -0
  41. data/lib/payabli/types/remove_device_response.rb +4 -0
  42. data/lib/payabli/types/renew_v_card_response.rb +13 -0
  43. data/lib/payabli/types/renew_v_card_response_data.rb +25 -0
  44. data/lib/payabli/types/set_approved_bill_response.rb +4 -0
  45. data/lib/payabli/types/settlement_split_funding_detail.rb +23 -0
  46. data/lib/payabli/types/stat_basic_extended_query_record.rb +8 -0
  47. data/lib/payabli/types/token_error_response.rb +13 -0
  48. data/lib/payabli/types/tokenize_ach.rb +0 -2
  49. data/lib/payabli/types/tokenize_card.rb +2 -0
  50. data/lib/payabli/types/transfer_out_record.rb +4 -0
  51. data/lib/payabli/types/vendor_call_status_completed.rb +20 -0
  52. data/lib/payabli/types/vendor_call_status_extracted_data.rb +12 -0
  53. data/lib/payabli/types/vendor_call_status_failed.rb +18 -0
  54. data/lib/payabli/types/vendor_call_status_response.rb +18 -0
  55. data/lib/payabli/types/vendor_call_status_scheduled.rb +14 -0
  56. data/lib/payabli/types/vendor_data.rb +1 -1
  57. data/lib/payabli/types/vendor_query_record.rb +45 -41
  58. data/lib/payabli/types/vendor_schedule_call_response.rb +20 -0
  59. data/lib/payabli/types/vendor_schedule_call_response_data.rb +16 -0
  60. data/lib/payabli/types/vendoridtrans.rb +23 -0
  61. data/lib/payabli/vendor/client.rb +79 -0
  62. data/lib/payabli/vendor/types/schedule_enrichment_call_request.rb +27 -0
  63. data/lib/payabli/version.rb +1 -1
  64. data/lib/payabli.rb +36 -13
  65. data/reference.md +675 -163
  66. data/wiremock/docker-compose.test.yml +1 -1
  67. data/wiremock/wiremock-mappings.json +258 -93
  68. metadata +25 -2
@@ -189,6 +189,85 @@ module Payabli
189
189
  raise error_class.new(response.body, code: code)
190
190
  end
191
191
  end
192
+
193
+ # Schedules an AI outreach call to a vendor to collect their preferred payment method and contact email. This is
194
+ # the third enrichment stage. Calls are scheduled for the next business day at around 9 AM in the vendor's
195
+ # timezone, with retries on no-answer and a fallback payment method applied when retries are exhausted. This
196
+ # feature is opt-in at the org level. Contact your Payabli representative to enable it, provision a phone number,
197
+ # and discuss pricing.
198
+ #
199
+ # @param request_options [Hash]
200
+ # @param params [Payabli::Vendor::Types::ScheduleEnrichmentCallRequest]
201
+ # @option request_options [String] :base_url
202
+ # @option request_options [Hash{String => Object}] :additional_headers
203
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
204
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
205
+ # @option request_options [Integer] :timeout_in_seconds
206
+ # @option params [String] :entry
207
+ #
208
+ # @return [Payabli::Types::VendorScheduleCallResponse]
209
+ def schedule_enrichment_call(request_options: {}, **params)
210
+ params = Payabli::Internal::Types::Utils.normalize_keys(params)
211
+ request_data = Payabli::Vendor::Types::ScheduleEnrichmentCallRequest.new(params).to_h
212
+ non_body_param_names = %w[entry]
213
+ body = request_data.except(*non_body_param_names)
214
+
215
+ request = Payabli::Internal::JSON::Request.new(
216
+ base_url: request_options[:base_url],
217
+ method: "POST",
218
+ path: "Vendor/enrich/schedule_call/#{URI.encode_uri_component(params[:entry].to_s)}",
219
+ body: body,
220
+ request_options: request_options
221
+ )
222
+ begin
223
+ response = @client.send(request)
224
+ rescue Net::HTTPRequestTimeout
225
+ raise Payabli::Errors::TimeoutError
226
+ end
227
+ code = response.code.to_i
228
+ if code.between?(200, 299)
229
+ Payabli::Types::VendorScheduleCallResponse.load(response.body)
230
+ else
231
+ error_class = Payabli::Errors::ResponseError.subclass_for_code(code)
232
+ raise error_class.new(response.body, code: code)
233
+ end
234
+ end
235
+
236
+ # Returns the latest AI outreach call activity for a vendor. The response is a composite object with a `state`
237
+ # discriminator (`none`, `scheduled`, `successful`, or `failed`); the block that matches the current state is
238
+ # populated. When the vendor has no call activity, `state` is `none` and the response returns HTTP 200.
239
+ #
240
+ # @param request_options [Hash]
241
+ # @param params [Hash]
242
+ # @option request_options [String] :base_url
243
+ # @option request_options [Hash{String => Object}] :additional_headers
244
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
245
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
246
+ # @option request_options [Integer] :timeout_in_seconds
247
+ # @option params [Integer] :id_vendor
248
+ #
249
+ # @return [Payabli::Types::VendorCallStatusResponse]
250
+ def get_enrichment_call_status(request_options: {}, **params)
251
+ params = Payabli::Internal::Types::Utils.normalize_keys(params)
252
+ request = Payabli::Internal::JSON::Request.new(
253
+ base_url: request_options[:base_url],
254
+ method: "GET",
255
+ path: "Vendor/#{URI.encode_uri_component(params[:id_vendor].to_s)}/enrichment/call-status",
256
+ request_options: request_options
257
+ )
258
+ begin
259
+ response = @client.send(request)
260
+ rescue Net::HTTPRequestTimeout
261
+ raise Payabli::Errors::TimeoutError
262
+ end
263
+ code = response.code.to_i
264
+ if code.between?(200, 299)
265
+ Payabli::Types::VendorCallStatusResponse.load(response.body)
266
+ else
267
+ error_class = Payabli::Errors::ResponseError.subclass_for_code(code)
268
+ raise error_class.new(response.body, code: code)
269
+ end
270
+ end
192
271
  end
193
272
  end
194
273
  end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Payabli
4
+ module Vendor
5
+ module Types
6
+ class ScheduleEnrichmentCallRequest < Internal::Types::Model
7
+ field :entry, -> { String }, optional: false, nullable: false
8
+
9
+ field :vendor_id, -> { Integer }, optional: false, nullable: false, api_name: "vendorId"
10
+
11
+ field :phone, -> { String }, optional: true, nullable: false
12
+
13
+ field :enrichment_id, -> { String }, optional: true, nullable: false, api_name: "enrichmentId"
14
+
15
+ field :bill_id, -> { Integer }, optional: true, nullable: false, api_name: "billId"
16
+
17
+ field :fallback_method, -> { String }, optional: true, nullable: false, api_name: "fallbackMethod"
18
+
19
+ field :max_retries, -> { Integer }, optional: true, nullable: false, api_name: "maxRetries"
20
+
21
+ field :timezone, -> { String }, optional: true, nullable: false
22
+
23
+ field :send_now, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "sendNow"
24
+ end
25
+ end
26
+ end
27
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Payabli
4
- VERSION = "3.0.1"
4
+ VERSION = "3.0.3"
5
5
  end
data/lib/payabli.rb CHANGED
@@ -89,9 +89,13 @@ require_relative "payabli/types/vendor_response_stored_method"
89
89
  require_relative "payabli/types/vendor_data_response"
90
90
  require_relative "payabli/types/created_at"
91
91
  require_relative "payabli/types/last_modified"
92
- require_relative "payabli/types/additional_data"
92
+ require_relative "payabli/types/ein"
93
+ require_relative "payabli/types/remit_email"
93
94
  require_relative "payabli/types/address_nullable"
94
95
  require_relative "payabli/types/address_addtl_nullable"
96
+ require_relative "payabli/types/city_nullable"
97
+ require_relative "payabli/types/state_nullable"
98
+ require_relative "payabli/types/zip"
95
99
  require_relative "payabli/types/account_id"
96
100
  require_relative "payabli/types/bank_name"
97
101
  require_relative "payabli/types/routing_account"
@@ -100,20 +104,16 @@ require_relative "payabli/types/type_account"
100
104
  require_relative "payabli/types/bank_account_holder_name"
101
105
  require_relative "payabli/types/bank_account_holder_type"
102
106
  require_relative "payabli/types/billing_data_response"
103
- require_relative "payabli/types/city_nullable"
104
- require_relative "payabli/types/ein"
105
- require_relative "payabli/types/enrollment_status"
106
- require_relative "payabli/types/external_paypoint_id"
107
- require_relative "payabli/types/org_parent_name"
108
- require_relative "payabli/types/org_parent_id"
109
107
  require_relative "payabli/types/vendor_payment_method_string"
108
+ require_relative "payabli/types/enrollment_status"
109
+ require_relative "payabli/types/vendor_summary"
110
+ require_relative "payabli/types/legalname"
110
111
  require_relative "payabli/types/dbaname"
111
112
  require_relative "payabli/types/entrypointfield"
112
- require_relative "payabli/types/legalname"
113
- require_relative "payabli/types/remit_email"
114
- require_relative "payabli/types/state_nullable"
115
- require_relative "payabli/types/vendor_summary"
116
- require_relative "payabli/types/zip"
113
+ require_relative "payabli/types/org_parent_name"
114
+ require_relative "payabli/types/org_parent_id"
115
+ require_relative "payabli/types/additional_data"
116
+ require_relative "payabli/types/external_paypoint_id"
117
117
  require_relative "payabli/types/vendor_query_record"
118
118
  require_relative "payabli/types/netamountnullable"
119
119
  require_relative "payabli/types/fee_amount"
@@ -336,6 +336,8 @@ require_relative "payabli/types/validate_response_data"
336
336
  require_relative "payabli/types/validate_response"
337
337
  require_relative "payabli/types/void_response_data"
338
338
  require_relative "payabli/types/void_response"
339
+ require_relative "payabli/types/payabli_access_token_response"
340
+ require_relative "payabli/types/token_error_response"
339
341
  require_relative "payabli/types/v_2_response_code"
340
342
  require_relative "payabli/types/v_2_response_reason"
341
343
  require_relative "payabli/types/v_2_response_explanation"
@@ -348,6 +350,7 @@ require_relative "payabli/types/v_2_bad_request_error_detail"
348
350
  require_relative "payabli/types/v_2_bad_request_error"
349
351
  require_relative "payabli/types/v_2_declined_transaction_response_wrapper"
350
352
  require_relative "payabli/types/v_2_internal_server_error"
353
+ require_relative "payabli/types/refund_v_2_request"
351
354
  require_relative "payabli/types/schedule_detail"
352
355
  require_relative "payabli/types/set_pause"
353
356
  require_relative "payabli/types/update_subscription_response"
@@ -551,6 +554,7 @@ require_relative "payabli/types/organization_query_record"
551
554
  require_relative "payabli/types/list_organizations_response"
552
555
  require_relative "payabli/types/payout_gateway_connector"
553
556
  require_relative "payabli/types/query_payout_transaction_records_item_payment_data"
557
+ require_relative "payabli/types/settlement_status_name"
554
558
  require_relative "payabli/types/query_payout_transaction_records_item"
555
559
  require_relative "payabli/types/query_payout_transaction_summary"
556
560
  require_relative "payabli/types/query_payout_transaction"
@@ -589,6 +593,7 @@ require_relative "payabli/types/whenprovided"
589
593
  require_relative "payabli/types/whenrefunded"
590
594
  require_relative "payabli/types/query_entrypoint_response_records_item"
591
595
  require_relative "payabli/types/query_entrypoint_response"
596
+ require_relative "payabli/types/settlement_split_funding_detail"
592
597
  require_relative "payabli/types/query_response_settlements_records_item"
593
598
  require_relative "payabli/types/query_response_settlements_summary"
594
599
  require_relative "payabli/types/query_response_settlements"
@@ -621,7 +626,6 @@ require_relative "payabli/types/transfer_out_detail_payment_data"
621
626
  require_relative "payabli/types/transfer_out_detail_bill_attachment"
622
627
  require_relative "payabli/types/transfer_out_detail_bill"
623
628
  require_relative "payabli/types/transfer_out_detail_event"
624
- require_relative "payabli/types/settlement_status_name"
625
629
  require_relative "payabli/types/transfer_out_detail_record"
626
630
  require_relative "payabli/types/transfer_out_detail_query_response"
627
631
  require_relative "payabli/types/query_user_response"
@@ -845,6 +849,13 @@ require_relative "payabli/types/vendor_enrichment_web_search"
845
849
  require_relative "payabli/types/vendor_enrichment_data"
846
850
  require_relative "payabli/types/vendor_enrich_response_data"
847
851
  require_relative "payabli/types/vendor_enrich_response"
852
+ require_relative "payabli/types/vendor_schedule_call_response_data"
853
+ require_relative "payabli/types/vendor_schedule_call_response"
854
+ require_relative "payabli/types/vendor_call_status_scheduled"
855
+ require_relative "payabli/types/vendor_call_status_extracted_data"
856
+ require_relative "payabli/types/vendor_call_status_completed"
857
+ require_relative "payabli/types/vendor_call_status_failed"
858
+ require_relative "payabli/types/vendor_call_status_response"
848
859
  require_relative "payabli/types/create_ghost_card_response_data"
849
860
  require_relative "payabli/types/create_ghost_card_response"
850
861
  require_relative "payabli/types/card_status"
@@ -856,10 +867,12 @@ require_relative "payabli/types/request_out_authorize_vendor_data"
856
867
  require_relative "payabli/types/lot_number"
857
868
  require_relative "payabli/types/request_out_authorize_invoice_data"
858
869
  require_relative "payabli/types/auto_capture"
870
+ require_relative "payabli/types/vendoridtrans"
859
871
  require_relative "payabli/types/auth_capture_payout_response_data"
860
872
  require_relative "payabli/types/auth_capture_payout_response"
861
873
  require_relative "payabli/types/capture_all_out_response_response_data_item"
862
874
  require_relative "payabli/types/capture_all_out_response"
875
+ require_relative "payabli/types/cancel_payout_response_data"
863
876
  require_relative "payabli/types/payabli_api_response_0000"
864
877
  require_relative "payabli/types/bill_details_response"
865
878
  require_relative "payabli/types/entity_id_string"
@@ -869,11 +882,14 @@ require_relative "payabli/types/v_card_get_response_associated_vendor_billing_da
869
882
  require_relative "payabli/types/v_card_get_response_associated_vendor_summary"
870
883
  require_relative "payabli/types/v_card_get_response_associated_vendor"
871
884
  require_relative "payabli/types/v_card_get_response"
885
+ require_relative "payabli/types/renew_v_card_response_data"
886
+ require_relative "payabli/types/renew_v_card_response"
872
887
  require_relative "payabli/types/operation_result"
873
888
  require_relative "payabli/types/allowed_check_payment_status"
874
889
  require_relative "payabli/types/reissue_payment_method"
875
890
  require_relative "payabli/types/reissue_payout_response_data"
876
891
  require_relative "payabli/types/reissue_payout_response"
892
+ require_relative "payabli/types/deposit_funds_response"
877
893
  require_relative "payabli/types/cascade"
878
894
  require_relative "payabli/types/organization_id"
879
895
  require_relative "payabli/types/apple_pay_id"
@@ -924,6 +940,8 @@ require_relative "payabli/money_in/types/send_receipt_2_trans_request"
924
940
  require_relative "payabli/money_in/types/request_payment_validate"
925
941
  require_relative "payabli/money_in/types/request_payment_v_2"
926
942
  require_relative "payabli/money_in/types/request_payment_authorize_v_2"
943
+ require_relative "payabli/token/client"
944
+ require_relative "payabli/token/types/create_server_side_token_request"
927
945
  require_relative "payabli/subscription/client"
928
946
  require_relative "payabli/subscription/types/request_update_schedule"
929
947
  require_relative "payabli/subscription/types/request_schedule"
@@ -1068,6 +1086,7 @@ require_relative "payabli/user/types/user_auth_psw_reset_request"
1068
1086
  require_relative "payabli/user/types/mfa_validation_data"
1069
1087
  require_relative "payabli/vendor/client"
1070
1088
  require_relative "payabli/vendor/types/vendor_enrich_request"
1089
+ require_relative "payabli/vendor/types/schedule_enrichment_call_request"
1071
1090
  require_relative "payabli/ghost_card/client"
1072
1091
  require_relative "payabli/ghost_card/types/create_ghost_card_request_body"
1073
1092
  require_relative "payabli/ghost_card/types/update_card_request_body"
@@ -1075,8 +1094,11 @@ require_relative "payabli/money_out/client"
1075
1094
  require_relative "payabli/money_out/types/request_out_authorize"
1076
1095
  require_relative "payabli/money_out/types/capture_all_out_request"
1077
1096
  require_relative "payabli/money_out/types/capture_out_request"
1097
+ require_relative "payabli/money_out/types/renew_v_card_request"
1078
1098
  require_relative "payabli/money_out/types/send_v_card_link_request"
1079
1099
  require_relative "payabli/money_out/types/reissue_out_request"
1100
+ require_relative "payabli/funding/client"
1101
+ require_relative "payabli/funding/types/deposit_funds_request"
1080
1102
  require_relative "payabli/wallet/client"
1081
1103
  require_relative "payabli/wallet/types/configure_organization_request_apple_pay"
1082
1104
  require_relative "payabli/wallet/types/configure_paypoint_request_apple_pay"
@@ -1088,3 +1110,4 @@ require_relative "payabli/payout_subscription/types/update_payout_subscription_b
1088
1110
  require_relative "payabli/charge_backs/client"
1089
1111
  require_relative "payabli/charge_backs/types/response_charge_back"
1090
1112
  require_relative "payabli/environment"
1113
+ require_relative "payabli/internal/oauth_provider"