Skip to content

Commit

Permalink
Update to Plaid v1.502.4
Browse files Browse the repository at this point in the history
  • Loading branch information
viceroypenguin committed Mar 21, 2024
1 parent ad7f3f5 commit 7d7cb7f
Show file tree
Hide file tree
Showing 35 changed files with 236 additions and 85 deletions.
2 changes: 1 addition & 1 deletion plaid-openapi
Submodule plaid-openapi updated 2 files
+217 −90 2020-09-14.yml
+38 −2 CHANGELOG.md
2 changes: 1 addition & 1 deletion src/Plaid/AssetReport/PlaidClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public sealed partial class PlaidClient

/// <summary>
/// <para>The <c>/item/remove</c> endpoint allows you to invalidate an <c>access_token</c>, meaning you will not be able to create new Asset Reports with it. Removing an Item does not affect any Asset Reports or Audit Copies you have already created, which will remain accessible until you remove them specifically.</para>
/// <para>The <c>/asset_report/remove</c> endpoint allows you to remove an Asset Report. Removing an Asset Report invalidates its <c>asset_report_token</c>, meaning you will no longer be able to use it to access Report data or create new Audit Copies. Removing an Asset Report does not affect the underlying Items, but does invalidate any <c>audit_copy_tokens</c> associated with the Asset Report.</para>
/// <para>The <c>/asset_report/remove</c> endpoint allows you to remove access to an Asset Report. Removing an Asset Report invalidates its <c>asset_report_token</c>, meaning you will no longer be able to use it to access Report data or create new Audit Copies. Removing an Asset Report does not affect the underlying Items, but does invalidate any <c>audit_copy_tokens</c> associated with the Asset Report.</para>
/// </summary>
/// <remarks><see href="https://plaid.com/docs/api/products/assets/#asset_reportremove" /></remarks>
public Task<AssetReport.AssetReportRemoveResponse> AssetReportRemoveAsync(AssetReport.AssetReportRemoveRequest request) =>
Expand Down
5 changes: 2 additions & 3 deletions src/Plaid/Beacon/BeaconUserCreateRequest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@ namespace Going.Plaid.Beacon;
/// <summary>
/// <para>Request input for creating a Beacon User.</para>
/// <para>The primary use for this endpoint is to add a new end user to Beacon for fraud and duplicate scanning.</para>
/// <para>This endpoint can also be used to import historical fraud cases into the Beacon Network without being charged</para>
/// <para>for creating a Beacon User. To import historical fraud cases, embed the fraud report in the optional <c>report</c></para>
/// <para>section of the request payload.</para>
/// <para>Some fields are optional, but it is recommended to provide as much information as possible to improve</para>
/// <para>the accuracy of the fraud and duplicate scanning.</para>
/// </summary>
public partial class BeaconUserCreateRequest : RequestBase
{
Expand Down
1 change: 1 addition & 0 deletions src/Plaid/Converters/WebhookBaseConverter.Map.cs
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ public partial class WebhookBaseConverter : JsonConverter<WebhookBase>
[(WebhookType.BaseReport, WebhookCode.ProductReady)] = typeof(BaseReportsProductReadyWebhook),
[(WebhookType.BaseReport, WebhookCode.Error)] = typeof(BaseReportsErrorWebhook),
[(WebhookType.CraIncome, WebhookCode.BankIncomeComplete)] = typeof(CraBankIncomeCompleteWebhook),
[(WebhookType.CraIncome, WebhookCode.Error)] = typeof(CraBankIncomeErrorWebhook),
[(WebhookType.Income, WebhookCode.BankIncomeComplete)] = typeof(BankIncomeCompleteWebhook),
[(WebhookType.CraInsights, WebhookCode.PartnerInsightsComplete)] = typeof(CraPartnerInsightsCompleteWebhook),
[(WebhookType.Income, WebhookCode.IncomeVerificationRefreshReconnectNeeded)] = typeof(IncomeVerificationRefreshReconnectNeededWebhook),
Expand Down
32 changes: 32 additions & 0 deletions src/Plaid/Cra/CraBankIncomeCreateRequest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
namespace Going.Plaid.Cra;

/// <summary>
/// <para>CraBankIncomeCreateRequest defines the request schema for <c>/cra/bank_income/create</c>.</para>
/// </summary>
public partial class CraBankIncomeCreateRequest : RequestBase
{
/// <summary>
/// <para>The user token associated with the User data is being requested for.</para>
/// </summary>
[JsonPropertyName("user_token")]
public string? UserToken { get; set; } = default!;

/// <summary>
/// <para>The destination URL to which webhooks will be sent</para>
/// </summary>
[JsonPropertyName("webhook")]
public string? Webhook { get; set; } = default!;

/// <summary>
/// <para>The number of days of data to request for the Bank Income product</para>
/// </summary>
[JsonPropertyName("days_requested")]
public int? DaysRequested { get; set; } = default!;

/// <summary>
/// <para>This enum describes the reason a consumer report is created for</para>
/// </summary>
[JsonPropertyName("consumer_report_permissible_purpose")]
public Entity.ConsumerReportPermissiblePurpose? ConsumerReportPermissiblePurpose { get; set; } = default!;

}
8 changes: 8 additions & 0 deletions src/Plaid/Cra/CraBankIncomeCreateResponse.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace Going.Plaid.Cra;

/// <summary>
/// <para>CraBankIncomeCreateRequest defines the response schema for <c>/cra/bank_income/create</c>.</para>
/// </summary>
public record CraBankIncomeCreateResponse : ResponseBase
{
}
8 changes: 8 additions & 0 deletions src/Plaid/Cra/PlaidClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,14 @@ public sealed partial class PlaidClient
PostAsync("/cra/bank_income/get", request)
.ParseResponseAsync<Cra.CraBankIncomeGetResponse>();

/// <summary>
/// <para><c>/cra/bank_income/create</c> creates a CRA report for income verification</para>
/// </summary>
/// <remarks><see href="https://plaid.com/docs/api/products/income/#crabank_incomecreate" /></remarks>
public Task<Cra.CraBankIncomeCreateResponse> CraBankIncomeCreateAsync(Cra.CraBankIncomeCreateRequest request) =>
PostAsync("/cra/bank_income/create", request)
.ParseResponseAsync<Cra.CraBankIncomeCreateResponse>();

/// <summary>
/// <para><c>/cra/partner_insights/get</c> returns cash flow insights for a specified user.</para>
/// </summary>
Expand Down
2 changes: 1 addition & 1 deletion src/Plaid/Entity/Account.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public record Account
public Entity.VerificationInsights? VerificationInsights { get; init; } = default!;

/// <summary>
/// <para>A unique and persistent identifier for accounts that can be used to trace multiple instances of the same account across different Items for depository accounts. This is currently only supported for Chase Items. Because Chase accounts have a different account number each time they are linked, this field may be instead of the account number to uniquely identify a Chase account across multiple Items for payments use cases, helping to reduce duplicate Items or attempted fraud.</para>
/// <para>A unique and persistent identifier for accounts that can be used to trace multiple instances of the same account across different Items for depository accounts. This is currently only supported for Chase Items. Because Chase accounts have a different account number each time they are linked, this field may be used instead of the account number to uniquely identify a Chase account across multiple Items for payments use cases, helping to reduce duplicate Items or attempted fraud. In Sandbox, this field may be populated for any account; in Production and Development, it will only be populated for Chase accounts.</para>
/// </summary>
[JsonPropertyName("persistent_account_id")]
public string? PersistentAccountId { get; init; } = default!;
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 Entity.VerificationInsights? VerificationInsights { get; init; } = default!;

/// <summary>
/// <para>A unique and persistent identifier for accounts that can be used to trace multiple instances of the same account across different Items for depository accounts. This is currently only supported for Chase Items. Because Chase accounts have a different account number each time they are linked, this field may be instead of the account number to uniquely identify a Chase account across multiple Items for payments use cases, helping to reduce duplicate Items or attempted fraud.</para>
/// <para>A unique and persistent identifier for accounts that can be used to trace multiple instances of the same account across different Items for depository accounts. This is currently only supported for Chase Items. Because Chase accounts have a different account number each time they are linked, this field may be used instead of the account number to uniquely identify a Chase account across multiple Items for payments use cases, helping to reduce duplicate Items or attempted fraud. In Sandbox, this field may be populated for any account; in Production and Development, it will only be populated for Chase accounts.</para>
/// </summary>
[JsonPropertyName("persistent_account_id")]
public string? PersistentAccountId { get; init; } = default!;
Expand Down
2 changes: 1 addition & 1 deletion src/Plaid/Entity/AccountIdentityMatchScore.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public record AccountIdentityMatchScore
public Entity.VerificationInsights? VerificationInsights { get; init; } = default!;

/// <summary>
/// <para>A unique and persistent identifier for accounts that can be used to trace multiple instances of the same account across different Items for depository accounts. This is currently only supported for Chase Items. Because Chase accounts have a different account number each time they are linked, this field may be instead of the account number to uniquely identify a Chase account across multiple Items for payments use cases, helping to reduce duplicate Items or attempted fraud.</para>
/// <para>A unique and persistent identifier for accounts that can be used to trace multiple instances of the same account across different Items for depository accounts. This is currently only supported for Chase Items. Because Chase accounts have a different account number each time they are linked, this field may be used instead of the account number to uniquely identify a Chase account across multiple Items for payments use cases, helping to reduce duplicate Items or attempted fraud. In Sandbox, this field may be populated for any account; in Production and Development, it will only be populated for Chase accounts.</para>
/// </summary>
[JsonPropertyName("persistent_account_id")]
public string? PersistentAccountId { get; init; } = default!;
Expand Down
6 changes: 6 additions & 0 deletions src/Plaid/Entity/BaseReport.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,12 @@ public record BaseReport
[JsonPropertyName("days_requested")]
public decimal DaysRequested { get; init; } = default!;

/// <summary>
/// <para>Client-generated identifier, which can be used by lenders to track loan applications.</para>
/// </summary>
[JsonPropertyName("client_report_id")]
public string? ClientReportId { get; init; } = default!;

/// <summary>
/// <para>Data returned by Plaid about each of the Items included in the Base Report.</para>
/// </summary>
Expand Down
2 changes: 1 addition & 1 deletion src/Plaid/Entity/BeaconUserRequestData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public class BeaconUserRequestData
/// <para>Home address for the associated user. For more context on this field, see <a href="https://plaid.com/docs/identity-verification/hybrid-input-validation/#input-validation-by-country">Input Validation by Country</a>.</para>
/// </summary>
[JsonPropertyName("address")]
public Entity.BeaconUserRequestAddress Address { get; set; } = default!;
public Entity.BeaconUserRequestAddress? Address { get; set; } = default!;

/// <summary>
/// <para>A valid email address.</para>
Expand Down
6 changes: 3 additions & 3 deletions src/Plaid/Entity/CraPartnerInsightsPrism.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ public record CraPartnerInsightsPrism
public Entity.PrismCashScore? CashScore { get; init; } = default!;

/// <summary>
/// <para>The data from the Detect product returned by Prism.</para>
/// <para>The data from the Firstdetect product returned by Prism.</para>
/// </summary>
[JsonPropertyName("detect")]
public Entity.PrismDetect? Detect { get; init; } = default!;
[JsonPropertyName("first_detect")]
public Entity.PrismFirstDetect? FirstDetect { get; init; } = default!;

/// <summary>
/// <para>Details on whether the Prism attributes succeeded or failed to be generated.</para>
Expand Down
12 changes: 12 additions & 0 deletions src/Plaid/Entity/Holding.cs
Original file line number Diff line number Diff line change
Expand Up @@ -67,4 +67,16 @@ public record Holding
[JsonPropertyName("unofficial_currency_code")]
public string? UnofficialCurrencyCode { get; init; } = default!;

/// <summary>
/// <para>The total quantity of vested assets held, as reported by the financial institution. Vested assets are only associated with <a href="https://plaid.com/docs/api/products/investments/#investments-holdings-get-response-securities-type">equities</a>.</para>
/// </summary>
[JsonPropertyName("vested_quantity")]
public decimal? VestedQuantity { get; init; } = default!;

/// <summary>
/// <para>The value of the vested holdings as reported by the institution.</para>
/// </summary>
[JsonPropertyName("vested_value")]
public decimal? VestedValue { get; init; } = default!;

}
2 changes: 1 addition & 1 deletion src/Plaid/Entity/Institution.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public record Institution
public string Name { get; init; } = default!;

