A client library that talks to the Dapi API.
- First add the library from
nuget
to your project.
<PackageReference Include="Dapi" Version="1.0.0"/>
- Import Dapi's library in your code.
using Dapi;
using Dapi.Products;
using Dapi.Response;
using Dapi.Types;
- Create a Dapi app with your App Secret
namespace TestConsoleApp {
public class TestClass {
private DapiApp myApp;
public TestClass() {
myApp = new DapiApp("YOUR_APP_SECRET");
}
}
}
- Now you can use any of the functions of the
DapiApp
instance,myApp
, to call Dapi with yourappSecret
.
namespace TestConsoleApp {
public class TestClass {
public void TestFunc() {
var resp = myApp.getAccounts("YOUR_ACCESS_TOKEN", "YOUR_USER_SECRET");
// do something with the resp
}
}
}
- Or, you can use it inside your endpoint. Our code will basically update the request to add your app's
appSecret
to it, and forward the request to Dapi, then return the result.
namespace TestConsoleApp {
public class TestClass {
public void HandlerFunc(string requestBodyJson, ICollection<KeyValuePair<string, string>> requestHeaders) {
var resp = myApp.handleSDKRequest(requestBodyJson, requestHeaders);
//resp = myApp.handleSDKRequest(requestBodyJson); // or with no headers
// do something with the resp
}
}
}
You need to replace the placeholders in this code snippet(appSecret
, accessToken
, userSecret
) with your own values, and to handle the response got.
using System.Collections.Generic;
using Dapi;
using Dapi.Products;
using Dapi.Response;
using Dapi.Types;
namespace TestConsoleApp {
public class TestClass {
private DapiApp myApp;
public TestClass() {
myApp = new DapiApp("YOUR_APP_SECRET");
}
public void TestFunc() {
var resp = myApp.getAccounts("YOUR_ACCESS_TOKEN", "YOUR_USER_SECRET");
// do something with the resp
}
public void HandlerFunc(string requestBodyJson, ICollection<KeyValuePair<string, string>> requestHeaders) {
var resp = myApp.handleSDKRequest(requestBodyJson, requestHeaders);
//resp = myApp.handleSDKRequest(requestBodyJson); // or with no headers
// do something with the resp
}
}
}
All the responses extend BaseResponse class. Meaning all the responses described below in the document will have following fields besides the ones specific to each response
Parameter | Type | Description |
---|---|---|
operationID | string |
Unique ID generated to identify a specific operation. |
success | Boolean |
Returns true if request is successful and false otherwise." |
status | APIStatus (Enum) |
The status of the job. done - Operation Completed. failed - Operation Failed. user_input_required - Pending User Input. initialized - Operation In Progress. For further explanation see Operation Statuses. |
userInputs | UserInput[] |
Specifies the type of further information required from the user before the job can be completed. Note: It's only returned if operation status is user_input_required |
type | string |
Type of error encountered. Note: It's only returned if operation status is failed |
msg | string |
Detailed description of the error. Note: It's only returned if operation status is failed |
Parameter | Type | Description |
---|---|---|
id | UserInputID (Enum) |
Type of input required. You can read more about user input types on User Input Types. |
query | string |
Textual description of what is required from the user side. |
index | int |
Is used in case more than one user input is requested. Will always be 0 If only one input is requested. |
answer | string |
User input that must be submitted. In the response it will always be empty. |
Method is used to obtain user's permanent access token by exchanging it with access code received during the user authentication (user login).
You can read more about how to obtain a permanent token on Obtain an Access Token.
public ExchangeTokenResponse exchangeToken(string accessCode, string connectionID)
Parameter | Type | Description |
---|---|---|
accessCode REQUIRED |
string |
Unique code for a user’s successful login to Connect. Returned in the response of UserLogin. |
connectionID REQUIRED |
string |
The connectionID from a user’s successful log in to Connect. |
In addition to the fields described in the BaseResponse, it has the following fields, which will only be returned if the status is done
:
Parameter | Type | Description |
---|---|---|
accessToken | string |
A unique permanent token linked to the user. |
Method is used to retrieve personal details about the user.
public GetIdentityResponse getIdentity(string accessToken, string userSecret)
public GetIdentityResponse getIdentity(string accessToken, string userSecret, string operationID, UserInput[] userInputs)
Parameter | Type | Description |
---|---|---|
accessToken REQUIRED |
string |
Access Token obtained using the exchangeToken method. |
userSecret REQUIRED |
string |
The userSecret from a user’s successful log in to Connect. |
operationID OPTIONAL |
string |
The operationID from a previous call's response. Required only when resuming a previous call that responded with user_input_required status, to provided user inputs. |
userInputs OPTIONAL |
UserInput[] |
Array of UserInput object, that are needed to complete this operation. Required only if a previous call responded with user_input_required status. You can read more about user inputs specification on Specify User Input |
Parameter | Type | Description |
---|---|---|
id | UserInputID (Enum) |
Type of input required. You can read more about user input types on User Input Types. |
index | int |
Is used in case more than one user input is requested. Will always be 0 If only one input is requested. |
answer | string |
User input that must be submitted. |
In addition to the fields described in the BaseResponse, it has the following fields, which will only be returned if the status is done
:
Parameter | Type | Description |
---|---|---|
identity | Identity |
An object containing the identity data of the user. |
Method is used to retrieve list of all the bank accounts registered on the user. The list will contain all types of bank accounts.
public GetAccountsResponse getAccounts(string accessToken, string userSecret)
public GetAccountsResponse getAccounts(string accessToken, string userSecret, string operationID, UserInput[] userInputs)
Parameter | Type | Description |
---|---|---|
accessToken REQUIRED |
string |
Access Token obtained using the exchangeToken method. |
userSecret REQUIRED |
string |
The userSecret from a user’s successful log in to Connect. |
operationID OPTIONAL |
string |
The operationID from a previous call's response. Required only when resuming a previous call that responded with user_input_required status, to provided user inputs. |
userInputs OPTIONAL |
UserInput[] |
Array of UserInput object, that are needed to complete this operation. Required only if a previous call responded with user_input_required status. You can read more about user inputs specification on Specify User Input |
Parameter | Type | Description |
---|---|---|
id | UserInputID (Enum) |
Type of input required. You can read more about user input types on User Input Types. |
index | int |
Is used in case more than one user input is requested. Will always be 0 If only one input is requested. |
answer | string |
User input that must be submitted. |
In addition to the fields described in the BaseResponse, it has the following fields, which will only be returned if the status is done
:
Parameter | Type | Description |
---|---|---|
accounts | Account[] |
An array containing the accounts data of the user. |
Method is used to retrieve balance on specific bank account of the user.
public GetBalanceResponse getBalance(string accountID, string accessToken, string userSecret)
public GetBalanceResponse getBalance(string accountID, string accessToken, string userSecret, string operationID, UserInput[] userInputs)
Parameter | Type | Description |
---|---|---|
accountID REQUIRED |
string |
The bank account ID which its balance is requested. Retrieved from one of the accounts returned from the getAccounts method. |
accessToken REQUIRED |
string |
Access Token obtained using the exchangeToken method. |
userSecret REQUIRED |
string |
The userSecret from a user’s successful log in to Connect. |
operationID OPTIONAL |
string |
The operationID from a previous call's response. Required only when resuming a previous call that responded with user_input_required status, to provided user inputs. |
userInputs OPTIONAL |
UserInput[] |
Array of UserInput object, that are needed to complete this operation. Required only if a previous call responded with user_input_required status. You can read more about user inputs specification on Specify User Input |
Parameter | Type | Description |
---|---|---|
id | UserInputID (Enum) |
Type of input required. You can read more about user input types on User Input Types. |
index | int |
Is used in case more than one user input is requested. Will always be 0 If only one input is requested. |
answer | string |
User input that must be submitted. |
In addition to the fields described in the BaseResponse, it has the following fields, which will only be valid if the status is done
:
Parameter | Type | Description |
---|---|---|
balance | Balance |
An object containing the account's balance information. |
Method is used to retrieve transactions that user has performed over a specific period of time from their bank account. The transaction list is unfiltered, meaning the response will contain all the transactions performed by the user (not just the transactions performed using your app).
Date range of the transactions that can be retrieved varies for each bank. The range supported by the users bank is shown in the response parameter transactionRange
of Get Accounts Metadata endpoint.
public GetTransactionsResponse getTransactions(string accountID, DateTime fromDate, DateTime toDate, string accessToken, string userSecret)
public GetTransactionsResponse getTransactions(string accountID, DateTime fromDate, DateTime toDate, string accessToken, string userSecret, string operationID, UserInput[] userInputs)
Parameter | Type | Description |
---|---|---|
accountID REQUIRED |
string |
The bank account ID which its transactions are requested. Retrieved from one of the accounts returned from the getAccounts method. |
fromDate REQUIRED |
DateTime |
The start date of the transactions wanted. |
toDate REQUIRED |
DateTime |
The end date of the transactions wanted. |
accessToken REQUIRED |
string |
Access Token obtained using the exchangeToken method. |
userSecret REQUIRED |
string |
The userSecret from a user’s successful log in to Connect. |
operationID OPTIONAL |
string |
The operationID from a previous call's response. Required only when resuming a previous call that responded with user_input_required status, to provided user inputs. |
userInputs OPTIONAL |
UserInput[] |
Array of UserInput object, that are needed to complete this operation. Required only if a previous call responded with user_input_required status. You can read more about user inputs specification on Specify User Input |
Parameter | Type | Description |
---|---|---|
id | UserInputID (Enum) |
Type of input required. You can read more about user input types on User Input Types. |
index | int |
Is used in case more than one user input is requested. Will always be 0 If only one input is requested. |
answer | string |
User input that must be submitted. |
In addition to the fields described in the BaseResponse, it has the following fields, which will only be valid if the status is done
:
Parameter | Type | Description |
---|---|---|
transactions | Transaction[] |
Array containing the transactional data for the specified account within the specified period. |
Method is used to retrieve list of all the beneficiaries already added for a user within a financial institution.
public GetBeneficiariesResponse getBeneficiaries(string accessToken, string userSecret)
public GetBeneficiariesResponse getBeneficiaries(string accessToken, string userSecret, string operationID, UserInput[] userInputs)
Parameter | Type | Description |
---|---|---|
accessToken REQUIRED |
string |
Access Token obtained using the exchangeToken method. |
userSecret REQUIRED |
string |
The userSecret from a user’s successful log in to Connect. |
operationID OPTIONAL |
string |
The operationID from a previous call's response. Required only when resuming a previous call that responded with user_input_required status, to provided user inputs. |
userInputs OPTIONAL |
UserInput[] |
Array of UserInput object, that are needed to complete this operation. Required only if a previous call responded with user_input_required status. You can read more about user inputs specification on Specify User Input |
Parameter | Type | Description |
---|---|---|
id | UserInputID (Enum) |
Type of input required. You can read more about user input types on User Input Types. |
index | int |
Is used in case more than one user input is requested. Will always be 0 If only one input is requested. |
answer | string |
User input that must be submitted. |
In addition to the fields described in the BaseResponse, it has the following fields, which will only be returned if the status is done
:
Parameter | Type | Description |
---|---|---|
beneficiaries | Beneficiary[] |
An array containing the beneficiary information. |
Method is used to retrieve list of all the beneficiaries already added for a user within a financial institution.
public CreateBeneficiaryResponse createBeneficiary(Payment.BeneficiaryInfo beneficiary, string accessToken, string userSecret)
public CreateBeneficiaryResponse createBeneficiary(Payment.BeneficiaryInfo beneficiary, string accessToken, string userSecret, string operationID, UserInput[] userInputs)
Parameter | Type | Description |
---|---|---|
beneficiary REQUIRED |
Payment.BeneficiaryInfo |
An object that contains info about the beneficiary that should be added. |
accessToken REQUIRED |
string |
Access Token obtained using the exchangeToken method. |
userSecret REQUIRED |
string |
The userSecret from a user’s successful log in to Connect. |
operationID OPTIONAL |
string |
The operationID from a previous call's response. Required only when resuming a previous call that responded with user_input_required status, to provided user inputs. |
userInputs OPTIONAL |
UserInput[] |
Array of UserInput object, that are needed to complete this operation. Required only if a previous call responded with user_input_required status. You can read more about user inputs specification on Specify User Input |
Parameter | Type | Description |
---|---|---|
id | UserInputID (Enum) |
Type of input required. You can read more about user input types on User Input Types. |
index | int |
Is used in case more than one user input is requested. Will always be 0 If only one input is requested. |
answer | string |
User input that must be submitted. |
Method returns only the fields defined in the BaseResponse.
Method is used to initiate a new payment from one account to another account.
We suggest you use transferAutoflow
method instead to initiate a payment. transferAutoflow
abstracts all the validations and processing logic, required to initiate a transaction using createTransfer
method.
You can read about transferAutoFlow
further in the document.
public CreateTransferResponse createTransfer(Payment.Transfer transfer, string accessToken, string userSecret)
public CreateTransferResponse createTransfer(Payment.Transfer transfer, string accessToken, string userSecret, string operationID, UserInput[] userInputs)
Parameter | Type | Description |
---|---|---|
transfer REQUIRED |
Payment.Transfer |
An object that contains info about the transfer that should be initiated. |
accessToken REQUIRED |
string |
Access Token obtained using the exchangeToken method. |
userSecret REQUIRED |
string |
The userSecret from a user’s successful log in to Connect. |
operationID OPTIONAL |
string |
The operationID from a previous call's response. Required only when resuming a previous call that responded with user_input_required status, to provided user inputs. |
userInputs OPTIONAL |
UserInput[] |
Array of UserInput object, that are needed to complete this operation. Required only if a previous call responded with user_input_required status. You can read more about user inputs specification on Specify User Input |
Parameter | Type | Description |
---|---|---|
id | UserInputID (Enum) |
Type of input required. You can read more about user input types on User Input Types. |
index | int |
Is used in case more than one user input is requested. Will always be 0 If only one input is requested. |
answer | string |
User input that must be submitted. |
In addition to the fields described in the BaseResponse, it has the following fields, which will only be returned if the status is done
:
Parameter | Type | Description |
---|---|---|
reference | string |
Transaction reference string returned by the bank. |
Method is used to initiate a new payment from one account to another account, without having to care nor handle any special cases or scenarios.
public TransferAutoflowResponse transferAutoflow(Payment.TransferAutoflow transferAutoflow, string accessToken, string userSecret)
public TransferAutoflowResponse transferAutoflow(Payment.TransferAutoflow transferAutoflow, string accessToken, string userSecret, string operationID, UserInput[] userInputs)
Parameter | Type | Description |
---|---|---|
transfer REQUIRED |
Payment.TransferAutoflow |
An object that contains info about the transfer that should be initiated, and any other details that's used to automate the operation. |
accessToken REQUIRED |
string |
Access Token obtained using the exchangeToken method. |
userSecret REQUIRED |
string |
The userSecret from a user’s successful log in to Connect. |
operationID OPTIONAL |
string |
The operationID from a previous call's response. Required only when resuming a previous call that responded with user_input_required status, to provided user inputs. |
userInputs OPTIONAL |
UserInput[] |
Array of UserInput object, that are needed to complete this operation. Required only if a previous call responded with user_input_required status. You can read more about user inputs specification on Specify User Input |
Parameter | Type | Description |
---|---|---|
id | UserInputID (Enum) |
Type of input required. You can read more about user input types on User Input Types. |
index | int |
Is used in case more than one user input is requested. Will always be 0 If only one input is requested. |
answer | string |
User input that must be submitted. |
In addition to the fields described in the BaseResponse, it has the following fields, which will only be returned if the status is done
:
Parameter | Type | Description |
---|---|---|
reference | string |
Transaction reference string returned by the bank. |