diff --git a/plaid-openapi b/plaid-openapi
index 0fa84ff6..ca7f4919 160000
--- a/plaid-openapi
+++ b/plaid-openapi
@@ -1 +1 @@
-Subproject commit 0fa84ff6d92ace5e77e9138454d93eaffdb9ab6f
+Subproject commit ca7f491936715a7652aa1ce277eb632eef27c9e8
diff --git a/src/Plaid/Credit/CreditRelayGetRequest.cs b/src/Plaid/Credit/CreditRelayGetRequest.cs
index a7305b51..941d5fa4 100644
--- a/src/Plaid/Credit/CreditRelayGetRequest.cs
+++ b/src/Plaid/Credit/CreditRelayGetRequest.cs
@@ -12,7 +12,7 @@ public partial class CreditRelayGetRequest : RequestBase
public string RelayToken { get; set; } = default!;
///
- /// The report type. It can be assets or income.
+ /// The report type. It can be asset. Income report types are not yet supported.
///
[JsonPropertyName("report_type")]
public Entity.ReportType ReportType { get; set; } = default!;
diff --git a/src/Plaid/Credit/CreditRelayRefreshRequest.cs b/src/Plaid/Credit/CreditRelayRefreshRequest.cs
index 2e0f3ab1..739d71ed 100644
--- a/src/Plaid/Credit/CreditRelayRefreshRequest.cs
+++ b/src/Plaid/Credit/CreditRelayRefreshRequest.cs
@@ -12,7 +12,7 @@ public partial class CreditRelayRefreshRequest : RequestBase
public string RelayToken { get; set; } = default!;
///
- /// The report type. It can be assets or income.
+ /// The report type. It can be asset. Income report types are not yet supported.
///
[JsonPropertyName("report_type")]
public Entity.ReportType ReportType { get; set; } = default!;
diff --git a/src/Plaid/Entity/ConsumerReportPermissiblePurpose.cs b/src/Plaid/Entity/ConsumerReportPermissiblePurpose.cs
index 91214f24..be68c634 100644
--- a/src/Plaid/Entity/ConsumerReportPermissiblePurpose.cs
+++ b/src/Plaid/Entity/ConsumerReportPermissiblePurpose.cs
@@ -38,8 +38,8 @@ public enum ConsumerReportPermissiblePurpose
///
/// For a legitimate business need in connection with a business transaction made primarily for personal, family, or household initiated by the consumer pursuant to FCRA Section 604(a)(3)(F)(i).
///
- [EnumMember(Value = "LEGITIMATE_BUSINESS_NEED_TENANT_OTHER")]
- LegitimateBusinessNeedTenantOther,
+ [EnumMember(Value = "LEGITIMATE_BUSINESS_NEED_OTHER")]
+ LegitimateBusinessNeedOther,
///
/// In accordance with the written instructions of the consumer pursuant to FCRA Section 604(a)(2), to evaluate an application’s profile to make an offer to the consumer.
diff --git a/src/Plaid/Entity/ProcessorTokenCreateRequestProcessorEnum.cs b/src/Plaid/Entity/ProcessorTokenCreateRequestProcessorEnum.cs
index 601b408b..9efbb50d 100644
--- a/src/Plaid/Entity/ProcessorTokenCreateRequestProcessorEnum.cs
+++ b/src/Plaid/Entity/ProcessorTokenCreateRequestProcessorEnum.cs
@@ -239,6 +239,12 @@ public enum ProcessorTokenCreateRequestProcessorEnum
[EnumMember(Value = "bakkt")]
Bakkt,
+ ///
+ ///
+ ///
+ [EnumMember(Value = "teal")]
+ Teal,
+
///
/// 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.
///
diff --git a/src/Plaid/Entity/ReportType.cs b/src/Plaid/Entity/ReportType.cs
index 616da7d8..a17b9abb 100644
--- a/src/Plaid/Entity/ReportType.cs
+++ b/src/Plaid/Entity/ReportType.cs
@@ -1,21 +1,15 @@
namespace Going.Plaid.Entity;
///
-/// The report type. It can be assets or income.
+/// The report type. It can be asset. Income report types are not yet supported.
///
public enum ReportType
{
///
///
///
- [EnumMember(Value = "assets")]
- Assets,
-
- ///
- ///
- ///
- [EnumMember(Value = "income")]
- Income,
+ [EnumMember(Value = "asset")]
+ Asset,
///
/// 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.
diff --git a/src/Plaid/Entity/TransferDiligenceStatus.cs b/src/Plaid/Entity/TransferDiligenceStatus.cs
index dc957fac..3350c1ef 100644
--- a/src/Plaid/Entity/TransferDiligenceStatus.cs
+++ b/src/Plaid/Entity/TransferDiligenceStatus.cs
@@ -5,6 +5,18 @@ namespace Going.Plaid.Entity;
///
public enum TransferDiligenceStatus
{
+ ///
+ ///
+ ///
+ [EnumMember(Value = "not_submitted")]
+ NotSubmitted,
+
+ ///
+ ///
+ ///
+ [EnumMember(Value = "submitted")]
+ Submitted,
+
///
///
///
diff --git a/src/Plaid/Entity/TransferLedgerBalance.cs b/src/Plaid/Entity/TransferLedgerBalance.cs
new file mode 100644
index 00000000..0090bfc3
--- /dev/null
+++ b/src/Plaid/Entity/TransferLedgerBalance.cs
@@ -0,0 +1,19 @@
+namespace Going.Plaid.Entity;
+
+///
+/// Information about the balance of the ledger held with Plaid.
+///
+public record TransferLedgerBalance
+{
+ ///
+ /// The amount of this balance available for use (decimal string with two digits of precision e.g. "10.00").
+ ///
+ [JsonPropertyName("available")]
+ public string Available { get; init; } = default!;
+
+ ///
+ /// The amount of pending funds that are in processing (decimal string with two digits of precision e.g. "10.00").
+ ///
+ [JsonPropertyName("pending")]
+ public string Pending { get; init; } = default!;
+}
\ No newline at end of file
diff --git a/src/Plaid/Transfer/PlaidClient.cs b/src/Plaid/Transfer/PlaidClient.cs
index e6f6afae..29f18e3c 100644
--- a/src/Plaid/Transfer/PlaidClient.cs
+++ b/src/Plaid/Transfer/PlaidClient.cs
@@ -57,6 +57,14 @@ public sealed partial class PlaidClient
PostAsync("/transfer/configuration/get", request)
.ParseResponseAsync();
+ ///
+ /// Use the /transfer/ledger/get endpoint to view a balance on the ledger held with Plaid.
+ ///
+ ///
+ public Task TransferLedgerGetAsync(Transfer.TransferLedgerGetRequest request) =>
+ PostAsync("/transfer/ledger/get", request)
+ .ParseResponseAsync();
+
///
/// Use the /transfer/metrics/get endpoint to view your transfer product usage metrics.
///
diff --git a/src/Plaid/Transfer/TransferLedgerGetRequest.cs b/src/Plaid/Transfer/TransferLedgerGetRequest.cs
new file mode 100644
index 00000000..4e4dea3c
--- /dev/null
+++ b/src/Plaid/Transfer/TransferLedgerGetRequest.cs
@@ -0,0 +1,13 @@
+namespace Going.Plaid.Transfer;
+
+///
+/// Defines the request schema for /transfer/ledger/get
+///
+public partial class TransferLedgerGetRequest : RequestBase
+{
+ ///
+ /// Client ID of the end customer.
+ ///
+ [JsonPropertyName("originator_client_id")]
+ public string? OriginatorClientId { get; set; } = default!;
+}
\ No newline at end of file
diff --git a/src/Plaid/Transfer/TransferLedgerGetResponse.cs b/src/Plaid/Transfer/TransferLedgerGetResponse.cs
new file mode 100644
index 00000000..e0257d44
--- /dev/null
+++ b/src/Plaid/Transfer/TransferLedgerGetResponse.cs
@@ -0,0 +1,13 @@
+namespace Going.Plaid.Transfer;
+
+///
+/// Defines the response schema for /transfer/ledger/get
+///
+public record TransferLedgerGetResponse : ResponseBase
+{
+ ///
+ /// Information about the balance of the ledger held with Plaid.
+ ///
+ [JsonPropertyName("balance")]
+ public Entity.TransferLedgerBalance Balance { get; init; } = default!;
+}
\ No newline at end of file