Skip to content

Commit

Permalink
Update to Plaid v1.470.1
Browse files Browse the repository at this point in the history
  • Loading branch information
viceroypenguin committed Nov 21, 2023
1 parent 4f4dd12 commit ac52f7e
Show file tree
Hide file tree
Showing 98 changed files with 798 additions and 125 deletions.
2 changes: 1 addition & 1 deletion plaid-openapi
Submodule plaid-openapi updated 3 files
+1,183 −112 2020-09-14.yml
+100 −0 CHANGELOG.md
+1 −1 README.md
5 changes: 3 additions & 2 deletions src/Plaid/Accounts/PlaidClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,16 @@ public sealed partial class PlaidClient
/// <summary>
/// <para>The <c>/accounts/get</c> endpoint can be used to retrieve a list of accounts associated with any linked Item. Plaid will only return active bank accounts — that is, accounts that are not closed and are capable of carrying a balance.</para>
/// <para>For items that went through the updated account selection pane, this endpoint only returns accounts that were permissioned by the user when they initially created the Item. If a user creates a new account after the initial link, you can capture this event through the <a href="https://plaid.com/docs/api/items/#new_accounts_available"><c>NEW_ACCOUNTS_AVAILABLE</c></a> webhook and then use Link's <a href="https://plaid.com/docs/link/update-mode/">update mode</a> to request that the user share this new account with you.</para>
/// <para>This endpoint retrieves cached information, rather than extracting fresh information from the institution. As a result, balances returned may not be up-to-date; for realtime balance information, use <c>/accounts/balance/get</c> instead. Note that some information is nullable.</para>
/// <para><c>/accounts/get</c> is free to use and retrieves cached information, rather than extracting fresh information from the institution. The balance returned will reflect the balance at the time of the last successful Item update. If the Item is enabled for a regularly updating product, such as Transactions, Investments, or Liabilities, the balance will typically update about once a day, as long as the Item is healthy. If the Item is enabled only for products that do not frequently update, such as Auth or Identity, balance data may be much older.</para>
/// <para>For realtime balance information, use the paid endpoint <c>/accounts/balance/get</c> instead.</para>
/// </summary>
/// <remarks><see href="https://plaid.com/docs/api/accounts/#accountsget" /></remarks>
public Task<Accounts.AccountsGetResponse> AccountsGetAsync(Accounts.AccountsGetRequest request) =>
PostAsync("/accounts/get", request)
.ParseResponseAsync<Accounts.AccountsGetResponse>();

/// <summary>
/// <para>The <c>/accounts/balance/get</c> endpoint returns the real-time balance for each of an Item's accounts. While other endpoints may return a balance object, only <c>/accounts/balance/get</c> forces the available and current balance fields to be refreshed rather than cached. This endpoint can be used for existing Items that were added via any of Plaid’s other products. This endpoint can be used as long as Link has been initialized with any other product, <c>balance</c> itself is not a product that can be used to initialize Link. As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints; if you encounter errors, you may find it necessary to adjust your timeout period when making requests.</para>
/// <para>The <c>/accounts/balance/get</c> endpoint returns the real-time balance for each of an Item's accounts. While other endpoints, such as <c>/accounts/get</c>, return a balance object, only <c>/accounts/balance/get</c> forces the available and current balance fields to be refreshed rather than cached. This endpoint can be used for existing Items that were added via any of Plaid’s other products. This endpoint can be used as long as Link has been initialized with any other product, <c>balance</c> itself is not a product that can be used to initialize Link. As this endpoint triggers a synchronous request for fresh data, latency may be higher than for other Plaid endpoints (typically less than 10 seconds, but occasionally up to 30 seconds or more); if you encounter errors, you may find it necessary to adjust your timeout period when making requests.</para>
/// </summary>
/// <remarks><see href="https://plaid.com/docs/api/products/balance/#accountsbalanceget" /></remarks>
public Task<Accounts.AccountsGetResponse> AccountsBalanceGetAsync(Accounts.AccountsBalanceGetRequest request) =>
Expand Down
2 changes: 1 addition & 1 deletion src/Plaid/Application/ApplicationGetRequest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ namespace Going.Plaid.Application;
public partial class ApplicationGetRequest : RequestBase
{
/// <summary>
/// <para>This field will map to the application ID that is returned from /item/applications/list, or provided to the institution in an oauth redirect.</para>
/// <para>This field will map to the application ID that is returned from /item/application/list, or provided to the institution in an oauth redirect.</para>
/// </summary>
[JsonPropertyName("application_id")]
public string ApplicationId { get; set; } = default!;
Expand Down
6 changes: 0 additions & 6 deletions src/Plaid/Beacon/BeaconUserCreateRequest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,4 @@ public partial class BeaconUserCreateRequest : RequestBase
/// </summary>
[JsonPropertyName("user")]
public Entity.BeaconUserRequestData User { get; set; } = default!;

/// <summary>
/// <para>Data for creating a Beacon Report as part of an initial Beacon User creation. Providing a fraud report as part of an initial Beacon User creation will omit the Beacon User from any billing charges.</para>
/// </summary>
[JsonPropertyName("report")]
public Entity.BeaconUserCreateEmbeddedReport? Report { get; set; } = default!;
}
19 changes: 19 additions & 0 deletions src/Plaid/Beacon/BeaconUserReviewRequest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
namespace Going.Plaid.Beacon;

