diff --git a/src/Plaid/PlaidClient.cs b/src/Plaid/PlaidClient.cs
index 641e9183..0bc896b4 100644
--- a/src/Plaid/PlaidClient.cs
+++ b/src/Plaid/PlaidClient.cs
@@ -115,6 +115,11 @@ public PlaidClient(
/// Debug option to include the raw json in the returned DTO
///
public bool ShowRawJson { get; set; }
+
+ ///
+ /// Additional request headers used for all API calls.
+ ///
+ public Dictionary? AdditionalHeaders { get; set; }
#endregion
#region Private Members
@@ -137,6 +142,10 @@ private ResponseParser PostAsync(string path, TRequest request) where
},
Content = JsonContent.Create(request, options: JsonSerializerOptions),
};
+
+ AddRequestHeaders(requestMessage, AdditionalHeaders);
+ AddRequestHeaders(requestMessage, request.AdditionalHeaders);
+
return new ResponseParser
{
Message = client.SendAsync(requestMessage),
@@ -146,6 +155,17 @@ private ResponseParser PostAsync(string path, TRequest request) where
};
}
+ private static void AddRequestHeaders(HttpRequestMessage requestMessage, Dictionary? headers)
+ {
+ if (headers != null)
+ {
+ foreach (var header in headers)
+ {
+ requestMessage.Headers.Add(header.Key, header.Value);
+ }
+ }
+ }
+
private readonly struct ResponseParser
{
public Task Message { get; init; }
diff --git a/src/Plaid/RequestBase.cs b/src/Plaid/RequestBase.cs
index b4d0ee6b..deaa3803 100644
--- a/src/Plaid/RequestBase.cs
+++ b/src/Plaid/RequestBase.cs
@@ -35,6 +35,12 @@ public abstract class RequestBase
[JsonIgnore]
public bool? ShowRawJson { get; set; }
+ ///
+ /// Pass additional request headers.
+ ///
+ [JsonIgnore]
+ public Dictionary? AdditionalHeaders { get; set; }
+
///
/// Indicates whether to include the AccessToken on an API call.
///