NodeJS Library Reference

To get started with the library first install it in your local project using the following command:

npm i @dapi-co/dapi-node

BaseResponse

All the responses extend BaseResponse interface. Meaning all the responses described below in the document will have following parameters besides the ones described in appropriate response sections.

ParameterTypeDescription
operationIDStringUnique ID generated to identify a specific operation.
successBooleanReturns true if request is successful and false for all else.
statusEnumThe 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
userInputsArray<UserInputs>Specifies the type of further information required from the user before the job can be completed.

Is only returned if operation status is `user_input_required
typeEnumType of error encountered

Is only returned when operation was not successful
msgStringDetailed description of the error

Is only returned if the request was not successful

Auth

auth.exchangeToken

Method is used to obtain user's permanent access token by exchanging it with access code received during the user authentication.

📘

Note

You can read more about how to obtain a permanent token on Obtain an Access Token

Method Description

async exchangeToken(accessCode: string, connectionID: string): Promise<IExchangeTokenResponse>;

Input Parameters

ParameterTypeDescription
accessCode
REQUIRED
StringUnique code for a user’s successful login to Connect. Returned in the response of UserLogin.
connectionID
REQUIRED
StringThe connectionID from a user’s successful log in to Connect

Response

ParameterTypeDescription
accessTokenStringA unique permanent token linked to the user.

Data

data.getIdentity

Method is used to retrieve personal details about the user.

Method Description

async getIdentity(accessToken: string, userSecret: string, operationID?: string, userInputs?: IUserInputs[])

Input Parameters

accessToken
REQUIRED
StringAccess Token obtained using Exchange Token method.

You can read more about how to obtain a permanent token on Obtain an Access Token
userSecret
REQUIRED
StringUser secret returned during the successful authentication in Connect Layer
operationID
OPTIONAL
StringThe 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
Array<userInputs>Array of UserInputs object, required only if initial request responded with user inputs specification.

You can read more about user inputs specification on Specify User Input

UserInputs Object

idEnumType of input required. Can be one of the following:

otp

secret_question

captcha

pin

confirmation

token


You can read more about user input types on User Input Types
queryStringTextual description of what is required from the user side
indexNumberIs used in case more than one user input is requested.

will always be 0 If only one input is requested.
answerStringUser input that must be submitted. In the response it will always be empty.

Response

ParameterTypeDescription
identityObject<Identity>An object containing the identity data of the user

Identity Schema

ParameterTypeDescription
nationalityStringUser's nationality as reported by the financial institution.
dateOfBirthDateUser's date (in YYYY-MM-DD format) of birth as reported by the financial institution.
emailAddressStringUser's email address as reported by the financial institution.
nameStringUser's full name as reported by the financial institution.
numbersArray<PhoneNumbers>Array of user's phone numbers as provided by the financial institution.
identificationArray<Identification>Array of user's identification information as provided by the bank.
addressObject<Address>Object containing user's address information.

PhoneNumbers Schema

ParameterTypeDescription
typeEnumThe type of number.

mobile

home

office

fax
valueStringThe user's number as provided by the financial institution.

Identification Schema

ParameterTypeDescription
typeEnumType of document.

passport

national_id

visa_number
valueStringUser's document number as provided by the financial institution.

Address Schema

ParameterTypeDescription
flatStringUser's flat as provided by the financial institution.
buildingStringUser's building as provided by the financial institution.
fullStringUser's full address as provided by the financial institution.
areaStringUser's area as provided by the financial institution.
poBoxStringUser's PO box as provided by the financial institution.
cityStringUser's city as provided by the financial institution.
stateStringUser's state as provided by the financial institution.
countryStringUser's country as provided by the financial institution.

data.getAccounts

Method is used to retrieve list of all the bank accounts registered on the user. The list will contain all types of bank accounts, including:

  • Savings
  • Credit
  • Current....

Method Description

async getAccounts(accessToken: string, userSecret: string, operationID?: string, userInputs?: IUserInputs[])

Input Parameters

accessToken
REQUIRED
StringAccess Token obtained using Exchange Token method.

You can read more about how to obtain a permanent token on Obtain an Access Token
userSecret
REQUIRED
StringUser secret returned during the successful authentication in Connect Layer
operationID
OPTIONAL
StringThe 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
Array<userInputs>Array of UserInputs object, required only if initial request responded with user inputs specification.

You can read more about user inputs specification on Specify User Input

UserInputs Object

idEnumType of input required. Can be one of the following:

otp

secret_question

captcha

pin

confirmation

token


You can read more about user input types on User Input Types
queryStringTextual description of what is required from the user side
indexNumberIs used in case more than one user input is requested.

will always be 0 If only one input is requested.
answerStringUser input that must be submitted. In the response it will always be empty.

Response

AccountArrayAn array containing the accounts data of the user.

Is only returned if request was successful

Account Schema

📘

Note

Routing Number object is only returned for USA banks. For all other banks it will not be provided

ParameterTypeDescription
ibanStringThe account's IBAN number as provided by the financial institution.
numberStringThe account's number as provided by the financial institution.
nameStringThe account's name.
isFavouriteBooleanIf the account is the user's favourite account.
idStringThe account's unique identifier.
currencyObject<Currency>An object containing the account's currency information.
routingNumbersArray<rountingNumber>An object containing accounts routing numbers information.

Is only returned for US Bank Accounts
typeEnumThe account type.
- current
- savings
- loan
- checking
- credit
- deposit
- other

Routing Numbers Schema

ParameterTypeDescription
typeEnumType of routing number provided.

- wire

- ach
valueStringRouting number of the account

Currency Schema

ParameterTypeDescription
codeStringThe ISO 4217 code of the currency.
nameStringThe full name of the currency.

data.getAccountBalance

Method is used to retrieve balance on specific bank account of the user

Method Description

async getAccountBalance(accessToken: string, userSecret: string, accountID: string, operationID?: string, userInputs?: IUserInputs[])

Input Parameters

accessToken
REQUIRED
StringAccess Token obtained using Exchange Token method.

You can read more about how to obtain a permanent token on Obtain an Access Token
userSecret
REQUIRED
StringUser secret returned during the successful authentication in Connect Layer
accountID
REQUIRED
StringBank account ID which balance is requested
operationID
OPTIONAL
StringThe 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
Array<userInputs>Array of UserInputs object, required only if initial request responded with user inputs specification.

You can read more about user inputs specification on Specify User Input

UserInputs Object

idEnumType of input required. Can be one of the following:

otp

secret_question

captcha

pin

confirmation

token


You can read more about user input types on User Input Types
queryStringTextual description of what is required from the user side
indexNumberIs used in case more than one user input is requested.

will always be 0 If only one input is requested.
answerStringUser input that must be submitted. In the response it will always be empty.

Response

ParameterTypeDescription
balanceObject< Balance >Object containing the account's balance information.

Balance Schema

ParameterTypeDescription
amountNumberCurrent balance of requested account
accountNumberStringThe account's number as provided by the financial institution.
currencyObject<Currency>An object containing the account's currency information.

Currency Schema

ParameterTypeDescription
codeStringThe ISO 4217 code of the currency.
nameStringThe full name of the currency.

data.getAccountTransactions

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.

Method Description

async getAccountTransactions(accessToken: string, userSecret: string, accountID: string, fromDate: Date, toDate: Date, operationID?: string, userInputs?: IUserInputs[])

Input Parameters

accessToken
REQUIRED
StringAccess Token obtained using Exchange Token method.

You can read more about how to obtain a permanent token on Obtain an Access Token
userSecret
REQUIRED
StringUser secret returned during the successful authentication in Connect Layer
accountID
REQUIRED
StringBank account ID which balance is requested
fromDate
REQUIRED
DateDate to start transactions from. Format as “YYYY-MM-DD”.
toDate
REQUIRED
DateDate to end transactions on.
Format as “YYYY-MM-DD”.
operationID
OPTIONAL
StringThe 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
Array<userInputs>Array of UserInputs object, required only if initial request responded with user inputs specification.

You can read more about user inputs specification on Specify User Input

UserInputs Object

idEnumType of input required. Can be one of the following:

otp

secret_question

captcha

pin

confirmation

token


You can read more about user input types on User Input Types
queryStringTextual description of what is required from the user side
indexNumberIs used in case more than one user input is requested.

will always be 0 If only one input is requested.
answerStringUser input that must be submitted. In the response it will always be empty.

Response

transactionsArray<Transaction>Array containing the transactional data for the specified period.

Transaction schema

ParameterTypeDescription
afterAmountNumberAccount balance after this transaction was executed.
beforeAmountNumberAccount balance before the transaction was executed.
amountNumberTransaction amount.
dateDateTransaction timestamp as provided by the financial institution (in the financial institution's timezone).
descriptionStringTransaction description as provided by the financial institution.
detailsStringAny extra details provided by the financial institution.
typeEnumSpecifies if the transaction is debit or credit.

- debit

-credit
currencyObject<Currency>Object containing the transaction's currency information.

Currency schema

ParameterTypeDescription
codeStringISO 4217 code of the currency.
nameStringCurrency's full name.

data.getCategorizedAccountTransactions

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).

Every transaction in the response is categorized. Transaction categories stay the same across all banks.

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.

Method Description

async getCategorizedAccountTransactions(accessToken: string, userSecret: string, accountID: string, fromDate: Date, toDate: Date, operationID?: string, userInputs?: IUserInputs[])

Input Parameters

accessToken
REQUIRED
StringAccess Token obtained using Exchange Token method.

You can read more about how to obtain a permanent token on Obtain an Access Token
userSecret
REQUIRED
StringUser secret returned during the successful authentication in Connect Layer
accountID
REQUIRED
StringBank account ID which balance is requested
fromDate
REQUIRED
DateDate to start transactions from. Format as “YYYY-MM-DD”.
toDate
REQUIRED
DateDate to end transactions on.
Format as “YYYY-MM-DD”.
operationID
OPTIONAL
StringThe 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
Array<userInputs>Array of UserInputs object, required only if initial request responded with user inputs specification.

You can read more about user inputs specification on Specify User Input

UserInputs Object

idEnumType of input required. Can be one of the following:

otp

secret_question

captcha

pin

confirmation

token


You can read more about user input types on User Input Types
queryStringTextual description of what is required from the user side
indexNumberIs used in case more than one user input is requested.

will always be 0 If only one input is requested.
answerStringUser input that must be submitted. In the response it will always be empty.

Response

transactionsArray<CategorizedTransaction>Array containing the transactional data for the specified period, plus category data.

CategorizedTransaction schema

ParameterTypeDescription
afterAmountNumberAccount balance after this transaction was executed.
beforeAmountNumberAccount balance before the transaction was executed.
amountNumberTransaction amount.
dateDateTransaction timestamp as provided by the financial institution (in the financial institution's timezone).
descriptionStringTransaction description as provided by the financial institution.
detailsStringAny extra details provided by the financial institution.
typeEnumSpecifies if the transaction is debit or credit.

- debit

-credit
categoryStringCategory for the specific transaction. All transaction categories
currencyObject<Currency>Object containing the transaction's currency information.

Currency schema

ParameterTypeDescription
codeStringISO 4217 code of the currency.
nameStringCurrency's full name.

data.getEnrichedAccountTransactions

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).

Every transaction in the response is categorized and has further details about the brand that the transfer is associated with. Transaction categories stay the same across all banks.

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.

Method Description

async getEnrichedAccountTransactions(accessToken: string, userSecret: string, accountID: string, fromDate: Date, toDate: Date, operationID?: string, userInputs?: IUserInputs[])

Input Parameters

accessToken
REQUIRED
StringAccess Token obtained using Exchange Token method.

You can read more about how to obtain a permanent token on Obtain an Access Token
userSecret
REQUIRED
StringUser secret returned during the successful authentication in Connect Layer
accountID
REQUIRED
StringBank account ID which balance is requested
fromDate
REQUIRED
DateDate to start transactions from. Format as “YYYY-MM-DD”.
toDate
REQUIRED
DateDate to end transactions on.
Format as “YYYY-MM-DD”.
operationID
OPTIONAL
StringThe 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
Array<userInputs>Array of UserInputs object, required only if initial request responded with user inputs specification.

You can read more about user inputs specification on Specify User Input

UserInputs Object

idEnumType of input required. Can be one of the following:

otp

secret_question

captcha

pin

confirmation

token


You can read more about user input types on User Input Types
queryStringTextual description of what is required from the user side
indexNumberIs used in case more than one user input is requested.

will always be 0 If only one input is requested.
answerStringUser input that must be submitted. In the response it will always be empty.

Response

transactionsArray<EnrichedTransaction>Array containing the transactional data for the specified period, plus brand details.

Transaction schema

ParameterTypeDescription
afterAmountNumberAccount balance after this transaction was executed.
beforeAmountNumberAccount balance before the transaction was executed.
amountNumberTransaction amount.
dateDateTransaction timestamp as provided by the financial institution (in the financial institution's timezone).
descriptionStringTransaction description as provided by the financial institution.
detailsStringAny extra details provided by the financial institution.
typeEnumSpecifies if the transaction is debit or credit.

- debit

-credit
categoryStringCategory for the specific transaction. All transaction categories
brandDetailsObject<BrandDetails>Object containing information about the brand.
currencyObject<Currency>Object containing the transaction's currency information.

BrandDetails schema

ParameterTypeDescription
logoStringURL hosting the logo for the particular brand
nameStringOfficial brand name

Currency schema

ParameterTypeDescription
codeStringISO 4217 code of the currency.
nameStringCurrency's full name.

data.getCards

Method is used to retrieve list of all the cards registered on the user.

Method Description

async getCards(accessToken: string, userSecret: string, operationID?: string, userInputs?: IUserInputs[])

Input Parameters

accessToken
REQUIRED
StringAccess Token obtained using Exchange Token method.

You can read more about how to obtain a permanent token on Obtain an Access Token
userSecret
REQUIRED
StringUser secret returned during the successful authentication in Connect Layer
operationID
OPTIONAL
StringThe 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
Array<userInputs>Array of UserInputs object, required only if initial request responded with user inputs specification.

You can read more about user inputs specification on Specify User Input

UserInputs Object

idEnumType of input required. Can be one of the following:

otp

secret_question

captcha

pin

confirmation

token


You can read more about user input types on User Input Types
queryStringTextual description of what is required from the user side
indexNumberIs used in case more than one user input is requested.

will always be 0 If only one input is requested.
answerStringUser input that must be submitted. In the response it will always be empty.

Response

CardsArrayAn array containing the cards data of the user.

Is only returned if request was successful

Card Schema

ParameterTypeDescription
cardNumberStringThe card's number as provided by the financial institution.
creditLimitNumberThe account's number as provided by the financial institution.
nameStringThe account's name.
idStringThe account's unique identifier.
currencyObject<Currency>An object containing the account's currency information.
typeCreditThe account type.
- credit
expiryDateDateThe expiry date of the card
statusEnumThe card status:
- blocked
- active
- disabled

Currency Schema

ParameterTypeDescription
codeStringThe ISO 4217 code of the currency.
nameStringThe full name of the currency.

data.getCardBalance

Method is used to retrieve balance on specific card of the user.

Method Description

async getCardBalance(accessToken: string, userSecret: string, cardID: string, operationID?: string, userInputs?: IUserInputs[])

Input Parameters

accessToken
REQUIRED
StringAccess Token obtained using Exchange Token method.

You can read more about how to obtain a permanent token on Obtain an Access Token
userSecret
REQUIRED
StringUser secret returned during the successful authentication in Connect Layer
cardID
REQUIRED
StringCard ID of the card that the balance is requested for.
operationID
OPTIONAL
StringThe 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
Array<userInputs>Array of UserInputs object, required only if initial request responded with user inputs specification.

You can read more about user inputs specification on Specify User Input

UserInputs Object

idEnumType of input required. Can be one of the following:

otp

secret_question

captcha

pin

confirmation

token


You can read more about user input types on User Input Types
queryStringTextual description of what is required from the user side
indexNumberIs used in case more than one user input is requested.

will always be 0 If only one input is requested.
answerStringUser input that must be submitted. In the response it will always be empty.

Response

ParameterTypeDescription
balanceObject< Balance >Object containing the account's balance information.

Balance Schema

ParameterTypeDescription
amountNumberCurrent balance of requested account
accountNumberStringThe account's number as provided by the financial institution.
currencyObject<Currency>An object containing the account's currency information.

Currency Schema

ParameterTypeDescription
codeStringThe ISO 4217 code of the currency.
nameStringThe full name of the currency.

data. getCardTransactions

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).

Method Description

async getCardTransactions(accessToken: string, userSecret: string, cardID: string, fromDate: Date, toDate: Date, operationID?: string, userInputs?: IUserInputs[])

Input Parameters

accessToken
REQUIRED
StringAccess Token obtained using Exchange Token method.

You can read more about how to obtain a permanent token on Obtain an Access Token
userSecret
REQUIRED
StringUser secret returned during the successful authentication in Connect Layer
cardID
REQUIRED
StringCard ID of the card that the transactions are requested for.
fromDate
REQUIRED
DateDate to start transactions from. Format as “YYYY-MM-DD”.
toDate
REQUIRED
DateDate to end transactions on.
Format as “YYYY-MM-DD”.
operationID
OPTIONAL
StringThe 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
Array<userInputs>Array of UserInputs object, required only if initial request responded with user inputs specification.

You can read more about user inputs specification on Specify User Input

UserInputs Object

idEnumType of input required. Can be one of the following:

otp

secret_question

captcha

pin

confirmation

token


You can read more about user input types on User Input Types
queryStringTextual description of what is required from the user side
indexNumberIs used in case more than one user input is requested.

will always be 0 If only one input is requested.
answerStringUser input that must be submitted. In the response it will always be empty.

Response

transactionsArray<Transaction>Array containing the transactional data for the specified period.

Transaction schema

ParameterTypeDescription
afterAmountNumberAccount balance after this transaction was executed.
beforeAmountNumberAccount balance before the transaction was executed.
amountNumberTransaction amount.
dateDateTransaction timestamp as provided by the financial institution (in the financial institution's timezone).
descriptionStringTransaction description as provided by the financial institution.
detailsStringAny extra details provided by the financial institution.
typeEnumSpecifies if the transaction is debit or credit.

- debit

-credit
currencyObject<Currency>Object containing the transaction's currency information.

Currency schema

ParameterTypeDescription
codeStringISO 4217 code of the currency.
nameStringCurrency's full name.

Payment

payment.getBeneficiaries

Method is used to retrieve list of all the beneficiaries already added for a user within a financial institution.

Method Description

async getBeneficiaries(accessToken: string, userSecret: string, operationID?: string, userInputs?: IUserInputs[])

Input Parameters

accessToken
REQUIRED
StringAccess Token obtained using Exchange Token method.

You can read more about how to obtain a permanent token on Obtain an Access Token
userSecret
REQUIRED
StringUser secret returned during the successful authentication in Connect Layer
operationID
OPTIONAL
StringThe 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
Array<userInputs>Array of UserInputs object, required only if initial request responded with user inputs specification.

You can read more about user inputs specification on Specify User Input

UserInputs Object

idEnumType of input required. Can be one of the following:

otp

secret_question

captcha

pin

confirmation

token


You can read more about user input types on User Input Types
queryStringTextual description of what is required from the user side
indexNumberIs used in case more than one user input is requested.

will always be 0 If only one input is requested.
answerStringUser input that must be submitted. In the response it will always be empty.

Response

ParameterTypeDescription
beneficiariesArray<Beneficiaries>Returns beneficiary information per beneficiary, such as their name, iban, account number, type, and ID.

Is only returned if request was successful

Beneficiaries schema

ParameterTypeDescription
nameStringBeneficiary's name.
ibanStringBeneficiary's IBAN.

*Is returned if accountNumber is null
accountNumberStringBeneficiary's account number.

Is returned if iban` is null
statusEnumStatus of beneficiary with the financial institution.

