plaid 12.0.0 → 14.0.0.beta.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +86 -1
- data/CONTRIBUTING.md +15 -59
- data/Dockerfile +12 -0
- data/Gemfile.lock +48 -35
- data/LICENSE.txt +1 -1
- data/Makefile +21 -0
- data/PUBLISH.md +7 -7
- data/README.md +103 -95
- data/Rakefile +8 -79
- data/UPGRADING.md +4 -0
- data/docs/ACHClass.md +15 -0
- data/docs/APR.md +24 -0
- data/docs/AccountAssets.md +40 -0
- data/docs/AccountAssetsAllOf.md +24 -0
- data/docs/AccountBalance.md +26 -0
- data/docs/AccountBase.md +32 -0
- data/docs/AccountFiltersResponse.md +24 -0
- data/docs/AccountIdentity.md +34 -0
- data/docs/AccountIdentityAllOf.md +18 -0
- data/docs/AccountSubtype.md +15 -0
- data/docs/AccountType.md +15 -0
- data/docs/AccountsBalanceGetRequest.md +24 -0
- data/docs/AccountsBalanceGetRequestOptions.md +18 -0
- data/docs/AccountsGetRequest.md +24 -0
- data/docs/AccountsGetRequestOptions.md +18 -0
- data/docs/AccountsGetResponse.md +22 -0
- data/docs/Address.md +20 -0
- data/docs/AddressData.md +26 -0
- data/docs/Amount.md +20 -0
- data/docs/AssetReport.md +28 -0
- data/docs/AssetReportAuditCopyCreateRequest.md +24 -0
- data/docs/AssetReportAuditCopyCreateResponse.md +20 -0
- data/docs/AssetReportAuditCopyGetRequest.md +22 -0
- data/docs/AssetReportAuditCopyRemoveRequest.md +22 -0
- data/docs/AssetReportAuditCopyRemoveResponse.md +20 -0
- data/docs/AssetReportCreateRequest.md +26 -0
- data/docs/AssetReportCreateRequestOptions.md +22 -0
- data/docs/AssetReportCreateResponse.md +22 -0
- data/docs/AssetReportFilterRequest.md +24 -0
- data/docs/AssetReportFilterResponse.md +22 -0
- data/docs/AssetReportGetRequest.md +24 -0
- data/docs/AssetReportGetResponse.md +22 -0
- data/docs/AssetReportItem.md +26 -0
- data/docs/AssetReportPDFGetRequest.md +22 -0
- data/docs/AssetReportRefreshRequest.md +26 -0
- data/docs/AssetReportRefreshRequestOptions.md +22 -0
- data/docs/AssetReportRefreshResponse.md +22 -0
- data/docs/AssetReportRemoveRequest.md +22 -0
- data/docs/AssetReportRemoveResponse.md +20 -0
- data/docs/AssetReportTransaction.md +62 -0
- data/docs/AssetReportTransactionAllOf.md +20 -0
- data/docs/AssetReportUser.md +30 -0
- data/docs/AssetsErrorWebhook.md +24 -0
- data/docs/AssetsProductReadyWebhook.md +22 -0
- data/docs/AuthGetNumbers.md +24 -0
- data/docs/AuthGetRequest.md +24 -0
- data/docs/AuthGetRequestOptions.md +18 -0
- data/docs/AuthGetResponse.md +24 -0
- data/docs/AutomaticallyVerifiedWebhook.md +24 -0
- data/docs/BankTransfer.md +50 -0
- data/docs/BankTransferBalance.md +20 -0
- data/docs/BankTransferBalanceGetRequest.md +22 -0
- data/docs/BankTransferBalanceGetResponse.md +22 -0
- data/docs/BankTransferCancelRequest.md +22 -0
- data/docs/BankTransferCancelResponse.md +18 -0
- data/docs/BankTransferCreateRequest.md +46 -0
- data/docs/BankTransferCreateResponse.md +20 -0
- data/docs/BankTransferDirection.md +15 -0
- data/docs/BankTransferEvent.md +40 -0
- data/docs/BankTransferEventListRequest.md +40 -0
- data/docs/BankTransferEventListResponse.md +20 -0
- data/docs/BankTransferEventSyncRequest.md +24 -0
- data/docs/BankTransferEventSyncResponse.md +20 -0
- data/docs/BankTransferEventType.md +15 -0
- data/docs/BankTransferFailure.md +20 -0
- data/docs/BankTransferGetRequest.md +22 -0
- data/docs/BankTransferGetResponse.md +20 -0
- data/docs/BankTransferListRequest.md +32 -0
- data/docs/BankTransferListResponse.md +20 -0
- data/docs/BankTransferMigrateAccountRequest.md +26 -0
- data/docs/BankTransferMigrateAccountResponse.md +22 -0
- data/docs/BankTransferNetwork.md +15 -0
- data/docs/BankTransferReceiverDetails.md +18 -0
- data/docs/BankTransferStatus.md +15 -0
- data/docs/BankTransferType.md +15 -0
- data/docs/BankTransferUser.md +22 -0
- data/docs/CategoriesGetResponse.md +20 -0
- data/docs/Category.md +22 -0
- data/docs/Cause.md +20 -0
- data/docs/CountryCode.md +15 -0
- data/docs/CreditCardLiability.md +34 -0
- data/docs/CreditFilter.md +18 -0
- data/docs/DefaultUpdateWebhook.md +26 -0
- data/docs/DepositSwitchAddressData.md +26 -0
- data/docs/DepositSwitchAltCreateRequest.md +24 -0
- data/docs/DepositSwitchAltCreateResponse.md +20 -0
- data/docs/DepositSwitchCreateRequest.md +24 -0
- data/docs/DepositSwitchCreateResponse.md +20 -0
- data/docs/DepositSwitchGetRequest.md +22 -0
- data/docs/DepositSwitchGetResponse.md +38 -0
- data/docs/DepositSwitchTargetAccount.md +24 -0
- data/docs/DepositSwitchTargetUser.md +28 -0
- data/docs/DepositSwitchTokenCreateRequest.md +22 -0
- data/docs/DepositSwitchTokenCreateResponse.md +22 -0
- data/docs/DepositoryFilter.md +18 -0
- data/docs/Email.md +22 -0
- data/docs/Employee.md +22 -0
- data/docs/EmployeeIncomeSummaryFieldString.md +20 -0
- data/docs/Employer.md +24 -0
- data/docs/EmployerIncomeSummaryFieldString.md +20 -0
- data/docs/EmployersSearchRequest.md +24 -0
- data/docs/EmployersSearchResponse.md +20 -0
- data/docs/Error.md +34 -0
- data/docs/ExternalPaymentSchedule.md +24 -0
- data/docs/ExternalPaymentScheduleGet.md +26 -0
- data/docs/HealthIncident.md +24 -0
- data/docs/HistoricalBalance.md +24 -0
- data/docs/HistoricalUpdateWebhook.md +26 -0
- data/docs/Holding.md +34 -0
- data/docs/HoldingsDefaultUpdateWebhook.md +28 -0
- data/docs/IdentityGetRequest.md +24 -0
- data/docs/IdentityGetRequestOptions.md +18 -0
- data/docs/IdentityGetResponse.md +22 -0
- data/docs/IncidentUpdate.md +22 -0
- data/docs/IncomeBreakdown.md +24 -0
- data/docs/IncomeSummary.md +30 -0
- data/docs/IncomeSummaryFieldNumber.md +20 -0
- data/docs/IncomeSummaryFieldString.md +20 -0
- data/docs/IncomeVerificationCreateRequest.md +22 -0
- data/docs/IncomeVerificationCreateResponse.md +20 -0
- data/docs/IncomeVerificationDocumentsDownloadRequest.md +22 -0
- data/docs/IncomeVerificationDocumentsDownloadResponse.md +18 -0
- data/docs/IncomeVerificationPaystubGetRequest.md +22 -0
- data/docs/IncomeVerificationPaystubGetResponse.md +20 -0
- data/docs/IncomeVerificationStatusWebhook.md +24 -0
- data/docs/IncomeVerificationSummaryGetRequest.md +22 -0
- data/docs/IncomeVerificationSummaryGetResponse.md +20 -0
- data/docs/IncomeVerificationWebhookStatus.md +18 -0
- data/docs/InflowModel.md +26 -0
- data/docs/InitialUpdateWebhook.md +26 -0
- data/docs/Institution.md +36 -0
- data/docs/InstitutionStatus.md +30 -0
- data/docs/InstitutionsGetByIdRequest.md +26 -0
- data/docs/InstitutionsGetByIdRequestOptions.md +20 -0
- data/docs/InstitutionsGetByIdResponse.md +20 -0
- data/docs/InstitutionsGetRequest.md +28 -0
- data/docs/InstitutionsGetRequestOptions.md +24 -0
- data/docs/InstitutionsGetResponse.md +22 -0
- data/docs/InstitutionsSearchAccountFilter.md +24 -0
- data/docs/InstitutionsSearchRequest.md +28 -0
- data/docs/InstitutionsSearchRequestOptions.md +22 -0
- data/docs/InstitutionsSearchResponse.md +20 -0
- data/docs/InvestmentFilter.md +18 -0
- data/docs/InvestmentHoldingsGetRequestOptions.md +18 -0
- data/docs/InvestmentTransaction.md +44 -0
- data/docs/InvestmentsDefaultUpdateWebhook.md +28 -0
- data/docs/InvestmentsHoldingsGetRequest.md +24 -0
- data/docs/InvestmentsHoldingsGetResponse.md +26 -0
- data/docs/InvestmentsTransactionsGetRequest.md +28 -0
- data/docs/InvestmentsTransactionsGetRequestOptions.md +22 -0
- data/docs/InvestmentsTransactionsGetResponse.md +28 -0
- data/docs/Item.md +32 -0
- data/docs/ItemAccessTokenInvalidateRequest.md +22 -0
- data/docs/ItemAccessTokenInvalidateResponse.md +20 -0
- data/docs/ItemErrorWebhook.md +24 -0
- data/docs/ItemGetRequest.md +22 -0
- data/docs/ItemGetResponse.md +24 -0
- data/docs/ItemImportRequest.md +26 -0
- data/docs/ItemImportRequestOptions.md +18 -0
- data/docs/ItemImportRequestUserAuth.md +20 -0
- data/docs/ItemImportResponse.md +20 -0
- data/docs/ItemProductReadyWebhook.md +24 -0
- data/docs/ItemPublicTokenCreateRequest.md +22 -0
- data/docs/ItemPublicTokenCreateResponse.md +22 -0
- data/docs/ItemPublicTokenExchangeRequest.md +22 -0
- data/docs/ItemPublicTokenExchangeResponse.md +22 -0
- data/docs/ItemRemoveRequest.md +22 -0
- data/docs/ItemRemoveResponse.md +18 -0
- data/docs/ItemStatus.md +22 -0
- data/docs/ItemWebhookUpdateRequest.md +24 -0
- data/docs/ItemWebhookUpdateResponse.md +20 -0
- data/docs/JWKPublicKey.md +34 -0
- data/docs/JWTHeader.md +18 -0
- data/docs/LiabilitiesGetRequest.md +24 -0
- data/docs/LiabilitiesGetRequestOptions.md +18 -0
- data/docs/LiabilitiesGetResponse.md +24 -0
- data/docs/LiabilitiesObject.md +22 -0
- data/docs/LiabilityOverride.md +66 -0
- data/docs/LinkTokenAccountFilters.md +24 -0
- data/docs/LinkTokenCreateRequest.md +48 -0
- data/docs/LinkTokenCreateRequestAccountSubtypes.md +24 -0
- data/docs/LinkTokenCreateRequestDepositSwitch.md +18 -0
- data/docs/LinkTokenCreateRequestIncomeVerification.md +20 -0
- data/docs/LinkTokenCreateRequestPaymentInitiation.md +18 -0
- data/docs/LinkTokenCreateRequestUser.md +32 -0
- data/docs/LinkTokenCreateResponse.md +22 -0
- data/docs/LinkTokenGetMetadataResponse.md +30 -0
- data/docs/LinkTokenGetRequest.md +22 -0
- data/docs/LinkTokenGetResponse.md +26 -0
- data/docs/LoanFilter.md +18 -0
- data/docs/Location.md +32 -0
- data/docs/MFA.md +26 -0
- data/docs/Meta.md +22 -0
- data/docs/MortgageInterestRate.md +20 -0
- data/docs/MortgageLiability.md +56 -0
- data/docs/MortgagePropertyAddress.md +26 -0
- data/docs/NullableAccessToken.md +15 -0
- data/docs/NullableAddress.md +20 -0
- data/docs/NullableAddressData.md +26 -0
- data/docs/NullableItemStatus.md +22 -0
- data/docs/NullableNumbersACH.md +24 -0
- data/docs/NullableNumbersBACS.md +22 -0
- data/docs/NullableNumbersEFT.md +24 -0
- data/docs/NullableNumbersInternational.md +22 -0
- data/docs/NullableRecipientBACS.md +20 -0
- data/docs/Numbers.md +32 -0
- data/docs/NumbersACH.md +24 -0
- data/docs/NumbersBACS.md +22 -0
- data/docs/NumbersEFT.md +24 -0
- data/docs/NumbersInternational.md +22 -0
- data/docs/OverrideAccounts.md +38 -0
- data/docs/Owner.md +24 -0
- data/docs/OwnerOverride.md +24 -0
- data/docs/PSLFStatus.md +22 -0
- data/docs/PayFrequency.md +20 -0
- data/docs/PayPeriodDetails.md +26 -0
- data/docs/PaymentAmount.md +20 -0
- data/docs/PaymentInitiationAddress.md +24 -0
- data/docs/PaymentInitiationPaymentCreateRequest.md +28 -0
- data/docs/PaymentInitiationPaymentCreateResponse.md +22 -0
- data/docs/PaymentInitiationPaymentGetRequest.md +22 -0
- data/docs/PaymentInitiationPaymentGetResponse.md +34 -0
- data/docs/PaymentInitiationPaymentListRequest.md +24 -0
- data/docs/PaymentInitiationPaymentListResponse.md +22 -0
- data/docs/PaymentInitiationPaymentTokenCreateRequest.md +22 -0
- data/docs/PaymentInitiationPaymentTokenCreateResponse.md +22 -0
- data/docs/PaymentInitiationRecipient.md +26 -0
- data/docs/PaymentInitiationRecipientCreateRequest.md +28 -0
- data/docs/PaymentInitiationRecipientCreateResponse.md +20 -0
- data/docs/PaymentInitiationRecipientGetRequest.md +22 -0
- data/docs/PaymentInitiationRecipientGetResponse.md +28 -0
- data/docs/PaymentInitiationRecipientListRequest.md +20 -0
- data/docs/PaymentInitiationRecipientListResponse.md +20 -0
- data/docs/PaymentMeta.md +32 -0
- data/docs/PaymentStatusUpdateWebhook.md +38 -0
- data/docs/Paystub.md +30 -0
- data/docs/PaystubDeduction.md +22 -0
- data/docs/PaystubYTDDetails.md +20 -0
- data/docs/PendingExpirationWebhook.md +24 -0
- data/docs/PhoneNumber.md +22 -0
- data/docs/PlaidApi.md +5580 -0
- data/docs/ProcessorApexProcessorTokenCreateRequest.md +24 -0
- data/docs/ProcessorAuthGetRequest.md +22 -0
- data/docs/ProcessorAuthGetResponse.md +22 -0
- data/docs/ProcessorBalanceGetRequest.md +22 -0
- data/docs/ProcessorBalanceGetResponse.md +20 -0
- data/docs/ProcessorIdentityGetRequest.md +22 -0
- data/docs/ProcessorIdentityGetResponse.md +20 -0
- data/docs/ProcessorNumber.md +24 -0
- data/docs/ProcessorStripeBankAccountTokenCreateRequest.md +24 -0
- data/docs/ProcessorStripeBankAccountTokenCreateResponse.md +20 -0
- data/docs/ProcessorTokenCreateRequest.md +26 -0
- data/docs/ProcessorTokenCreateResponse.md +20 -0
- data/docs/ProductStatus.md +22 -0
- data/docs/ProductStatusBreakdown.md +24 -0
- data/docs/Products.md +15 -0
- data/docs/ProjectedIncomeSummaryFieldNumber.md +20 -0
- data/docs/RecaptchaRequiredError.md +30 -0
- data/docs/RecipientBACS.md +20 -0
- data/docs/SandboxBankTransferSimulateRequest.md +26 -0
- data/docs/SandboxBankTransferSimulateResponse.md +18 -0
- data/docs/SandboxItemFireWebhookRequest.md +24 -0
- data/docs/SandboxItemFireWebhookResponse.md +20 -0
- data/docs/SandboxItemResetLoginRequest.md +22 -0
- data/docs/SandboxItemResetLoginResponse.md +20 -0
- data/docs/SandboxItemSetVerificationStatusRequest.md +26 -0
- data/docs/SandboxItemSetVerificationStatusResponse.md +18 -0
- data/docs/SandboxProcessorTokenCreateRequest.md +24 -0
- data/docs/SandboxProcessorTokenCreateRequestOptions.md +20 -0
- data/docs/SandboxProcessorTokenCreateResponse.md +20 -0
- data/docs/SandboxPublicTokenCreateRequest.md +26 -0
- data/docs/SandboxPublicTokenCreateRequestOptions.md +24 -0
- data/docs/SandboxPublicTokenCreateRequestOptionsTransactions.md +20 -0
- data/docs/SandboxPublicTokenCreateResponse.md +20 -0
- data/docs/Security.md +46 -0
- data/docs/ServicerAddressData.md +26 -0
- data/docs/StandaloneAccountType.md +26 -0
- data/docs/StandaloneCurrencyCodeList.md +20 -0
- data/docs/StandaloneInvestmentTransactionSubtype.md +104 -0
- data/docs/StandaloneInvestmentTransactionType.md +28 -0
- data/docs/StudentLoan.md +66 -0
- data/docs/StudentLoanRepaymentModel.md +22 -0
- data/docs/StudentLoanStatus.md +20 -0
- data/docs/StudentRepaymentPlan.md +20 -0
- data/docs/Transaction.md +58 -0
- data/docs/TransactionCode.md +15 -0
- data/docs/TransactionData.md +26 -0
- data/docs/TransactionOverride.md +26 -0
- data/docs/TransactionsGetRequest.md +28 -0
- data/docs/TransactionsGetRequestOptions.md +22 -0
- data/docs/TransactionsGetResponse.md +26 -0
- data/docs/TransactionsRefreshRequest.md +22 -0
- data/docs/TransactionsRefreshResponse.md +18 -0
- data/docs/TransactionsRemovedWebhook.md +26 -0
- data/docs/UserCustomPassword.md +28 -0
- data/docs/UserPermissionRevokedWebhook.md +24 -0
- data/docs/VerificationExpiredWebhook.md +24 -0
- data/docs/VerificationStatus.md +15 -0
- data/docs/Warning.md +22 -0
- data/docs/WebhookUpdateAcknowledgedWebhook.md +26 -0
- data/docs/WebhookVerificationKeyGetRequest.md +22 -0
- data/docs/WebhookVerificationKeyGetResponse.md +20 -0
- data/docs/YTDGrossIncomeSummaryFieldNumber.md +20 -0
- data/docs/YTDNetIncomeSummaryFieldNumber.md +20 -0
- data/lib/plaid.rb +336 -61
- data/lib/plaid/api/plaid_api.rb +4414 -0
- data/lib/plaid/api_client.rb +383 -0
- data/lib/plaid/api_error.rb +57 -0
- data/lib/plaid/configuration.rb +297 -0
- data/lib/plaid/models/account_assets.rb +406 -0
- data/lib/plaid/models/account_assets_all_of.rb +263 -0
- data/lib/plaid/models/account_balance.rb +269 -0
- data/lib/plaid/models/account_base.rb +345 -0
- data/lib/plaid/models/account_filters_response.rb +246 -0
- data/lib/plaid/models/account_identity.rb +369 -0
- data/lib/plaid/models/account_identity_all_of.rb +226 -0
- data/lib/plaid/models/account_subtype.rb +101 -0
- data/lib/plaid/models/account_type.rb +41 -0
- data/lib/plaid/models/accounts_balance_get_request.rb +254 -0
- data/lib/plaid/models/accounts_balance_get_request_options.rb +222 -0
- data/lib/plaid/models/accounts_get_request.rb +254 -0
- data/lib/plaid/models/accounts_get_request_options.rb +222 -0
- data/lib/plaid/models/accounts_get_response.rb +256 -0
- data/lib/plaid/models/ach_class.rb +50 -0
- data/lib/plaid/models/address.rb +235 -0
- data/lib/plaid/models/address_data.rb +277 -0
- data/lib/plaid/models/amount.rb +274 -0
- data/lib/plaid/models/apr.rb +296 -0
- data/lib/plaid/models/asset_report.rb +301 -0
- data/lib/plaid/models/asset_report_audit_copy_create_request.rb +260 -0
- data/lib/plaid/models/asset_report_audit_copy_create_response.rb +240 -0
- data/lib/plaid/models/asset_report_audit_copy_get_request.rb +245 -0
- data/lib/plaid/models/asset_report_audit_copy_remove_request.rb +245 -0
- data/lib/plaid/models/asset_report_audit_copy_remove_response.rb +240 -0
- data/lib/plaid/models/asset_report_create_request.rb +299 -0
- data/lib/plaid/models/asset_report_create_request_options.rb +239 -0
- data/lib/plaid/models/asset_report_create_response.rb +255 -0
- data/lib/plaid/models/asset_report_filter_request.rb +262 -0
- data/lib/plaid/models/asset_report_filter_response.rb +255 -0
- data/lib/plaid/models/asset_report_get_request.rb +255 -0
- data/lib/plaid/models/asset_report_get_response.rb +256 -0
- data/lib/plaid/models/asset_report_item.rb +287 -0
- data/lib/plaid/models/asset_report_pdf_get_request.rb +245 -0
- data/lib/plaid/models/asset_report_refresh_request.rb +288 -0
- data/lib/plaid/models/asset_report_refresh_request_options.rb +239 -0
- data/lib/plaid/models/asset_report_refresh_response.rb +255 -0
- data/lib/plaid/models/asset_report_remove_request.rb +245 -0
- data/lib/plaid/models/asset_report_remove_response.rb +240 -0
- data/lib/plaid/models/asset_report_transaction.rb +533 -0
- data/lib/plaid/models/asset_report_transaction_all_of.rb +235 -0
- data/lib/plaid/models/asset_report_user.rb +287 -0
- data/lib/plaid/models/assets_error_webhook.rb +265 -0
- data/lib/plaid/models/assets_product_ready_webhook.rb +255 -0
- data/lib/plaid/models/auth_get_numbers.rb +258 -0
- data/lib/plaid/models/auth_get_request.rb +254 -0
- data/lib/plaid/models/auth_get_request_options.rb +222 -0
- data/lib/plaid/models/auth_get_response.rb +270 -0
- data/lib/plaid/models/automatically_verified_webhook.rb +270 -0
- data/lib/plaid/models/bank_transfer.rb +444 -0
- data/lib/plaid/models/bank_transfer_balance.rb +239 -0
- data/lib/plaid/models/bank_transfer_balance_get_request.rb +241 -0
- data/lib/plaid/models/bank_transfer_balance_get_response.rb +250 -0
- data/lib/plaid/models/bank_transfer_cancel_request.rb +245 -0
- data/lib/plaid/models/bank_transfer_cancel_response.rb +225 -0
- data/lib/plaid/models/bank_transfer_create_request.rb +459 -0
- data/lib/plaid/models/bank_transfer_create_response.rb +239 -0
- data/lib/plaid/models/bank_transfer_direction.rb +37 -0
- data/lib/plaid/models/bank_transfer_event.rb +388 -0
- data/lib/plaid/models/bank_transfer_event_list_request.rb +418 -0
- data/lib/plaid/models/bank_transfer_event_list_response.rb +241 -0
- data/lib/plaid/models/bank_transfer_event_sync_request.rb +301 -0
- data/lib/plaid/models/bank_transfer_event_sync_response.rb +241 -0
- data/lib/plaid/models/bank_transfer_event_type.rb +42 -0
- data/lib/plaid/models/bank_transfer_failure.rb +231 -0
- data/lib/plaid/models/bank_transfer_get_request.rb +245 -0
- data/lib/plaid/models/bank_transfer_get_response.rb +239 -0
- data/lib/plaid/models/bank_transfer_list_request.rb +336 -0
- data/lib/plaid/models/bank_transfer_list_response.rb +241 -0
- data/lib/plaid/models/bank_transfer_migrate_account_request.rb +275 -0
- data/lib/plaid/models/bank_transfer_migrate_account_response.rb +255 -0
- data/lib/plaid/models/bank_transfer_network.rb +38 -0
- data/lib/plaid/models/bank_transfer_receiver_details.rb +255 -0
- data/lib/plaid/models/bank_transfer_status.rb +40 -0
- data/lib/plaid/models/bank_transfer_type.rb +37 -0
- data/lib/plaid/models/bank_transfer_user.rb +246 -0
- data/lib/plaid/models/categories_get_response.rb +242 -0
- data/lib/plaid/models/category.rb +257 -0
- data/lib/plaid/models/cause.rb +235 -0
- data/lib/plaid/models/country_code.rb +42 -0
- data/lib/plaid/models/credit_card_liability.rb +339 -0
- data/lib/plaid/models/credit_filter.rb +227 -0
- data/lib/plaid/models/default_update_webhook.rb +280 -0
- data/lib/plaid/models/deposit_switch_address_data.rb +285 -0
- data/lib/plaid/models/deposit_switch_alt_create_request.rb +258 -0
- data/lib/plaid/models/deposit_switch_alt_create_response.rb +240 -0
- data/lib/plaid/models/deposit_switch_create_request.rb +260 -0
- data/lib/plaid/models/deposit_switch_create_response.rb +240 -0
- data/lib/plaid/models/deposit_switch_get_request.rb +245 -0
- data/lib/plaid/models/deposit_switch_get_response.rb +381 -0
- data/lib/plaid/models/deposit_switch_target_account.rb +303 -0
- data/lib/plaid/models/deposit_switch_target_user.rb +288 -0
- data/lib/plaid/models/deposit_switch_token_create_request.rb +245 -0
- data/lib/plaid/models/deposit_switch_token_create_response.rb +255 -0
- data/lib/plaid/models/depository_filter.rb +227 -0
- data/lib/plaid/models/email.rb +289 -0
- data/lib/plaid/models/employee.rb +242 -0
- data/lib/plaid/models/employee_income_summary_field_string.rb +245 -0
- data/lib/plaid/models/employer.rb +261 -0
- data/lib/plaid/models/employer_income_summary_field_string.rb +245 -0
- data/lib/plaid/models/employers_search_request.rb +262 -0
- data/lib/plaid/models/employers_search_response.rb +242 -0
- data/lib/plaid/models/error.rb +360 -0
- data/lib/plaid/models/external_payment_schedule.rb +265 -0
- data/lib/plaid/models/external_payment_schedule_get.rb +283 -0
- data/lib/plaid/models/health_incident.rb +253 -0
- data/lib/plaid/models/historical_balance.rb +262 -0
- data/lib/plaid/models/historical_update_webhook.rb +280 -0
- data/lib/plaid/models/holding.rb +329 -0
- data/lib/plaid/models/holdings_default_update_webhook.rb +295 -0
- data/lib/plaid/models/identity_get_request.rb +254 -0
- data/lib/plaid/models/identity_get_request_options.rb +222 -0
- data/lib/plaid/models/identity_get_response.rb +256 -0
- data/lib/plaid/models/incident_update.rb +273 -0
- data/lib/plaid/models/income_breakdown.rb +253 -0
- data/lib/plaid/models/income_summary.rb +275 -0
- data/lib/plaid/models/income_summary_field_number.rb +238 -0
- data/lib/plaid/models/income_summary_field_string.rb +238 -0
- data/lib/plaid/models/income_verification_create_request.rb +245 -0
- data/lib/plaid/models/income_verification_create_response.rb +240 -0
- data/lib/plaid/models/income_verification_documents_download_request.rb +245 -0
- data/lib/plaid/models/income_verification_documents_download_response.rb +224 -0
- data/lib/plaid/models/income_verification_paystub_get_request.rb +245 -0
- data/lib/plaid/models/income_verification_paystub_get_response.rb +229 -0
- data/lib/plaid/models/income_verification_status_webhook.rb +270 -0
- data/lib/plaid/models/income_verification_summary_get_request.rb +245 -0
- data/lib/plaid/models/income_verification_summary_get_response.rb +242 -0
- data/lib/plaid/models/income_verification_webhook_status.rb +223 -0
- data/lib/plaid/models/inflow_model.rb +285 -0
- data/lib/plaid/models/initial_update_webhook.rb +281 -0
- data/lib/plaid/models/institution.rb +344 -0
- data/lib/plaid/models/institution_status.rb +307 -0
- data/lib/plaid/models/institutions_get_by_id_request.rb +271 -0
- data/lib/plaid/models/institutions_get_by_id_request_options.rb +234 -0
- data/lib/plaid/models/institutions_get_by_id_response.rb +239 -0
- data/lib/plaid/models/institutions_get_request.rb +305 -0
- data/lib/plaid/models/institutions_get_request_options.rb +254 -0
- data/lib/plaid/models/institutions_get_response.rb +257 -0
- data/lib/plaid/models/institutions_search_account_filter.rb +253 -0
- data/lib/plaid/models/institutions_search_request.rb +288 -0
- data/lib/plaid/models/institutions_search_request_options.rb +239 -0
- data/lib/plaid/models/institutions_search_response.rb +242 -0
- data/lib/plaid/models/investment_filter.rb +227 -0
- data/lib/plaid/models/investment_holdings_get_request_options.rb +222 -0
- data/lib/plaid/models/investment_transaction.rb +445 -0
- data/lib/plaid/models/investments_default_update_webhook.rb +295 -0
- data/lib/plaid/models/investments_holdings_get_request.rb +254 -0
- data/lib/plaid/models/investments_holdings_get_response.rb +290 -0
- data/lib/plaid/models/investments_transactions_get_request.rb +284 -0
- data/lib/plaid/models/investments_transactions_get_request_options.rb +285 -0
- data/lib/plaid/models/investments_transactions_get_response.rb +305 -0
- data/lib/plaid/models/item.rb +351 -0
- data/lib/plaid/models/item_access_token_invalidate_request.rb +245 -0
- data/lib/plaid/models/item_access_token_invalidate_response.rb +240 -0
- data/lib/plaid/models/item_error_webhook.rb +265 -0
- data/lib/plaid/models/item_get_request.rb +245 -0
- data/lib/plaid/models/item_get_response.rb +259 -0
- data/lib/plaid/models/item_import_request.rb +270 -0
- data/lib/plaid/models/item_import_request_options.rb +220 -0
- data/lib/plaid/models/item_import_request_user_auth.rb +240 -0
- data/lib/plaid/models/item_import_response.rb +240 -0
- data/lib/plaid/models/item_product_ready_webhook.rb +265 -0
- data/lib/plaid/models/item_public_token_create_request.rb +245 -0
- data/lib/plaid/models/item_public_token_create_response.rb +249 -0
- data/lib/plaid/models/item_public_token_exchange_request.rb +245 -0
- data/lib/plaid/models/item_public_token_exchange_response.rb +255 -0
- data/lib/plaid/models/item_remove_request.rb +245 -0
- data/lib/plaid/models/item_remove_response.rb +225 -0
- data/lib/plaid/models/item_status.rb +249 -0
- data/lib/plaid/models/item_webhook_update_request.rb +260 -0
- data/lib/plaid/models/item_webhook_update_response.rb +239 -0
- data/lib/plaid/models/jwk_public_key.rb +299 -0
- data/lib/plaid/models/jwt_header.rb +224 -0
- data/lib/plaid/models/liabilities_get_request.rb +254 -0
- data/lib/plaid/models/liabilities_get_request_options.rb +222 -0
- data/lib/plaid/models/liabilities_get_response.rb +270 -0
- data/lib/plaid/models/liabilities_object.rb +249 -0
- data/lib/plaid/models/liability_override.rb +583 -0
- data/lib/plaid/models/link_token_account_filters.rb +246 -0
- data/lib/plaid/models/link_token_create_request.rb +390 -0
- data/lib/plaid/models/link_token_create_request_account_subtypes.rb +258 -0
- data/lib/plaid/models/link_token_create_request_deposit_switch.rb +225 -0
- data/lib/plaid/models/link_token_create_request_income_verification.rb +236 -0
- data/lib/plaid/models/link_token_create_request_payment_initiation.rb +225 -0
- data/lib/plaid/models/link_token_create_request_user.rb +295 -0
- data/lib/plaid/models/link_token_create_response.rb +255 -0
- data/lib/plaid/models/link_token_get_metadata_response.rb +287 -0
- data/lib/plaid/models/link_token_get_request.rb +245 -0
- data/lib/plaid/models/link_token_get_response.rb +266 -0
- data/lib/plaid/models/loan_filter.rb +227 -0
- data/lib/plaid/models/location.rb +298 -0
- data/lib/plaid/models/meta.rb +255 -0
- data/lib/plaid/models/mfa.rb +285 -0
- data/lib/plaid/models/mortgage_interest_rate.rb +232 -0
- data/lib/plaid/models/mortgage_liability.rb +430 -0
- data/lib/plaid/models/mortgage_property_address.rb +265 -0
- data/lib/plaid/models/nullable_access_token.rb +209 -0
- data/lib/plaid/models/nullable_address.rb +241 -0
- data/lib/plaid/models/nullable_address_data.rb +283 -0
- data/lib/plaid/models/nullable_item_status.rb +255 -0
- data/lib/plaid/models/nullable_numbers_ach.rb +272 -0
- data/lib/plaid/models/nullable_numbers_bacs.rb +261 -0
- data/lib/plaid/models/nullable_numbers_eft.rb +276 -0
- data/lib/plaid/models/nullable_numbers_international.rb +261 -0
- data/lib/plaid/models/nullable_recipient_bacs.rb +236 -0
- data/lib/plaid/models/numbers.rb +330 -0
- data/lib/plaid/models/numbers_ach.rb +266 -0
- data/lib/plaid/models/numbers_bacs.rb +255 -0
- data/lib/plaid/models/numbers_eft.rb +270 -0
- data/lib/plaid/models/numbers_international.rb +255 -0
- data/lib/plaid/models/override_accounts.rb +366 -0
- data/lib/plaid/models/owner.rb +278 -0
- data/lib/plaid/models/owner_override.rb +278 -0
- data/lib/plaid/models/pay_frequency.rb +272 -0
- data/lib/plaid/models/pay_period_details.rb +265 -0
- data/lib/plaid/models/payment_amount.rb +240 -0
- data/lib/plaid/models/payment_initiation_address.rb +252 -0
- data/lib/plaid/models/payment_initiation_payment_create_request.rb +284 -0
- data/lib/plaid/models/payment_initiation_payment_create_response.rb +255 -0
- data/lib/plaid/models/payment_initiation_payment_get_request.rb +245 -0
- data/lib/plaid/models/payment_initiation_payment_get_response.rb +364 -0
- data/lib/plaid/models/payment_initiation_payment_list_request.rb +267 -0
- data/lib/plaid/models/payment_initiation_payment_list_response.rb +257 -0
- data/lib/plaid/models/payment_initiation_payment_token_create_request.rb +245 -0
- data/lib/plaid/models/payment_initiation_payment_token_create_response.rb +255 -0
- data/lib/plaid/models/payment_initiation_recipient.rb +273 -0
- data/lib/plaid/models/payment_initiation_recipient_create_request.rb +275 -0
- data/lib/plaid/models/payment_initiation_recipient_create_response.rb +240 -0
- data/lib/plaid/models/payment_initiation_recipient_get_request.rb +245 -0
- data/lib/plaid/models/payment_initiation_recipient_get_response.rb +286 -0
- data/lib/plaid/models/payment_initiation_recipient_list_request.rb +230 -0
- data/lib/plaid/models/payment_initiation_recipient_list_response.rb +242 -0
- data/lib/plaid/models/payment_meta.rb +298 -0
- data/lib/plaid/models/payment_status_update_webhook.rb +400 -0
- data/lib/plaid/models/paystub.rb +306 -0
- data/lib/plaid/models/paystub_deduction.rb +242 -0
- data/lib/plaid/models/paystub_ytd_details.rb +239 -0
- data/lib/plaid/models/pending_expiration_webhook.rb +270 -0
- data/lib/plaid/models/phone_number.rb +281 -0
- data/lib/plaid/models/processor_apex_processor_token_create_request.rb +260 -0
- data/lib/plaid/models/processor_auth_get_request.rb +245 -0
- data/lib/plaid/models/processor_auth_get_response.rb +253 -0
- data/lib/plaid/models/processor_balance_get_request.rb +245 -0
- data/lib/plaid/models/processor_balance_get_response.rb +239 -0
- data/lib/plaid/models/processor_identity_get_request.rb +245 -0
- data/lib/plaid/models/processor_identity_get_response.rb +239 -0
- data/lib/plaid/models/processor_number.rb +250 -0
- data/lib/plaid/models/processor_stripe_bank_account_token_create_request.rb +260 -0
- data/lib/plaid/models/processor_stripe_bank_account_token_create_response.rb +240 -0
- data/lib/plaid/models/processor_token_create_request.rb +275 -0
- data/lib/plaid/models/processor_token_create_response.rb +240 -0
- data/lib/plaid/models/product_status.rb +288 -0
- data/lib/plaid/models/product_status_breakdown.rb +300 -0
- data/lib/plaid/models/products.rb +46 -0
- data/lib/plaid/models/projected_income_summary_field_number.rb +245 -0
- data/lib/plaid/models/pslf_status.rb +243 -0
- data/lib/plaid/models/recaptcha_required_error.rb +314 -0
- data/lib/plaid/models/recipient_bacs.rb +230 -0
- data/lib/plaid/models/sandbox_bank_transfer_simulate_request.rb +270 -0
- data/lib/plaid/models/sandbox_bank_transfer_simulate_response.rb +225 -0
- data/lib/plaid/models/sandbox_item_fire_webhook_request.rb +289 -0
- data/lib/plaid/models/sandbox_item_fire_webhook_response.rb +240 -0
- data/lib/plaid/models/sandbox_item_reset_login_request.rb +245 -0
- data/lib/plaid/models/sandbox_item_reset_login_response.rb +240 -0
- data/lib/plaid/models/sandbox_item_set_verification_status_request.rb +309 -0
- data/lib/plaid/models/sandbox_item_set_verification_status_response.rb +225 -0
- data/lib/plaid/models/sandbox_processor_token_create_request.rb +253 -0
- data/lib/plaid/models/sandbox_processor_token_create_request_options.rb +236 -0
- data/lib/plaid/models/sandbox_processor_token_create_response.rb +239 -0
- data/lib/plaid/models/sandbox_public_token_create_request.rb +271 -0
- data/lib/plaid/models/sandbox_public_token_create_request_options.rb +255 -0
- data/lib/plaid/models/sandbox_public_token_create_request_options_transactions.rb +230 -0
- data/lib/plaid/models/sandbox_public_token_create_response.rb +240 -0
- data/lib/plaid/models/security.rb +382 -0
- data/lib/plaid/models/servicer_address_data.rb +265 -0
- data/lib/plaid/models/standalone_account_type.rb +285 -0
- data/lib/plaid/models/standalone_currency_code_list.rb +240 -0
- data/lib/plaid/models/standalone_investment_transaction_subtype.rb +650 -0
- data/lib/plaid/models/standalone_investment_transaction_type.rb +300 -0
- data/lib/plaid/models/student_loan.rb +483 -0
- data/lib/plaid/models/student_loan_repayment_model.rb +255 -0
- data/lib/plaid/models/student_loan_status.rb +266 -0
- data/lib/plaid/models/student_repayment_plan.rb +266 -0
- data/lib/plaid/models/transaction.rb +500 -0
- data/lib/plaid/models/transaction_code.rb +48 -0
- data/lib/plaid/models/transaction_data.rb +285 -0
- data/lib/plaid/models/transaction_override.rb +280 -0
- data/lib/plaid/models/transactions_get_request.rb +284 -0
- data/lib/plaid/models/transactions_get_request_options.rb +285 -0
- data/lib/plaid/models/transactions_get_response.rb +288 -0
- data/lib/plaid/models/transactions_refresh_request.rb +245 -0
- data/lib/plaid/models/transactions_refresh_response.rb +225 -0
- data/lib/plaid/models/transactions_removed_webhook.rb +282 -0
- data/lib/plaid/models/user_custom_password.rb +297 -0
- data/lib/plaid/models/user_permission_revoked_webhook.rb +265 -0
- data/lib/plaid/models/verification_expired_webhook.rb +270 -0
- data/lib/plaid/models/verification_status.rb +40 -0
- data/lib/plaid/models/warning.rb +254 -0
- data/lib/plaid/models/webhook_update_acknowledged_webhook.rb +280 -0
- data/lib/plaid/models/webhook_verification_key_get_request.rb +245 -0
- data/lib/plaid/models/webhook_verification_key_get_response.rb +239 -0
- data/lib/plaid/models/ytd_gross_income_summary_field_number.rb +245 -0
- data/lib/plaid/models/ytd_net_income_summary_field_number.rb +245 -0
- data/lib/plaid/version.rb +13 -2
- data/pkg/plaid-14.0.0.beta.3.gem +0 -0
- data/plaid.gemspec +44 -49
- data/templates/ruby/api_client.mustache +266 -0
- data/templates/ruby/api_client_faraday_partial.mustache +120 -0
- data/templates/ruby/configuration.mustache +353 -0
- data/templates/ruby/gemspec.mustache +41 -0
- data/test/test_accounts.rb +103 -0
- data/test/test_asset_report.rb +147 -0
- data/test/test_auth.rb +61 -0
- data/test/test_bank_transfers.rb +219 -0
- data/test/test_categories.rb +10 -0
- data/test/test_configuration.rb +26 -0
- data/test/test_deposit_switch.rb +73 -0
- data/test/test_helper.rb +109 -0
- data/test/test_identity.rb +38 -0
- data/test/test_institutions.rb +159 -0
- data/test/test_investments.rb +208 -0
- data/test/test_item.rb +285 -0
- data/test/test_liabilities.rb +45 -0
- data/test/test_link_token.rb +97 -0
- data/test/test_payment_initiation.rb +95 -0
- data/test/test_processor.rb +67 -0
- data/test/test_transactions.rb +168 -0
- data/test/test_webhooks.rb +22 -0
- metadata +677 -101
- data/.circleci/config.yml +0 -21
- data/.env.sample +0 -3
- data/.github/workflows/add_to_project.yml +0 -21
- data/.rubocop.yml +0 -18
- data/bin/console +0 -14
- data/bin/setup +0 -8
- data/lib/plaid/client.rb +0 -190
- data/lib/plaid/errors.rb +0 -89
- data/lib/plaid/middleware.rb +0 -31
- data/lib/plaid/models.rb +0 -2120
- data/lib/plaid/products/accounts.rb +0 -63
- data/lib/plaid/products/asset_report.rb +0 -199
- data/lib/plaid/products/auth.rb +0 -42
- data/lib/plaid/products/base_product.rb +0 -64
- data/lib/plaid/products/categories.rb +0 -21
- data/lib/plaid/products/credit_details.rb +0 -40
- data/lib/plaid/products/deposit_switch.rb +0 -99
- data/lib/plaid/products/identity.rb +0 -31
- data/lib/plaid/products/income.rb +0 -31
- data/lib/plaid/products/institutions.rb +0 -91
- data/lib/plaid/products/investments.rb +0 -127
- data/lib/plaid/products/item.rb +0 -178
- data/lib/plaid/products/liabilities.rb +0 -39
- data/lib/plaid/products/link_token.rb +0 -74
- data/lib/plaid/products/payment_initiation.rb +0 -194
- data/lib/plaid/products/processor.rb +0 -190
- data/lib/plaid/products/sandbox.rb +0 -148
- data/lib/plaid/products/transactions.rb +0 -81
- data/lib/plaid/products/webhooks.rb +0 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ee2d1cba8ea4b9a4e74f6e845826457abfb0db01c73cbd5d81385040ad88bbe8
|
4
|
+
data.tar.gz: c30e67570b80c0eeb2d62fb1fff537747d736a80ce8d6801c5ef7d20f98fd628
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a248f03836383e29d0aea12b05f8aaf7375bc62de99531bd5b83b7c858f40f30a38b20b820b4f9031e9a453f0d43493ecb4b5da52753292233b80de02ac82e63
|
7
|
+
data.tar.gz: b727db3ce0953017a6cbe565fc0690fddb9173d57b67a066ccb75bea778973170de4a0a0cad0c77d7e3be81c50b56e017d354a1563c600a00ddb545e3487bf05
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,88 @@
|
|
1
|
+
# 14.0.0.beta.3
|
2
|
+
Type fixes, see full changelog [here](https://github.com/plaid/plaid-openapi/blob/master/CHANGELOG.md).
|
3
|
+
|
4
|
+
# 14.0.0.beta.1
|
5
|
+
|
6
|
+
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).
|
7
|
+
|
8
|
+
The minimum required ruby version is 2.7.1.
|
9
|
+
|
10
|
+
**Ruby Migration Guide:**
|
11
|
+
|
12
|
+
### Client initialization
|
13
|
+
From:
|
14
|
+
```ruby
|
15
|
+
client = Plaid::Client.new(env: :sandbox,
|
16
|
+
client_id: client_id,
|
17
|
+
secret: secret)
|
18
|
+
```
|
19
|
+
|
20
|
+
To:
|
21
|
+
```ruby
|
22
|
+
configuration = Plaid::Configuration.new
|
23
|
+
configuration.server_index = Plaid::Configuration::Environment["sandbox"]
|
24
|
+
configuration.api_key["PLAID-CLIENT-ID"] = ENV["PLAID_RUBY_CLIENT_ID"]
|
25
|
+
configuration.api_key["PLAID-SECRET"] = ENV["PLAID_RUBY_SECRET"]
|
26
|
+
configuration.api_key["Plaid-Version"] = "2020-09-14"
|
27
|
+
|
28
|
+
api_client = Plaid::ApiClient.new(
|
29
|
+
configuration
|
30
|
+
)
|
31
|
+
|
32
|
+
client = Plaid::PlaidApi.new(api_client)
|
33
|
+
```
|
34
|
+
|
35
|
+
### Endpoints
|
36
|
+
All endpoint requests now take a request model and the functions have been renamed to include `_`.
|
37
|
+
|
38
|
+
From:
|
39
|
+
```ruby
|
40
|
+
response = client.auth.get(access_token)
|
41
|
+
```
|
42
|
+
|
43
|
+
To:
|
44
|
+
```ruby
|
45
|
+
auth_get_request = Plaid::AuthGetRequest.new
|
46
|
+
auth_get_request.access_token = access_token
|
47
|
+
|
48
|
+
or
|
49
|
+
|
50
|
+
auth_get_request = Plaid::AuthGetRequest.new({:access_token => access_token})
|
51
|
+
|
52
|
+
response = client.auth_get(auth_get_request)
|
53
|
+
```
|
54
|
+
|
55
|
+
### Errors
|
56
|
+
|
57
|
+
From:
|
58
|
+
```ruby
|
59
|
+
begin
|
60
|
+
client.auth.get(auth_get_request)
|
61
|
+
rescue Plaid::PlaidAPIError => e
|
62
|
+
raise e if e.error_code != 'PRODUCT_NOT_READY'
|
63
|
+
sleep 1
|
64
|
+
end
|
65
|
+
```
|
66
|
+
|
67
|
+
To:
|
68
|
+
```ruby
|
69
|
+
begin
|
70
|
+
client.auth_get(auth_get_request)
|
71
|
+
rescue Plaid::ApiError => e
|
72
|
+
json_response = JSON.parse(e.response_body)
|
73
|
+
if json_response["error_code"] != "PRODUCT_NOT_READY"
|
74
|
+
end
|
75
|
+
```
|
76
|
+
|
77
|
+
# 13.0.0
|
78
|
+
- Add support for providing a payment initiation schedule
|
79
|
+
- Add back the (now deprecated) `/item/public_token/create` endpoint
|
80
|
+
- Add back the (now deprecated) `/payment_initiation/payment/token/create` endpoint
|
81
|
+
|
82
|
+
BREAKING CHANGES:
|
83
|
+
|
84
|
+
- Update minimum required Ruby version to 2.4
|
85
|
+
|
1
86
|
# 12.0.0
|
2
87
|
|
3
88
|
- 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.
|
@@ -187,4 +272,4 @@ BREAKING CHANGES:
|
|
187
272
|
|
188
273
|
# 2.0.0.alpha. 06-May-2016
|
189
274
|
|
190
|
-
- Rewrite everything.
|
275
|
+
- Rewrite everything.
|
data/CONTRIBUTING.md
CHANGED
@@ -1,67 +1,23 @@
|
|
1
|
-
|
1
|
+
# Contributing
|
2
2
|
|
3
|
-
|
3
|
+
Instructions for contributing to [plaid-ruby][1]. A ruby client library for the [Plaid API][2]. This library is fully generated from the [Plaid OpenAPI spec](3).
|
4
4
|
|
5
|
-
|
5
|
+
## Setup
|
6
6
|
|
7
|
-
|
7
|
+
1. Run `make pull-openapi`.
|
8
|
+
2. Install [Docker](https://docs.docker.com/desktop/) if you do not have it on your machine, this helps to isolate any dependency issues.
|
9
|
+
3. Run `make build-openapi` after you have finished your Docker setup. This generates all the code necessary to run the library.
|
8
10
|
|
9
|
-
|
10
|
-
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` and `secret`
|
12
|
-
from your Plaid dashboard. Create a file named `.env` based on `.env.sample`
|
13
|
-
which is provided:
|
11
|
+
If you find an issue, please investigate whether it is a type problem with [OpenAPI](3) or a problem with the [ruby faraday](https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/ruby.md) generator. Then open an issue and Plaid will investigate further.
|
14
12
|
|
15
|
-
|
16
|
-
PLAID_RUBY_CLIENT_ID=the_real_client_id
|
17
|
-
PLAID_RUBY_SECRET=the_real_secret
|
18
|
-
```
|
19
|
-
This file will be loaded during the tests.
|
13
|
+
## Running Tests
|
20
14
|
|
21
|
-
|
22
|
-
[
|
23
|
-
|
15
|
+
1. To build the docker image for the client tests, run `docker build -t plaid-ruby .`.
|
16
|
+
2. Go to the [Plaid Dashboard](https://dashboard.plaid.com/) and copy and paste your `client_id` and sandbox `secret` into the following command.
|
17
|
+
3. Run `docker run --rm -e PLAID_RUBY_CLIENT_ID=$CLIENT_ID -e PLAID_RUBY_SECRET=$SECRET plaid-ruby`.
|
24
18
|
|
25
|
-
|
19
|
+
If you wish to run a single test, edit the `Rakefile` and rebuild the docker image using the command from step 1.
|
26
20
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
1. Make sure that `STUB_API=1 rake test` fails. It will fail saying something
|
31
|
-
like "... An HTTP request has been made that VCR does not know how to
|
32
|
-
handle".
|
33
|
-
2. Run `RECORD_MODE=all STUB_API=1 rake test`. This will run the whole suite
|
34
|
-
and re-record everything. If you only need to update data for one test class,
|
35
|
-
use this:
|
36
|
-
|
37
|
-
```
|
38
|
-
RECORD_MODE=all STUB_API=1 ruby -w -I"lib:test" -rminitest/pride -rdotenv/load test/test_which_fails.rb
|
39
|
-
```
|
40
|
-
3. Run `rake vcr_hide_credentials`. This step is essential, because
|
41
|
-
newly recorded files will contain your real `client_id` and friends. This
|
42
|
-
Rake task will go over all recorded files and replace real values with
|
43
|
-
stubbed ones used by `STUB_API=1 rake test`.
|
44
|
-
4. Run `STUB_API=1 rake test` and verify that everything works.
|
45
|
-
|
46
|
-
|
47
|
-
## Running lint
|
48
|
-
|
49
|
-
```bash
|
50
|
-
bundle exec rubocop
|
51
|
-
```
|
52
|
-
|
53
|
-
## Contributing
|
54
|
-
|
55
|
-
1. Make one or more atomic commits, and ensure that each commit has a
|
56
|
-
descriptive commit message. Commit messages should be line wrapped
|
57
|
-
at 72 characters.
|
58
|
-
|
59
|
-
2. Make sure that there are tests for the code you wrote.
|
60
|
-
|
61
|
-
3. Make sure that you've documented all public methods using [TomDoc](http://tomdoc.org/).
|
62
|
-
|
63
|
-
4. Run tests (in both modes, see above) and address any errors. Preferably,
|
64
|
-
fix commits in place using `git rebase` or `git commit --amend` to make the
|
65
|
-
changes easier to review.
|
66
|
-
|
67
|
-
5. Open a pull request.
|
21
|
+
[1]: https://github.com/plaid/plaid-ruby
|
22
|
+
[2]: https://plaid.com
|
23
|
+
[3]: https://github.com/plaid/plaid-openapi
|
data/Dockerfile
ADDED
data/Gemfile.lock
CHANGED
@@ -1,58 +1,71 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
plaid (
|
5
|
-
faraday
|
6
|
-
faraday_middleware
|
7
|
-
hashie (>= 3.4.3)
|
4
|
+
plaid (14.0.0.beta.3)
|
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.
|
13
|
-
|
14
|
-
|
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
|
-
|
17
|
-
|
18
|
-
|
19
|
-
minitest (5.
|
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.
|
24
|
-
parser (2.
|
25
|
-
ast (~> 2.4.
|
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 (
|
29
|
-
|
30
|
-
|
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.
|
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 (
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
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 (~>
|
61
|
+
bundler (~> 2.2.9)
|
48
62
|
dotenv
|
49
|
-
minitest (~> 5.
|
50
|
-
minitest-around (~> 0.
|
63
|
+
minitest (~> 5.14)
|
64
|
+
minitest-around (~> 0.5.0)
|
51
65
|
plaid!
|
52
|
-
rake (>=
|
53
|
-
|
54
|
-
|
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
|
-
|
71
|
+
2.2.9
|
data/LICENSE.txt
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright (c)
|
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/Makefile
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
CURRENT_DIR:=$(shell pwd)
|
2
|
+
OPENAPI_FILE:=2020-09-14.yml
|
3
|
+
# Theres a bug in 5.0.1 for ruby generation. https://github.com/OpenAPITools/openapi-generator/issues/8677
|
4
|
+
OPENAPI_GENERATOR_5:=docker run --rm -v $(CURRENT_DIR):/local openapitools/openapi-generator-cli:v5.0.0 generate
|
5
|
+
OPENAPI_VERSION:=1.8.0-beta
|
6
|
+
# Ruby embeds the version in the generator where as others dont os its not possible to cat for it.
|
7
|
+
RUBY_PACKAGE_VERSION=14.0.0.beta.3
|
8
|
+
|
9
|
+
.PHONY: pull-openapi
|
10
|
+
pull-openapi:
|
11
|
+
curl https://raw.githubusercontent.com/plaid/plaid-openapi/$(OPENAPI_VERSION)/$(OPENAPI_FILE) --output $(CURRENT_DIR)/$(OPENAPI_FILE)
|
12
|
+
|
13
|
+
.PHONY: build-openapi
|
14
|
+
build-openapi:
|
15
|
+
$(OPENAPI_GENERATOR_5) -g ruby \
|
16
|
+
-i local/$(OPENAPI_FILE) \
|
17
|
+
-o local/ \
|
18
|
+
--global-property=apiTests=false,modelTests=false \
|
19
|
+
--library=faraday \
|
20
|
+
-p gemName=plaid,gemRequiredRubyVersion=">= 2.4.0",gemVersion=$(RUBY_PACKAGE_VERSION) \
|
21
|
+
-t local/templates/ruby
|
data/PUBLISH.md
CHANGED
@@ -4,17 +4,17 @@ The module is published to [RubyGems][1] under the gem name [plaid][2].
|
|
4
4
|
|
5
5
|
Prepare release:
|
6
6
|
|
7
|
-
1.
|
8
|
-
2.
|
9
|
-
3.
|
10
|
-
4.
|
7
|
+
1. Update `Makefile -> RUBY_PACKAGE_VERSION`, and `CHANGELOG.md` files.
|
8
|
+
2. Run `bundle` to bump the version in `Gemfile.lock`.
|
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`.
|
11
11
|
|
12
12
|
Publish:
|
13
13
|
|
14
14
|
1. `git checkout master` and `git pull` (makes sure your `HEAD` is up-to-date).
|
15
|
-
2.
|
16
|
-
3.
|
17
|
-
4. `bundle exec rake
|
15
|
+
2. Run `make pull-openapi` and `make build-openapi`.
|
16
|
+
3. Check that tests are passing on latest `master` build and (optional) `docker build -t plaid-ruby . && docker run -e PLAID_RUBY_CLIENT_ID=$(CLIENT_ID) -e PLAID_RUBY_SECRET=$(SECRET) plaid-ruby)` run tests locally.
|
17
|
+
4. `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).
|
18
18
|
|
19
19
|
[1]: https://rubygems.org/
|
20
20
|
[2]: https://rubygems.org/gems/plaid
|
data/README.md
CHANGED
@@ -16,9 +16,9 @@ And then execute:
|
|
16
16
|
|
17
17
|
Or install it yourself as:
|
18
18
|
|
19
|
-
$ gem install plaid
|
19
|
+
$ gem install plaid --pre
|
20
20
|
|
21
|
-
The gem supports Ruby 2.
|
21
|
+
The gem supports Ruby 2.4.0+ only.
|
22
22
|
|
23
23
|
### Versioning
|
24
24
|
|
@@ -26,8 +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
|
-
| [`2020-09-14`][api-version-2020-09-14] (**latest**) | `12.x.x` |
|
30
|
-
| [`2019-05-29`][api-version-2019-05-29]
|
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` |
|
31
31
|
| [`2018-05-22`][api-version-2018-05-22] | `6.x.x` |
|
32
32
|
| `2017-03-08` | `5.x.x` |
|
33
33
|
|
@@ -36,9 +36,7 @@ For information about what has changed between versions and how to update your i
|
|
36
36
|
|
37
37
|
## Usage
|
38
38
|
|
39
|
-
This gem wraps the Plaid API, which is fully described in the [documentation](https://plaid.com/docs/api).
|
40
|
-
|
41
|
-
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.
|
42
40
|
|
43
41
|
### Creating a Plaid client
|
44
42
|
|
@@ -47,24 +45,32 @@ Create an instance of the client using the `client_id` and `secret` from your Pl
|
|
47
45
|
```ruby
|
48
46
|
require 'plaid'
|
49
47
|
|
50
|
-
|
51
|
-
|
52
|
-
|
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 `
|
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
|
-
-
|
58
|
-
-
|
59
|
-
-
|
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::
|
67
|
-
Plaid::
|
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
|
@@ -81,12 +87,16 @@ user = User.find_by!(email: '***')
|
|
81
87
|
client_user_id = user.id
|
82
88
|
|
83
89
|
# Create the link_token with all of your configurations
|
84
|
-
|
85
|
-
user
|
86
|
-
client_name
|
87
|
-
products
|
88
|
-
country_codes
|
89
|
-
language
|
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
|
90
100
|
)
|
91
101
|
|
92
102
|
# Pass the result to your client-side app to initialize Link
|
@@ -96,53 +106,62 @@ link_token = link_token_response.link_token
|
|
96
106
|
|
97
107
|
### Exchanging a Link public_token for a Plaid access_token
|
98
108
|
|
99
|
-
If you have a [Link](https://github.com/plaid/link) `public token`, use this function to get an `access_token`: `client.
|
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)`
|
100
110
|
|
101
111
|
An example of the function's usage if you have a `public_token` in hand:
|
102
112
|
|
103
113
|
```ruby
|
104
|
-
|
114
|
+
request = Plaid::ItemPublicTokenExchangeRequest.new
|
115
|
+
request.public_token = public_token
|
116
|
+
|
117
|
+
response = client.item.public_token_exchange(request)
|
105
118
|
access_token = response.access_token
|
106
119
|
```
|
107
120
|
|
108
|
-
|
109
121
|
### Deleting an item
|
110
122
|
|
111
123
|
```ruby
|
112
|
-
|
124
|
+
request = Plaid::ItemPublicTokenExchangeRequest.new
|
125
|
+
request.public_token = public_token
|
113
126
|
|
114
|
-
|
115
|
-
|
116
|
-
secret: '***')
|
117
|
-
|
118
|
-
exchange_token_response = client.item.public_token.exchange('[Plaid Link public_token]')
|
119
|
-
access_token = exchange_token_response.access_token
|
127
|
+
response = client.item.public_token_exchange(request)
|
128
|
+
access_token = response.access_token
|
120
129
|
|
121
130
|
# Provide the access_token for the Item you want to remove
|
122
|
-
|
131
|
+
item_remove_request = Plaid::ItemRemoveRequest.new
|
132
|
+
item_remove_request.access_token = access_token
|
133
|
+
|
134
|
+
client.item_remove(item_remove_request)
|
123
135
|
```
|
124
136
|
|
125
137
|
### Get paginated transactions
|
126
138
|
```ruby
|
127
|
-
|
139
|
+
request = Plaid::ItemPublicTokenExchangeRequest.new
|
140
|
+
request.public_token = public_token
|
128
141
|
|
129
|
-
|
130
|
-
|
131
|
-
secret: '***')
|
142
|
+
response = client.item.public_token_exchange(request)
|
143
|
+
access_token = response.access_token
|
132
144
|
|
133
|
-
|
134
|
-
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"
|
135
149
|
|
136
|
-
transaction_response = client.
|
150
|
+
transaction_response = client.transactions_get(transactions_get_request)
|
137
151
|
transactions = transaction_response.transactions
|
138
152
|
|
139
153
|
# the transactions in the response are paginated, so make multiple calls while
|
140
154
|
# increasing the offset to retrieve all transactions
|
141
155
|
while transactions.length < transaction_response['total_transactions']
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
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)
|
146
165
|
transactions += transaction_response.transactions
|
147
166
|
end
|
148
167
|
|
@@ -152,55 +171,55 @@ end
|
|
152
171
|
|
153
172
|
If you have an `access_token`, you can use following code to retreive data:
|
154
173
|
```ruby
|
155
|
-
|
174
|
+
request = Plaid::ItemPublicTokenExchangeRequest.new
|
175
|
+
request.public_token = public_token
|
156
176
|
|
157
|
-
|
158
|
-
|
159
|
-
secret: '***')
|
177
|
+
response = client.item.public_token_exchange(request)
|
178
|
+
access_token = response.access_token
|
160
179
|
|
161
|
-
|
162
|
-
access_token =
|
180
|
+
auth_get_request = Plaid::AuthGetRequest.new
|
181
|
+
auth_get_request.access_token = access_token
|
163
182
|
|
164
|
-
auth_response = client.
|
183
|
+
auth_response = client.auth_get(access_token)
|
165
184
|
auth = auth_response.auth
|
166
185
|
```
|
167
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
|
+
|
168
199
|
### Create a Stripe bank_account_token
|
169
200
|
|
170
201
|
Exchange a Plaid Link `public_token` for an API `access_token` and a Stripe `bank_account_token`:
|
171
202
|
```ruby
|
172
|
-
|
203
|
+
request = Plaid::ItemPublicTokenExchangeRequest.new
|
204
|
+
request.public_token = public_token
|
173
205
|
|
174
|
-
|
175
|
-
|
176
|
-
secret: '***')
|
206
|
+
response = client.item.public_token.exchange(request)
|
207
|
+
access_token = response.access_token
|
177
208
|
|
178
|
-
|
179
|
-
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]'
|
180
212
|
|
181
|
-
stripe_response = client.
|
213
|
+
stripe_response = client.processor_stripe_bank_account_token_create(processor_token_create_request)
|
182
214
|
bank_account_token = stripe_response.stripe_bank_account_token
|
183
215
|
```
|
184
216
|
|
185
|
-
There are also a number of other methods you can use to retrieve data:
|
186
|
-
|
187
|
-
* `client.accounts.get(access_token, ...)`: accounts
|
188
|
-
* `client.accounts.balance.get(access_token, ...)`: real-time balances
|
189
|
-
* `client.auth.get(access_token, ...)`: auth
|
190
|
-
* `client.identity.get(access_token, ...)`: identity
|
191
|
-
* `client.transactions.get(access_token, ...)`: transactions
|
192
|
-
* `client.credit_details.get(access_token, ...)`: credit details
|
193
|
-
* `client.investments.transactions.get(access_token, ...)`: investment-account transactions
|
194
|
-
* `client.investments.holdings.get(access_token, ...)`: investment-account holdings
|
195
|
-
|
196
|
-
All of these methods return appropriate data. More information can be found on the [API documentation](https://plaid.com/docs/api).
|
197
|
-
|
198
217
|
### Categories
|
199
218
|
|
200
219
|
You can request category information:
|
201
220
|
|
202
221
|
```ruby
|
203
|
-
categories = client.
|
222
|
+
categories = client.categories_get # Array of all known categories
|
204
223
|
```
|
205
224
|
|
206
225
|
### Institutions
|
@@ -208,7 +227,13 @@ categories = client.categories.get # Array of all known categories
|
|
208
227
|
Financial institution information is available as shown below where the function arguments represent count and offset:
|
209
228
|
|
210
229
|
```ruby
|
211
|
-
|
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)
|
212
237
|
```
|
213
238
|
|
214
239
|
## Errors
|
@@ -216,17 +241,7 @@ institutions = client.institutions.get(count: 3, offset: 1)
|
|
216
241
|
Any methods making API calls will result in an exception raised unless the response code is "200: Success" or
|
217
242
|
"210: MFA Required".
|
218
243
|
|
219
|
-
`Plaid::
|
220
|
-
|
221
|
-
`Plaid::InvalidInputError` is returned when all fields are provided and are in the correct format, but the values provided are incorrect in some way.
|
222
|
-
|
223
|
-
`Plaid::RateLimitExceededError` returned when the request is valid but has exceeded established rate limits.
|
224
|
-
|
225
|
-
`Plaid::APIError` is returned during planned maintenance windows and in response to API internal server errors.
|
226
|
-
|
227
|
-
`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.
|
228
|
-
|
229
|
-
`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.
|
230
245
|
|
231
246
|
Read more about response codes and their meaning in the
|
232
247
|
[Plaid documentation](https://plaid.com/docs/api).
|
@@ -238,13 +253,6 @@ Any API call returns a response object which is accessible by dot notation
|
|
238
253
|
and `response['foo']['bar']`. Expected keys for all types of responses are defined,
|
239
254
|
and any attempt to access an unknown key will cause `NoMethodError` exception.
|
240
255
|
|
241
|
-
## Network Timeout
|
242
|
-
|
243
|
-
A network timeout value is currently defaulted at 600 seconds = 10 minutes.
|
244
|
-
Some requests from the Plaid API may take longer than others and we want to
|
245
|
-
make sure that all valid requests have a chance to complete. Adjust this value
|
246
|
-
if necessary (see "Tuning Faraday").
|
247
|
-
|
248
256
|
## Contributing
|
249
257
|
|
250
258
|
Bug reports and pull requests are welcome on GitHub at https://github.com/plaid/plaid-ruby. See also [contributing guidelines](CONTRIBUTING.md).
|
@@ -258,7 +266,7 @@ The gem is available as open source under the terms of the [MIT License](http://
|
|
258
266
|
If you're looking for a Ruby client that works with the legacy Plaid API, use the [`plaid-legacy` gem][2].
|
259
267
|
|
260
268
|
[2]: https://github.com/plaid/plaid-ruby-legacy
|
261
|
-
[version-changelog]: https://plaid.com/docs/api
|
262
|
-
[api-version-2018-05-22]: https://plaid.com/docs/api
|
263
|
-
[api-version-2019-05-29]: https://plaid.com/docs/api
|
264
|
-
[api-version-2020-09-14]: https://plaid.com/docs/api
|
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
|