/// <summary>
/// <para>Request input for updating the status of a Beacon User</para>
/// </summary>
public partial class BeaconUserReviewRequest : RequestBase
{
/// <summary>
/// <para>ID of the associated Beacon User.</para>
/// </summary>
[JsonPropertyName("beacon_user_id")]
public string BeaconUserId { get; set; } = default!;

/// <summary>
/// <para>A status of a Beacon User.</para>
/// </summary>
[JsonPropertyName("status")]
public Entity.BeaconUserStatus Status { get; set; } = default!;
}
15 changes: 15 additions & 0 deletions src/Plaid/Beacon/PlaidClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,21 @@ public sealed partial class PlaidClient
PostAsync("/beacon/user/get", request)
.ParseResponseAsync<Beacon.BeaconUserGetResponse>();

/// <summary>
/// <para>Update the status of a Beacon User.</para>
/// <para>When updating a Beacon User's status via this endpoint, Plaid validates that the status change is consistent with the related state for this Beacon User. Specifically, we will check:</para>
/// <para>1. Whether there are any associated Beacon Reports connected to the Beacon User, and</para>
/// <para>2. Whether there are any confirmed Beacon Report Syndications connected to the Beacon User.</para>
/// <para>When updating a Beacon User's status to "rejected", we enforce that either a Beacon Report has been created for the Beacon User or a Beacon Report Syndication has been confirmed.</para>
/// <para>When updating a Beacon User's status to "cleared", we enforce that there are no active Beacon Reports or confirmed Beacon Report Syndications associated with the user. If you previously created a Beacon Report for this user, you must delete it before updating the Beacon User's status to "cleared".</para>
/// <para>There are no restrictions on updating a Beacon User's status to "pending_review".</para>
/// <para>If these conditions are not met, the request will be rejected with an error explaining the issue.</para>
/// </summary>
/// <remarks><see href="https://plaid.com/docs/api/products/beacon/#beaconuserreview" /></remarks>
public Task<Beacon.BeaconUserGetResponse> BeaconUserReviewAsync(Beacon.BeaconUserReviewRequest request) =>
PostAsync("/beacon/user/review", request)
.ParseResponseAsync<Beacon.BeaconUserGetResponse>();

/// <summary>
/// <para>Create a fraud report for a given Beacon User.</para>
/// <para>Note: If you are creating users with the express purpose of providing historical fraud data, you should use the <c>/beacon/user/create</c> endpoint instead and embed the fraud report in the request. This will ensure that the Beacon User you create will not be subject to any billing costs.</para>
Expand Down
6 changes: 6 additions & 0 deletions src/Plaid/Beta/TransactionsUserInsightsGetResponse.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,10 @@ public record TransactionsUserInsightsGetResponse : ResponseBase
/// </summary>
[JsonPropertyName("category_insights")]
public Entity.CategoryInsights? CategoryInsights { get; init; } = default!;