approved

rejected

cancelled

waiting_for_confirmation

modified_for_pending_approval


For further explanation see Beneficiary Statuses
typeEnumType of beneficiary

same

local

intl
idStringBeneficiary's unique identifier.

payment.createBeneficiary

Method is used to add a new beneficiary to enable transfers from the user's account to the beneficiary's.

Method Description

async createBeneficiary(beneficiary: ICBBeneficiary, accessToken: string, userSecret: string, operationID?: string, userInputs?: IUserInputs[])

Input Parameters

accessToken
REQUIRED
StringAccess Token obtained using Exchange Token method.

You can read more about how to obtain a permanent token on Obtain an Access Token
userSecret
REQUIRED
StringUser secret returned during the successful authentication in Connect Layer
beneficiary
REQUIRED
Object<Beneficiary>Beneficiary object that should be added
operationID
OPTIONAL
String
userInputs
OPTIONAL
Array<userInputs>Array of UserInputs object, required only if initial request responded with user inputs specification.

You can read more about user inputs specification on Specify User Input

UserInputs Object

idEnumType of input required. Can be one of the following:

otp

secret_question

captcha

pin

confirmation

token


You can read more about user input types on User Input Types
queryStringTextual description of what is required from the user side
indexNumberIs used in case more than one user input is requested.

