plaid 10.1.0 → 14.0.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (688) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +109 -1
  3. data/CONTRIBUTING.md +5 -36
  4. data/Dockerfile +11 -0
  5. data/Gemfile.lock +48 -35
  6. data/LICENSE.txt +1 -1
  7. data/PUBLISH.md +2 -2
  8. data/README.md +118 -91
  9. data/Rakefile +8 -79
  10. data/UPGRADING.md +4 -0
  11. data/docs/ACHClass.md +15 -0
  12. data/docs/APR.md +24 -0
  13. data/docs/AccountAssets.md +40 -0
  14. data/docs/AccountAssetsAllOf.md +24 -0
  15. data/docs/AccountBalance.md +26 -0
  16. data/docs/AccountBase.md +32 -0
  17. data/docs/AccountFiltersResponse.md +24 -0
  18. data/docs/AccountIdentity.md +34 -0
  19. data/docs/AccountIdentityAllOf.md +18 -0
  20. data/docs/AccountSubtype.md +15 -0
  21. data/docs/AccountType.md +15 -0
  22. data/docs/AccountsBalanceGetRequest.md +24 -0
  23. data/docs/AccountsBalanceGetRequestOptions.md +18 -0
  24. data/docs/AccountsGetRequest.md +24 -0
  25. data/docs/AccountsGetRequestOptions.md +18 -0
  26. data/docs/AccountsGetResponse.md +22 -0
  27. data/docs/Address.md +20 -0
  28. data/docs/AddressData.md +26 -0
  29. data/docs/Amount.md +20 -0
  30. data/docs/AssetReport.md +28 -0
  31. data/docs/AssetReportAuditCopyCreateRequest.md +24 -0
  32. data/docs/AssetReportAuditCopyCreateResponse.md +20 -0
  33. data/docs/AssetReportAuditCopyGetRequest.md +22 -0
  34. data/docs/AssetReportAuditCopyRemoveRequest.md +22 -0
  35. data/docs/AssetReportAuditCopyRemoveResponse.md +20 -0
  36. data/docs/AssetReportCreateRequest.md +26 -0
  37. data/docs/AssetReportCreateRequestOptions.md +22 -0
  38. data/docs/AssetReportCreateResponse.md +22 -0
  39. data/docs/AssetReportFilterRequest.md +24 -0
  40. data/docs/AssetReportFilterResponse.md +22 -0
  41. data/docs/AssetReportGetRequest.md +24 -0
  42. data/docs/AssetReportGetResponse.md +22 -0
  43. data/docs/AssetReportItem.md +26 -0
  44. data/docs/AssetReportPDFGetRequest.md +22 -0
  45. data/docs/AssetReportRefreshRequest.md +26 -0
  46. data/docs/AssetReportRefreshRequestOptions.md +22 -0
  47. data/docs/AssetReportRefreshResponse.md +22 -0
  48. data/docs/AssetReportRemoveRequest.md +22 -0
  49. data/docs/AssetReportRemoveResponse.md +20 -0
  50. data/docs/AssetReportTransaction.md +58 -0
  51. data/docs/AssetReportTransactionAllOf.md +20 -0
  52. data/docs/AssetReportUser.md +30 -0
  53. data/docs/AssetsErrorWebhook.md +24 -0
  54. data/docs/AssetsProductReadyWebhook.md +22 -0
  55. data/docs/AuthGetNumbers.md +24 -0
  56. data/docs/AuthGetRequest.md +24 -0
  57. data/docs/AuthGetRequestOptions.md +18 -0
  58. data/docs/AuthGetResponse.md +24 -0
  59. data/docs/AutomaticallyVerifiedWebhook.md +24 -0
  60. data/docs/BankTransfer.md +50 -0
  61. data/docs/BankTransferBalance.md +20 -0
  62. data/docs/BankTransferBalanceGetRequest.md +22 -0
  63. data/docs/BankTransferBalanceGetResponse.md +22 -0
  64. data/docs/BankTransferCancelRequest.md +22 -0
  65. data/docs/BankTransferCancelResponse.md +18 -0
  66. data/docs/BankTransferCreateRequest.md +46 -0
  67. data/docs/BankTransferCreateResponse.md +20 -0
  68. data/docs/BankTransferDirection.md +15 -0
  69. data/docs/BankTransferEvent.md +40 -0
  70. data/docs/BankTransferEventListRequest.md +40 -0
  71. data/docs/BankTransferEventListResponse.md +20 -0
  72. data/docs/BankTransferEventSyncRequest.md +24 -0
  73. data/docs/BankTransferEventSyncResponse.md +20 -0
  74. data/docs/BankTransferEventType.md +15 -0
  75. data/docs/BankTransferFailure.md +20 -0
  76. data/docs/BankTransferGetRequest.md +22 -0
  77. data/docs/BankTransferGetResponse.md +20 -0
  78. data/docs/BankTransferListRequest.md +32 -0
  79. data/docs/BankTransferListResponse.md +20 -0
  80. data/docs/BankTransferMigrateAccountRequest.md +26 -0
  81. data/docs/BankTransferMigrateAccountResponse.md +22 -0
  82. data/docs/BankTransferNetwork.md +15 -0
  83. data/docs/BankTransferReceiverDetails.md +18 -0
  84. data/docs/BankTransferStatus.md +15 -0
  85. data/docs/BankTransferType.md +15 -0
  86. data/docs/BankTransferUser.md +22 -0
  87. data/docs/CategoriesGetResponse.md +20 -0
  88. data/docs/Category.md +22 -0
  89. data/docs/Cause.md +20 -0
  90. data/docs/CountryCode.md +15 -0
  91. data/docs/CreditCardLiability.md +34 -0
  92. data/docs/CreditFilter.md +18 -0
  93. data/docs/DefaultUpdateWebhook.md +26 -0
  94. data/docs/DepositSwitchAddressData.md +26 -0
  95. data/docs/DepositSwitchAltCreateRequest.md +24 -0
  96. data/docs/DepositSwitchAltCreateResponse.md +20 -0
  97. data/docs/DepositSwitchCreateRequest.md +24 -0
  98. data/docs/DepositSwitchCreateResponse.md +20 -0
  99. data/docs/DepositSwitchGetRequest.md +22 -0
  100. data/docs/DepositSwitchGetResponse.md +38 -0
  101. data/docs/DepositSwitchTargetAccount.md +24 -0
  102. data/docs/DepositSwitchTargetUser.md +28 -0
  103. data/docs/DepositSwitchTokenCreateRequest.md +22 -0
  104. data/docs/DepositSwitchTokenCreateResponse.md +22 -0
  105. data/docs/DepositoryFilter.md +18 -0
  106. data/docs/Email.md +22 -0
  107. data/docs/Employee.md +22 -0
  108. data/docs/EmployeeIncomeSummaryFieldString.md +20 -0
  109. data/docs/Employer.md +24 -0
  110. data/docs/EmployerIncomeSummaryFieldString.md +20 -0
  111. data/docs/EmployersSearchRequest.md +24 -0
  112. data/docs/EmployersSearchResponse.md +20 -0
  113. data/docs/Error.md +34 -0
  114. data/docs/ExternalPaymentSchedule.md +24 -0
  115. data/docs/HealthIncident.md +24 -0
  116. data/docs/HistoricalBalance.md +24 -0
  117. data/docs/HistoricalUpdateWebhook.md +26 -0
  118. data/docs/Holding.md +34 -0
  119. data/docs/HoldingsDefaultUpdateWebhook.md +28 -0
  120. data/docs/IdentityGetRequest.md +24 -0
  121. data/docs/IdentityGetRequestOptions.md +18 -0
  122. data/docs/IdentityGetResponse.md +22 -0
  123. data/docs/IncidentUpdate.md +22 -0
  124. data/docs/IncomeBreakdown.md +24 -0
  125. data/docs/IncomeSummary.md +30 -0
  126. data/docs/IncomeSummaryFieldNumber.md +20 -0
  127. data/docs/IncomeSummaryFieldString.md +20 -0
  128. data/docs/IncomeVerificationCreateRequest.md +22 -0
  129. data/docs/IncomeVerificationCreateResponse.md +20 -0
  130. data/docs/IncomeVerificationDocumentsDownloadRequest.md +22 -0
  131. data/docs/IncomeVerificationDocumentsDownloadResponse.md +18 -0
  132. data/docs/IncomeVerificationPaystubGetRequest.md +22 -0
  133. data/docs/IncomeVerificationPaystubGetResponse.md +20 -0
  134. data/docs/IncomeVerificationStatusWebhook.md +24 -0
  135. data/docs/IncomeVerificationSummaryGetRequest.md +22 -0
  136. data/docs/IncomeVerificationSummaryGetResponse.md +20 -0
  137. data/docs/IncomeVerificationWebhookStatus.md +18 -0
  138. data/docs/InflowModel.md +26 -0
  139. data/docs/InitialUpdateWebhook.md +26 -0
  140. data/docs/Institution.md +36 -0
  141. data/docs/InstitutionStatus.md +30 -0
  142. data/docs/InstitutionsGetByIdRequest.md +26 -0
  143. data/docs/InstitutionsGetByIdRequestOptions.md +20 -0
  144. data/docs/InstitutionsGetByIdResponse.md +20 -0
  145. data/docs/InstitutionsGetRequest.md +28 -0
  146. data/docs/InstitutionsGetRequestOptions.md +24 -0
  147. data/docs/InstitutionsGetResponse.md +22 -0
  148. data/docs/InstitutionsSearchAccountFilter.md +24 -0
  149. data/docs/InstitutionsSearchRequest.md +28 -0
  150. data/docs/InstitutionsSearchRequestOptions.md +22 -0
  151. data/docs/InstitutionsSearchResponse.md +20 -0
  152. data/docs/InvestmentFilter.md +18 -0
  153. data/docs/InvestmentHoldingsGetRequestOptions.md +18 -0
  154. data/docs/InvestmentTransaction.md +44 -0
  155. data/docs/InvestmentsDefaultUpdateWebhook.md +28 -0
  156. data/docs/InvestmentsHoldingsGetRequest.md +24 -0
  157. data/docs/InvestmentsHoldingsGetResponse.md +26 -0
  158. data/docs/InvestmentsTransactionsGetRequest.md +28 -0
  159. data/docs/InvestmentsTransactionsGetRequestOptions.md +22 -0
  160. data/docs/InvestmentsTransactionsGetResponse.md +28 -0
  161. data/docs/Item.md +32 -0
  162. data/docs/ItemAccessTokenInvalidateRequest.md +22 -0
  163. data/docs/ItemAccessTokenInvalidateResponse.md +20 -0
  164. data/docs/ItemErrorWebhook.md +24 -0
  165. data/docs/ItemGetRequest.md +22 -0
  166. data/docs/ItemGetResponse.md +24 -0
  167. data/docs/ItemImportRequest.md +26 -0
  168. data/docs/ItemImportRequestOptions.md +18 -0
  169. data/docs/ItemImportRequestUserAuth.md +20 -0
  170. data/docs/ItemImportResponse.md +20 -0
  171. data/docs/ItemProductReadyWebhook.md +24 -0
  172. data/docs/ItemPublicTokenCreateRequest.md +22 -0
  173. data/docs/ItemPublicTokenCreateResponse.md +22 -0
  174. data/docs/ItemPublicTokenExchangeRequest.md +22 -0
  175. data/docs/ItemPublicTokenExchangeResponse.md +22 -0
  176. data/docs/ItemRemoveRequest.md +22 -0
  177. data/docs/ItemRemoveResponse.md +18 -0
  178. data/docs/ItemStatus.md +22 -0
  179. data/docs/ItemStatusInvestments.md +20 -0
  180. data/docs/ItemStatusLastWebhook.md +20 -0
  181. data/docs/ItemStatusTransactions.md +20 -0
  182. data/docs/ItemWebhookUpdateRequest.md +24 -0
  183. data/docs/ItemWebhookUpdateResponse.md +20 -0
  184. data/docs/JWKPublicKey.md +34 -0
  185. data/docs/JWTHeader.md +18 -0
  186. data/docs/LiabilitiesGetRequest.md +24 -0
  187. data/docs/LiabilitiesGetRequestOptions.md +18 -0
  188. data/docs/LiabilitiesGetResponse.md +24 -0
  189. data/docs/LiabilitiesObject.md +22 -0
  190. data/docs/LiabilityOverride.md +66 -0
  191. data/docs/LinkTokenAccountFilters.md +24 -0
  192. data/docs/LinkTokenCreateRequest.md +48 -0
  193. data/docs/LinkTokenCreateRequestAccountSubtypes.md +24 -0
  194. data/docs/LinkTokenCreateRequestAccountSubtypesCredit.md +18 -0
  195. data/docs/LinkTokenCreateRequestAccountSubtypesDepository.md +18 -0
  196. data/docs/LinkTokenCreateRequestAccountSubtypesInvestment.md +18 -0
  197. data/docs/LinkTokenCreateRequestAccountSubtypesLoan.md +18 -0
  198. data/docs/LinkTokenCreateRequestDepositSwitch.md +18 -0
  199. data/docs/LinkTokenCreateRequestIncomeVerification.md +20 -0
  200. data/docs/LinkTokenCreateRequestPaymentInitiation.md +18 -0
  201. data/docs/LinkTokenCreateRequestUser.md +32 -0
  202. data/docs/LinkTokenCreateResponse.md +22 -0
  203. data/docs/LinkTokenGetMetadataResponse.md +30 -0
  204. data/docs/LinkTokenGetRequest.md +22 -0
  205. data/docs/LinkTokenGetResponse.md +26 -0
  206. data/docs/LoanFilter.md +18 -0
  207. data/docs/Location.md +32 -0
  208. data/docs/MFA.md +26 -0
  209. data/docs/Meta.md +22 -0
  210. data/docs/MortgageInterestRate.md +20 -0
  211. data/docs/MortgageLiability.md +56 -0
  212. data/docs/MortgagePropertyAddress.md +26 -0
  213. data/docs/NullableAccessToken.md +15 -0
  214. data/docs/NullableAddress.md +20 -0
  215. data/docs/NullableAddressData.md +26 -0
  216. data/docs/NullableItemStatus.md +22 -0
  217. data/docs/NullableNumbersACH.md +24 -0
  218. data/docs/NullableNumbersBACS.md +22 -0
  219. data/docs/NullableNumbersEFT.md +24 -0
  220. data/docs/NullableNumbersInternational.md +22 -0
  221. data/docs/NullableRecipientBACS.md +20 -0
  222. data/docs/Numbers.md +32 -0
  223. data/docs/NumbersACH.md +24 -0
  224. data/docs/NumbersBACS.md +22 -0
  225. data/docs/NumbersEFT.md +24 -0
  226. data/docs/NumbersInternational.md +22 -0
  227. data/docs/OverrideAccounts.md +38 -0
  228. data/docs/Owner.md +24 -0
  229. data/docs/OwnerOverride.md +24 -0
  230. data/docs/PSLFStatus.md +22 -0
  231. data/docs/PayFrequency.md +20 -0
  232. data/docs/PayPeriodDetails.md +26 -0
  233. data/docs/PaymentAmount.md +20 -0
  234. data/docs/PaymentInitiationAddress.md +24 -0
  235. data/docs/PaymentInitiationPaymentCreateRequest.md +28 -0
  236. data/docs/PaymentInitiationPaymentCreateResponse.md +22 -0
  237. data/docs/PaymentInitiationPaymentGetRequest.md +22 -0
  238. data/docs/PaymentInitiationPaymentGetResponse.md +32 -0
  239. data/docs/PaymentInitiationPaymentListRequest.md +24 -0
  240. data/docs/PaymentInitiationPaymentListResponse.md +22 -0
  241. data/docs/PaymentInitiationPaymentTokenCreateRequest.md +22 -0
  242. data/docs/PaymentInitiationPaymentTokenCreateResponse.md +22 -0
  243. data/docs/PaymentInitiationRecipient.md +26 -0
  244. data/docs/PaymentInitiationRecipientBacs.md +20 -0
  245. data/docs/PaymentInitiationRecipientCreateRequest.md +28 -0
  246. data/docs/PaymentInitiationRecipientCreateResponse.md +20 -0
  247. data/docs/PaymentInitiationRecipientGetRequest.md +22 -0
  248. data/docs/PaymentInitiationRecipientGetResponse.md +28 -0
  249. data/docs/PaymentInitiationRecipientListRequest.md +20 -0
  250. data/docs/PaymentInitiationRecipientListResponse.md +20 -0
  251. data/docs/PaymentMeta.md +32 -0
  252. data/docs/PaymentStatusUpdateWebhook.md +30 -0
  253. data/docs/Paystub.md +30 -0
  254. data/docs/PaystubDeduction.md +22 -0
  255. data/docs/PaystubYTDDetails.md +20 -0
  256. data/docs/PendingExpirationWebhook.md +24 -0
  257. data/docs/PhoneNumber.md +22 -0
  258. data/docs/PlaidApi.md +5580 -0
  259. data/docs/ProcessorApexProcessorTokenCreateRequest.md +24 -0
  260. data/docs/ProcessorAuthGetRequest.md +22 -0
  261. data/docs/ProcessorAuthGetResponse.md +22 -0
  262. data/docs/ProcessorBalanceGetRequest.md +22 -0
  263. data/docs/ProcessorBalanceGetResponse.md +20 -0
  264. data/docs/ProcessorIdentityGetRequest.md +22 -0
  265. data/docs/ProcessorIdentityGetResponse.md +20 -0
  266. data/docs/ProcessorNumber.md +24 -0
  267. data/docs/ProcessorStripeBankAccountTokenCreateRequest.md +24 -0
  268. data/docs/ProcessorStripeBankAccountTokenCreateResponse.md +20 -0
  269. data/docs/ProcessorTokenCreateRequest.md +26 -0
  270. data/docs/ProcessorTokenCreateResponse.md +20 -0
  271. data/docs/ProductStatus.md +22 -0
  272. data/docs/ProductStatusBreakdown.md +24 -0
  273. data/docs/Products.md +15 -0
  274. data/docs/ProjectedIncomeSummaryFieldNumber.md +20 -0
  275. data/docs/RecaptchaRequiredError.md +30 -0
  276. data/docs/RecipientBACS.md +20 -0
  277. data/docs/SandboxBankTransferSimulateRequest.md +26 -0
  278. data/docs/SandboxBankTransferSimulateResponse.md +18 -0
  279. data/docs/SandboxItemFireWebhookRequest.md +24 -0
  280. data/docs/SandboxItemFireWebhookResponse.md +20 -0
  281. data/docs/SandboxItemResetLoginRequest.md +22 -0
  282. data/docs/SandboxItemResetLoginResponse.md +20 -0
  283. data/docs/SandboxItemSetVerificationStatusRequest.md +26 -0
  284. data/docs/SandboxItemSetVerificationStatusResponse.md +18 -0
  285. data/docs/SandboxProcessorTokenCreateRequest.md +24 -0
  286. data/docs/SandboxProcessorTokenCreateRequestOptions.md +20 -0
  287. data/docs/SandboxProcessorTokenCreateResponse.md +20 -0
  288. data/docs/SandboxPublicTokenCreateRequest.md +26 -0
  289. data/docs/SandboxPublicTokenCreateRequestOptions.md +24 -0
  290. data/docs/SandboxPublicTokenCreateRequestOptionsTransactions.md +20 -0
  291. data/docs/SandboxPublicTokenCreateResponse.md +20 -0
  292. data/docs/Security.md +46 -0
  293. data/docs/ServicerAddressData.md +26 -0
  294. data/docs/StandaloneAccountType.md +26 -0
  295. data/docs/StandaloneCurrencyCodeList.md +20 -0
  296. data/docs/StandaloneInvestmentTransactionSubtype.md +104 -0
  297. data/docs/StandaloneInvestmentTransactionType.md +28 -0
  298. data/docs/StudentLoan.md +66 -0
  299. data/docs/StudentLoanRepaymentModel.md +22 -0
  300. data/docs/StudentLoanStatus.md +20 -0
  301. data/docs/StudentRepaymentPlan.md +20 -0
  302. data/docs/Transaction.md +54 -0
  303. data/docs/TransactionCode.md +15 -0
  304. data/docs/TransactionData.md +26 -0
  305. data/docs/TransactionOverride.md +26 -0
  306. data/docs/TransactionsGetRequest.md +28 -0
  307. data/docs/TransactionsGetRequestOptions.md +22 -0
  308. data/docs/TransactionsGetResponse.md +26 -0
  309. data/docs/TransactionsRefreshRequest.md +22 -0
  310. data/docs/TransactionsRefreshResponse.md +18 -0
  311. data/docs/TransactionsRemovedWebhook.md +26 -0
  312. data/docs/UserCustomPassword.md +28 -0
  313. data/docs/UserPermissionRevokedWebhook.md +24 -0
  314. data/docs/VerificationExpiredWebhook.md +24 -0
  315. data/docs/VerificationStatus.md +15 -0
  316. data/docs/Warning.md +22 -0
  317. data/docs/WebhookUpdateAcknowledgedWebhook.md +26 -0
  318. data/docs/WebhookVerificationKeyGetRequest.md +22 -0
  319. data/docs/WebhookVerificationKeyGetResponse.md +20 -0
  320. data/docs/YTDGrossIncomeSummaryFieldNumber.md +20 -0
  321. data/docs/YTDNetIncomeSummaryFieldNumber.md +20 -0
  322. data/lib/plaid.rb +343 -60
  323. data/lib/plaid/api/plaid_api.rb +4414 -0
  324. data/lib/plaid/api_client.rb +383 -0
  325. data/lib/plaid/api_error.rb +57 -0
  326. data/lib/plaid/configuration.rb +297 -0
  327. data/lib/plaid/models/account_assets.rb +406 -0
  328. data/lib/plaid/models/account_assets_all_of.rb +263 -0
  329. data/lib/plaid/models/account_balance.rb +269 -0
  330. data/lib/plaid/models/account_base.rb +345 -0
  331. data/lib/plaid/models/account_filters_response.rb +246 -0
  332. data/lib/plaid/models/account_identity.rb +369 -0
  333. data/lib/plaid/models/account_identity_all_of.rb +226 -0
  334. data/lib/plaid/models/account_subtype.rb +101 -0
  335. data/lib/plaid/models/account_type.rb +41 -0
  336. data/lib/plaid/models/accounts_balance_get_request.rb +254 -0
  337. data/lib/plaid/models/accounts_balance_get_request_options.rb +222 -0
  338. data/lib/plaid/models/accounts_get_request.rb +254 -0
  339. data/lib/plaid/models/accounts_get_request_options.rb +222 -0
  340. data/lib/plaid/models/accounts_get_response.rb +256 -0
  341. data/lib/plaid/models/ach_class.rb +50 -0
  342. data/lib/plaid/models/address.rb +235 -0
  343. data/lib/plaid/models/address_data.rb +277 -0
  344. data/lib/plaid/models/amount.rb +274 -0
  345. data/lib/plaid/models/apr.rb +296 -0
  346. data/lib/plaid/models/asset_report.rb +301 -0
  347. data/lib/plaid/models/asset_report_audit_copy_create_request.rb +260 -0
  348. data/lib/plaid/models/asset_report_audit_copy_create_response.rb +240 -0
  349. data/lib/plaid/models/asset_report_audit_copy_get_request.rb +245 -0
  350. data/lib/plaid/models/asset_report_audit_copy_remove_request.rb +245 -0
  351. data/lib/plaid/models/asset_report_audit_copy_remove_response.rb +240 -0
  352. data/lib/plaid/models/asset_report_create_request.rb +299 -0
  353. data/lib/plaid/models/asset_report_create_request_options.rb +239 -0
  354. data/lib/plaid/models/asset_report_create_response.rb +255 -0
  355. data/lib/plaid/models/asset_report_filter_request.rb +262 -0
  356. data/lib/plaid/models/asset_report_filter_response.rb +255 -0
  357. data/lib/plaid/models/asset_report_get_request.rb +255 -0
  358. data/lib/plaid/models/asset_report_get_response.rb +256 -0
  359. data/lib/plaid/models/asset_report_item.rb +287 -0
  360. data/lib/plaid/models/asset_report_pdf_get_request.rb +245 -0
  361. data/lib/plaid/models/asset_report_refresh_request.rb +288 -0
  362. data/lib/plaid/models/asset_report_refresh_request_options.rb +239 -0
  363. data/lib/plaid/models/asset_report_refresh_response.rb +255 -0
  364. data/lib/plaid/models/asset_report_remove_request.rb +245 -0
  365. data/lib/plaid/models/asset_report_remove_response.rb +240 -0
  366. data/lib/plaid/models/asset_report_transaction.rb +511 -0
  367. data/lib/plaid/models/asset_report_transaction_all_of.rb +235 -0
  368. data/lib/plaid/models/asset_report_user.rb +287 -0
  369. data/lib/plaid/models/assets_error_webhook.rb +265 -0
  370. data/lib/plaid/models/assets_product_ready_webhook.rb +255 -0
  371. data/lib/plaid/models/auth_get_numbers.rb +258 -0
  372. data/lib/plaid/models/auth_get_request.rb +254 -0
  373. data/lib/plaid/models/auth_get_request_options.rb +222 -0
  374. data/lib/plaid/models/auth_get_response.rb +270 -0
  375. data/lib/plaid/models/automatically_verified_webhook.rb +270 -0
  376. data/lib/plaid/models/bank_transfer.rb +444 -0
  377. data/lib/plaid/models/bank_transfer_balance.rb +239 -0
  378. data/lib/plaid/models/bank_transfer_balance_get_request.rb +241 -0
  379. data/lib/plaid/models/bank_transfer_balance_get_response.rb +250 -0
  380. data/lib/plaid/models/bank_transfer_cancel_request.rb +245 -0
  381. data/lib/plaid/models/bank_transfer_cancel_response.rb +225 -0
  382. data/lib/plaid/models/bank_transfer_create_request.rb +459 -0
  383. data/lib/plaid/models/bank_transfer_create_response.rb +239 -0
  384. data/lib/plaid/models/bank_transfer_direction.rb +37 -0
  385. data/lib/plaid/models/bank_transfer_event.rb +388 -0
  386. data/lib/plaid/models/bank_transfer_event_list_request.rb +418 -0
  387. data/lib/plaid/models/bank_transfer_event_list_response.rb +241 -0
  388. data/lib/plaid/models/bank_transfer_event_sync_request.rb +301 -0
  389. data/lib/plaid/models/bank_transfer_event_sync_response.rb +241 -0
  390. data/lib/plaid/models/bank_transfer_event_type.rb +42 -0
  391. data/lib/plaid/models/bank_transfer_failure.rb +231 -0
  392. data/lib/plaid/models/bank_transfer_get_request.rb +245 -0
  393. data/lib/plaid/models/bank_transfer_get_response.rb +239 -0
  394. data/lib/plaid/models/bank_transfer_list_request.rb +336 -0
  395. data/lib/plaid/models/bank_transfer_list_response.rb +241 -0
  396. data/lib/plaid/models/bank_transfer_migrate_account_request.rb +275 -0
  397. data/lib/plaid/models/bank_transfer_migrate_account_response.rb +255 -0
  398. data/lib/plaid/models/bank_transfer_network.rb +38 -0
  399. data/lib/plaid/models/bank_transfer_receiver_details.rb +255 -0
  400. data/lib/plaid/models/bank_transfer_status.rb +40 -0
  401. data/lib/plaid/models/bank_transfer_type.rb +37 -0
  402. data/lib/plaid/models/bank_transfer_user.rb +246 -0
  403. data/lib/plaid/models/categories_get_response.rb +242 -0
  404. data/lib/plaid/models/category.rb +257 -0
  405. data/lib/plaid/models/cause.rb +235 -0
  406. data/lib/plaid/models/country_code.rb +42 -0
  407. data/lib/plaid/models/credit_card_liability.rb +339 -0
  408. data/lib/plaid/models/credit_filter.rb +227 -0
  409. data/lib/plaid/models/default_update_webhook.rb +280 -0
  410. data/lib/plaid/models/deposit_switch_address_data.rb +285 -0
  411. data/lib/plaid/models/deposit_switch_alt_create_request.rb +258 -0
  412. data/lib/plaid/models/deposit_switch_alt_create_response.rb +240 -0
  413. data/lib/plaid/models/deposit_switch_create_request.rb +260 -0
  414. data/lib/plaid/models/deposit_switch_create_response.rb +240 -0
  415. data/lib/plaid/models/deposit_switch_get_request.rb +245 -0
  416. data/lib/plaid/models/deposit_switch_get_response.rb +381 -0
  417. data/lib/plaid/models/deposit_switch_target_account.rb +303 -0
  418. data/lib/plaid/models/deposit_switch_target_user.rb +288 -0
  419. data/lib/plaid/models/deposit_switch_token_create_request.rb +245 -0
  420. data/lib/plaid/models/deposit_switch_token_create_response.rb +255 -0
  421. data/lib/plaid/models/depository_filter.rb +227 -0
  422. data/lib/plaid/models/email.rb +289 -0
  423. data/lib/plaid/models/employee.rb +242 -0
  424. data/lib/plaid/models/employee_income_summary_field_string.rb +245 -0
  425. data/lib/plaid/models/employer.rb +261 -0
  426. data/lib/plaid/models/employer_income_summary_field_string.rb +245 -0
  427. data/lib/plaid/models/employers_search_request.rb +262 -0
  428. data/lib/plaid/models/employers_search_response.rb +242 -0
  429. data/lib/plaid/models/error.rb +360 -0
  430. data/lib/plaid/models/external_payment_schedule.rb +265 -0
  431. data/lib/plaid/models/health_incident.rb +253 -0
  432. data/lib/plaid/models/historical_balance.rb +262 -0
  433. data/lib/plaid/models/historical_update_webhook.rb +280 -0
  434. data/lib/plaid/models/holding.rb +329 -0
  435. data/lib/plaid/models/holdings_default_update_webhook.rb +295 -0
  436. data/lib/plaid/models/identity_get_request.rb +254 -0
  437. data/lib/plaid/models/identity_get_request_options.rb +222 -0
  438. data/lib/plaid/models/identity_get_response.rb +256 -0
  439. data/lib/plaid/models/incident_update.rb +273 -0
  440. data/lib/plaid/models/income_breakdown.rb +253 -0
  441. data/lib/plaid/models/income_summary.rb +275 -0
  442. data/lib/plaid/models/income_summary_field_number.rb +238 -0
  443. data/lib/plaid/models/income_summary_field_string.rb +238 -0
  444. data/lib/plaid/models/income_verification_create_request.rb +245 -0
  445. data/lib/plaid/models/income_verification_create_response.rb +240 -0
  446. data/lib/plaid/models/income_verification_documents_download_request.rb +245 -0
  447. data/lib/plaid/models/income_verification_documents_download_response.rb +224 -0
  448. data/lib/plaid/models/income_verification_paystub_get_request.rb +245 -0
  449. data/lib/plaid/models/income_verification_paystub_get_response.rb +229 -0
  450. data/lib/plaid/models/income_verification_status_webhook.rb +270 -0
  451. data/lib/plaid/models/income_verification_summary_get_request.rb +245 -0
  452. data/lib/plaid/models/income_verification_summary_get_response.rb +242 -0
  453. data/lib/plaid/models/income_verification_webhook_status.rb +223 -0
  454. data/lib/plaid/models/inflow_model.rb +285 -0
  455. data/lib/plaid/models/initial_update_webhook.rb +281 -0
  456. data/lib/plaid/models/institution.rb +344 -0
  457. data/lib/plaid/models/institution_status.rb +307 -0
  458. data/lib/plaid/models/institutions_get_by_id_request.rb +271 -0
  459. data/lib/plaid/models/institutions_get_by_id_request_options.rb +234 -0
  460. data/lib/plaid/models/institutions_get_by_id_response.rb +239 -0
  461. data/lib/plaid/models/institutions_get_request.rb +305 -0
  462. data/lib/plaid/models/institutions_get_request_options.rb +254 -0
  463. data/lib/plaid/models/institutions_get_response.rb +257 -0
  464. data/lib/plaid/models/institutions_search_account_filter.rb +253 -0
  465. data/lib/plaid/models/institutions_search_request.rb +288 -0
  466. data/lib/plaid/models/institutions_search_request_options.rb +239 -0
  467. data/lib/plaid/models/institutions_search_response.rb +242 -0
  468. data/lib/plaid/models/investment_filter.rb +227 -0
  469. data/lib/plaid/models/investment_holdings_get_request_options.rb +222 -0
  470. data/lib/plaid/models/investment_transaction.rb +445 -0
  471. data/lib/plaid/models/investments_default_update_webhook.rb +295 -0
  472. data/lib/plaid/models/investments_holdings_get_request.rb +254 -0
  473. data/lib/plaid/models/investments_holdings_get_response.rb +290 -0
  474. data/lib/plaid/models/investments_transactions_get_request.rb +284 -0
  475. data/lib/plaid/models/investments_transactions_get_request_options.rb +285 -0
  476. data/lib/plaid/models/investments_transactions_get_response.rb +305 -0
  477. data/lib/plaid/models/item.rb +311 -0
  478. data/lib/plaid/models/item_access_token_invalidate_request.rb +245 -0
  479. data/lib/plaid/models/item_access_token_invalidate_response.rb +240 -0
  480. data/lib/plaid/models/item_error_webhook.rb +265 -0
  481. data/lib/plaid/models/item_get_request.rb +245 -0
  482. data/lib/plaid/models/item_get_response.rb +259 -0
  483. data/lib/plaid/models/item_import_request.rb +270 -0
  484. data/lib/plaid/models/item_import_request_options.rb +220 -0
  485. data/lib/plaid/models/item_import_request_user_auth.rb +240 -0
  486. data/lib/plaid/models/item_import_response.rb +240 -0
  487. data/lib/plaid/models/item_product_ready_webhook.rb +265 -0
  488. data/lib/plaid/models/item_public_token_create_request.rb +245 -0
  489. data/lib/plaid/models/item_public_token_create_response.rb +249 -0
  490. data/lib/plaid/models/item_public_token_exchange_request.rb +245 -0
  491. data/lib/plaid/models/item_public_token_exchange_response.rb +255 -0
  492. data/lib/plaid/models/item_remove_request.rb +245 -0
  493. data/lib/plaid/models/item_remove_response.rb +225 -0
  494. data/lib/plaid/models/item_status.rb +240 -0
  495. data/lib/plaid/models/item_status_investments.rb +232 -0
  496. data/lib/plaid/models/item_status_last_webhook.rb +232 -0
  497. data/lib/plaid/models/item_status_transactions.rb +232 -0
  498. data/lib/plaid/models/item_webhook_update_request.rb +260 -0
  499. data/lib/plaid/models/item_webhook_update_response.rb +239 -0
  500. data/lib/plaid/models/jwk_public_key.rb +299 -0
  501. data/lib/plaid/models/jwt_header.rb +224 -0
  502. data/lib/plaid/models/liabilities_get_request.rb +254 -0
  503. data/lib/plaid/models/liabilities_get_request_options.rb +222 -0
  504. data/lib/plaid/models/liabilities_get_response.rb +270 -0
  505. data/lib/plaid/models/liabilities_object.rb +249 -0
  506. data/lib/plaid/models/liability_override.rb +583 -0
  507. data/lib/plaid/models/link_token_account_filters.rb +246 -0
  508. data/lib/plaid/models/link_token_create_request.rb +390 -0
  509. data/lib/plaid/models/link_token_create_request_account_subtypes.rb +246 -0
  510. data/lib/plaid/models/link_token_create_request_account_subtypes_credit.rb +222 -0
  511. data/lib/plaid/models/link_token_create_request_account_subtypes_depository.rb +222 -0
  512. data/lib/plaid/models/link_token_create_request_account_subtypes_investment.rb +222 -0
  513. data/lib/plaid/models/link_token_create_request_account_subtypes_loan.rb +222 -0
  514. data/lib/plaid/models/link_token_create_request_deposit_switch.rb +225 -0
  515. data/lib/plaid/models/link_token_create_request_income_verification.rb +236 -0
  516. data/lib/plaid/models/link_token_create_request_payment_initiation.rb +225 -0
  517. data/lib/plaid/models/link_token_create_request_user.rb +295 -0
  518. data/lib/plaid/models/link_token_create_response.rb +255 -0
  519. data/lib/plaid/models/link_token_get_metadata_response.rb +287 -0
  520. data/lib/plaid/models/link_token_get_request.rb +245 -0
  521. data/lib/plaid/models/link_token_get_response.rb +266 -0
  522. data/lib/plaid/models/loan_filter.rb +227 -0
  523. data/lib/plaid/models/location.rb +298 -0
  524. data/lib/plaid/models/meta.rb +255 -0
  525. data/lib/plaid/models/mfa.rb +285 -0
  526. data/lib/plaid/models/mortgage_interest_rate.rb +232 -0
  527. data/lib/plaid/models/mortgage_liability.rb +430 -0
  528. data/lib/plaid/models/mortgage_property_address.rb +265 -0
  529. data/lib/plaid/models/nullable_access_token.rb +209 -0
  530. data/lib/plaid/models/nullable_address.rb +241 -0
  531. data/lib/plaid/models/nullable_address_data.rb +283 -0
  532. data/lib/plaid/models/nullable_item_status.rb +246 -0
  533. data/lib/plaid/models/nullable_numbers_ach.rb +272 -0
  534. data/lib/plaid/models/nullable_numbers_bacs.rb +261 -0
  535. data/lib/plaid/models/nullable_numbers_eft.rb +276 -0
  536. data/lib/plaid/models/nullable_numbers_international.rb +261 -0
  537. data/lib/plaid/models/nullable_recipient_bacs.rb +236 -0
  538. data/lib/plaid/models/numbers.rb +330 -0
  539. data/lib/plaid/models/numbers_ach.rb +266 -0
  540. data/lib/plaid/models/numbers_bacs.rb +255 -0
  541. data/lib/plaid/models/numbers_eft.rb +270 -0
  542. data/lib/plaid/models/numbers_international.rb +255 -0
  543. data/lib/plaid/models/override_accounts.rb +366 -0
  544. data/lib/plaid/models/owner.rb +278 -0
  545. data/lib/plaid/models/owner_override.rb +278 -0
  546. data/lib/plaid/models/pay_frequency.rb +272 -0
  547. data/lib/plaid/models/pay_period_details.rb +265 -0
  548. data/lib/plaid/models/payment_amount.rb +240 -0
  549. data/lib/plaid/models/payment_initiation_address.rb +252 -0
  550. data/lib/plaid/models/payment_initiation_payment_create_request.rb +284 -0
  551. data/lib/plaid/models/payment_initiation_payment_create_response.rb +255 -0
  552. data/lib/plaid/models/payment_initiation_payment_get_request.rb +245 -0
  553. data/lib/plaid/models/payment_initiation_payment_get_response.rb +353 -0
  554. data/lib/plaid/models/payment_initiation_payment_list_request.rb +267 -0
  555. data/lib/plaid/models/payment_initiation_payment_list_response.rb +257 -0
  556. data/lib/plaid/models/payment_initiation_payment_token_create_request.rb +245 -0
  557. data/lib/plaid/models/payment_initiation_payment_token_create_response.rb +255 -0
  558. data/lib/plaid/models/payment_initiation_recipient.rb +271 -0
  559. data/lib/plaid/models/payment_initiation_recipient_bacs.rb +237 -0
  560. data/lib/plaid/models/payment_initiation_recipient_create_request.rb +275 -0
  561. data/lib/plaid/models/payment_initiation_recipient_create_response.rb +240 -0
  562. data/lib/plaid/models/payment_initiation_recipient_get_request.rb +245 -0
  563. data/lib/plaid/models/payment_initiation_recipient_get_response.rb +286 -0
  564. data/lib/plaid/models/payment_initiation_recipient_list_request.rb +230 -0
  565. data/lib/plaid/models/payment_initiation_recipient_list_response.rb +242 -0
  566. data/lib/plaid/models/payment_meta.rb +298 -0
  567. data/lib/plaid/models/payment_status_update_webhook.rb +356 -0
  568. data/lib/plaid/models/paystub.rb +306 -0
  569. data/lib/plaid/models/paystub_deduction.rb +242 -0
  570. data/lib/plaid/models/paystub_ytd_details.rb +239 -0
  571. data/lib/plaid/models/pending_expiration_webhook.rb +270 -0
  572. data/lib/plaid/models/phone_number.rb +281 -0
  573. data/lib/plaid/models/processor_apex_processor_token_create_request.rb +260 -0
  574. data/lib/plaid/models/processor_auth_get_request.rb +245 -0
  575. data/lib/plaid/models/processor_auth_get_response.rb +253 -0
  576. data/lib/plaid/models/processor_balance_get_request.rb +245 -0
  577. data/lib/plaid/models/processor_balance_get_response.rb +239 -0
  578. data/lib/plaid/models/processor_identity_get_request.rb +245 -0
  579. data/lib/plaid/models/processor_identity_get_response.rb +239 -0
  580. data/lib/plaid/models/processor_number.rb +250 -0
  581. data/lib/plaid/models/processor_stripe_bank_account_token_create_request.rb +260 -0
  582. data/lib/plaid/models/processor_stripe_bank_account_token_create_response.rb +240 -0
  583. data/lib/plaid/models/processor_token_create_request.rb +275 -0
  584. data/lib/plaid/models/processor_token_create_response.rb +240 -0
  585. data/lib/plaid/models/product_status.rb +288 -0
  586. data/lib/plaid/models/product_status_breakdown.rb +300 -0
  587. data/lib/plaid/models/products.rb +45 -0
  588. data/lib/plaid/models/projected_income_summary_field_number.rb +245 -0
  589. data/lib/plaid/models/pslf_status.rb +243 -0
  590. data/lib/plaid/models/recaptcha_required_error.rb +314 -0
  591. data/lib/plaid/models/recipient_bacs.rb +230 -0
  592. data/lib/plaid/models/sandbox_bank_transfer_simulate_request.rb +270 -0
  593. data/lib/plaid/models/sandbox_bank_transfer_simulate_response.rb +225 -0
  594. data/lib/plaid/models/sandbox_item_fire_webhook_request.rb +289 -0
  595. data/lib/plaid/models/sandbox_item_fire_webhook_response.rb +240 -0
  596. data/lib/plaid/models/sandbox_item_reset_login_request.rb +245 -0
  597. data/lib/plaid/models/sandbox_item_reset_login_response.rb +240 -0
  598. data/lib/plaid/models/sandbox_item_set_verification_status_request.rb +309 -0
  599. data/lib/plaid/models/sandbox_item_set_verification_status_response.rb +225 -0
  600. data/lib/plaid/models/sandbox_processor_token_create_request.rb +253 -0
  601. data/lib/plaid/models/sandbox_processor_token_create_request_options.rb +236 -0
  602. data/lib/plaid/models/sandbox_processor_token_create_response.rb +239 -0
  603. data/lib/plaid/models/sandbox_public_token_create_request.rb +271 -0
  604. data/lib/plaid/models/sandbox_public_token_create_request_options.rb +255 -0
  605. data/lib/plaid/models/sandbox_public_token_create_request_options_transactions.rb +230 -0
  606. data/lib/plaid/models/sandbox_public_token_create_response.rb +240 -0
  607. data/lib/plaid/models/security.rb +382 -0
  608. data/lib/plaid/models/servicer_address_data.rb +265 -0
  609. data/lib/plaid/models/standalone_account_type.rb +285 -0
  610. data/lib/plaid/models/standalone_currency_code_list.rb +240 -0
  611. data/lib/plaid/models/standalone_investment_transaction_subtype.rb +650 -0
  612. data/lib/plaid/models/standalone_investment_transaction_type.rb +300 -0
  613. data/lib/plaid/models/student_loan.rb +483 -0
  614. data/lib/plaid/models/student_loan_repayment_model.rb +255 -0
  615. data/lib/plaid/models/student_loan_status.rb +266 -0
  616. data/lib/plaid/models/student_repayment_plan.rb +266 -0
  617. data/lib/plaid/models/transaction.rb +478 -0
  618. data/lib/plaid/models/transaction_code.rb +48 -0
  619. data/lib/plaid/models/transaction_data.rb +285 -0
  620. data/lib/plaid/models/transaction_override.rb +280 -0
  621. data/lib/plaid/models/transactions_get_request.rb +284 -0
  622. data/lib/plaid/models/transactions_get_request_options.rb +285 -0
  623. data/lib/plaid/models/transactions_get_response.rb +288 -0
  624. data/lib/plaid/models/transactions_refresh_request.rb +240 -0
  625. data/lib/plaid/models/transactions_refresh_response.rb +225 -0
  626. data/lib/plaid/models/transactions_removed_webhook.rb +282 -0
  627. data/lib/plaid/models/user_custom_password.rb +297 -0
  628. data/lib/plaid/models/user_permission_revoked_webhook.rb +265 -0
  629. data/lib/plaid/models/verification_expired_webhook.rb +270 -0
  630. data/lib/plaid/models/verification_status.rb +40 -0
  631. data/lib/plaid/models/warning.rb +254 -0
  632. data/lib/plaid/models/webhook_update_acknowledged_webhook.rb +280 -0
  633. data/lib/plaid/models/webhook_verification_key_get_request.rb +245 -0
  634. data/lib/plaid/models/webhook_verification_key_get_response.rb +239 -0
  635. data/lib/plaid/models/ytd_gross_income_summary_field_number.rb +245 -0
  636. data/lib/plaid/models/ytd_net_income_summary_field_number.rb +245 -0
  637. data/lib/plaid/version.rb +13 -2
  638. data/plaid.gemspec +44 -49
  639. data/templates/ruby/api_client.mustache +266 -0
  640. data/templates/ruby/api_client_faraday_partial.mustache +120 -0
  641. data/templates/ruby/configuration.mustache +353 -0
  642. data/templates/ruby/gemspec.mustache +41 -0
  643. data/test/test_accounts.rb +103 -0
  644. data/test/test_asset_report.rb +147 -0
  645. data/test/test_auth.rb +61 -0
  646. data/test/test_bank_transfers.rb +219 -0
  647. data/test/test_categories.rb +10 -0
  648. data/test/test_configuration.rb +26 -0
  649. data/test/test_deposit_switch.rb +73 -0
  650. data/test/test_helper.rb +109 -0
  651. data/test/test_identity.rb +38 -0
  652. data/test/test_institutions.rb +159 -0
  653. data/test/test_investments.rb +205 -0
  654. data/test/test_item.rb +285 -0
  655. data/test/test_liabilities.rb +45 -0
  656. data/test/test_link_token.rb +97 -0
  657. data/test/test_payment_initiation.rb +95 -0
  658. data/test/test_processor.rb +67 -0
  659. data/test/test_transactions.rb +165 -0
  660. data/test/test_webhooks.rb +22 -0
  661. metadata +687 -97
  662. data/.circleci/config.yml +0 -21
  663. data/.env.sample +0 -3
  664. data/.rubocop.yml +0 -18
  665. data/bin/console +0 -14
  666. data/bin/setup +0 -8
  667. data/lib/plaid/client.rb +0 -197
  668. data/lib/plaid/errors.rb +0 -89
  669. data/lib/plaid/middleware.rb +0 -31
  670. data/lib/plaid/models.rb +0 -2076
  671. data/lib/plaid/products/accounts.rb +0 -63
  672. data/lib/plaid/products/asset_report.rb +0 -199
  673. data/lib/plaid/products/auth.rb +0 -42
  674. data/lib/plaid/products/base_product.rb +0 -69
  675. data/lib/plaid/products/categories.rb +0 -21
  676. data/lib/plaid/products/credit_details.rb +0 -40
  677. data/lib/plaid/products/deposit_switch.rb +0 -99
  678. data/lib/plaid/products/identity.rb +0 -31
  679. data/lib/plaid/products/income.rb +0 -31
  680. data/lib/plaid/products/institutions.rb +0 -88
  681. data/lib/plaid/products/investments.rb +0 -127
  682. data/lib/plaid/products/item.rb +0 -232
  683. data/lib/plaid/products/liabilities.rb +0 -39
  684. data/lib/plaid/products/payment_initiation.rb +0 -218
  685. data/lib/plaid/products/processor.rb +0 -190
  686. data/lib/plaid/products/sandbox.rb +0 -148
  687. data/lib/plaid/products/transactions.rb +0 -81
  688. data/lib/plaid/products/webhooks.rb +0 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 67b2fb1563bb0f5dc21d092bd5ae83e043f7cd1f48728dc47eb094325dbf340d