/// <summary>
/// <para>Insights object for recurring transactions for <c>/beta/transactions/user_insights/v1/get</c> endpoint</para>
/// </summary>
[JsonPropertyName("recurring_transactions")]
public Entity.RecurringTransactions? RecurringTransactions { get; init; } = default!;
}
2 changes: 2 additions & 0 deletions src/Plaid/Converters/WebhookBaseConverter.Map.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ public partial class WebhookBaseConverter : JsonConverter<WebhookBase>
{
[(WebhookType.Screening, WebhookCode.StatusUpdated)] = typeof(ScreeningStatusUpdatedWebhook),
[(WebhookType.EntityScreening, WebhookCode.StatusUpdated)] = typeof(EntityScreeningStatusUpdatedWebhook),
[(WebhookType.Beacon, WebhookCode.UserStatusUpdated)] = typeof(BeaconUserStatusUpdatedWebhook),
[(WebhookType.IdentityVerification, WebhookCode.StepUpdated)] = typeof(IdentityVerificationStepUpdatedWebhook),
[(WebhookType.IdentityVerification, WebhookCode.Retried)] = typeof(IdentityVerificationRetriedWebhook),
[(WebhookType.IdentityVerification, WebhookCode.StatusUpdated)] = typeof(IdentityVerificationStatusUpdatedWebhook),
Expand Down Expand Up @@ -52,6 +53,7 @@ public partial class WebhookBaseConverter : JsonConverter<WebhookBase>
[(WebhookType.BaseReport, WebhookCode.Error)] = typeof(BaseReportsErrorWebhook),
[(WebhookType.CraIncome, WebhookCode.BankIncomeComplete)] = typeof(CraBankIncomeCompleteWebhook),
[(WebhookType.Income, WebhookCode.BankIncomeComplete)] = typeof(BankIncomeCompleteWebhook),
[(WebhookType.Income, WebhookCode.IncomeVerificationRefreshReconnectNeeded)] = typeof(IncomeVerificationRefreshReconnectNeededWebhook),
[(WebhookType.Income, WebhookCode.BankIncomeRefreshUpdate)] = typeof(BankIncomeRefreshUpdateWebhook),
[(WebhookType.Income, WebhookCode.BankIncomeRefreshComplete)] = typeof(BankIncomeRefreshCompleteWebhook),
[(WebhookType.Link, WebhookCode.Events)] = typeof(LinkEventsWebhook),
Expand Down
7 changes: 4 additions & 3 deletions src/Plaid/Credit/PlaidClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public sealed partial class PlaidClient
.ParseResponseAsync<Credit.CreditBankIncomeRefreshResponse>();

/// <summary>
/// <para><c>/credit/bank_income/webhook/update</c> allows you to subscribe or unsubscribe a user for income webhook notifications.</para>
/// <para><c>/credit/bank_income/webhook/update</c> allows you to subscribe or unsubscribe a user for income webhook notifications. By default, all users start out unsubscribed.</para>
/// <para>If a user is subscribed, on significant changes to the user's income profile, you will receive a <c>BANK_INCOME_REFRESH_UPDATE</c> webhook, prompting you to refresh bank income data for the user.</para>
/// </summary>
/// <remarks><see href="https://plaid.com/docs/api/products/income/#creditbank_incomewebhookupdate" /></remarks>
Expand All @@ -78,7 +78,7 @@ public sealed partial class PlaidClient
.ParseResponseAsync<Credit.CreditPayrollIncomeParsingConfigUpdateResponse>();

/// <summary>
/// <para><c>/credit/bank_statements/uploads/get</c> returns data from user-uploaded bank statements.</para>
/// <para><c>/credit/bank_statements/uploads/get</c> returns parsed data from bank statements uploaded by users as part of the Document Income flow. If your account is not enabled for Document Parsing, contact your account manager to request access.</para>
/// </summary>
/// <remarks><see href="https://plaid.com/docs/api/products/income/#creditbank_statementsuploadsget" /></remarks>
public Task<Credit.CreditBankStatementsUploadsGetResponse> CreditBankStatementsUploadsGetAsync(Credit.CreditBankStatementsUploadsGetRequest request) =>
Expand All @@ -94,7 +94,8 @@ public sealed partial class PlaidClient
.ParseResponseAsync<Credit.CreditPayrollIncomeGetResponse>();

/// <summary>
/// <para><c>/credit/payroll_income/risk_signals/get</c> can be used as part of the Document Income flow to assess a user-uploaded document for signs of potential fraud or tampering. It returns a risk score for each uploaded document that indicates the likelihood of the document being fraudulent, in addition to details on the individual risk signals contributing to the score. <c>/credit/payroll_income/risk_signals/get</c> can be called at any time after the <c>INCOME_VERIFICATION_RISK_SIGNALS</c> webhook has been fired.</para>
/// <para><c>/credit/payroll_income/risk_signals/get</c> can be used as part of the Document Income flow to assess a user-uploaded document for signs of potential fraud or tampering. It returns a risk score for each uploaded document that indicates the likelihood of the document being fraudulent, in addition to details on the individual risk signals contributing to the score.</para>
/// <para>To trigger risk signal generation for an Item, call <c>/link/token/create</c> with <c>parsing_config</c> set to include <c>fraud_risk</c>, or call <c>/credit/payroll_income/parsing_config/update</c>. Once risk signal generation has been triggered, <c>/credit/payroll_income/risk_signals/get</c> can be called at any time after the <c>INCOME_VERIFICATION_RISK_SIGNALS</c> webhook has been fired.</para>
/// <para><c>/credit/payroll_income/risk_signals/get</c> is offered as an add-on to Document Income and is billed separately. To request access to this endpoint, submit a product access request or contact your Plaid account manager.</para>
/// </summary>
/// <remarks><see href="https://plaid.com/docs/api/products/income/#creditpayroll_incomerisk_signalsget" /></remarks>
Expand Down
6 changes: 6 additions & 0 deletions src/Plaid/Entity/AccountAssetsVerificationStatusEnum.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,12 @@ public enum AccountAssetsVerificationStatusEnum
[EnumMember(Value = "verification_failed")]
VerificationFailed,

/// <summary>
/// <para>The Item has successfully been verified using Plaid's data sources. Note: Database Match is currently a beta feature, please contact your account manager for more information.</para>
/// </summary>
[EnumMember(Value = "database_matched")]
DatabaseMatched,

/// <summary>
/// <para>Catch-all for unknown values returned by Plaid. If you encounter this, please check if there is a later version of the Going.Plaid library.</para>
/// </summary>
Expand Down
2 changes: 1 addition & 1 deletion src/Plaid/Entity/AccountIdentity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public record AccountIdentity
public string? PersistentAccountId { get; init; } = default!;

/// <summary>
/// <para>Data returned by the financial institution about the account owner or owners. Only returned by Identity or Assets endpoints. For business accounts, the name reported may be either the name of the individual or the name of the business, depending on the institution. Multiple owners on a single account will be represented in the same <c>owner</c> object, not in multiple owner objects within the array. In API versions 2018-05-22 and earlier, the <c>owners</c> object is not returned, and instead identity information is returned in the top level <c>identity</c> object. For more details, see <a href="https://plaid.com/docs/api/versioning/#version-2019-05-29">Plaid API versioning</a></para>
/// <para>Data returned by the financial institution about the account owner or owners. Only returned by Identity or Assets endpoints. For business accounts, the name reported may be either the name of the individual or the name of the business, depending on the institution; detecting whether the linked account is a business account is not currently supported. Multiple owners on a single account will be represented in the same <c>owner</c> object, not in multiple owner objects within the array. In API versions 2018-05-22 and earlier, the <c>owners</c> object is not returned, and instead identity information is returned in the top level <c>identity</c> object. For more details, see <a href="https://plaid.com/docs/api/versioning/#version-2019-05-29">Plaid API versioning</a></para>
/// </summary>
[JsonPropertyName("owners")]
public IReadOnlyList<Entity.Owner>? Owners { get; init; } = default!;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,12 @@ public enum AccountIdentityMatchScoreVerificationStatusEnum
[EnumMember(Value = "verification_failed")]
VerificationFailed,

/// <summary>
/// <para>The Item has successfully been verified using Plaid's data sources. Note: Database Match is currently a beta feature, please contact your account manager for more information.</para>
/// </summary>
[EnumMember(Value = "database_matched")]
DatabaseMatched,

/// <summary>
/// <para>Catch-all for unknown values returned by Plaid. If you encounter this, please check if there is a later version of the Going.Plaid library.</para>
/// </summary>
Expand Down
6 changes: 6 additions & 0 deletions src/Plaid/Entity/AccountIdentityVerificationStatusEnum.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,12 @@ public enum AccountIdentityVerificationStatusEnum
[EnumMember(Value = "verification_failed")]
VerificationFailed,

/// <summary>
/// <para>The Item has successfully been verified using Plaid's data sources. Note: Database Match is currently a beta feature, please contact your account manager for more information.</para>
/// </summary>
[EnumMember(Value = "database_matched")]
DatabaseMatched,

/// <summary>
/// <para>Catch-all for unknown values returned by Plaid. If you encounter this, please check if there is a later version of the Going.Plaid library.</para>
/// </summary>
Expand Down
6 changes: 6 additions & 0 deletions src/Plaid/Entity/AccountVerificationStatusEnum.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,12 @@ public enum AccountVerificationStatusEnum
[EnumMember(Value = "verification_failed")]
VerificationFailed,

/// <summary>
/// <para>The Item has successfully been verified using Plaid's data sources. Note: Database Match is currently a beta feature, please contact your account manager for more information.</para>
/// </summary>
[EnumMember(Value = "database_matched")]
DatabaseMatched,

/// <summary>
/// <para>Catch-all for unknown values returned by Plaid. If you encounter this, please check if there is a later version of the Going.Plaid library.</para>
/// </summary>
Expand Down
2 changes: 1 addition & 1 deletion src/Plaid/Entity/AchClass.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public enum AchClass
Ccd,

/// <summary>
/// <para>Prearranged Payment or Deposit - the transfer is part of a pre-existing relationship with a consumer, eg. bill payment</para>
/// <para>Prearranged Payment or Deposit - the transfer is part of a pre-existing relationship with a consumer, e.g. bill payment</para>
/// </summary>
[EnumMember(Value = "ppd")]
Ppd,
Expand Down
2 changes: 1 addition & 1 deletion src/Plaid/Entity/Activity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public record Activity
public Entity.ActionState State { get; init; } = default!;

/// <summary>
/// <para>This field will map to the application ID that is returned from /item/applications/list, or provided to the institution in an oauth redirect.</para>
/// <para>This field will map to the application ID that is returned from /item/application/list, or provided to the institution in an oauth redirect.</para>
/// </summary>
[JsonPropertyName("target_application_id")]
public string? TargetApplicationId { get; init; } = default!;
Expand Down
2 changes: 1 addition & 1 deletion src/Plaid/Entity/Application.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ namespace Going.Plaid.Entity;
public record Application
{
/// <summary>
/// <para>This field will map to the application ID that is returned from /item/applications/list, or provided to the institution in an oauth redirect.</para>
/// <para>This field will map to the application ID that is returned from /item/application/list, or provided to the institution in an oauth redirect.</para>
/// </summary>
[JsonPropertyName("application_id")]
public string ApplicationId { get; init; } = default!;
Expand Down
6 changes: 6 additions & 0 deletions src/Plaid/Entity/AuthSupportedMethods.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,10 @@ public record AuthSupportedMethods
/// </summary>
[JsonPropertyName("automated_micro_deposits")]
public bool AutomatedMicroDeposits { get; init; } = default!;

/// <summary>
/// <para>Indicates if instant microdeposits are supported.</para>
/// </summary>
[JsonPropertyName("instant_micro_deposits")]
public bool InstantMicroDeposits { get; init; } = default!;
}
Loading

0 comments on commit ac52f7e

Please sign in to comment.