will always be 0 If only one input is requested.
answerStringUser input that must be submitted. In the response it will always be empty.

Beneficiary Schema

ParameterTypeDescription
name
REQUIRED
StringName of the beneficiary.
nickname
REQUIRED
StringNickname of the beneficiary.
accountNumber
REQUIRED
StringAccount number of the beneficiary.
type
REQUIRED
EnumType of beneficiary.

- same - beneficiary's bank is the same as the sender's


- local - beneficiary's bank is in the same country>br>

- intl - beneficiary's bank is in a different country

For further explanation see Beneficiary Types
address
REQUIRED
Object<Address>An object containing the address information of the beneficiary.
country
REQUIRED
StringName of the country in all uppercase letters (e.g. “UNITED ARAB EMIRATES”).
sortCode
OPTIONAL
StringFinancial institution’s sort code.
branchAddress
REQUIRED
StringAddress of the financial institution’s specific branch.
branchName
REQUIRED
StringName of the financial institution’s specific branch.
phoneNumber
REQUIRED
StringBeneficiary's phone number.
iban
REQUIRED
StringBeneficiary's IBAN number.
swiftCode
REQUIRED
StringBeneficiary's financial institution's SWIFT code.
addresses
OPTIONAL
Array<String>Specify which webhook URL(s) defined in app settings to send data to. If empty, an update will be sent to all defined webhook URL(s).