/// <summary>
/// <para>A list of the Plaid products supported by the institution. Note that only institutions that support Instant Auth will return <c>auth</c> in the product array; institutions that do not list <c>auth</c> may still support other Auth methods such as Instant Match or Automated Micro-deposit Verification. To identify institutions that support those methods, use the <c>auth_metadata</c> object. For more details, see <a href="https://plaid.com/docs/auth/coverage/">Full Auth coverage</a>.</para>
/// <para>A list of the Plaid products supported by the institution. Note that only institutions that support Instant Auth will return <c>auth</c> in the product array; institutions that do not list <c>auth</c> may still support other Auth methods such as Instant Match or Automated Micro-deposit Verification. To identify institutions that support those methods, use the <c>auth_metadata</c> object. For more details, see <a href="https://plaid.com/docs/auth/coverage/">Full Auth coverage</a>. The <c>income_verification</c> product here indicates support for Bank Income.</para>
/// </summary>
[JsonPropertyName("products")]
public IReadOnlyList<Entity.Products> Products { get; init; } = default!;
Expand Down
6 changes: 6 additions & 0 deletions src/Plaid/Entity/LinkTokenCreateRequestAuth.cs
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,10 @@ public class LinkTokenCreateRequestAuth
[JsonPropertyName("flow_type")]
public Entity.LinkTokenCreateRequestAuthFlowTypeEnum? FlowType { get; set; } = default!;

