v10.1.0
Added the ability to check newly introduced rate limits in the GoCardless API.
Please refer to the documentation for more information. You can also see the announcement from GoCardless.
Full Changelog: v10.0.0...v10.1.0
Added the ability to check newly introduced rate limits in the GoCardless API.
Please refer to the documentation for more information. You can also see the announcement from GoCardless.
Full Changelog: v10.0.0...v10.1.0
InstitutionsEndpoint
classThe signature of the method GetInstitutions
changed. The argument readDebtorAccountSupported
was newly added.
public async Task<NordigenApiResponse<List<Institution>, BasicResponse>> GetInstitutions(string? country = null,
bool? accessScopesSupported = null, bool? accountSelectionSupported = null,
bool? businessAccountsSupported = null, bool? cardAccountsSupported = null,
bool? corporateAccountsSupported = null, bool? privateAccountsSupported = null,
bool? readRefundAccountSupported = null, bool? paymentsEnabled = null, bool? paymentSubmissionSupported = null,
bool? pendingTransactionsSupported = null, bool? ssnVerificationSupported = null,
CancellationToken cancellationToken = default)
public async Task<NordigenApiResponse<List<Institution>, BasicResponse>> GetInstitutions(string? country = null,
bool? accessScopesSupported = null, bool? accountSelectionSupported = null,
bool? businessAccountsSupported = null, bool? cardAccountsSupported = null,
bool? corporateAccountsSupported = null, bool? privateAccountsSupported = null,
bool? readRefundAccountSupported = null, bool? readDebtorAccountSupported = null,
bool? paymentsEnabled = null, bool? paymentSubmissionSupported = null,
bool? pendingTransactionsSupported = null, bool? ssnVerificationSupported = null,
CancellationToken cancellationToken = default)
NordigenClient
classThe TokenPairUpdated
event is now raised whenever the JsonWebTokenPair
property is successfully updated. Not only when it was automatically updated but also when done so by the user.
A full documentation of the library is now available at: https://robintty.github.io/NordigenApiClient/
Full Changelog: v9.0.0...v10.0.0
Removed request model classes in favor of additional parameters in methods and default values are now provided to simplify the usage. The following method signatures have changed accordingly:
CreateAgreement
// Previous to version v9.0.0
Task<NordigenApiResponse<Agreement, CreateAgreementError>> CreateAgreement(CreateAgreementRequest agreement,
CancellationToken cancellationToken = default)
// version v9.0.0
Task<NordigenApiResponse<Agreement, CreateAgreementError>> CreateAgreement(string institutionId,
uint accessValidForDays = 90, uint maxHistoricalDays = 90, List<AccessScope>? accessScope = null,
CancellationToken cancellationToken = default)
// Previous to version v9.0.0
var agreementRequest = new CreateAgreementRequest(90, 90, ["balances", "details", "transactions"], "SANDBOXFINANCE_SFIN0000");
var createResponse = await client.AgreementsEndpoint.CreateAgreement(agreementRequest);
// version v9.0.0
var createResponse = await client.AgreementsEndpoint.CreateAgreement("SANDBOXFINANCE_SFIN0000");
AcceptAgreement
// Previous to version v9.0.0
Task<NordigenApiResponse<Agreement, BasicResponse>> AcceptAgreement(Guid id, AcceptAgreementRequest metadata,
CancellationToken cancellationToken = default);
Task<NordigenApiResponse<Agreement, BasicResponse>> AcceptAgreement(string id, AcceptAgreementRequest metadata,
CancellationToken cancellationToken = default);
// version v9.0.0
Task<NordigenApiResponse<Agreement, BasicResponse>> AcceptAgreement(Guid id, string userAgent, string ipAddress,
CancellationToken cancellationToken = default);
Task<NordigenApiResponse<Agreement, BasicResponse>> AcceptAgreement(string id, string userAgent, string ipAddress,
CancellationToken cancellationToken = default);
// Previous to version v9.0.0
var agreementId = "3fa85f64-5717-4562-b3fc-2c963f66afa6"
var acceptMetadata = new AcceptAgreementRequest("example_user_agent", "192.168.178.1");
var acceptResponse = await client.AgreementsEndpoint.AcceptAgreement(agreementId, acceptMetadata);
// version v9.0.0
var agreementId = "3fa85f64-5717-4562-b3fc-2c963f66afa6"
var acceptResponse = await client.AgreementsEndpoint.AcceptAgreement(agreementId , "example_user_agent", "192.168.178.1");
CreateRequisition
// Previous to version v9.0.0
Task<NordigenApiResponse<Requisition, CreateRequisitionError>> CreateRequisition(
CreateRequisitionRequest requisition, CancellationToken cancellationToken = default);
// version v9.0.0
Task<NordigenApiResponse<Requisition, CreateRequisitionError>> CreateRequisition(string institutionId,
Uri redirect, Guid? agreementId = null, string? reference = null, string userLanguage = "EN",
string? socialSecurityNumber = null, bool accountSelection = false, bool redirectImmediate = false,
CancellationToken cancellationToken = default);
// Previous to version v9.0.0
var requisitionRequest = new CreateRequisitionRequest(redirect, institutionId, $"reference_{i}", "EN", agreementId);
var createResponse = await client.RequisitionsEndpoint.CreateRequisition(requisitionRequest);
// version v9.0.0
var createResponse = await client.RequisitionsEndpoint.CreateRequisition(institutionId, redirect, agreementId, $"reference_{i}");
CreateAgreementRequest
, CreateAgreementRequest
and CreateRequisitionRequest
are now internal
instead of public
DebtorAccount
and CreditorAccount
properties of the Transaction
class are now of type AccountDetails?
instead of MinimalBankAccount?
accessScope
parameter for method AgreementsEndpoint.CreateAgreement
is now of type List<AccessScope>?
instead of List<string>
SupportedCountry
enumAdded the SupportedCountry
enum which can now be used to more easily use the GetInstitutions
method:
var institutions = await _apiClient.InstitutionsEndpoint.GetInstitutions(SupportedCountry.Bulgaria);
OwnerAddressStructured
and DisplayName
properties to the BankAccountDetails
classOwnerName
property to the BankAccount
classFull Changelog: v8.0.1...v9.0.0
Full Changelog: v8.0.0...v8.0.1
BasicError
type was removed since it has the same properties as the BasicResponse
type. This changes the signatures of the following methods:
AccountsEndpoint.GetAccount()
now returns Task<NordigenApiResponse<BankAccount, BasicResponse>>
instead of Task<NordigenApiResponse<BankAccount, BasicError>>
AgreementsEndpoint.GetAgreements()
now returns Task<NordigenApiResponse<ResponsePage<Agreement>, BasicResponse>>
instead of Task<NordigenApiResponse<ResponsePage<Agreement>, BasicError>>
AgreementsEndpoint.GetAgreement()
now returns Task<NordigenApiResponse<Agreement, BasicResponse>>
instead of Task<NordigenApiResponse<Agreement, BasicError>>
AgreementsEndpoint.DeleteAgreement()
now returns Task<NordigenApiResponse<BasicResponse, BasicResponse>>
instead of Task<NordigenApiResponse<BasicResponse, BasicError>>
AgreementsEndpoint.AcceptAgreement()
now returns Task<NordigenApiResponse<Agreement, BasicResponse>>
instead of Task<NordigenApiResponse<Agreement, BasicError>>
InstitutionsEndpoint.GetInstitution()
now returns Task<NordigenApiResponse<Institution, BasicResponse>>
instead of Task<NordigenApiResponse<Institution, BasicError>>
RequisitionsEndpoint.GetRequisitions()
now returns Task<NordigenApiResponse<ResponsePage<Requisition>, BasicResponse>>
instead of Task<NordigenApiResponse<ResponsePage<Requisition>, BasicError>>
RequisitionsEndpoint.GetRequisition()
now returns Task<NordigenApiResponse<Requisition, BasicResponse>>
instead of Task<NordigenApiResponse<Requisition, BasicError>>
RequisitionsEndpoint.DeleteRequisition()
now returns Task<NordigenApiResponse<BasicResponse, BasicResponse>>
instead of Task<NordigenApiResponse<BasicResponse, BasicError>>
TokenEndpoint.GetTokenPair()
now returns Task<NordigenApiResponse<JsonWebTokenPair, BasicResponse>>
instead of Task<NordigenApiResponse<JsonWebTokenPair, BasicError>>
TokenEndpoint.RefreshAccessToken()
now returns Task<NordigenApiResponse<JsonWebAccessToken, BasicResponse>>
instead of Task<NordigenApiResponse<JsonWebAccessToken, BasicError>>
InstitutionsError
type has been removed and replaced by BasicResponse
since the error can in all cases be simplified to this type. This changes the signatures of the following method:
InstitutionsEndpoint.GetInstitutions()
now returns Task<NordigenApiResponse<List<Institution>, BasicResponse>>
instead of Task<NordigenApiResponse<List<Institution>, InstitutionsError>>
AccountsEndpoint.GetTransactions()
now immediately throws an ArgumentException
when the endDate
argument contains a date before startDate
instead of executing the response, since this will always result in an error being returned by the APIJsonWebTokenPair
and NordigenClientCredentials
now throw an ArgumentNullException
when the supplied string
arguments are null
Institution
type:
TransactionTotalDays
property from int
to uint
since this value can't be negativeSupportedPayments
: The supported payment products for this institution (e.g. SepaCreditTransfers
, SwiftPaymentService
, etc.)SupportedFeatures
: The supported features for this institution (e.g. account_selection
, card_accounts
, etc.). This can inform you which features you can use when creating a requisition with an institution.IdentificationCodes
: Undocumented field in the response modelIEnumerable
to List
since most where already returning List
and to bring them in line. This affects the following properties:
ResponsePage.Results
Tranasction.RemittanceInformationUnstructuredArray
Transaction.RemittanceInformationStructuredArray
Transaction.CurrencyExchange
TokenPairUpdated
event is now only raised when the token was successfully updated. In the past it was also raised for unsuccessful token refreshes. Therefore the TokenPairUpdatedEventArgsJsonWebTokenPair
property is now no longer nullable.Full Changelog: v7.1.0...v8.0.0
Added ability to configure the base API URL through the HttpClient
:
var httpClient = new HttpClient {BaseAddress = new Uri("https://ob.gocardless.com/api/v2/")};
var credentials = new NordigenClientCredentials("...", "...");
var client = new NordigenClient(httpClient, credentials);
Full Changelog: v7.0.0...v7.1.0
TransactionTotalDays
property of the Institution
class is now of the more appropriate type of int
instead of string
Full Changelog: v6.2.0...v7.0.0