Address schema

ParameterTypeDescription
line1
REQUIRED
StringStreet name and number. Note: value should not contain any commas or special characters.
line2
REQUIRED
StringCity name. Note: value should not contain any commas or special characters.
line3
REQUIRED
StringCountry name. Note: value should not contain any commas or special characters.

Response

Method returns standard Base Response. You can find description of standard response in the beginning of the document.

payment.createTransfer

Method is used to initiate a new payment from one account to another account.

❗️

Important

We suggest you use Transfer Auto Flow method instead to initiate a payment. Auto Flow abstracts all the validations and processing logic, required to initiate a transaction using createTransfer method.

You can read about transferAutoFlow further in the document.

Method Description

async createTransfer(transfer: ITransfer, accessToken: string, userSecret: string, operationID?: string, userInputs?: IUserInputs[])

Input Parameters

accessToken
REQUIRED
StringAccess Token obtained using Exchange Token method.

You can read more about how to obtain a permanent token on Obtain an Access Token
userSecret
REQUIRED
StringUser secret returned during the successful authentication in Connect Layer
transfer
REQUIRED
Object<Transfer>Transfer object containing details of the transaction
operationID
OPTIONAL
StringThe 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**
Array<userInputs>Array of UserInputs object, required only if initial request responded with user inputs specification.