4
- data.tar.gz: '09ed65928719206c075b22ccb8dbba5929b2c309bca6f329071dac1a24b4db29'
3
+ metadata.gz: 86640bde7bfc5e81b5f6f9e4b1403d76378a3ee0db181ad7befec94c8983da51
4
+ data.tar.gz: 44e9c845451768a1b41fc42c9af012db268830e4a706f45aa9cfbd86eca9d766
5
5
  SHA512:
6
- metadata.gz: ede7755a232da3df4d8a464d77ccaa828ffba99e14d6677f0f85edcf21445475bf894a7dc7cbffccca38d9aed6fd3ee75f5591807460b05507213acc2c96cc8b
7
- data.tar.gz: fc9cd109f8d7ee3fb75c323f10ea726e6cedd76000f260cbdce26b362e069eb1979cd3de853f5c6158e35f0e04546347620f0144a21e7331e0d90f4d1b7c4364
6
+ metadata.gz: 5da27655620030af181fb044d7ff8ae471de723d8942879d92b19baeffb5de874d76f68e5724227c5bc56d3107d6e1ee15ae3a4c6ff3a2200d735c5e7485889f
7
+ data.tar.gz: 3b7bea3cfd6715acd13fd2a614c936ff72b24986360306e38ac756328fdb21a23e4955d0894ddc06430cb1e69a2711966f1f9030edad047593d9c5300d1204f2
data/CHANGELOG.md CHANGED
@@ -1,3 +1,111 @@
1
+ # 14.0.0.beta.1
2
+
3
+ This version represents a transition in how we maintain our external client libraries. We are now using an [API spec](https://github.com/plaid/plaid-openapi) written in `OpenAPI 3.0.0` and running our definition file through [OpenAPITool's `python` generator](https://github.com/OpenAPITools/openapi-generator).
4
+
5
+ The minimum required ruby version is 2.7.1.
6
+
7
+ **Ruby Migration Guide:**
8
+
9
+ ### Client initialization
10
+ From:
11
+ ```ruby
12
+ client = Plaid::Client.new(env: :sandbox,
13
+ client_id: client_id,
14
+ secret: secret)
15
+ ```
16
+
17
+ To:
18
+ ```ruby
19
+ configuration = Plaid::Configuration.new
20
+ configuration.server_index = Plaid::Configuration::Environment["sandbox"]
21
+ configuration.api_key["PLAID-CLIENT-ID"] = ENV["PLAID_RUBY_CLIENT_ID"]
22
+ configuration.api_key["PLAID-SECRET"] = ENV["PLAID_RUBY_SECRET"]
23
+ configuration.api_key["Plaid-Version"] = "2020-09-14"
24
+
25
+ api_client = Plaid::ApiClient.new(
26
+ configuration
27
+ )
28
+
29
+ client = Plaid::PlaidApi.new(api_client)
30
+ ```
31
+
32
+ ### Endpoints
33
+ All endpoint requests now take a request model and the functions have been renamed to include `_`.
34
+
35
+ From:
36
+ ```ruby
37
+ response = client.auth.get(access_token)
38
+ ```
39
+
40
+ To:
41
+ ```ruby
42
+ auth_get_request = Plaid::AuthGetRequest.new
43
+ auth_get_request.access_token = access_token
44
+
45
+ or
46
+
47
+ auth_get_request = Plaid::AuthGetRequest.new({:access_token => access_token})
48
+
49
+ response = client.auth_get(auth_get_request)
50
+ ```
51
+
52
+ ### Errors
53
+
54
+ From:
55
+ ```ruby
56
+ begin
57
+ client.auth.get(auth_get_request)
58
+ rescue Plaid::PlaidAPIError => e
59
+ raise e if e.error_code != 'PRODUCT_NOT_READY'
60
+ sleep 1
61
+ end
62
+ ```
63
+
64
+ To:
65
+ ```ruby
66
+ begin
67
+ client.auth_get(auth_get_request)
68
+ rescue Plaid::ApiError => e
69
+ json_response = JSON.parse(e.response_body)
70
+ if json_response["error_code"] != "PRODUCT_NOT_READY"
71
+ end
72
+ ```
73
+
74
+ # 13.0.0
75
+ - Add support for providing a payment initiation schedule
76
+ - Add back the (now deprecated) `/item/public_token/create` endpoint
77
+ - Add back the (now deprecated) `/payment_initiation/payment/token/create` endpoint
78
+
79
+ BREAKING CHANGES:
80
+
81
+ - Update minimum required Ruby version to 2.4
82
+
83
+ # 12.0.0
84
+
85
+ - The library has been pinned to the '2020-09-14' API release. Visit the [docs](https://plaid.com/docs/api/versioning/) to see what changed.
86
+ - the `/item/public_token/create` endpoint has been disabled in favor of the /link/token/create
87
+ endpoint
88
+ - The `/item/add_token/create endpoint` has been disabled in favor of the /link/token/create
89
+ - The `/payment_initiation/payment/token/create` endpoint has been disabled in favor of the /link/token/create
90
+ endpoint
91
+ - The `/item/remove` endpoint will no longer return a `removed` boolean.
92
+ - The `/institutions/get`, `/institutions/get_by_id`, and `/institutions/search` now require
93
+ `country_codes` to be passed in.
94
+
95
+ # 11.1.0
96
+
97
+ - Add support for Link Token get endpoint ([#301](https://github.com/plaid/plaid-ruby/pull/301))
98
+ - `link/token/get`
99
+
100
+ # 11.0.0
101
+
102
+ - Add `merchant_name` to `Transaction` (#294)
103
+
104
+ BREAKING CHANGES:
105
+
106
+ - Removes the public key as input to `Client`. The public key is no longer needed by the API. (#287)
107
+ - Add link/token/create support (#293)
108
+
1
109
  # 10.1.0
2
110
 
3
111
  - Add support for more options (`override_username`, `override_password`) in the `/sandbox/public_token/create` endpoint ([219](https://github.com/plaid/plaid-ruby/pull/219))
@@ -161,4 +269,4 @@ BREAKING CHANGES:
161
269
 
162
270
  # 2.0.0.alpha. 06-May-2016
163
271
 
164
- - Rewrite everything.
272
+ - Rewrite everything.
data/CONTRIBUTING.md CHANGED
@@ -1,3 +1,5 @@
1
+ TODO: UPDATE THIS!
2
+
1
3
  ## Development
2
4
 
3
5
  After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -8,49 +10,16 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
8
10
 
9
11
  The gem test suite can be run in two modes. By default, it runs against the
10
12
  live sandbox environment, creating items on the fly and calling various API
11
- endpoints for them. For this to work you'll need real `client_id`, `secret`,
12
- and `public_key` from your Plaid dashboard. Create a file named `.env`
13
- based on `.env.sample` which is provided:
13
+ endpoints for them. For this to work you'll need real `client_id` and `secret`
14
+ from your Plaid dashboard. Create a file named `.env` based on `.env.sample`
15
+ which is provided:
14
16
 
15
17
  ```text
16
18
  PLAID_RUBY_CLIENT_ID=the_real_client_id
17
19
  PLAID_RUBY_SECRET=the_real_secret
18
- PLAID_RUBY_PUBLIC_KEY=the_real_public_key
19
20
  ```
20
21
  This file will be loaded during the tests.
21
22
 
22
- Another mode employs pre-recorded API responses using the
23
- [vcr](https://github.com/vcr/vcr) gem. It runs much faster. Just use
24
- `rake test_stubbed` and you're good to go even without `.env`!
25
-
26
- ## Updating VCR "cassettes"
27
-
28
- In case you're adding new API endpoints or when there were any substantial
29
- changes in API you'll need to update the pre-recorded responses. Here's how:
30
-
31
- 1. Make sure that `STUB_API=1 rake test` fails. It will fail saying something
32
- like "... An HTTP request has been made that VCR does not know how to
33
- handle".
34
- 2. Run `RECORD_MODE=all STUB_API=1 rake test`. This will run the whole suite
35
- and re-record everything. If you only need to update data for one test class,
36
- use this:
37
-
38
- ```
39
- RECORD_MODE=all STUB_API=1 ruby -w -I"lib:test" -rminitest/pride -rdotenv/load test/test_which_fails.rb
40
- ```
41
- 3. Run `rake vcr_hide_credentials`. This step is essential, because
42
- newly recorded files will contain your real `client_id` and friends. This
43
- Rake task will go over all recorded files and replace real values with
44
- stubbed ones used by `STUB_API=1 rake test`.
45
- 4. Run `STUB_API=1 rake test` and verify that everything works.
46
-
47
-
48
- ## Running lint
49
-
50
- ```bash
51
- bundle exec rubocop
52
- ```
53
-
54
23
  ## Contributing
55
24
 
56
25
  1. Make one or more atomic commits, and ensure that each commit has a
data/Dockerfile ADDED
@@ -0,0 +1,11 @@
1
+ FROM ruby:2.7.1
2
+
3
+ # Create app directory
4
+ WORKDIR /usr/src/app
5
+
6
+ # Copy app to directory
7
+ COPY . /usr/src/app
8
+
9
+ RUN bundle install
10
+
11
+ CMD ["bundle", "exec", "rake", "test"]
data/Gemfile.lock CHANGED
@@ -1,58 +1,71 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- plaid (10.1.0)
5
- faraday
6
- faraday_middleware
7
- hashie (>= 3.4.3)
4
+ plaid (14.0.0.beta.1)
5
+ faraday (~> 1.0, >= 1.0.1)
8
6
 
9
7
  GEM
10
8
  remote: https://rubygems.org/
11
9
  specs:
12
- ast (2.4.0)
13
- dotenv (2.4.0)
14
- faraday (1.0.1)
10
+ ast (2.4.1)
11
+ diff-lcs (1.4.4)
12
+ dotenv (2.7.6)
13
+ faraday (1.3.0)
14
+ faraday-net_http (~> 1.0)
15
15
  multipart-post (>= 1.2, < 3)
16
- faraday_middleware (1.0.0)
17
- faraday (~> 1.0)
18
- hashie (4.1.0)
19
- minitest (5.11.3)
20
- minitest-around (0.4.1)
16
+ ruby2_keywords
17
+ faraday-net_http (1.0.1)
18
+ minitest (5.14.2)
19
+ minitest-around (0.5.0)
21
20
  minitest (~> 5.0)
22
21
  multipart-post (2.1.1)
23
- parallel (1.12.1)
24
- parser (2.5.1.0)
25
- ast (~> 2.4.0)
26
- powerpack (0.1.1)
22
+ parallel (1.20.1)
23
+ parser (2.7.2.0)
24
+ ast (~> 2.4.1)
27
25
  rainbow (3.0.0)
28
- rake (12.3.3)
29
- rdoc (6.0.4)
30
- rubocop (0.53.0)
26
+ rake (13.0.1)
27
+ regexp_parser (1.8.0)
28
+ rexml (3.2.4)
29
+ rspec (3.10.0)
30
+ rspec-core (~> 3.10.0)
31
+ rspec-expectations (~> 3.10.0)
32
+ rspec-mocks (~> 3.10.0)
33
+ rspec-core (3.10.0)
34
+ rspec-support (~> 3.10.0)
35
+ rspec-expectations (3.10.0)
36
+ diff-lcs (>= 1.2.0, < 2.0)
37
+ rspec-support (~> 3.10.0)
38
+ rspec-mocks (3.10.0)
39
+ diff-lcs (>= 1.2.0, < 2.0)
40
+ rspec-support (~> 3.10.0)
41
+ rspec-support (3.10.0)
42
+ rubocop (0.91.1)
31
43
  parallel (~> 1.10)
32
- parser (>= 2.5)
33
- powerpack (~> 0.1)
44
+ parser (>= 2.7.1.1)
34
45
  rainbow (>= 2.2.2, < 4.0)
46
+ regexp_parser (>= 1.7)
47
+ rexml
48
+ rubocop-ast (>= 0.4.0, < 1.0)
35
49
  ruby-progressbar (~> 1.7)
36
- unicode-display_width (~> 1.0, >= 1.0.1)
37
- ruby-progressbar (1.9.0)
38
- sdoc (1.0.0)
39
- rdoc (>= 5.0)
40
- unicode-display_width (1.3.2)
41
- vcr (4.0.0)
50
+ unicode-display_width (>= 1.4.0, < 2.0)
51
+ rubocop-ast (0.4.2)
52
+ parser (>= 2.7.1.4)
53
+ ruby-progressbar (1.10.1)
54
+ ruby2_keywords (0.0.4)
55
+ unicode-display_width (1.7.0)
42
56
 
43
57
  PLATFORMS
44
58
  ruby
45
59
 
46
60
  DEPENDENCIES
47
- bundler (~> 1.7)
61
+ bundler (~> 2.2.9)
48
62
  dotenv
49
- minitest (~> 5.10)
50
- minitest-around (~> 0.4.0)
63
+ minitest (~> 5.14)
64
+ minitest-around (~> 0.5.0)
51
65
  plaid!
52
- rake (>= 10.0)
53
- rubocop (~> 0.53.0)
54
- sdoc (~> 1.0.0)
55
- vcr (~> 4.0.0)
66
+ rake (>= 13.0)
67
+ rspec (~> 3.6, >= 3.6.0)
68
+ rubocop (~> 0.91.0)
56
69
 
57
70
  BUNDLED WITH
58
- 1.17.2
71
+ 2.2.9
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2017 Plaid Technologies, Inc.
3
+ Copyright (c) 2020 Plaid Technologies, Inc.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/PUBLISH.md CHANGED
@@ -7,13 +7,13 @@ Prepare release:
7
7
  1. update `lib/plaid/version.rb`, and `CHANGELOG.md` files.
8
8
  2. run `bundle` to bump the version in `Gemfile.lock`
9
9
  3. create and merge a PR with the changes from 1 and 2.
10
+ 4. authenticate with rubygems with `gem signin` or manually set up your `~/.gem/credentials`
10
11
 
11
12
  Publish:
12
13
 
13
14
  1. `git checkout master` and `git pull` (makes sure your `HEAD` is up-to-date).
14
15
  2. Check that tests are passing on latest `master` build and (optional) `bundle exec rake test` to run tests locally
15
- 3. `bundle exec rake release` (builds the gem, creates a tag, pushes the gem to RubyGems and tag to GitHub).
16
- 4. `bundle exec rake update_github_docs` (generates RDoc files, updates `gh-pages` branch and pushes it to GitHub). (If you run into a `gh-pages` branch error, you may need to manually run `git checkout gh-pages` to ensure the branch is checked out locally.)
16
+ 3. `bundle exec rake release` (builds the gem, creates a tag, pushes the gem to RubyGems and tag to GitHub). **NOTE:** if this step hangs indefinitely, you need to set your MFA settings to "UI Only" [here](https://rubygems.org/profile/edit)
17
17
 
18
18
  [1]: https://rubygems.org/
19
19
  [2]: https://rubygems.org/gems/plaid
data/README.md CHANGED
@@ -18,7 +18,7 @@ Or install it yourself as:
18
18
 
19
19
  $ gem install plaid
20
20
 
21
- The gem supports Ruby 2.2+ only.
21
+ The gem supports Ruby 2.7.1+ only.
22
22
 
23
23
  ### Versioning
24
24
 
@@ -26,7 +26,8 @@ Each major version of `plaid-ruby` targets a specific version of the Plaid API:
26
26
 
27
27
  | API version | plaid-ruby release |
28
28
  | ----------- | ------------------ |
29
- | [`2019-05-29`][api-version-2019-05-29] (**latest**) | `9.x.x`, `8.x.x`, `7.x.x` |
29
+ | [`2020-09-14`][api-version-2020-09-14] (**latest**) | `12.x.x`, `13.x.x`, `14.x.x` |
30
+ | [`2019-05-29`][api-version-2019-05-29] | `11.x.x`, `10.x.x`, `9.x.x`, `8.x.x`, `7.x.x` |
30
31
  | [`2018-05-22`][api-version-2018-05-22] | `6.x.x` |
31
32
  | `2017-03-08` | `5.x.x` |
32
33
 
@@ -35,36 +36,41 @@ For information about what has changed between versions and how to update your i
35
36
 
36
37
  ## Usage
37
38
 
38
- This gem wraps the Plaid API, which is fully described in the [documentation](https://plaid.com/docs/api).
39
-
40
- The RubyDoc for the gem is available [here](http://plaid.github.io/plaid-ruby/).
39
+ This gem wraps the Plaid API, which is fully described in the [documentation](https://plaid.com/docs/api) and in the [plaid-openapi](https://github.com/plaid/plaid-openapi) spec.
41
40
 
42
41
  ### Creating a Plaid client
43
42
 
44
- Create an instance of the client using the `client_id`, `secret`, and `public_key` from your Plaid dashboard along with your environment of choice:
43
+ Create an instance of the client using the `client_id` and `secret` from your Plaid dashboard along with your environment of choice:
45
44
 
46
45
  ```ruby
47
46
  require 'plaid'
48
47
 
49
- client = Plaid::Client.new(env: :sandbox,
50
- client_id: '***',
51
- secret: '***',
52
- public_key: '***')
48
+ configuration = Plaid::Configuration.new
49
+ configuration.server_index = Plaid::Configuration::Environment["sandbox"]
50
+ configuration.api_key["PLAID-CLIENT-ID"] = "***"
51
+ configuration.api_key["PLAID-SECRET"] = "***"
52
+ configuration.api_key["Plaid-Version"] = "2020-09-14"
53
+
54
+ api_client = Plaid::ApiClient.new(
55
+ configuration
56
+ )
57
+
58
+ client = Plaid::PlaidApi.new(api_client)
53
59
  ```
54
60
 
55
- The `env` field is the environment which the client will be running in. Your choices for the `env` field include:
61
+ The `server_index` field is the environment which the client will be running in. Your choices for the `server_index` field include:
56
62
 
57
- - `:sandbox` allows you to do your initial integrations tests against preloaded data without being billed or making expensive API calls. More information about using the API sandbox can be found on the [API Sandbox documentation](https://plaid.com/docs/api#sandbox).
58
- - `:development` allows you to test against both real and test accounts without being billed. More information about Plaid test accounts can be found in our [API documentation](https://plaid.com/docs/api/#sandbox).
59
- - `:production` is the production environment where you can launch your production ready application and be charged for your Plaid usage.
63
+ - `Plaid::Configuration::Environment["sandbox"]` allows you to do your initial integrations tests against preloaded data without being billed or making expensive API calls. More information about using the API sandbox can be found on the [API Sandbox documentation](https://plaid.com/docs/api#sandbox).
64
+ - `Plaid::Configuration::Environment["development"]` allows you to test against both real and test accounts without being billed. More information about Plaid test accounts can be found in our [API documentation](https://plaid.com/docs/api/#sandbox).
65
+ - `Plaid::Configuration::Environment["production"]` is the production environment where you can launch your production ready application and be charged for your Plaid usage.
60
66
 
61
67
  ### Tuning Faraday
62
68
 
63
69
  The gem uses Faraday to wrap HTTPS connections, which allows you to tune certain params:
64
70
 
65
71
  ```ruby
66
- client = Plaid::Client.new(env: :sandbox, client_id: '***', secret: '***', public_key: '***') do |builder|
67
- Plaid::Client.build_default_connection(builder)
72
+ client = Plaid::Configuration.new do |builder|
73
+ Plaid::Configuration.default()
68
74
 
69
75
  # Increase network timeout
70
76
  builder.options[:timeout] = 60*20 # 20 minutes
@@ -73,56 +79,89 @@ end
73
79
 
74
80
  ## Examples
75
81
 
82
+ ### Create a new link_token
83
+
84
+ ```ruby
85
+ # Grab the client_user_id by searching for the current user in your database
86
+ user = User.find_by!(email: '***')
87
+ client_user_id = user.id
88
+
89
+ # Create the link_token with all of your configurations
90
+ link_token_create_request = Plaid::LinkTokenCreateRequest.new({
91
+ :user => { :client_user_id => client_user_id.to_s },
92
+ :client_name => 'My app',
93
+ :products => %w[auth transactions],
94
+ :country_codes => ['US'],
95
+ :language => 'en'
96
+ })
97
+
98
+ link_token_response = client.link_token_create(
99
+ link_token_create_request
100
+ )
101
+
102
+ # Pass the result to your client-side app to initialize Link
103
+ # and retrieve a public_token
104
+ link_token = link_token_response.link_token
105
+ ```
106
+
76
107
  ### Exchanging a Link public_token for a Plaid access_token
77
108
 
78
- If you have a [Link](https://github.com/plaid/link) `public token`, use this function to get an `access_token`: `client.item.public_token.exchange(public_token)`
109
+ If you have a [Link](https://github.com/plaid/link) `public token`, use this function to get an `access_token`: `client.item_public_token_exchange(request)`
79
110
 
80
111
  An example of the function's usage if you have a `public_token` in hand:
81
112
 
82
113
  ```ruby
83
- response = client.item.public_token.exchange(public_token)
114
+ request = Plaid::ItemPublicTokenExchangeRequest.new
115
+ request.public_token = public_token
116
+
117
+ response = client.item.public_token_exchange(request)
84
118
  access_token = response.access_token
85
119
  ```
86
120
 
87
121
  ### Deleting an item
88
122
 
89
123
  ```ruby
90
- require 'plaid'
91
-
92
- client = Plaid::Client.new(env: :sandbox,
93
- client_id: '***',
94
- secret: '***',
95
- public_key: '***')
124
+ request = Plaid::ItemPublicTokenExchangeRequest.new
125
+ request.public_token = public_token
96
126
 
97
- exchange_token_response = client.item.public_token.exchange('[Plaid Link public_token]')
98
- access_token = exchange_token_response.access_token
127
+ response = client.item.public_token_exchange(request)
128
+ access_token = response.access_token
99
129
 
100
130
  # Provide the access_token for the Item you want to remove
101
- client.item.remove(access_token)
131
+ item_remove_request = Plaid::ItemRemoveRequest.new
132
+ item_remove_request.access_token = access_token
133
+
134
+ client.item_remove(item_remove_request)
102
135
  ```
103
136
 
104
137
  ### Get paginated transactions
105
138
  ```ruby
106
- require 'plaid'
139
+ request = Plaid::ItemPublicTokenExchangeRequest.new
140
+ request.public_token = public_token
107
141
 
108
- client = Plaid::Client.new(env: :sandbox,
109
- client_id: '***',
110
- secret: '***',
111
- public_key: '***')
142
+ response = client.item.public_token_exchange(request)
143
+ access_token = response.access_token
112
144
 
113
- exchange_token_response = client.item.public_token.exchange('[Plaid Link public_token]')
114
- access_token = exchange_token_response.access_token
145
+ transactions_get_request = Plaid::TransactionsGetRequest.new
146
+ transactions_get_request.access_token = access_token
147
+ transactions_get_request.start_date = "2020-01-01"
148
+ transactions_get_request.end_date = "2021-01-01"
115
149
 
116
- transaction_response = client.transactions.get(access_token, '2016-07-12', '2017-01-09')
150
+ transaction_response = client.transactions_get(transactions_get_request)
117
151
  transactions = transaction_response.transactions
118
152
 
119
153
  # the transactions in the response are paginated, so make multiple calls while
120
154
  # increasing the offset to retrieve all transactions
121
155
  while transactions.length < transaction_response['total_transactions']
122
- transaction_response = client.transactions.get(access_token,
123
- '2016-07-12',
124
- '2017-01-09',
125
- offset: transactions.length)
156
+ options_payload = {}
157
+ options_payload[:offset] = transactions.length
158
+
159
+ transactions_get_request = Plaid::TransactionsGetRequest.new
160
+ transactions_get_request.access_token = access_token
161
+ transactions_get_request.start_date = "2020-01-01"
162
+ transactions_get_request.end_date = "2021-01-01"
163
+
164
+ transaction_response = client.transactions_get(transactions_get_request)
126
165
  transactions += transaction_response.transactions
127
166
  end
128
167
 
@@ -132,57 +171,55 @@ end
132
171
 
133
172
  If you have an `access_token`, you can use following code to retreive data:
134
173
  ```ruby
135
- require 'plaid'
174
+ request = Plaid::ItemPublicTokenExchangeRequest.new
175
+ request.public_token = public_token
136
176
 
137
- client = Plaid::Client.new(env: :sandbox,
138
- client_id: '***',
139
- secret: '***',
140
- public_key: '***')
177
+ response = client.item.public_token_exchange(request)
178
+ access_token = response.access_token
141
179
 
142
- exchange_token_response = client.item.public_token.exchange('[Plaid Link public_token]')
143
- access_token = exchange_token_response.access_token
180
+ auth_get_request = Plaid::AuthGetRequest.new
181
+ auth_get_request.access_token = access_token
144
182
 
145
- auth_response = client.auth.get(access_token)
183
+ auth_response = client.auth_get(access_token)
146
184
  auth = auth_response.auth
147
185
  ```
148
186
 
187
+ There are also a number of other methods you can use to retrieve data:
188
+
189
+ * `client.accounts_get(Plaid::AccountsGetRequest({:access_token => access_token, ...}))`: accounts
190
+ * `client.accounts_balance_get(Plaid::AccountsBalanceGetRequest({:access_token => access_token, ...}))`: real-time balances
191
+ * `client.auth_get(Plaid::AuthGetRequest({:access_token => access_token, ...}))`: auth
192
+ * `client.identity_get(Plaid::IdentityGetRequest({:access_token => access_token, ...}))`: identity
193
+ * `client.transactions_get(Plaid::TransactionsGetRequest({:access_token => access_token, ...}))`: transactions
194
+ * `client.investments_transactions_get(Plaid::InvestmentsTransactionsGetRequest({:access_token => access_token, ...}))`: investment-account transactions
195
+ * `client.investments_holdings_get(Plaid::InvestmentsHoldingsGetRequest({:access_token => access_token, ...}))`: investment-account holdings
196
+
197
+ All of these methods return appropriate data. More information can be found on the [API documentation](https://plaid.com/docs/api).
198
+
149
199
  ### Create a Stripe bank_account_token
150
200
 
151
201
  Exchange a Plaid Link `public_token` for an API `access_token` and a Stripe `bank_account_token`:
152
202
  ```ruby
153
- require 'plaid'
203
+ request = Plaid::ItemPublicTokenExchangeRequest.new
204
+ request.public_token = public_token
154
205
 
155
- client = Plaid::Client.new(env: :sandbox,
156
- client_id: '***',
157
- secret: '***',
158
- public_key: '***')
206
+ response = client.item.public_token.exchange(request)
207
+ access_token = response.access_token
159
208
 
160
- exchange_token_response = client.item.public_token.exchange('[Plaid Link public_token]')
161
- access_token = exchange_token_response.access_token
209
+ processor_token_create_request = Plaid::ProcessorStripeBankAccountTokenCreateRequest.new
210
+ processor_token_create_request.access_token = access_token
211
+ processor_token_create_request.account_id = '[Account ID]'
162
212
 
163
- stripe_response = client.processor.stripe.bank_account_token.create(access_token, '[Account ID]')
213
+ stripe_response = client.processor_stripe_bank_account_token_create(processor_token_create_request)
164
214
  bank_account_token = stripe_response.stripe_bank_account_token
165
215
  ```
166
216
 
167
- There are also a number of other methods you can use to retrieve data:
168
-
169
- * `client.accounts.get(access_token, ...)`: accounts
170
- * `client.accounts.balance.get(access_token, ...)`: real-time balances
171
- * `client.auth.get(access_token, ...)`: auth
172
- * `client.identity.get(access_token, ...)`: identity
173
- * `client.transactions.get(access_token, ...)`: transactions
174
- * `client.credit_details.get(access_token, ...)`: credit details
175
- * `client.investments.transactions.get(access_token, ...)`: investment-account transactions
176
- * `client.investments.holdings.get(access_token, ...)`: investment-account holdings
177
-
178
- All of these methods return appropriate data. More information can be found on the [API documentation](https://plaid.com/docs/api).
179
-
180
217
  ### Categories
181
218
 
182
219
  You can request category information:
183
220
 
184
221
  ```ruby
185
- categories = client.categories.get # Array of all known categories
222
+ categories = client.categories_get # Array of all known categories
186
223
  ```
187
224
 
188
225
  ### Institutions
@@ -190,7 +227,13 @@ categories = client.categories.get # Array of all known categories
190
227
  Financial institution information is available as shown below where the function arguments represent count and offset:
191
228
 
192
229
  ```ruby
193
- institutions = client.institutions.get(count: 3, offset: 1)
230
+ institutions_get_request = Plaid::InstitutionsGetRequest.new({
231
+ :count => 3,
232
+ :offset => 1,
233
+ :country_codes => ["US"],
234
+ })
235
+
236
+ response = client.institutions_get(institutions_get_request)
194
237
  ```
195
238
 
196
239
  ## Errors
@@ -198,17 +241,7 @@ institutions = client.institutions.get(count: 3, offset: 1)
198
241
  Any methods making API calls will result in an exception raised unless the response code is "200: Success" or
199
242
  "210: MFA Required".
200
243
 
201
- `Plaid::InvalidRequestError` is returned when the request is malformed and cannot be processed.
202
-
203
- `Plaid::InvalidInputError` is returned when all fields are provided and are in the correct format, but the values provided are incorrect in some way.
204
-
205
- `Plaid::RateLimitExceededError` returned when the request is valid but has exceeded established rate limits.
206
-
207
- `Plaid::APIError` is returned during planned maintenance windows and in response to API internal server errors.
208
-
209
- `Plaid::ItemError` indicates that information provided for the Item (such as credentials or MFA) may be invalid or that the Item is not supported on Plaid's platform.
210
-
211
- `Plaid::InstitutionError` is returned when there are errors for the requested financial institution.
244
+ `Plaid::Error` is returned in response to API internal server errors.
212
245
 
213
246
  Read more about response codes and their meaning in the
214
247
  [Plaid documentation](https://plaid.com/docs/api).
@@ -220,13 +253,6 @@ Any API call returns a response object which is accessible by dot notation
220
253
  and `response['foo']['bar']`. Expected keys for all types of responses are defined,
221
254
  and any attempt to access an unknown key will cause `NoMethodError` exception.
222
255
 
223
- ## Network Timeout
224
-
225
- A network timeout value is currently defaulted at 600 seconds = 10 minutes.
226
- Some requests from the Plaid API may take longer than others and we want to
227
- make sure that all valid requests have a chance to complete. Adjust this value
228
- if necessary (see "Tuning Faraday").
229
-
230
256
  ## Contributing
231
257
 
232
258
  Bug reports and pull requests are welcome on GitHub at https://github.com/plaid/plaid-ruby. See also [contributing guidelines](CONTRIBUTING.md).
@@ -240,6 +266,7 @@ The gem is available as open source under the terms of the [MIT License](http://
240
266
  If you're looking for a Ruby client that works with the legacy Plaid API, use the [`plaid-legacy` gem][2].
241
267
 
242
268
  [2]: https://github.com/plaid/plaid-ruby-legacy
243
- [version-changelog]: https://plaid.com/docs/api-upgrades
244
- [api-version-2018-05-22]: https://plaid.com/docs/api-upgrades#2018-05-22
245
- [api-version-2019-05-29]: https://plaid.com/docs/api-upgrades#2019-05-29
269
+ [version-changelog]: https://plaid.com/docs/api/versioning/
270
+ [api-version-2018-05-22]: https://plaid.com/docs/api/versioning/#2018-05-22
271
+ [api-version-2019-05-29]: https://plaid.com/docs/api/versioning/#2019-05-29
272
+ [api-version-2020-09-14]: https://plaid.com/docs/api/versioning/#2020-09-14