/// <summary>
/// <para>Specifies whether the Link session is enabled for SMS microdeposits verification. If omitted, behavior defaults to as if this was set to <c>true</c>.</para>
/// </summary>
[JsonPropertyName("sms_microdeposits_verification_enabled")]
public bool? SmsMicrodepositsVerificationEnabled { get; set; } = default!;

}
6 changes: 6 additions & 0 deletions src/Plaid/Entity/LinkTokenCreateRequestBaseReport.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,10 @@ public class LinkTokenCreateRequestBaseReport
[JsonPropertyName("days_requested")]
public int DaysRequested { get; set; } = default!;

/// <summary>
/// <para>Client-generated identifier, which can be used by lenders to track loan applications.</para>
/// </summary>
[JsonPropertyName("client_report_id")]
public string? ClientReportId { get; set; } = default!;

}
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
namespace Going.Plaid.Entity;

/// <summary>
/// <para>The data from the Detect product returned by Prism.</para>
/// <para>The data from the Firstdetect product returned by Prism.</para>
/// </summary>
public record PrismDetect
public record PrismFirstDetect
{
/// <summary>
/// <para>The version of Prism's detect model used.</para>
/// <para>The version of Prism's Firstdetect model used.</para>
/// </summary>
[JsonPropertyName("version")]
public int Version { get; init; } = default!;
Expand All @@ -18,7 +18,7 @@ public record PrismDetect
public int Score { get; init; } = default!;

/// <summary>
/// <para>The reasons for an individual having risk according to the detect cash score.</para>
/// <para>The reasons for an individual having risk according to the Firstdetect score.</para>
/// </summary>
[JsonPropertyName("reason_codes")]
public IReadOnlyList<string>? ReasonCodes { get; init; } = default!;
Expand Down
2 changes: 1 addition & 1 deletion src/Plaid/Entity/PrismInsights.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public record PrismInsights
public int Version { get; init; } = default!;

/// <summary>
/// <para>The Insights Result object is a map of cash flow attributes, in string to float format.</para>
/// <para>The Insights Result object is a map of cash flow attributes, where the key is a string, and the value is a float or string.</para>
/// </summary>
[JsonPropertyName("result")]
public Entity.PrismInsightsResult? Result { get; init; } = default!;
Expand Down
2 changes: 1 addition & 1 deletion src/Plaid/Entity/PrismInsightsResult.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
namespace Going.Plaid.Entity;

/// <summary>
/// <para>The Insights Result object is a map of cash flow attributes, in string to float format.</para>
/// <para>The Insights Result object is a map of cash flow attributes, where the key is a string, and the value is a float or string.</para>
/// </summary>
public record PrismInsightsResult
{
Expand Down
6 changes: 0 additions & 6 deletions src/Plaid/Entity/ProcessorTokenCreateRequestProcessorEnum.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,6 @@ public enum ProcessorTokenCreateRequestProcessorEnum
[EnumMember(Value = "ocrolus")]
Ocrolus,

/// <summary>
///
/// </summary>
[EnumMember(Value = "prime_trust")]
PrimeTrust,

/// <summary>
///
/// </summary>
Expand Down
2 changes: 1 addition & 1 deletion src/Plaid/Entity/ProcessorTransactionsGetRequestOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public class ProcessorTransactionsGetRequestOptions
public int? Offset { get; set; } = default!;

/// <summary>
/// <para>Include the raw unparsed transaction description from the financial institution. This field is disabled by default. If you need this information in addition to the parsed data provided, contact your Plaid Account Manager, or submit a <a href="https://dashboard.plaid.com/support/new/product-and-development/product-troubleshooting/product-functionality">Support request</a>.</para>
/// <para>Include the raw unparsed transaction description from the financial institution.</para>
/// </summary>
[JsonPropertyName("include_original_description")]
public bool? IncludeOriginalDescription { get; set; } = default!;
Expand Down
2 changes: 1 addition & 1 deletion src/Plaid/Entity/RecurringTransfer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ public record RecurringTransfer
///
/// </summary>
[JsonPropertyName("network")]
public Entity.TransferNetwork Network { get; init; } = default!;
public Entity.TransferACHNetwork Network { get; init; } = default!;

/// <summary>
/// <para>Plaid’s unique identifier for the origination account that was used for this transfer.</para>
Expand Down
6 changes: 6 additions & 0 deletions src/Plaid/Entity/RemovedTransaction.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,10 @@ public record RemovedTransaction
[JsonPropertyName("transaction_id")]
public string? TransactionId { get; init; } = default!;

/// <summary>
/// <para>The ID of the account of the removed transaction.</para>
/// </summary>
[JsonPropertyName("account_id")]
public string? AccountId { get; init; } = default!;

}
2 changes: 1 addition & 1 deletion src/Plaid/Entity/Transaction.cs
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public record Transaction
public string? MerchantName { get; init; } = default!;

/// <summary>
/// <para>The string returned by the financial institution to describe the transaction. For transactions returned by <c>/transactions/sync</c> or <c>/transactions/get</c>, this field is in beta and will be omitted unless the client is both enrolled in the closed beta program and has set <c>options.include_original_description</c> to <c>true</c>.</para>
/// <para>The string returned by the financial institution to describe the transaction. For transactions returned by <c>/transactions/sync</c> or <c>/transactions/get</c>, this field will be omitted unless the client has set <c>options.include_original_description</c> to <c>true</c>.</para>
/// </summary>
[JsonPropertyName("original_description")]
public string? OriginalDescription { get; init; } = default!;
Expand Down
2 changes: 1 addition & 1 deletion src/Plaid/Entity/TransactionsSyncRequestOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ namespace Going.Plaid.Entity;
public class TransactionsSyncRequestOptions
{
/// <summary>
/// <para>Include the raw unparsed transaction description from the financial institution. This field is disabled by default. If you need this information in addition to the parsed data provided, contact your Plaid Account Manager or submit a <a href="https://dashboard.plaid.com/support/new/product-and-development/product-troubleshooting/product-functionality">Support request</a>.</para>
/// <para>Include the raw unparsed transaction description from the financial institution.</para>
/// </summary>
[JsonPropertyName("include_original_description")]
public bool? IncludeOriginalDescription { get; set; } = default!;
Expand Down
Loading

0 comments on commit 7d7cb7f

Please sign in to comment.