You can read more about user inputs specification on Specify User Input

UserInputs Object

idEnumType of input required. Can be one of the following:

otp

secret_question

captcha

pin

confirmation

token


You can read more about user input types on User Input Types
queryStringTextual description of what is required from the user side
indexNumberIs used in case more than one user input is requested.

will always be 0 If only one input is requested.
answerStringUser input that must be submitted. In the response it will always be empty.

Transfer Schema

ParameterTypeDescription
receiverID
REQUIRED
StringAn identifier for the beneficiary that will receive the money. Obtained from the Get Beneficiaries endpoint.

Must be specified if the bank requires receiver to be registered as beneficiary to perform a transaction
amount
REQUIRED
NumberAmount of money to be sent. Must be number rounded to up to 2 decimal points.
senderID
REQUIRED
StringAn identifier for the bank account the user will send money from.

Obtained from the Account - GetAccounts endpoint.
accountNumber
OPTIONAL
StringAccount number where the transfer must be performed
name
OPTIONAL
StringName of the amount receiver
iban
OPTIONAL
Stringiban account where the transfer must be performed

Response

NameTypeDescription
referenceStringTransaction reference number returned by the bank

payment.transferAutoFlow

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.

Method Description

async transferAutoFlow(transfer: ITransferAutoflow, accessToken: string, userSecret: string, operationID?: string, userInputs?: IUserInputs[])

Input Parameters

accessToken
REQUIRED
StringAccess Token obtained using Exchange Token method.

You can read more about how to obtain a permanent token on Obtain an Access Token
userSecret
REQUIRED
StringUser secret returned during the successful authentication in Connect Layer
transfer
REQUIRED
Object<TransferAutoFlow>TransferAutoFlow object containing details of the transaction
operationID
OPTIONAL
StringThe 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
Array<userInputs>Array of UserInputs object, required only if initial request responded with user inputs specification.

You can read more about user inputs specification on Specify User Input

UserInputs Object

idEnumType of input required. Can be one of the following:

otp

secret_question

captcha

pin

confirmation

token


You can read more about user input types on User Input Types
queryStringTextual description of what is required from the user side
indexNumberIs used in case more than one user input is requested.

will always be 0 If only one input is requested.
answerStringUser input that must be submitted. In the response it will always be empty.

Transfer Schema

ParameterTypeDescription
amount
REQUIRED
NumberAmount of money to be sent. Must be number rounded to up to 2 decimal points.
senderID
REQUIRED
StringAn identifier for the bank account the user will send money from.

Obtained from the Account - GetAccounts endpoint.
beneficiary
REQUIRED
Object<Beneficiary>Beneficiary object containing details where the transaction should be transfered

Beneficiary Schema

ParameterTypeDescription
name
REQUIRED
StringName of the beneficiary.
nickname
REQUIRED
StringNickname of the beneficiary.
accountNumber
REQUIRED
StringAccount number of the beneficiary.
address
REQUIRED
Object<Address>An object containing the address information of the beneficiary.
country
REQUIRED
StringName of the country in all uppercase letters (e.g. “UNITED ARAB EMIRATES”).
branchAddress
REQUIRED
StringAddress of the financial institution’s specific branch.
branchName
REQUIRED
StringName of the financial institution’s specific branch.
phoneNumber
REQUIRED
StringBeneficiary's phone number.
iban
REQUIRED
StringBeneficiary's IBAN number.
swiftCode
REQUIRED
StringBeneficiary's financial institution's SWIFT code.
addresses
OPTIONAL
Array<String>Specify which webhook URL(s) defined in app settings to send data to. If empty, an update will be sent to all defined webhook URL(s).

Address schema

ParameterTypeDescription
line1
REQUIRED
StringStreet name and number. Note: value should not contain any commas or special characters.
line2
REQUIRED
StringCity name. Note: value should not contain any commas or special characters.
line3
REQUIRED
StringCountry name. Note: value should not contain any commas or special characters.

Response

NameTypeDescription
referenceStringTransaction reference number returned by the bank

ACH

ach.createPull

Method is used to create an ACH Pull transaction

Method Description

async createPull(accessToken: string, userSecret: string, transfer: IAchPull, operationID?: string, userInputs?: IUserInputs[])

Input Parameters

NameTypeDescription
accessToken
REQUIRED
StringAccess Token obtained using Exchange Token method.

You can read more about how to obtain a permanent token on Obtain an Access Token
userSecret
REQUIRED
StringUser secret returned during the successful authentication in Connect Layer
transfer
REQUIRED
Object<Transfer>Details of the ACH transfer
operationID
OPTIONAL
StringThe 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
Array<userInputs>Array of UserInputs object, required only if initial request responded with user inputs specification.

You can read more about user inputs specification on Specify User Input

Transfer Object

NameTypeDescription
senderIdStringsenderId of the Account from where the amount must be transferred.
amountNumberAmount of the transfer
descriptionStringA message associated with the transfer.

UserInputs Object

NameTypeDescription
idEnumType of input required. Can be one of the following:

otp

secret_question

captcha

pin

confirmation

token


You can read more about user input types on User Input Types
queryStringTextual description of what is required from the user side
indexNumberIs used in case more than one user input is requested.

will always be 0 If only one input is requested.
answerStringUser input that must be submitted. In the response it will always be empty.

Response

Method returns standard Base Response. You can find description of standard response in the beginning of the document.

ach.getPull

Method is used to get an existing ACH Pull transaction

Method Description

async getPull(accessToken: string, userSecret: string, operationID: string, userInputs?: IUserInputs[])

Input Parameters

NameTypeDescription
accessToken
REQUIRED
StringAccess Token obtained using Exchange Token method.

You can read more about how to obtain a permanent token on Obtain an Access Token
userSecret
REQUIRED
StringUser secret returned during the successful authentication in Connect Layer
operationID
REQUIRED
StringThe operationID from a previous call's response. Used to locate the ACH transaction.
userInputs
OPTIONAL
Array<userInputs>Array of UserInputs object, required only if initial request responded with user inputs specification.

You can read more about user inputs specification on Specify User Input

Response

NameTypeDescription
transferObject<Transfer>Details of the ACH transfer

Transfer Object

NameTypeDescription
statusStringStatus of the transfer (ENUM: 'pending', 'completed', 'returned', 'rejected')
amountNumberAmount of the transfer
currencyObject<Currency>Currency type of the transfer

Currency Object

NameTypeDescription
CodeStringCurrency code
NameStringFull name of the Currency