Quickstarts
LinkMoney API
Aggregator Guides
FinSight API
Resources
Privacy
Developer Account
Yodlee Guides
Since FinGoal handles user registration there is no need to add link token
creation or exchange. First, you just need to register with the FinSightAPI, then you're ready to send users to the Link Money Gateway or widget with { auth headers } where they'll link their accounts.
Responses from data dumps can be sent via webhooks or you can call for the data manually via the endpoints listed below.
Yodlee Endpoints
The Link Money API exposes numerous endpoints for developers to interact with our data in a variety of ways. Each collection of endpoints offers access to a different set of functions. Most developers will only require a small portion of these endpoints to fully integrate with Link Money.
URL construction
Depending on which endpoint collection, you may only need to access certain endpoint collections and not others. Endpoint construction is essentially:
- The Base URL - for example,
https://linkmoney-dev.fingoal.com
- The endpoint collection's name - In this case,
yodlee.
- The version - each endpoint collection has separate versioning rather than a holistic version control for the entire api - for example,
v1
. - The endpoint, as specified in each endpoint's documentation.
Some examples include:
https://linkmoney-dev.fingoal.com/v1/yodlee/transactions
Some developers who use Link Money API will be coming from another aggregator, Yodlee. ThoughYodlee's functionality is similar to what we're offering, it has a different call structure from our own. In order to minimize friction during the migration process, Link Money API provides endpoints the clone the Yodlee structure and receive and return Yodlee data.
User
Register User
Endpoint: POST
/user/register
The register user service is used to register a user in Yodlee.
The loginName cannot include spaces and must be between 3 and 150 characters.
locale passed must be one of the supported locales for the customer.
Currency provided in the input will be respected in the derived services and the amount fields in the response will be provided in the preferred currency.
userParam is accepted as a body parameter.
Parameters
Name | Location | Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
user | Request Body | Object | No | Look below at the User Schema in the Request |
Example Request
curl -X POST /user/register \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}" \
-d '{
{
"user": {
"preferences": {
"dateFormat": "string",
"timeZone": "string",
"currency": "AUD",
"locale": "en_US"
},
"address": {
"zip": "string",
"country": "string",
"address3": "string",
"address2": "string",
"city": "string",
"address1": "string",
"state": "string"
},
"loginName": "string",
"name": {
"middle": "string",
"last": "string",
"fullName": "string",
"first": "string"
},
"email": "string",
"segmentName": "string"
}
}
}'
Example Response
{
"user": {
"preferences": {
"dateFormat": "string",
"timeZone": "string",
"currency": "AUD",
"locale": "en_US"
},
"session": {
"userSession": "string"
},
"loginName": "string",
"name": {
"middle": "string",
"last": "string",
"fullName": "string",
"first": "string"
},
"id": 0,
"roleType": "INDIVIDUAL"
}
}
Get User
Endpoint: GET
/user
The get user details service is used to get the user profile information and the application preferences set at the time of user registration.
Parameters
Name | Location | Description |
---|---|---|
access_token | Headers | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
institution_id | Request Body | The ID of the institution to get details about. |
Example Request
curl -X GET /user \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"user": {
"preferences": {
"dateFormat": "string",
"timeZone": "string",
"currency": "AUD",
"locale": "en_US"
},
"address": {
"zip": "string",
"country": "string",
"address3": "string",
"address2": "string",
"city": "string",
"address1": "string",
"state": "string"
},
"loginName": "string",
"name": {
"middle": "string",
"last": "string",
"fullName": "string",
"first": "string"
},
"id": 0,
"roleType": "INDIVIDUAL",
"email": "string",
"segmentName": "string"
}
}
Update User
Endpoint: PUT
/user
The update user details service is used to update user details like name, address, currency preference, etc. Currency provided in the input will be respected in the derived services and the amount fields in the response will be provided in the preferred currency.
Parameters
Name | Location | Data Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
user | Request Body | Object | Yes | Look below at the User Schema in the Request |
Example Request
curl -X PUT /user \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {token}" \
-d '{
"user": {
"preferences": {
"dateFormat": "string",
"timeZone": "string",
"currency": "AUD",
"locale": "en_US"
},
"address": {
"zip": "string",
"country": "string",
"address3": "string",
"address2": "string",
"city": "string",
"address1": "string",
"state": "string"
},
"name": {
"middle": "string",
"last": "string",
"fullName": "string",
"first": "string"
},
"email": "string",
"segmentName": "string"
}
}'
Example Response
The HTTP response code is 204 (Success without content).
Delete User
Endpoint: DELETE
/user/unregister
The delete user service is used to delete or unregister a user from Yodlee. Once deleted, the information related to the users cannot be retrieved.
Parameters
Name | Location | Data Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
Example Request
curl -X DELETE /user/unregister \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
The HTTP response code is 204 (Success without content).
Accounts
Add Manual Account
Endpoint: POST
/accounts
The add account service is used to add manual accounts. The response of add account service includes the account name , account number and Yodlee generated account id. All manual accounts added will be included as part of networth calculation by default. Add manual account support is available for bank, card, investment, insurance and loan container only.
Parameters
Name | Location | Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
account | Request Body | Object | No | CreateAccountInfo |
account.includeInNetWorth | Request Body | String | No | |
account.address | Request Body | Object | No | AccountAddress |
account.address.zip | Request Body | String | No | |
account.address.country | Request Body | String | No | |
account.address.address3 | Request Body | String | No | |
account.address.address2 | Request Body | String | No | |
account.address.city | Request Body | String | No | |
account.address.sourceType | Request Body | String | No | |
account.address.address1 | Request Body | String | No | |
account.address.street | Request Body | String | No | |
account.address.state | Request Body | String | No | |
account.address.type | Request Body | String | No | Enum: "HOME" "BUSINESS" "POBOX" "RETAIL" "OFFICE" "SMALL_BUSINESS" "COMMUNICATION" "PERMANENT" "STATEMENT_ADDRESS" "PAYMENT" "PAYOFF" "UNKNOWN" |
account.accountName | Request Body | String | Yes | [ 1 .. 100 ] characters |
account.accountType | Request Body | String | Yes | [ 1 .. 2147483647 ] characters |
account.dueDate | Request Body | String | No | |
account.memo | Request Body | String | No | [ 0 .. 250 ] characters |
account.homeValue | Request Body | Object | No | Money |
account.homeValue.amount | Request Body | Number | Yes | |
account.homeValue.currency | Request Body | String | Yes | Enum: "AUD" "BRL" "CAD" "EUR" "GBP" "HKD" "IDR" "INR" "JPY" "NZD" "SGD" "USD" "ZAR" "CNY" "VND" "MYR" "CHF" |
account.accountNumber | Request Body | String | No | [ 0 .. 100 ] characters ^[a-zA-Z0-9]+$ |
account.frequency | Request Body | String | No | Enum: "DAILY" "ONE_TIME" "WEEKLY" "EVERY_2_WEEKS" "SEMI_MONTHLY" "MONTHLY" "QUARTERLY" "SEMI_ANNUALLY" "ANNUALLY" "EVERY_2_MONTHS" "EBILL" "FIRST_DAY_MONTHLY" "LAST_DAY_MONTHLY" "EVERY_4_WEEKS" "UNKNOWN" "OTHER" |
account.amountDue | Request Body | Object | No | Money |
account.amountDue.amount | Request Body | Number | Yes | |
account.amountDue.currency | Request Body | String | Yes | Enum: "AUD" "BRL" "CAD" "EUR" "GBP" "HKD" "IDR" "INR" "JPY" "NZD" "SGD" "USD" "ZAR" "CNY" "VND" "MYR" "CHF" |
account.balance | Request Body | Object | No | Money |
account.balance.amount | Request Body | Number | Yes | |
account.balance.currency | Request Body | String | Yes | Enum: "AUD" "BRL" "CAD" "EUR" "GBP" "HKD" "IDR" "INR" "JPY" "NZD" "SGD" "USD" "ZAR" "CNY" "VND" "MYR" "CHF" |
account.nickname | Request Body | String | No | [ 0 .. 50 ] characters |
account.valuationType | Request Body | String | No | Enum: "SYSTEM" "MANUAL" |
Example Request
curl -X POST /accounts \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}" \
-d '{
"account": {
"includeInNetWorth": "string",
"address": {
"zip": "string",
"country": "string",
"address3": "string",
"address2": "string",
"city": "string",
"sourceType": "string",
"address1": "string",
"street": "string",
"state": "string",
"type": "HOME"
},
"accountName": "string",
"accountType": "string",
"dueDate": "string",
"memo": "string",
"homeValue": {
"amount": 0,
"currency": "AUD"
},
"accountNumber": "string",
"frequency": "DAILY",
"amountDue": {
"amount": 0,
"currency": "AUD"
},
"balance": {
"amount": 0,
"currency": "AUD"
},
"nickname": "string",
"valuationType": "SYSTEM"
}
}'
Example Response
{
"account": [
{
"accountName": "string",
"id": 0,
"accountNumber": "string"
}
]
}
Get Accounts
Endpoint: GET
/accounts
The get accounts service provides information about accounts added by the user.
By default, this service returns information for active and to be closed accounts.
If requestId is provided, the accounts that are updated in the context of the requestId will be provided in the response.
Note:
- fullAccountNumber is deprecated and is replaced with fullAccountNumberList in include parameter and response.
- fullAccountNumberList, PII (Personal Identifiable Information) and holder details are not available by default, as it is a premium feature that needs security approval. This will not be available for testing in Sandbox environment.
Parameters
Name | Location | Data Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
accountId | Query Parameters | String | No | Comma separated accountIds. |
container | Query Parameters | String | No | bank/creditCard/investment/insurance/loan/reward/realEstate/otherAssets/otherLiabilities |
include | Query Parameters | String | No | profile, holder, fullAccountNumber, fullAccountNumberList, paymentProfile, autoRefresh
Note:fullAccountNumber is deprecated and is replaced with fullAccountNumberList in include parameter and response. |
providerAccountId | Query Parameters | String | No | Comma separated providerAccountIds. |
requestId | Query Parameters | String | No | The unique identifier that returns contextual data |
status | Query Parameters | String | No | ACTIVE,INACTIVE,TO_BE_CLOSED,CLOSED |
Example Request
curl -X GET /accounts \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"account": [
{
"availableCash": {
"amount": 0,
"currency": "AUD"
},
"includeInNetWorth": true,
"moneyMarketBalance": {
"amount": 0,
"currency": "AUD"
},
"enrollmentDate": "string",
"estimatedDate": "string",
"memo": "string",
"guarantor": "string",
"interestPaidLastYear": {
"amount": 0,
"currency": "AUD"
},
"lastUpdated": "string",
"balance": {
"amount": 0,
"currency": "AUD"
},
"homeInsuranceType": "HOME_OWNER",
"id": 0,
"cash": {
"amount": 0,
"currency": "AUD"
},
"totalCreditLine": {
"amount": 0,
"currency": "AUD"
},
"providerName": "string",
"valuationType": "SYSTEM",
"marginBalance": {
"amount": 0,
"currency": "AUD"
},
"apr": 0,
"availableCredit": {
"amount": 0,
"currency": "AUD"
},
"currentBalance": {
"amount": 0,
"currency": "AUD"
},
"isManual": true,
"profile": {
"identifier": [
{
"type": "NIE",
"value": "string"
}
],
"address": [
{
"zip": "string",
"country": "string",
"address3": "string",
"address2": "string",
"city": "string",
"sourceType": "string",
"address1": "string",
"street": "string",
"state": "string",
"type": "HOME"
}
],
"phoneNumber": [
{
"type": "HOME",
"value": "string"
}
],
"email": [
{
"type": "PRIMARY",
"value": "string"
}
]
},
"escrowBalance": {
"amount": 0,
"currency": "AUD"
},
"nextLevel": "string",
"classification": "OTHER",
"loanPayoffAmount": {
"amount": 0,
"currency": "AUD"
},
"interestRateType": "FIXED",
"loanPayByDate": "string",
"faceAmount": {
"amount": 0,
"currency": "AUD"
},
"policyFromDate": "string",
"premiumPaymentTerm": "string",
"policyTerm": "string",
"repaymentPlanType": "STANDARD",
"availableBalance": {
"amount": 0,
"currency": "AUD"
},
"accountStatus": "ACTIVE",
"lifeInsuranceType": "OTHER",
"fullAccountNumber": "string",
"premium": {
"amount": 0,
"currency": "AUD"
},
"aggregationSource": "SYSTEM",
"overDraftLimit": {
"amount": 0,
"currency": "AUD"
},
"nickname": "string",
"term": "string",
"interestRate": 0,
"deathBenefit": {
"amount": 0,
"currency": "AUD"
},
"address": {
"zip": "string",
"country": "string",
"address3": "string",
"address2": "string",
"city": "string",
"sourceType": "string",
"address1": "string",
"street": "string",
"state": "string",
"type": "HOME"
},
"cashValue": {
"amount": 0,
"currency": "AUD"
},
"holder": [
{
"identifier": [
{
"type": "NIE",
"value": "string"
}
],
"gender": "string",
"ownership": "PRIMARY",
"name": {
"middle": "string",
"last": "string",
"fullName": "string",
"first": "string"
}
}
],
"401kLoan": {
"amount": 0,
"currency": "AUD"
},
"homeValue": {
"amount": 0,
"currency": "AUD"
},
"accountNumber": "string",
"createdDate": "string",
"interestPaidYTD": {
"amount": 0,
"currency": "AUD"
},
"providerAccountId": 0,
"collateral": "string",
"dataset": [
{
"lastUpdated": "string",
"updateEligibility": "ALLOW_UPDATE",
"additionalStatus": "LOGIN_IN_PROGRESS",
"nextUpdateScheduled": "string",
"name": "BASIC_AGG_DATA",
"lastUpdateAttempt": "string"
}
],
"runningBalance": {
"amount": 0,
"currency": "AUD"
},
"sourceId": "string",
"dueDate": "string",
"frequency": "DAILY",
"maturityAmount": {
"amount": 0,
"currency": "AUD"
},
"associatedProviderAccountId": [
0
],
"isAsset": true,
"principalBalance": {
"amount": 0,
"currency": "AUD"
},
"totalCashLimit": {
"amount": 0,
"currency": "AUD"
},
"maturityDate": "string",
"minimumAmountDue": {
"amount": 0,
"currency": "AUD"
},
"annualPercentageYield": 0,
"accountType": "string",
"originationDate": "string",
"totalVestedBalance": {
"amount": 0,
"currency": "AUD"
},
"rewardBalance": [
{
"expiryDate": "string",
"balanceToReward": "string",
"balanceType": "EXPIRING_BALANCE",
"balance": 0,
"description": "string",
"balanceToLevel": "string",
"units": "string"
}
],
"sourceAccountStatus": "IN_REPAYMENT",
"derivedApr": 0,
"policyEffectiveDate": "string",
"totalUnvestedBalance": {
"amount": 0,
"currency": "AUD"
},
"annuityBalance": {
"amount": 0,
"currency": "AUD"
},
"accountName": "string",
"totalCreditLimit": {
"amount": 0,
"currency": "AUD"
},
"policyStatus": "ACTIVE",
"shortBalance": {
"amount": 0,
"currency": "AUD"
},
"lender": "string",
"lastEmployeeContributionAmount": {
"amount": 0,
"currency": "AUD"
},
"providerId": "string",
"lastPaymentDate": "string",
"primaryRewardUnit": "string",
"lastPaymentAmount": {
"amount": 0,
"currency": "AUD"
},
"remainingBalance": {
"amount": 0,
"currency": "AUD"
},
"userClassification": "BUSINESS",
"bankTransferCode": [
{
"id": "string",
"type": "BSB"
}
],
"expirationDate": "string",
"coverage": [
{
"amount": [
{
"cover": {
"amount": 0,
"currency": "AUD"
},
"unitType": "PER_FAMILY",
"type": "DEDUCTIBLE",
"limitType": "IN_NETWORK",
"met": {
"amount": 0,
"currency": "AUD"
}
}
],
"planType": "PPO",
"endDate": "string",
"type": "VISION",
"startDate": "string"
}
],
"cashApr": 0,
"autoRefresh": {
"additionalStatus": "SCHEDULED",
"asOfDate": "string",
"status": "ENABLED"
},
"oauthMigrationStatus": "IN_PROGRESS",
"displayedName": "string",
"fullAccountNumberList": {
"paymentAccountNumber": "string",
"unmaskedAccountNumber": "string"
},
"amountDue": {
"amount": 0,
"currency": "AUD"
},
"currentLevel": "string",
"originalLoanAmount": {
"amount": 0,
"currency": "AUD"
},
"policyToDate": "string",
"loanPayoffDetails": {
"payByDate": "string",
"payoffAmount": {
"amount": 0,
"currency": "AUD"
},
"outstandingBalance": {
"amount": 0,
"currency": "AUD"
}
},
"paymentProfile": {
"identifier": {
"type": "REFERENCE_NUMBER",
"value": "string"
},
"address": [
{
"zip": "string",
"country": "string",
"address3": "string",
"address2": "string",
"city": "string",
"sourceType": "string",
"address1": "string",
"street": "string",
"state": "string",
"type": "HOME"
}
],
"paymentBankTransferCode": {
"id": "string",
"type": "ROUTING_NUMBER"
}
},
"CONTAINER": "bank",
"lastEmployeeContributionDate": "string",
"lastPayment": {
"amount": 0,
"currency": "AUD"
},
"recurringPayment": {
"amount": 0,
"currency": "AUD"
}
}
]
}
Get Account Details
Endpoint: GET
/accounts/:accountId
The get account details service provides detailed information of an account.
Note:
- fullAccountNumber is deprecated and is replaced with fullAccountNumberList in include parameter and response.
Parameters
Name | Location | Data Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
include | Query Parameters | String | No | profile, holder, fullAccountNumber, fullAccountNumberList, paymentProfile, autoRefresh
Note:fullAccountNumber is deprecated and is replaced with fullAccountNumberList in include parameter and response. |
Example Request
curl -X GET /accounts/:accountId \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"account": [
{
"availableCash": {
"amount": 0,
"currency": "AUD"
},
"includeInNetWorth": true,
"moneyMarketBalance": {
"amount": 0,
"currency": "AUD"
},
"enrollmentDate": "string",
"estimatedDate": "string",
"memo": "string",
"guarantor": "string",
"interestPaidLastYear": {
"amount": 0,
"currency": "AUD"
},
"lastUpdated": "string",
"balance": {
"amount": 0,
"currency": "AUD"
},
"homeInsuranceType": "HOME_OWNER",
"id": 0,
"cash": {
"amount": 0,
"currency": "AUD"
},
"totalCreditLine": {
"amount": 0,
"currency": "AUD"
},
"providerName": "string",
"valuationType": "SYSTEM",
"marginBalance": {
"amount": 0,
"currency": "AUD"
},
"apr": 0,
"availableCredit": {
"amount": 0,
"currency": "AUD"
},
"currentBalance": {
"amount": 0,
"currency": "AUD"
},
"isManual": true,
"profile": {
"identifier": [
{
"type": "NIE",
"value": "string"
}
],
"address": [
{
"zip": "string",
"country": "string",
"address3": "string",
"address2": "string",
"city": "string",
"sourceType": "string",
"address1": "string",
"street": "string",
"state": "string",
"type": "HOME"
}
],
"phoneNumber": [
{
"type": "HOME",
"value": "string"
}
],
"email": [
{
"type": "PRIMARY",
"value": "string"
}
]
},
"escrowBalance": {
"amount": 0,
"currency": "AUD"
},
"nextLevel": "string",
"classification": "OTHER",
"loanPayoffAmount": {
"amount": 0,
"currency": "AUD"
},
"interestRateType": "FIXED",
"loanPayByDate": "string",
"faceAmount": {
"amount": 0,
"currency": "AUD"
},
"policyFromDate": "string",
"premiumPaymentTerm": "string",
"policyTerm": "string",
"repaymentPlanType": "STANDARD",
"availableBalance": {
"amount": 0,
"currency": "AUD"
},
"accountStatus": "ACTIVE",
"lifeInsuranceType": "OTHER",
"fullAccountNumber": "string",
"premium": {
"amount": 0,
"currency": "AUD"
},
"aggregationSource": "SYSTEM",
"overDraftLimit": {
"amount": 0,
"currency": "AUD"
},
"nickname": "string",
"term": "string",
"interestRate": 0,
"deathBenefit": {
"amount": 0,
"currency": "AUD"
},
"address": {
"zip": "string",
"country": "string",
"address3": "string",
"address2": "string",
"city": "string",
"sourceType": "string",
"address1": "string",
"street": "string",
"state": "string",
"type": "HOME"
},
"cashValue": {
"amount": 0,
"currency": "AUD"
},
"holder": [
{
"identifier": [
{
"type": "NIE",
"value": "string"
}
],
"gender": "string",
"ownership": "PRIMARY",
"name": {
"middle": "string",
"last": "string",
"fullName": "string",
"first": "string"
}
}
],
"401kLoan": {
"amount": 0,
"currency": "AUD"
},
"homeValue": {
"amount": 0,
"currency": "AUD"
},
"accountNumber": "string",
"createdDate": "string",
"interestPaidYTD": {
"amount": 0,
"currency": "AUD"
},
"providerAccountId": 0,
"collateral": "string",
"dataset": [
{
"lastUpdated": "string",
"updateEligibility": "ALLOW_UPDATE",
"additionalStatus": "LOGIN_IN_PROGRESS",
"nextUpdateScheduled": "string",
"name": "BASIC_AGG_DATA",
"lastUpdateAttempt": "string"
}
],
"runningBalance": {
"amount": 0,
"currency": "AUD"
},
"sourceId": "string",
"dueDate": "string",
"frequency": "DAILY",
"maturityAmount": {
"amount": 0,
"currency": "AUD"
},
"associatedProviderAccountId": [
0
],
"isAsset": true,
"principalBalance": {
"amount": 0,
"currency": "AUD"
},
"totalCashLimit": {
"amount": 0,
"currency": "AUD"
},
"maturityDate": "string",
"minimumAmountDue": {
"amount": 0,
"currency": "AUD"
},
"annualPercentageYield": 0,
"accountType": "string",
"originationDate": "string",
"totalVestedBalance": {
"amount": 0,
"currency": "AUD"
},
"rewardBalance": [
{
"expiryDate": "string",
"balanceToReward": "string",
"balanceType": "EXPIRING_BALANCE",
"balance": 0,
"description": "string",
"balanceToLevel": "string",
"units": "string"
}
],
"sourceAccountStatus": "IN_REPAYMENT",
"derivedApr": 0,
"policyEffectiveDate": "string",
"totalUnvestedBalance": {
"amount": 0,
"currency": "AUD"
},
"annuityBalance": {
"amount": 0,
"currency": "AUD"
},
"accountName": "string",
"totalCreditLimit": {
"amount": 0,
"currency": "AUD"
},
"policyStatus": "ACTIVE",
"shortBalance": {
"amount": 0,
"currency": "AUD"
},
"lender": "string",
"lastEmployeeContributionAmount": {
"amount": 0,
"currency": "AUD"
},
"providerId": "string",
"lastPaymentDate": "string",
"primaryRewardUnit": "string",
"lastPaymentAmount": {
"amount": 0,
"currency": "AUD"
},
"remainingBalance": {
"amount": 0,
"currency": "AUD"
},
"userClassification": "BUSINESS",
"bankTransferCode": [
{
"id": "string",
"type": "BSB"
}
],
"expirationDate": "string",
"coverage": [
{
"amount": [
{
"cover": {
"amount": 0,
"currency": "AUD"
},
"unitType": "PER_FAMILY",
"type": "DEDUCTIBLE",
"limitType": "IN_NETWORK",
"met": {
"amount": 0,
"currency": "AUD"
}
}
],
"planType": "PPO",
"endDate": "string",
"type": "VISION",
"startDate": "string"
}
],
"cashApr": 0,
"autoRefresh": {
"additionalStatus": "SCHEDULED",
"asOfDate": "string",
"status": "ENABLED"
},
"oauthMigrationStatus": "IN_PROGRESS",
"displayedName": "string",
"fullAccountNumberList": {
"paymentAccountNumber": "string",
"unmaskedAccountNumber": "string"
},
"amountDue": {
"amount": 0,
"currency": "AUD"
},
"currentLevel": "string",
"originalLoanAmount": {
"amount": 0,
"currency": "AUD"
},
"policyToDate": "string",
"loanPayoffDetails": {
"payByDate": "string",
"payoffAmount": {
"amount": 0,
"currency": "AUD"
},
"outstandingBalance": {
"amount": 0,
"currency": "AUD"
}
},
"paymentProfile": {
"identifier": {
"type": "REFERENCE_NUMBER",
"value": "string"
},
"address": [
{
"zip": "string",
"country": "string",
"address3": "string",
"address2": "string",
"city": "string",
"sourceType": "string",
"address1": "string",
"street": "string",
"state": "string",
"type": "HOME"
}
],
"paymentBankTransferCode": {
"id": "string",
"type": "ROUTING_NUMBER"
}
},
"CONTAINER": "bank",
"lastEmployeeContributionDate": "string",
"lastPayment": {
"amount": 0,
"currency": "AUD"
},
"recurringPayment": {
"amount": 0,
"currency": "AUD"
}
}
]
}
The HTTP response code is 204 (Success without content).
Get Historical Balances
Endpoint: GET
/accounts/historicalBalances
The historical balances service is used to retrieve the historical balances for an account or a user.
Historical balances are daily (D), weekly (W), and monthly (M).
The interval input should be passed as D, W, and M to retrieve the desired historical balances. The default interval is daily (D).
When no account id is provided, historical balances of the accounts that are active, to be closed, and closed are provided in the response.
If the fromDate and toDate are not passed, the last 90 days of data will be provided.
The fromDate and toDate should be passed in the YYYY-MM-DD format.
The date field in the response denotes the date for which the balance is requested.
includeCF needs to be sent as true if the customer wants to return carried forward balances for a date when the data is not available.
asofDate field in the response denotes the date as of which the balance was updated for that account.
When there is no balance available for a requested date and if includeCF is sent as true, the previous date for which the balance is available is provided in the response.
When there is no previous balance available, no data will be sent.
By default, pagination is available for the historicalBalances entity in this API. The skip and top parameters are used for pagination. In the skip and top parameters, pass the number of records to be skipped and retrieved, respectively. The response header provides the links to retrieve the next and previous set of transactions. The API will only retrieve a maximum 500 records by default when values for skip and top parameters are not provided.
Parameters
Name | Location | Data Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
accountId | Query Parameters | String | No | accountId |
fromDate | Query Parameters | String | No | from date for balance retrieval (YYYY-MM-DD) |
includeCF | Query Parameters | Boolean | No | Consider carry forward logic for missing balances |
interval | Query Parameters | String | No | D-daily, W-weekly or M-monthly |
skip | Query Parameters | Number | No | skip (Min 0) |
toDate | Query Parameters | String | No | toDate for balance retrieval (YYYY-MM-DD) |
top | Query Parameters | Number | No | top (Max 500) |
Example Request
curl -X GET /accounts/historicalBalances \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"account": [
{
"historicalBalances": [
{
"date": "string",
"isAsset": true,
"balance": {
"amount": 0,
"currency": "AUD"
},
"asOfDate": "string",
"dataSourceType": "S"
}
],
"id": 0
}
]
}
Update Account
Endpoint: PUT
/accounts/:accountId
The update account service is used to update manual and aggregated accounts.
The HTTP response code is 204 (Success without content).
Update manual account support is available for bank, card, investment, insurance, loan, otherAssets, otherLiabilities and realEstate containers only.
Note:
- A real estate account update is only supported for SYSTEM and MANUAL valuation type.
- Attribute isEbillEnrolled is deprecated as it is applicable for bill accounts only.
Parameters
Name | Location | Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
account | Request Body | Object | No | UpdateAccountInfo |
account.container | Request Body | String | No | Enum: "bank" "creditCard" "investment" "insurance" "loan" "reward" "realEstate" "otherAssets" "otherLiabilities" |
account.includeInNetWorth | Request Body | String | No | |
account.address | Request Body | Object | No | AccountAddress |
account.address.zip | Request Body | String | No | |
account.address.country | Request Body | String | No | |
account.address.address3 | Request Body | String | No | |
account.address.address2 | Request Body | String | No | |
account.address.city | Request Body | String | No | |
account.address.sourceType | Request Body | String | No | |
account.address.address1 | Request Body | String | No | |
account.address.street | Request Body | String | No | |
account.address.state | Request Body | String | No | |
account.address.type | Request Body | String | No | Enum: "HOME" "BUSINESS" "POBOX" "RETAIL" "OFFICE" "SMALL_BUSINESS" "COMMUNICATION" "PERMANENT" "STATEMENT_ADDRESS" "PAYMENT" "PAYOFF" "UNKNOWN" |
account.accountName | Request Body | String | No | [ 1 .. 100 ] characters |
account.accountType | Request Body | String | No | [ 1 .. 2147483647 ] characters |
account.dueDate | Request Body | String | No | |
account.memo | Request Body | String | No | [ 0 .. 250 ] characters |
account.homeValue | Request Body | Object | No | Money |
account.homeValue.amount | Request Body | Number | No | |
account.homeValue.currency | Request Body | String | No | Enum: "AUD" "BRL" "CAD" "EUR" "GBP" "HKD" "IDR" "INR" "JPY" "NZD" "SGD" "USD" "ZAR" "CNY" "VND" "MYR" "CHF" |
account.accountNumber | Request Body | String | No | [ 0 .. 100 ] characters ^[a-zA-Z0-9]+$ |
account.frequency | Request Body | String | No | Enum: "DAILY" "ONE_TIME" "WEEKLY" "EVERY_2_WEEKS" "SEMI_MONTHLY" "MONTHLY" "QUARTERLY" "SEMI_ANNUALLY" "ANNUALLY" "EVERY_2_MONTHS" "EBILL" "FIRST_DAY_MONTHLY" "LAST_DAY_MONTHLY" "EVERY_4_WEEKS" "UNKNOWN" "OTHER" |
account.accountStatus | Request Body | String | No | Enum: "ACTIVE" "INACTIVE" "TO_BE_CLOSED" "CLOSED" "DELETED" |
account.amountDue | Request Body | Object | No | Money |
account.amountDue.amount | Request Body | Number | No | |
account.amountDue.currency | Request Body | String | No | Enum: "AUD" "BRL" "CAD" "EUR" "GBP" "HKD" "IDR" "INR" "JPY" "NZD" "SGD" "USD" "ZAR" "CNY" "VND" "MYR" "CHF" |
account.balance | Request Body | Object | No | Money |
account.balance.amount | Request Body | Number | No | |
account.balance.currency | Request Body | String | No | Enum: "AUD" "BRL" "CAD" "EUR" "GBP" "HKD" "IDR" "INR" "JPY" "NZD" "SGD" "USD" "ZAR" "CNY" "VND" "MYR" "CHF" |
account.isEbillEnrolled | Request Body | String | No | [ 0 .. 50 ] characters |
account.nickname | Request Body | String | No | [ 0 .. 50 ] characters |
Example Request
curl -X PUT /accounts/:accountId \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}" \
-d '{
"account": {
"container": "bank",
"includeInNetWorth": "string",
"address": {
"zip": "string",
"country": "string",
"address3": "string",
"address2": "string",
"city": "string",
"sourceType": "string",
"address1": "string",
"street": "string",
"state": "string",
"type": "HOME"
},
"accountName": "string",
"dueDate": "string",
"memo": "string",
"homeValue": {
"amount": 0,
"currency": "AUD"
},
"accountNumber": "string",
"frequency": "DAILY",
"accountStatus": "ACTIVE",
"amountDue": {
"amount": 0,
"currency": "AUD"
},
"balance": {
"amount": 0,
"currency": "AUD"
},
"isEbillEnrolled": "string",
"nickname": "string"
}
}'
Example Response
The HTTP response code is 204 (Success without content).
Delete Account
Endpoint: DELETE
/accounts/:accountId
The delete account service allows an account to be deleted.
Parameters
Name | Location | Data Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
Example Request
curl -X DELETE /accounts/:accountId \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
The HTTP response code is 204 (Success without content).
Transactions
Get Transactions
Endpoint: GET
/transactions
The Transaction service is used to get a list of transactions for a user.By default, this service returns the last 30 days of transactions from today's date.The keyword parameter performs a contains search on the original, consumer, and simple description attributes, replace the special characters #, &, and + with percent-encoding values %23, %26, and %2B respectively. Eg: for -Debit# , pass the input as -Debit%23.Values for categoryId parameter can be fetched from get transaction category list service.The categoryId is used to filter transactions based on system-defined category as well as user-defined category.User-defined categoryIds should be provided in the filter with the prefix ''U''. E.g. U10002The skip and top parameters are used for pagination. In the skip and top parameters pass the number of records to be skipped and retrieved, respectively. The response header provides the links to retrieve the next and previous set of transactions.Double quotes in the merchant name will be prefixed by backslashes (\) in the response, e.g. Toys "R" Us.sourceId is a unique ID that the provider site has assigned to the transaction. The source ID is only available for the pre-populated accounts. Pre-populated accounts are the accounts that the FI customers shares with Yodlee, so that the user does not have to add or aggregate those accounts.Note
- TDE is made available for bank and card accounts. The address field in the response is available only when the TDE key is turned on.
- The pagination feature is available by default. If no values are passed in the skip and top parameters, the API will only return the first 500 transactions.
- This service supports the localization feature and accepts locale as a header parameter.
Parameters
Name | Location | Description | Type | Is Required ? |
---|---|---|---|---|
access_token | Headers | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. | String | Yes |
accountId | Query Parameters | Comma separated accountIds | String | No |
baseType | Query Parameters | DEBIT/CREDIT | String | No |
categoryId | Query Parameters | Comma separated categoryIds | String | No |
categoryType | Query Parameters | Transaction Category Type(UNCATEGORIZE, INCOME, TRANSFER, EXPENSE or DEFERRED_COMPENSATION) | String | No |
container | Query Parameters | bank/creditCard/investment/insurance/loan | String | No |
detailCategoryId | Query Parameters | Comma separated detailCategoryIds | String | No |
fromDate | Query Parameters | Transaction from date(YYYY-MM-DD) | String | No |
highLevelCategoryId | Query Parameters | Comma separated highLevelCategoryIds | String | No |
keyword | Query Parameters | Transaction search text | String | No |
skip | Query Parameters | skip (Min 0) | String | No |
toDate | Query Parameters | Transaction end date (YYYY-MM-DD) | String | No |
top | Query Parameters | top (Max 500) | String | No |
type | Query Parameters | Transaction Type(SELL,SWEEP, etc.) for bank/creditCard/investment | String | No |
Example Request
curl -X GET /transactions \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"transaction": [
{
"date": "string",
"sourceId": "string",
"symbol": "string",
"cusipNumber": "string",
"highLevelCategoryId": 0,
"detailCategoryId": 0,
"description": {
"security": "string",
"original": "string",
"simple": "string",
"consumer": "string"
},
"memo": "string",
"settleDate": "string",
"type": "string",
"baseType": "CREDIT",
"categorySource": "SYSTEM",
"principal": {
"amount": 0,
"currency": "AUD"
},
"lastUpdated": "string",
"interest": {
"amount": 0,
"currency": "AUD"
},
"price": {
"amount": 0,
"currency": "AUD"
},
"commission": {
"amount": 0,
"currency": "AUD"
},
"id": 0,
"amount": {
"amount": 0,
"currency": "AUD"
},
"checkNumber": "string",
"quantity": 0,
"valoren": "string",
"isManual": true,
"merchant": {
"website": "string",
"address": {
"zip": "string",
"country": "string",
"address3": "string",
"address2": "string",
"city": "string",
"sourceType": "string",
"address1": "string",
"street": "string",
"state": "string",
"type": "HOME"
},
"contact": {
"phone": "string",
"email": "string"
},
"categoryLabel": [
"string"
],
"coordinates": {
"latitude": 0,
"longitude": 0
},
"name": "string",
"id": "string",
"source": "YODLEE"
},
"sedol": "string",
"transactionDate": "string",
"categoryType": "TRANSFER",
"accountId": 0,
"createdDate": "string",
"sourceType": "AGGREGATED",
"CONTAINER": "bank",
"postDate": "string",
"parentCategoryId": 0,
"subType": "AUTH_HOLD",
"category": "string",
"runningBalance": {
"amount": 0,
"currency": "AUD"
},
"categoryId": 0,
"holdingDescription": "string",
"isin": "string",
"status": "POSTED"
}
]
}
Update Transaction
Endpoint: PUT
/transactions/:transactionId
The update transaction service is used to update the category,consumer description, memo for a transaction.
Parameters
Name | Location | Data Type | Description | Is Required ? |
---|---|---|---|---|
access_token | Headers | String | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. | Yes |
transaction | Request Body | Object | UpdateTransaction | Yes |
transaction.categorySource | Request Body | String | Enum: "SYSTEM" "USER" | Yes |
transaction.container | Request Body | String | Enum: "bank" "creditCard" "investment" "insurance" "loan" "reward" "realEstate" "otherAssets" "otherLiabilities" | Yes |
transaction.description | Request Body | Object | No | |
transaction.description.consumer | Request Body | String | The description of the transaction as defined by the consumer. The consumer can define or provide more details of the transaction in this field.
Applicable containers: creditCard, insurance, loan | No |
transaction.memo | Request Body | String | No | |
transaction.categoryId | Request Body | Number | Yes |
Example Request
curl -X PUT /transactions/:transactionId \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}" \
-d '{
"transaction": {
"categorySource": "SYSTEM",
"container": "bank",
"description": {
"consumer": "string"
},
"memo": "string",
"categoryId": 0
}
}'
Example Response
The HTTP response code is 204 (Success without content).
Get Transactions Count
Endpoint: GET
/transactions/count
The count service provides the total number of transactions for a specific user depending on the input parameters passed.
If you are implementing pagination for transactions, call this endpoint before calling GET /transactions to know the number of transactions that are returned for the input parameters passed.
The functionality of the input parameters remains the same as that of the GET /transactions endpoint.
Parameters
Name | Location | Description | Type | Is Required ? |
---|---|---|---|---|
access_token | Headers | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. | String | Yes |
accountId | Query Parameters | Comma separated accountIds | String | No |
baseType | Query Parameters | DEBIT/CREDIT | String | No |
categoryId | Query Parameters | Comma separated categoryIds | String | No |
categoryType | Query Parameters | Transaction Category Type(UNCATEGORIZE, INCOME, TRANSFER, EXPENSE or DEFERRED_COMPENSATION) | String | No |
container | Query Parameters | bank/creditCard/investment/insurance/loan | String | No |
detailCategoryId | Query Parameters | Comma separated detailCategoryIds | String | No |
fromDate | Query Parameters | Transaction from date(YYYY-MM-DD) | String | No |
highLevelCategoryId | Query Parameters | Comma separated highLevelCategoryIds | String | No |
keyword | Query Parameters | Transaction search text | String | No |
toDate | Query Parameters | Transaction end date (YYYY-MM-DD) | String | No |
type | Query Parameters | Transaction Type(SELL,SWEEP, etc.) | String | No |
Example Request
curl -X GET /transactions/count \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}" \
Example Response
{
"transaction": {
"TOTAL": {
"count": 0
}
}
}
Create Category
Endpoint: POST
/transactions/categories
The create transaction categories service is used to create user-defined categories for a system-defined category.
The parentCategoryId is the system-defined category id.This can be retrieved using get transaction categories service.
The categoryName can accept minimum of 1, maximum of 50 alphanumeric or special characters.
Parameters
Name | Location | Data Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
parentCategoryId | Request Body | Number | Yes | >= 1 |
categoryName | Request Body | String | No | [ 1 .. 50 ] characters |
Example Request
curl -X POST /transactions/categories \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}" \
-d '{
"parentCategoryId": 1,
"categoryName": "string"
}'
Example Response
The HTTP response code is 201 (Created successfully).
Get Transaction Category List
Endpoint: GET
/transactions/categories
The categories service returns the list of available transaction categories. High level category is returned in the response only if it is opted by the customer. When invoked by passing the cobrand session or admin access token, this service returns the supported transaction categories at the cobrand level. When invoked by passing the cobrand session and the user session or user access token, this service returns the transaction categories along with user-defined categories. Double quotes in the user-defined category name will be prefixed by backslashes (\) in the response, e.g. Toys "R" Us. Source and id are the primary attributes of the category entity.
Note:
- This service supports the localization feature and accepts locale as a header parameter.
Parameters
Name | Location | Data Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
Example Request
curl -X GET /transactions/categories \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}" \
Example Response
{
"transactionCategory": [
{
"highLevelCategoryName": "string",
"defaultHighLevelCategoryName": "string",
"highLevelCategoryId": 0,
"detailCategory": [
{
"name": "string",
"id": 0
}
],
"id": 0,
"source": "SYSTEM",
"category": "string",
"classification": "PERSONAL",
"type": "TRANSFER",
"defaultCategoryName": "string"
}
]
}
Update Category
Endpoint: PUT
/transactions/categories
The update transaction categories service is used to update the transaction category name for a high level category, a system-defined category and a user-defined category. The renamed category can be set back to the original name by passing an empty string for categoryName. The categoryName can accept minimum of 1, maximum of 50 alphanumeric or special characters.
Parameters
Name | Location | Data Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
highLevelCategoryName | Request Body | String | No | |
id | Request Body | Number | Yes | >= 1 |
source | Request Body | String | Yes | Enum: "SYSTEM" "USER" |
categoryName | Request Body | String | No |
Example Request
curl -X PUT /transactions/categories \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}" \
-d '{
"highLevelCategoryName": "string",
"id": 1,
"source": "SYSTEM",
"categoryName": "string"
}'
Example Response
The HTTP response code is 204 (Success without content).
Delete Category
Endpoint: DELETE
/transactions/categories/:categoryId
The delete transaction categories service is used to delete the given user-defined category.
Parameters
Name | Location | Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
Example Request
curl -X DELETE /transactions/categories/:categoryId \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
The HTTP response code is 204 (Success without content).
Create or Run Transaction Categorization Rule
Endpoint: POST
/transactions/categories/rules
The Create or Run Transaction Categorization Rule endpoint is used to: Create transaction categorization rules for both system and user-defined categories. Run all the transaction categorization rules to categorize transactions by calling the endpoint with action=run as the query parameter.
The input body parameters to create transaction categorization rules follow: categoryId - This field is mandatory and numeric priority - This field is optional and numeric. Priority decides the order in which the rule gets applied on transactions. ruleClause - This field is mandatory and should contain at least one rule field - The value can be description or amount
If the field value is description then,
- operation - value can be stringEquals or stringContains
- value - value should be min of 3 and max of 50 characters
If the field value is amount then,
- operation - value can be numberEquals, numberLessThan, numberLessThanEquals, numberGreaterThan or numberGreaterThanEquals
- value - min value 0 and a max value of 99999999999.99 is allowed
Parameters
Name | Location | Data Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
action | Query Parameters | String | No | To run rules, pass action=run. Only value run is supported |
ruleParam | Query Parameters | String | No | rules(JSON format) to categorize the transactions |
Example Request
curl -X POST /transactions/categories/rules \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}" \
-d '{ "action": <string>, "ruleParam": <string> }'
Example Response
The HTTP response code is 201 (Created Successfully).
Get Transaction Categorization Rules
Endpoint: GET
/transactions/categories/rules
The categories service returns the list of available transaction categories.High level category is returned in the response only if it is opted by the customer.When invoked by passing the cobrand session or admin access token, this service returns the supported transaction categories at the cobrand level.When invoked by passing the cobrand session and the user session or user access token, this service returns the transaction categoriesalong with user-defined categories.Double quotes in the user-defined category name will be prefixed by backslashes (\) in the response,e.g. Toys "R" Us.Source and id are the primary attributes of the category entity.
Note:
- This service supports the localization feature and accepts locale as a header parameter.
Parameters
Name | Location | Description |
---|---|---|
access_token | Headers | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
Example Request
curl -X GET /transactions/categories/rules \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"transactionCategory": [
{
"highLevelCategoryName": "string",
"defaultHighLevelCategoryName": "string",
"highLevelCategoryId": 0,
"detailCategory": [
{
"name": "string",
"id": 0
}
],
"id": 0,
"source": "SYSTEM",
"category": "string",
"classification": "PERSONAL",
"type": "TRANSFER",
"defaultCategoryName": "string"
}
]
}
Update Transaction Categorization Rule
Endpoint: PUT
/transactions/categories/rules/:transactionCategoryRuleId
The update transaction categorization rule service is used to update a categorization rule for both system-defined category as well as user-defined category.
ruleParam JSON input should be as explained in the create transaction categorization rule service.
Parameters
Name | Location | Data Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
rule | Request Body | Object | Yes | TransactionCategorizationRuleInfo |
rule.ruleClause | Request Body | [Object] | Yes | FieldOperation |
rule.ruleClause[].field | Request Body | String | Yes | Enum: "amount" "description"
Field for which the clause is created.
Applicable containers: bank, creditCard, investment, insurance, loan
Applicable Values:
amount
description |
rule.ruleClause[].operation | Request Body | String | Yes | Enum: "numberEquals" "numberLessThan" "numberLessThanEquals" "numberGreaterThan" "numberGreaterThanEquals" "stringEquals" "stringContains"
Operation for which the clause is created.
Applicable containers: bank, creditCard, investment, insurance, loan
Applicable values (depends on the value of field):
field is description -> operation can be
stringEquals
stringContains
field is amount -> operation can be
numberEquals
numberLessThan
numberLessThanEquals
numberGreaterThan
numberGreaterThanEquals |
rule.ruleClause[].value | Request Body | Object | Yes | The value would be the amount value in case of amount based rule clause or the string value in case of description based rule clause.
Applicable containers: bank, creditCard, investment, insurance, loan
Applicable Values:
field is description -> value should be min of 3 and max of 50 characters
field is amount -> value should be min value of 0 and a max value of 99999999999.99 |
rule.source | Request Body | String | No | Enum: "SYSTEM" "USER" |
rule.priority | Request Body | Number | No | |
rule.categoryId | Request Body | Number | Yes |
Example Request
curl -X PUT /transactions/categories/rules/:transactionCategoryRuleId \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}" \
-d '{
"rule": {
"ruleClause": [
{
"field": "amount",
"operation": "numberEquals",
"value": {}
}
],
"source": "SYSTEM",
"priority": 0,
"categoryId": 0
}
}'
Example Response
The HTTP response code is 204 (Success without content).
Run Transaction Categorization Rule
Endpoint: POST
/transactions/categories/rules/:transactionCategoryRuleId
The run transaction categorization rule service is used to run a rule on transactions, to categorize the transactions.
Parameters
Name | Location | Data Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
action | Query Parameters | String | Yes | Default: "run"
Value: "run" |
Example Request
curl -X POST /transactions/categories/rules/:transactionCategoryRuleId?action=run \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
The HTTP response code is 204 (Success without content).
Run All Transaction Categorization Rules
Endpoint: POST
/transactions/categories/rules
Parameters
Name | Location | Data Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
action | Query Parameters | String | Yes | Default: "run"
Value: "run" |
Example Request
curl -X POST /transactions/categories/rules?action=run \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
The HTTP response code is 204 (Success without content).
Delete Transaction Categorization Rule
Endpoint: DELETE
/transactions/categories/rules/:transactionCategoryRuleId
Parameters
Name | Location | Data Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
Example Request
curl -X DELETE /transactions/categories/rules/:transactionCategoryRuleId \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
The HTTP response code is 204 (Success without content).
Provider Accounts
Get Provider Accounts
Endpoint: GET
/providerAccounts
The get provider accounts service is used to return all the provider accounts added by the user.
This includes the failed and successfully added provider accounts.
Parameters
Name | Location | Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
includes | Query Parameters | String | No | include |
providerIds | Query Parameters | String | No | Comma separated providerIds. |
Example Request
curl -X GET /providerAccounts \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"providerAccount": [
{
"lastUpdated": "string",
"consentId": 0,
"preferences": {
"isDataExtractsEnabled": true,
"linkedProviderAccountId": 0,
"isAutoRefreshEnabled": true
},
"createdDate": "string",
"aggregationSource": "SYSTEM",
"oauthMigrationStatus": "IN_PROGRESS",
"providerId": 0,
"requestId": "string",
"isManual": true,
"id": 0,
"dataset": [
{
"lastUpdated": "string",
"updateEligibility": "ALLOW_UPDATE",
"additionalStatus": "LOGIN_IN_PROGRESS",
"nextUpdateScheduled": "string",
"name": "BASIC_AGG_DATA",
"lastUpdateAttempt": "string"
}
],
"status": "LOGIN_IN_PROGRESS"
}
]
}
Get Provider Account Details
Endpoint: GET
/providerAccounts/:providerAccountId
The get provider account details service is used to learn the status of adding accounts and updating accounts.
This service has to be called continuously to know the progress level of the triggered process. This service also provides the MFA information requested by the provider site.
When include = credentials, questions is passed as input, the service returns the credentials (non-password values) and questions stored in the Yodlee system for that provider account.
Parameters
Name | Location | Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
includes | Query Parameters | String | No | include credentials,questions |
requestId | Query Parameters | String | No | The unique identifier for the request that returns contextual data |
Example Request
curl -X GET /providerAccounts/:providerAccountId \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"providerAccount": [
{
"preferences": {
"isDataExtractsEnabled": true,
"linkedProviderAccountId": 0,
"isAutoRefreshEnabled": true
},
"oauthMigrationStatus": "IN_PROGRESS",
"isManual": true,
"lastUpdated": "string",
"consentId": 0,
"loginForm": [
{
"mfaInfoTitle": "string",
"help": "string",
"forgetPasswordURL": "string",
"formType": "login",
"mfaInfoText": "string",
"loginHelp": "string",
"mfaTimeout": 0,
"id": 0,
"row": [
{
"fieldRowChoice": "string",
"field": [
{
"image": "string",
"prefix": "string",
"minLength": 0,
"valueEditable": "string",
"isOptional": true,
"suffix": "string",
"type": "text",
"isValueProvided": true,
"name": "string",
"id": "string",
"value": "string",
"maxLength": 0,
"option": [
null
]
}
],
"form": "string",
"id": "string",
"label": "string"
}
]
}
],
"createdDate": "string",
"aggregationSource": "SYSTEM",
"providerId": 0,
"requestId": "string",
"id": 0,
"dataset": [
{
"lastUpdated": "string",
"updateEligibility": "ALLOW_UPDATE",
"additionalStatus": "LOGIN_IN_PROGRESS",
"nextUpdateScheduled": "string",
"name": "BASIC_AGG_DATA",
"lastUpdateAttempt": "string"
}
],
"status": "LOGIN_IN_PROGRESS"
}
]
}
Update Account
Endpoint: PUT
/providerAccounts
The update account API is used to:
- Retrieve the latest information for accounts that belong to one providerAccount from the provider site. You must allow at least 15 min between requests.
- Retrieve the latest information of all the eligible accounts that belong to the user.
- Data to be retrieved from the provider site can be overridden using datasetName or dataset. If you do pass datasetName, all the datasets that are implicitly configured for the dataset will be retrieved. This action is allowed for single provider account refresh flows only.
- Check the status of the providerAccount before invoking this API. Do not call this API to trigger any action on a providerAccount when an action is already in progress for the providerAccount.
- If the customer has subscribed to the REFRESH event notification and invoked this API, relevant notifications will be sent to the customer.
- A dataset may depend on another dataset for retrieval, so the response will include the requested and dependent datasets.
- Check all the dataset additional statuses returned in the response because the provider account status is drawn from the dataset additional statuses.
- Updating preferences using this API will trigger refreshes.
- The content type has to be passed as application/json for the body parameter.
Update All Eligible Accounts - Notes:
- This API will trigger a refresh for all the eligible provider accounts(both OB and credential-based accounts).
- This API will not refresh closed, inactive, or UAR accounts, or accounts with refreshes in-progress or recently refreshed non-OB accounts.
- No parameters should be passed to this API to trigger this action.
- Do not call this API often. Our recommendation is to call this only at the time the user logs in to your app because it can hamper other API calls performance.
- The response only contains information for accounts that were refreshed. If no accounts are eligible for refresh, no response is returned.
Parameters
Name | Type | Description | Location | Is Required ? |
---|---|---|---|---|
access_token | String | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. | Headers | Yes |
providerAccountIds | String | comma separated providerAccountIds | Query Parameters | Yes |
consentId | Number | Consent Id generated for the request through POST Consent. | Request Body | No |
preferences | Object | ProviderAccountPreferences | Request Body | No |
preferences.isDataExtractsEnabled | Boolean | Indicates if the updates to the provider account should be part of the data extracts event notification or the data extract data retrieval service. | Request Body | No |
preferences.linkedProviderAccountId | Number | LinkedproviderAccountd is a providerAccountId linked by the user to the primary provider account.
LinkedProviderAccountId and the providerAccountId belongs to the same institution. | Request Body | No |
preferences.isAutoRefreshEnabled | Boolean | Indicates if auto-refreshes have to be triggered for the provider account. | Request Body | No |
aggregationSource | String | Enum: "SYSTEM" "USER" | Request Body | No |
field | [Object] | Field | Request Body | Yes |
field[].image | String | Image displayed at the endsite. | Request Body | No |
field[].id | String | Identifier for the field. | Request Body | No |
field[].value | String | Value expected from the user for the field. This will be blank and is expected to be filled and sent back when submitting the login or MFA information. | Request Body | No |
datasetName | [String] | Items Enum: "BASIC_AGG_DATA" "ADVANCE_AGG_DATA" "ACCT_PROFILE" "DOCUMENT" | Request Body | No |
dataset | [Object] | ProvidersDataset | Request Body | No |
dataset[].name | String | Enum: "BASIC_AGG_DATA" "ADVANCE_AGG_DATA" "ACCT_PROFILE" "DOCUMENT"
The name of the dataset requested from the provider site | Request Body | No |
dataset[].attribute | [Object] | The name of the dataset attribute suported by the provider. | Request Body | No |
dataset[].attribute[].container | [String] | Items Enum: "bank" "creditCard" "investment" "insurance" "loan" "reward" "realEstate" "otherAssets" "otherLiabilities"
Containers for which the attributes are supported. | Request Body | No |
dataset[].attribute[].containerAttributes | Object | ContainerAttributes | Request Body | No |
dataset[].attribute[].containerAttributes.BANK | Object | TransactionDays | Request Body | No |
dataset[].attribute[].containerAttributes.BANK.fullAccountNumberFields | [String] | Items Enum: "paymentAccountNumber" "unmaskedAccountNumber" | Request Body | No |
dataset[].attribute[].containerAttributes.BANK.numberOfTransactionDays | Number | Request Body | No | |
dataset[].attribute[].containerAttributes.LOAN | Object | TransactionDays | Request Body | No |
dataset[].attribute[].containerAttributes.LOAN.fullAccountNumberFields | [String] | Items Enum: "paymentAccountNumber" "unmaskedAccountNumber" | Request Body | No |
dataset[].attribute[].containerAttributes.LOAN.numberOfTransactionDays | Number | Request Body | No | |
dataset[].attribute[].containerAttributes.CREDITCARD | Object | TransactionDays | Request Body | No |
dataset[].attribute[].containerAttributes.CREDITCARD.fullAccountNumberFields | [String] | Items Enum: "paymentAccountNumber" "unmaskedAccountNumber" | Request Body | No |
dataset[].attribute[].containerAttributes.CREDITCARD.numberOfTransactionDays | Number | Request Body | No | |
dataset[].attribute[].containerAttributes.INVESTMENT | Object | TransactionDays | Request Body | No |
dataset[].attribute[].containerAttributes.INVESTMENT.fullAccountNumberFields | [String] | Items Enum: "paymentAccountNumber" "unmaskedAccountNumber" | Request Body | No |
dataset[].attribute[].containerAttributes.INVESTMENT.numberOfTransactionDays | Number | Request Body | No | |
dataset[].attribute[].containerAttributes.INSURANCE | Object | TransactionDays | Request Body | No |
dataset[].attribute[].containerAttributes.INSURANCE.fullAccountNumberFields | [String] | Items Enum: "paymentAccountNumber" "unmaskedAccountNumber" | Request Body | No |
dataset[].attribute[].containerAttributes.INSURANCE.numberOfTransactionDays | Number | Request Body | No | |
dataset[].attribute[].name | String | Enum: "BASIC_ACCOUNT_INFO" "TRANSACTIONS" "STATEMENTS" "HOLDINGS" "ACCOUNT_DETAILS" "TAX" "EBILLS" "FULL_ACCT_NUMBER" "BANK_TRANSFER_CODE" "HOLDER_NAME" "HOLDER_DETAILS" "PAYMENT_PROFILE" "PAYMENT_DETAILS" "INTEREST_DETAILS" "COVERAGE"
Attributes that are supported for a dataset. | Request Body | No |
Example Request
curl -X PUT /providerAccounts?providerAccountIds=123 \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}" \
-d '{
"consentId": 0,
"preferences": {
"isDataExtractsEnabled": true,
"linkedProviderAccountId": 0,
"isAutoRefreshEnabled": true
},
"aggregationSource": "SYSTEM",
"field": [
{
"image": "string",
"id": "string",
"value": "string"
}
],
"datasetName": [
"BASIC_AGG_DATA"
],
"dataset": [
{
"name": "BASIC_AGG_DATA",
"attribute": [
{
"container": [
"bank"
],
"containerAttributes": {
"BANK": {
"fullAccountNumberFields": [
"paymentAccountNumber"
],
"numberOfTransactionDays": 0
},
"LOAN": {
"fullAccountNumberFields": [
"paymentAccountNumber"
],
"numberOfTransactionDays": 0
},
"CREDITCARD": {
"fullAccountNumberFields": [
"paymentAccountNumber"
],
"numberOfTransactionDays": 0
},
"INVESTMENT": {
"fullAccountNumberFields": [
"paymentAccountNumber"
],
"numberOfTransactionDays": 0
},
"INSURANCE": {
"fullAccountNumberFields": [
"paymentAccountNumber"
],
"numberOfTransactionDays": 0
}
},
"name": "BASIC_ACCOUNT_INFO"
}
]
}
]
}'
Example Response
{
"providerAccount": [
{
"lastUpdated": "string",
"loginForm": [
{
"mfaInfoTitle": "string",
"help": "string",
"forgetPasswordURL": "string",
"formType": "login",
"mfaInfoText": "string",
"loginHelp": "string",
"mfaTimeout": 0,
"id": 0,
"row": [
{
"fieldRowChoice": "string",
"field": [
{
"image": "string",
"prefix": "string",
"minLength": 0,
"valueEditable": "string",
"isOptional": true,
"suffix": "string",
"type": "text",
"isValueProvided": true,
"name": "string",
"id": "string",
"value": "string",
"maxLength": 0,
"option": [
null
]
}
],
"form": "string",
"id": "string",
"label": "string"
}
]
}
],
"createdDate": "string",
"aggregationSource": "SYSTEM",
"oauthMigrationStatus": "IN_PROGRESS",
"providerId": 0,
"requestId": "string",
"isManual": true,
"id": 0,
"dataset": [
{
"lastUpdated": "string",
"updateEligibility": "ALLOW_UPDATE",
"additionalStatus": "LOGIN_IN_PROGRESS",
"nextUpdateScheduled": "string",
"name": "BASIC_AGG_DATA",
"lastUpdateAttempt": "string"
}
],
"status": "LOGIN_IN_PROGRESS"
}
]
}
Update Preferences
Endpoint: PUT
/providerAccounts/:providerAccountId/preferences
This endpoint is used to update preferences like data extracts and auto refreshes without triggering refresh for the providerAccount.
Setting isDataExtractsEnabled to false will not trigger data extracts notification and dataExtracts/events will not reflect any data change that is happening for the providerAccount.
Modified data will not be provided in the dataExtracts/userData endpoint.
Setting isAutoRefreshEnabled to false will not trigger auto refreshes for the provider account.
Parameters
Name | Location | Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
preferences | Request Body | Object | Yes | ProviderAccountPreferences |
preferences.isDataExtractsEnabled | Request Body | Boolean | Yes | Indicates if the updates to the provider account should be part of the data extracts event notification or the data extract data retrieval service. |
preferences.linkedProviderAccountId | Request Body | Number | Yes | LinkedproviderAccountd is a providerAccountId linked by the user to the primary provider account.
LinkedProviderAccountId and the providerAccountId belongs to the same institution. |
preferences.isAutoRefreshEnabled | Request Body | Boolean | Yes | Indicates if auto-refreshes have to be triggered for the provider account. |
Example Request
curl -X PUT /providerAccounts/:providerAccountId/preferences \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}" \
-d '{
"preferences": {
"isDataExtractsEnabled": true,
"linkedProviderAccountId": 0,
"isAutoRefreshEnabled": true
}
}'
Example Response
On Success, Response code is 204 ( No Data )
Delete Provider Account
Endpoint: DELETE
/providerAccounts/:providerAccountId
The delete provider account service is used to delete a provider account from the Yodlee system. This service also deletes the accounts that are created in the Yodlee system for that provider account.
This service does not return a response. The HTTP response code is 204 (Success with no content).
Parameters
Name | Location | Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
Example Request
curl -X DELETE /providerAccounts/:providerAccountId \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
On Success, Response code is 204 ( No Data )
Statements
Get Statements
Endpoint: GET
/statements
The statements service is used to get the list of statement related information.
By default, all the latest statements of active and to be closed accounts are retrieved for the user.
Certain sites do not have both a statement date and a due date. When a fromDate is passed as an input, all the statements that have the due date on or after the passed date are retrieved.
For sites that do not have the due date, statements that have the statement date on or after the passed date are retrieved.
The default value of "isLatest" is true. To retrieve historical statements isLatest needs to be set to false.
Parameters
Name | Location | Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
accountId | Query Parameters | String | No | accountId |
container | Query Parameters | String | No | creditCard/loan/insurance |
fromDate | Query Parameters | String | No | from date for statement retrieval (YYYY-MM-DD) |
isLatest | Query Parameters | String | No | isLatest (true/false) |
status | Query Parameters | String | No | ACTIVE,TO_BE_CLOSED,CLOSED |
Example Request
curl -X GET /statements \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"statement": [
{
"apr": 0,
"cashApr": 0,
"billingPeriodStart": "string",
"dueDate": "string",
"interestAmount": {
"amount": 0,
"currency": "AUD"
},
"statementDate": "string",
"cashAdvance": {
"amount": 0,
"currency": "AUD"
},
"billingPeriodEnd": "string",
"principalAmount": {
"amount": 0,
"currency": "AUD"
},
"loanBalance": {
"amount": 0,
"currency": "AUD"
},
"amountDue": {
"amount": 0,
"currency": "AUD"
},
"accountId": 0,
"lastUpdated": "string",
"isLatest": true,
"minimumPayment": {
"amount": 0,
"currency": "AUD"
},
"lastPaymentDate": "string",
"lastPaymentAmount": {
"amount": 0,
"currency": "AUD"
},
"id": 0,
"newCharges": {
"amount": 0,
"currency": "AUD"
}
}
]
}
Derived
Get Holding Summary
Endpoint: GET
/derived/holdingSummary
The get holding summary service is used to get the summary of asset classifications for the user.
By default, accounts with status as ACTIVE and TO BE CLOSED will be considered.
If the include parameter value is passed as details then a summary with holdings and account information is returned.
Parameters
Name | Location | Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
accountIds | Query Parameters | String | No | Comma separated accountIds |
classificationType | Query Parameters | String | No | e.g. Country, Sector, etc. |
include | Query Parameters | String | No | details |
Example Request
curl -X GET /derived/holdingSummary \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"holdingSummary": [
{
"holding": [
{
"symbol": "string",
"exercisedQuantity": 0,
"cusipNumber": "string",
"assetClassification": {
"allocation": 0,
"classificationType": "string",
"classificationValue": "string"
},
"vestedQuantity": 0,
"description": "string",
"unvestedValue": {
"amount": 0,
"currency": "AUD"
},
"securityStyle": "string",
"vestedValue": {
"amount": 0,
"currency": "AUD"
},
"optionType": "put",
"lastUpdated": "string",
"matchStatus": "string",
"holdingType": "stock",
"maturityDate": "string",
"price": {
"amount": 0,
"currency": "AUD"
},
"term": "string",
"contractQuantity": 0,
"id": 0,
"isShort": true,
"value": {
"amount": 0,
"currency": "AUD"
},
"expirationDate": "string",
"interestRate": 0,
"quantity": 0,
"accruedInterest": {
"amount": 0,
"currency": "AUD"
},
"grantDate": "string",
"sedol": "string",
"vestedSharesExercisable": 0,
"spread": {
"amount": 0,
"currency": "AUD"
},
"accountId": 0,
"enrichedDescription": "string",
"couponRate": 0,
"createdDate": "string",
"accruedIncome": {
"amount": 0,
"currency": "AUD"
},
"securityType": "string",
"providerAccountId": 0,
"unvestedQuantity": 0,
"costBasis": {
"amount": 0,
"currency": "AUD"
},
"vestingDate": "string",
"isin": "string",
"strikePrice": {
"amount": 0,
"currency": "AUD"
}
}
],
"classificationType": "string",
"classificationValue": "string",
"value": {
"amount": 0,
"currency": "AUD"
},
"account": [
{
"id": 0,
"value": {
"amount": 0,
"currency": "AUD"
}
}
]
}
],
"link": {
"holdings": "string"
}
}
Get Transaction Summary
Endpoint: GET
/derived/transactionSummary
The transaction summary service provides the summary values of transactions for the given date range by category type, high-level categories, or system-defined categories.Yodlee has the transaction data stored for a day, month, year and week per category as per the availability of user's data. If the include parameter value is passed as details, then summary details will be returned depending on the interval passed-monthly is the default.Notes:
- Details can be requested for only one system-defined category
- Passing categoryType is mandatory except when the groupBy value is CATEGORY_TYPE
- Dates will not be respected for monthly, yearly, and weekly details
- When monthly details are requested, only the fromDate and toDate month will be respected
- When yearly details are requested, only the fromDate and toDate year will be respected
- For weekly data points, details will be provided for every Sunday date available within the fromDate and toDate
- This service supports the localization feature and accepts locale as a header parameter
Parameters
Name | Location | Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
accountId | Query Parameters | String | No | comma separated account Ids |
categoryId | Query Parameters | String | No | comma separated categoryIds |
categoryType | Query Parameters | String | No | INCOME, EXPENSE, TRANSFER, UNCATEGORIZE or DEFERRED_COMPENSATION |
fromDate | Query Parameters | String | No | YYYY-MM-DD format |
groupBy | Query Parameters | String | Yes | CATEGORY_TYPE, HIGH_LEVEL_CATEGORY or CATEGORY |
include | Query Parameters | String | No | details |
includeUserCategory | Query Parameters | Boolean | No | |
interval | Query Parameters | String | No | D-daily, W-weekly, M-mothly or Y-yearly |
toDate | Query Parameters | String | No | YYYY-MM-DD format |
Example Request
curl -X GET /derived/transactionSummary \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"links": {
"transactions": "string"
},
"transactionSummary": [
{
"categoryType": "TRANSFER",
"categorySummary": [
{
"creditTotal": {
"amount": 0,
"currency": "AUD"
},
"details": [
{
"date": "string",
"creditTotal": {
"amount": 0,
"currency": "AUD"
},
"debitTotal": {
"amount": 0,
"currency": "AUD"
}
}
],
"links": {
"transactions": "string"
},
"categoryName": "string",
"categoryId": 0,
"debitTotal": {
"amount": 0,
"currency": "AUD"
}
}
],
"creditTotal": {
"amount": 0,
"currency": "AUD"
},
"links": {
"transactions": "string"
},
"debitTotal": {
"amount": 0,
"currency": "AUD"
}
}
]
}
Get Networth Summary
Endpoint: GET
/derived/networth
The get networth service is used to get the networth for the user.
If the include parameter value is passed as details then networth with historical balances is returned.
Parameters
Name | Location | Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
accountIds | Query Parameters | String | No | comma separated accountIds |
container | Query Parameters | String | No | bank/creditCard/investment/insurance/loan/realEstate/otherAssets/otherLiabilities |
fromDate | Query Parameters | String | No | from date for balance retrieval (YYYY-MM-DD) |
include | Query Parameters | String | No | details |
interval | Query Parameters | String | No | D-daily, W-weekly or M-monthly |
skip | Query Parameters | Number | No | skip (Min 0) |
toDate | Query Parameters | String | No | toDate for balance retrieval (YYYY-MM-DD) |
top | Query Parameters | Number | No | top (Max 500) |
Example Request
curl -X GET /derived/networth \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"networth": [
{
"date": "string",
"liability": {
"amount": 0,
"currency": "AUD"
},
"historicalBalances": [
{
"date": "string",
"accountId": 0,
"isAsset": true,
"balance": {
"amount": 0,
"currency": "AUD"
},
"asOfDate": "string",
"dataSourceType": "S"
}
],
"networth": {
"amount": 0,
"currency": "AUD"
},
"asset": {
"amount": 0,
"currency": "AUD"
}
}
]
}
Holdings
Get Holdings
Endpoint: GET
/holdings
The get holdings service is used to get the list of holdings of a user.
Supported holding types can be employeeStockOption, moneyMarketFund, bond, etc. and is obtained using get holding type list service.
Asset classifications for the holdings need to be requested through the "include" parameter.
Asset classification information for holdings are not available by default, as it is a premium feature.
Parameters
Name | Location | Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
accountId | Query Parameters | String | No | Comma separated accountId |
assetClassification.classificationType | Query Parameters | String | No | e.g. Country, Sector, etc. |
classificationValue | Query Parameters | String | No | e.g. US |
include | Query Parameters | String | No | assetClassification |
providerAccountId | Query Parameters | String | No | providerAccountId |
Example Request
curl -X GET /holdings \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"holding": [
{
"symbol": "string",
"exercisedQuantity": 0,
"cusipNumber": "string",
"assetClassification": [
{
"allocation": 0,
"classificationType": "string",
"classificationValue": "string"
}
],
"vestedQuantity": 0,
"description": "string",
"unvestedValue": {
"amount": 0,
"currency": "AUD"
},
"securityStyle": "string",
"vestedValue": {
"amount": 0,
"currency": "AUD"
},
"optionType": "put",
"lastUpdated": "string",
"matchStatus": "string",
"holdingType": "stock",
"maturityDate": "string",
"price": {
"amount": 0,
"currency": "AUD"
},
"term": "string",
"contractQuantity": 0,
"id": 0,
"isShort": true,
"value": {
"amount": 0,
"currency": "AUD"
},
"expirationDate": "string",
"interestRate": 0,
"quantity": 0,
"accruedInterest": {
"amount": 0,
"currency": "AUD"
},
"grantDate": "string",
"sedol": "string",
"vestedSharesExercisable": 0,
"spread": {
"amount": 0,
"currency": "AUD"
},
"accountId": 0,
"enrichedDescription": "string",
"couponRate": 0,
"createdDate": "string",
"accruedIncome": {
"amount": 0,
"currency": "AUD"
},
"securityType": "string",
"providerAccountId": 0,
"unvestedQuantity": 0,
"costBasis": {
"amount": 0,
"currency": "AUD"
},
"vestingDate": "string",
"isin": "string",
"strikePrice": {
"amount": 0,
"currency": "AUD"
}
}
]
}
Get Holding Type List
Endpoint: GET
/holdings/holdingTypeList
The get holding types list service is used to get the supported holding types.
The response includes different holding types such as future, moneyMarketFund, stock, etc. and it returns the supported holding types
Parameters
Name | Location | Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
Example Request
curl -X GET /holdings/holdingTypeList \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"holdingType": [
"stock"
]
}
Get Asset Classification List
Endpoint: GET
/holdings/assetClassificationList
The get asset classifications list service is used to get the supported asset classifications.
The response includes different classification types like assetClass, country, sector, style, etc. and the values corresponding to each type.
Parameters
Name | Location | Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
Example Request
curl -X GET /holdings/assetClassificationList \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"assetClassificationList": [
{
"classificationType": "string",
"classificationValue": [
"string"
]
}
]
}
Get Security Details
Endpoint: GET
/holdings/securities
The get security details service is used to get all the security information for the holdings
Parameters
Name | Location | Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
Example Request
curl -X GET /holdings/securities \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"holding": [
{
"security": {
"stockExchangeDetails": [
{
"symbol": "string",
"countryCode": "string",
"currencyCode": "string",
"exchangeCode": "string"
}
],
"issueTypeMultiplier": 0,
"stateTaxable": true,
"callDate": "string",
"cdscFundFlag": true,
"cusip": "string",
"federalTaxable": true,
"sAndPRating": "string",
"shareClass": "string",
"isEnvestnetDummySecurity": true,
"description": "string",
"minimumPurchase": 0,
"type": "string",
"firstCouponDate": "string",
"frequency": 0,
"accrualMethod": "string",
"incomeCurrency": "string",
"maturityDate": "string",
"callPrice": 0,
"id": 0,
"issueDate": "string",
"sector": "string",
"agencyFactor": 0,
"interestRate": 0,
"lastModifiedDate": "string",
"gicsSector": "string",
"closedFlag": true,
"sedol": "string",
"subSector": "string",
"lastCouponDate": "string",
"isSyntheticSecurity": true,
"tradeCurrencyCode": "string",
"isDummySecurity": true,
"moodyRating": "string",
"style": "string",
"firmEligible": "string",
"fundFamily": "string",
"isin": "string"
},
"id": "string"
}
]
}
Data Extracts
Get userData
Endpoint: GET
/dataExtracts/userData
The get user data service is used to get a user's modified data for a particular period of time for accounts, transactions, holdings, and provider account information.
The time difference between fromDate and toDate fields cannot be more than 60 minutes.
By default, pagination is available for the transaction entity in this API. In the first response, the API will retrieve 500 transactions along with other data. The response header will provide a link to retrieve the next set of transactions.
In the response body of the first API response, totalTransactionsCount indicates the total number of transactions the API will retrieve for the user.
This service is only invoked with either admin access token or a cobrand session.
Refer to dataExtracts page for more information.
Parameters
Name | Location | Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
loginName | Query Parameters | String | Yes | Login Name |
fromDate | Query Parameters | String | Yes | From DateTime (YYYY-MM-DDThh:mm:ssZ) |
toDate | Query Parameters | String | Yes | To DateTime (YYYY-MM-DDThh:mm:ssZ) |
Example Request
curl -X GET /dataExtracts/userData \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"userData": [
{
"holding": [
{
"symbol": "string",
"exercisedQuantity": 0,
"cusipNumber": "string",
"vestedQuantity": 0,
"description": "string",
"unvestedValue": {
"amount": 0,
"currency": "AUD"
},
"securityStyle": "string",
"vestedValue": {
"amount": 0,
"currency": "AUD"
},
"optionType": "put",
"lastUpdated": "string",
"matchStatus": "string",
"holdingType": "stock",
"maturityDate": "string",
"price": {
"amount": 0,
"currency": "AUD"
},
"term": "string",
"contractQuantity": 0,
"id": 0,
"isShort": true,
"value": {
"amount": 0,
"currency": "AUD"
},
"expirationDate": "string",
"interestRate": 0,
"quantity": 0,
"accruedInterest": {
"amount": 0,
"currency": "AUD"
},
"grantDate": "string",
"sedol": "string",
"vestedSharesExercisable": 0,
"spread": {
"amount": 0,
"currency": "AUD"
},
"accountId": 0,
"enrichedDescription": "string",
"couponRate": 0,
"createdDate": "string",
"accruedIncome": {
"amount": 0,
"currency": "AUD"
},
"securityType": "string",
"providerAccountId": 0,
"unvestedQuantity": 0,
"costBasis": {
"amount": 0,
"currency": "AUD"
},
"vestingDate": "string",
"isin": "string",
"strikePrice": {
"amount": 0,
"currency": "AUD"
}
}
],
"totalTransactionsCount": 0,
"user": {
"loginName": "string"
},
"account": [
{
"availableCash": {
"amount": 0,
"currency": "AUD"
},
"includeInNetWorth": true,
"moneyMarketBalance": {
"amount": 0,
"currency": "AUD"
},
"enrollmentDate": "string",
"estimatedDate": "string",
"memo": "string",
"guarantor": "string",
"interestPaidLastYear": {
"amount": 0,
"currency": "AUD"
},
"lastUpdated": "string",
"balance": {
"amount": 0,
"currency": "AUD"
},
"homeInsuranceType": "HOME_OWNER",
"id": 0,
"cash": {
"amount": 0,
"currency": "AUD"
},
"totalCreditLine": {
"amount": 0,
"currency": "AUD"
},
"providerName": "string",
"valuationType": "SYSTEM",
"marginBalance": {
"amount": 0,
"currency": "AUD"
},
"apr": 0,
"availableCredit": {
"amount": 0,
"currency": "AUD"
},
"currentBalance": {
"amount": 0,
"currency": "AUD"
},
"isManual": true,
"escrowBalance": {
"amount": 0,
"currency": "AUD"
},
"nextLevel": "string",
"classification": "OTHER",
"loanPayoffAmount": {
"amount": 0,
"currency": "AUD"
},
"interestRateType": "FIXED",
"loanPayByDate": "string",
"faceAmount": {
"amount": 0,
"currency": "AUD"
},
"policyFromDate": "string",
"premiumPaymentTerm": "string",
"policyTerm": "string",
"repaymentPlanType": "STANDARD",
"availableBalance": {
"amount": 0,
"currency": "AUD"
},
"accountStatus": "ACTIVE",
"lifeInsuranceType": "OTHER",
"premium": {
"amount": 0,
"currency": "AUD"
},
"aggregationSource": "SYSTEM",
"isDeleted": true,
"overDraftLimit": {
"amount": 0,
"currency": "AUD"
},
"nickname": "string",
"term": "string",
"interestRate": 0,
"deathBenefit": {
"amount": 0,
"currency": "AUD"
},
"address": {
"zip": "string",
"country": "string",
"address3": "string",
"address2": "string",
"city": "string",
"sourceType": "string",
"address1": "string",
"street": "string",
"state": "string",
"type": "HOME"
},
"cashValue": {
"amount": 0,
"currency": "AUD"
},
"401kLoan": {
"amount": 0,
"currency": "AUD"
},
"homeValue": {
"amount": 0,
"currency": "AUD"
},
"accountNumber": "string",
"createdDate": "string",
"interestPaidYTD": {
"amount": 0,
"currency": "AUD"
},
"providerAccountId": 0,
"collateral": "string",
"dataset": [
{
"lastUpdated": "string",
"updateEligibility": "ALLOW_UPDATE",
"additionalStatus": "LOGIN_IN_PROGRESS",
"nextUpdateScheduled": "string",
"name": "BASIC_AGG_DATA",
"lastUpdateAttempt": "string"
}
],
"runningBalance": {
"amount": 0,
"currency": "AUD"
},
"sourceId": "string",
"dueDate": "string",
"frequency": "DAILY",
"maturityAmount": {
"amount": 0,
"currency": "AUD"
},
"associatedProviderAccountId": [
0
],
"isAsset": true,
"principalBalance": {
"amount": 0,
"currency": "AUD"
},
"totalCashLimit": {
"amount": 0,
"currency": "AUD"
},
"maturityDate": "string",
"minimumAmountDue": {
"amount": 0,
"currency": "AUD"
},
"annualPercentageYield": 0,
"accountType": "string",
"originationDate": "string",
"totalVestedBalance": {
"amount": 0,
"currency": "AUD"
},
"rewardBalance": [
{
"expiryDate": "string",
"balanceToReward": "string",
"balanceType": "EXPIRING_BALANCE",
"balance": 0,
"description": "string",
"balanceToLevel": "string",
"units": "string"
}
],
"sourceAccountStatus": "IN_REPAYMENT",
"derivedApr": 0,
"policyEffectiveDate": "string",
"totalUnvestedBalance": {
"amount": 0,
"currency": "AUD"
},
"annuityBalance": {
"amount": 0,
"currency": "AUD"
},
"accountName": "string",
"totalCreditLimit": {
"amount": 0,
"currency": "AUD"
},
"policyStatus": "ACTIVE",
"shortBalance": {
"amount": 0,
"currency": "AUD"
},
"lender": "string",
"lastEmployeeContributionAmount": {
"amount": 0,
"currency": "AUD"
},
"providerId": "string",
"lastPaymentDate": "string",
"primaryRewardUnit": "string",
"lastPaymentAmount": {
"amount": 0,
"currency": "AUD"
},
"remainingBalance": {
"amount": 0,
"currency": "AUD"
},
"userClassification": "BUSINESS",
"bankTransferCode": [
{
"id": "string",
"type": "BSB"
}
],
"expirationDate": "string",
"coverage": [
{
"amount": [
{
"cover": {},
"unitType": "PER_FAMILY",
"type": "DEDUCTIBLE",
"limitType": "IN_NETWORK",
"met": {}
}
],
"planType": "PPO",
"endDate": "string",
"type": "VISION",
"startDate": "string"
}
],
"cashApr": 0,
"oauthMigrationStatus": "IN_PROGRESS",
"displayedName": "string",
"amountDue": {
"amount": 0,
"currency": "AUD"
},
"currentLevel": "string",
"originalLoanAmount": {
"amount": 0,
"currency": "AUD"
},
"policyToDate": "string",
"loanPayoffDetails": {
"payByDate": "string",
"payoffAmount": {
"amount": 0,
"currency": "AUD"
},
"outstandingBalance": {
"amount": 0,
"currency": "AUD"
}
},
"CONTAINER": "bank",
"lastEmployeeContributionDate": "string",
"lastPayment": {
"amount": 0,
"currency": "AUD"
},
"recurringPayment": {
"amount": 0,
"currency": "AUD"
}
}
],
"transaction": [
{
"date": "string",
"sourceId": "string",
"symbol": "string",
"cusipNumber": "string",
"highLevelCategoryId": 0,
"detailCategoryId": 0,
"description": {
"security": "string",
"original": "string",
"simple": "string",
"consumer": "string"
},
"memo": "string",
"settleDate": "string",
"type": "string",
"baseType": "CREDIT",
"categorySource": "SYSTEM",
"principal": {
"amount": 0,
"currency": "AUD"
},
"lastUpdated": "string",
"isDeleted": true,
"interest": {
"amount": 0,
"currency": "AUD"
},
"price": {
"amount": 0,
"currency": "AUD"
},
"commission": {
"amount": 0,
"currency": "AUD"
},
"id": 0,
"amount": {
"amount": 0,
"currency": "AUD"
},
"checkNumber": "string",
"quantity": 0,
"valoren": "string",
"isManual": true,
"merchant": {
"website": "string",
"address": {
"zip": "string",
"country": "string",
"address3": "string",
"address2": "string",
"city": "string",
"sourceType": "string",
"address1": "string",
"street": "string",
"state": "string",
"type": "HOME"
},
"contact": {
"phone": "string",
"email": "string"
},
"categoryLabel": [
"string"
],
"coordinates": {
"latitude": 0,
"longitude": 0
},
"name": "string",
"id": "string",
"source": "YODLEE"
},
"sedol": "string",
"transactionDate": "string",
"categoryType": "TRANSFER",
"accountId": 0,
"createdDate": "string",
"sourceType": "AGGREGATED",
"CONTAINER": "bank",
"postDate": "string",
"parentCategoryId": 0,
"subType": "AUTH_HOLD",
"category": "string",
"runningBalance": {
"amount": 0,
"currency": "AUD"
},
"categoryId": 0,
"holdingDescription": "string",
"isin": "string",
"status": "POSTED"
}
],
"providerAccount": [
{
"lastUpdated": "string",
"createdDate": "string",
"aggregationSource": "SYSTEM",
"isDeleted": true,
"oauthMigrationStatus": "IN_PROGRESS",
"providerId": 0,
"requestId": "string",
"isManual": true,
"id": 0,
"dataset": [
{
"lastUpdated": "string",
"updateEligibility": "ALLOW_UPDATE",
"additionalStatus": "LOGIN_IN_PROGRESS",
"nextUpdateScheduled": "string",
"name": "BASIC_AGG_DATA",
"lastUpdateAttempt": "string"
}
],
"status": "LOGIN_IN_PROGRESS"
}
]
}
]
}
Get Events
Endpoint: GET
/dataExtracts/events
The get extracts events service is used to learn about occurrences of data extract related events. This service currently supports only the DATA_UPDATES event.
Passing the event name as DATA_UPDATES provides information about users for whom data has been modified in the system for the specified time range.
To learn more, please refer to the dataExtracts page.
You can retrieve data in increments of no more than 60 minutes over the period of the last 7 days from today's date.
This service is only invoked with either admin access token or a cobrand session.
Parameters
Name | Location | Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
eventName | Query Parameters | String | Yes | Event Name |
fromDate | Query Parameters | String | Yes | From DateTime (YYYY-MM-DDThh:mm:ssZ) |
toDate | Query Parameters | String | Yes | To DateTime (YYYY-MM-DDThh:mm:ssZ) |
Example Request
curl -X GET /dataExtracts/events \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"event": {
"data": {
"fromDate": "string",
"userData": [
{
"links": [
{
"methodType": "string",
"rel": "string",
"href": "string"
}
],
"user": {
"loginName": "string"
}
}
],
"userCount": 0,
"toDate": "string"
},
"info": "string"
}
}
Documents
Get Documents
Endpoint: GET
/documents
The get documents service allows customers to search or retrieve metadata related to documents.
The API returns the document as per the input parameters passed. If no date range is provided then all downloaded documents will be retrieved. Details of deleted documents or documents associated to closed providerAccount will not be returned.
This API is a premium service which requires subscription in advance to use. Please contact Yodlee Client Services for more information.
Parameters
Name | Location | Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
Keyword | Query Parameters | String | No | The string used to search a document by its name. |
accountId | Query Parameters | String | No | The unique identifier of an account. Retrieve documents for a given accountId. |
docType | Query Parameters | String | No | Accepts only one of the following valid document types: STMT, TAX, and EBILL. |
fromDate | Query Parameters | String | No | The date from which documents have to be retrieved. |
toDate | Query Parameters | String | No | The date to which documents have to be retrieved. |
Example Request
curl -X GET /documents \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"document": [
{
"accountID": 0,
"lastUpdated": "string",
"formType": "string",
"docType": "STMT",
"name": "string",
"id": "string",
"source": "string",
"status": "string"
}
]
}
Download a Document
Endpoint: GET
/documents/:documentId
The get document details service allows consumers to download a document. The document is provided in base64.
This API is a premium service which requires subscription in advance to use. Please contact Yodlee Client Services for more information.
Parameters
Name | Location | Description |
---|---|---|
access_token | Headers | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
Example Request
curl -X GET /documents/:documentId \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
{
"document": [
{
"docContent": "string",
"id": "string"
}
]
}
Delete User
Endpoint: DELETE
/documents/:documentId
The delete document service allows the consumer to delete a document. The deleted document will not be returned in the get documents API. The HTTP response code is 204 (success without content).
Documents can be deleted only if the document related dataset attributes are subscribed.
Parameters
Name | Location | Data Type | Is Required ? | Description |
---|---|---|---|---|
access_token | Headers | String | Yes | Like Yodlee, LinkMoney API enables placing the access_token in either the body or the header of requests. The access_token should be user-specific to retrieve information for a single individual. |
Example Request
curl -X DELETE /documents/:documentId \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Example Response
The HTTP response code is 204 (Success without content).
Yodlee Account Verification
Get Verified Accounts
Endpoint: GET
/verification/verifiedAccounts
The Verified Accounts API v1.1 provides information about the bank and investment accounts that the user has selected for verification during the Account Verification flow on FastLink 4. By default, the API only returns information of the accounts that were selected and have been successfully verified.
Parameters
Name | Location | Description | Is Required ? | Data Type |
---|---|---|---|---|
accessToken | Request BodyHeaders | access token for accessing Yodlee’s API ( created via /auth/token ) | Yes | String |
accountId | Query Params | Comma separated accountIds. | No | String |
isSelected | Query Params | Comma separated isSelected. Allowed values are true, falseNote:
If no value is passed, the implicit default value is true. | No | String |
providerAccountId | Query Params | providerAccountId | Yes | String |
verificationStatus | Query Params | Comma separated verificationStatus. Allowed values are SUCCESS, FAILEDNote:
If no value is passed, the implicit default value is SUCCESS. | No | String |
Example Request
curl -X GET /verification/verifiedAccounts \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Response
{
"requestId": "string",
"requestDate": "string",
"state": "COMPLETED",
"verifiedAccount": [
{
"accountName": "string",
"verificationStatus": "SUCCESS",
"accountType": "string",
"currentBalance": {
"amount": 0,
"currency": "USD"
},
"displayedName": "string",
"holder": [
{
"identifier": [
{
"type": "NIE",
"value": "string"
}
],
"gender": "string",
"ownership": "PRIMARY",
"name": {
"middle": "string",
"last": "string",
"fullName": "string",
"first": "string"
}
}
],
"accountNumber": "string",
"classification": "OTHER",
"availableBalance": {
"amount": 0,
"currency": "USD"
},
"fullAccountNumberList": {
"paymentAccountNumber": "string",
"unmaskedAccountNumber": "string"
},
"accountId": 0,
"balance": {
"amount": 0,
"currency": "USD"
},
"providerId": "string",
"providerAccountId": 0,
"CONTAINER": "bank",
"isSelected": true,
"cash": {
"amount": 0,
"currency": "USD"
},
"bankTransferCode": [
{
"id": "string",
"type": "BSB"
}
],
"providerName": "string",
"failedReason": "REQUIRED_DATA_NOT_AVAILABLE"
}
],
"failedReason": "ACCOUNT_LOCKED"
}
Get Verification Status
Endpoint: GET
/verification
The get verification status service is used to retrieve the verification status of all accounts for which the CDV process has been initiated. For the CDV process, the account details object returns the user provided account information.
Parameters
Name | Location | Description | Is Required ? | Data Type |
---|---|---|---|---|
accessToken | Request BodyHeaders | access token for accessing Yodlee’s API ( created via /auth/token ) | Yes | String |
accountId | Query Params | Comma separated accountIds. | No | String |
providerAccountId | Query Params | providerAccountId | No | String |
verificationType | Query Params | verificationType | No | String |
Example Request
curl -X GET /verification \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Response
{
"verification": [
{
"accountId": 0,
"reason": "DATA_NOT_AVAILABLE",
"verificationStatus": "INITIATED",
"providerAccountId": 0,
"verificationType": "MATCHING",
"account": {
"accountName": "string",
"accountType": "SAVINGS",
"accountNumber": "string",
"bankTransferCode": {
"id": "string",
"type": "BSB"
}
},
"remainingAttempts": 0,
"verificationDate": "string",
"verificationId": 0
}
]
}
Get All Providers
Endpoint: GET
/providers
Removes a specific item. Note that if the user has accounts with other financial institutions, these will not be removed.
The get provider service is used to get all the providers that are enabled, search a provider service by name or routing number and get popular sites of a region.Searching for a provider using a routing number is applicable only to the USA and Canada regions.The valid values for priority are:
- cobrand: Returns providers enabled for the cobrand. (Default priority)
- popular: Returns providers popular among users of the customer.
Parameters
Name | Location | Description |
---|---|---|
accessToken | Request BodyHeaders | access token for accessing Yodlee’s API ( created via /auth/token ) |
Example Request
curl -X GET /providers \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer {access_token}"
Response
{
"provider": [
{
"languageISOCode": "string",
"forgetPasswordUrl": "string",
"favicon": "string",
"accountType": [
"CURRENT"
],
"countryISOCode": "string",
"isAddedByUser": "string",
"PRIORITY": "POPULAR",
"associatedProviderIds": [
0
],
"loginHelp": "string",
"primaryLanguageISOCode": "string",
"help": "string",
"baseUrl": "string",
"capability": [
{
"container": [
"bank"
],
"name": "string"
}
],
"isConsentRequired": true,
"loginUrl": "string",
"isAutoRefreshEnabled": true,
"name": "string",
"logo": "string",
"id": 0,
"lastModified": "string",
"authParameter": [
"authorizationCode"
],
"authType": "OAUTH",
"dataset": [
{
"name": "BASIC_AGG_DATA",
"attribute": [
{
"container": [
"bank"
],
"fromDate": "string",
"toFinYear": "string",
"fromFinYear": "string",
"containerAttributes": {
"BANK": {
"fullAccountNumberFields": [
null
],
"numberOfTransactionDays": 0
},
"LOAN": {
"fullAccountNumberFields": [
null
],
"numberOfTransactionDays": 0
},
"CREDITCARD": {
"fullAccountNumberFields": [
null
],
"numberOfTransactionDays": 0
},
"INVESTMENT": {
"fullAccountNumberFields": [
null
],
"numberOfTransactionDays": 0
},
"INSURANCE": {
"fullAccountNumberFields": [
null
],
"numberOfTransactionDays": 0
}
},
"toDate": "string",
"name": "BASIC_ACCOUNT_INFO"
}
]
}
],
"status": "Supported"
}
]
}
Endpoint | Request Method | Description |
---|---|---|
/user/register | POST | The register user service is used to register a user in Yodlee. |
/user | GET | The get user details service is used to get the user profile information and the application preferences set at the time of user registration. |
/user | PUT | The update user details service is used to update user details like name, address, currency preference, etc. |
/user/unregister | DELETE | The delete user service is used to delete or unregister a user from Yodlee. |
/providers | GET | The get provider service is used to get all the providers that are enabled. |
/providers/count | GET | The count service provides the total number of providers that get returned in the GET /providers depending on the input parameters passed. |
/providers/:providerId | GET | The get provider detail service is used to get detailed information including the login form for a provider. |
/accounts | POST | The add account service is used to add manual accounts. |
/accounts | GET | The get accounts service provides information about accounts added by the user. |
/accounts/:accountId | GET | The get account details service provides detailed information of an account. |
/accounts/historicalBalances | GET | The historical balances service is used to retrieve the historical balances for an account or a user. |
/accounts/:accountId | PUT | The update account service is used to update manual and aggregated accounts. |
/accounts/:accountId | DELETE | The delete account service allows an account to be deleted. |
/transactions | GET | The Transaction service is used to get a list of transactions for a user. |
/transactions/:transactionId | PUT | The update transaction service is used to update the category,consumer description, memo for a transaction. |
/transactions/count | GET | The count service provides the total number of transactions for a specific user. |
/transactions/categories | POST | The create transaction categories service is used to create user-defined categories for a system-defined category. |
/transactions/categories | GET | The categories service returns the list of available transaction categories. |
/transactions/categories | PUT | The update transaction categories service is used to update the transaction category name
for a high level category, a system-defined category and a user-defined category. |
/transactions/categories/:categoryId | DELETE | The delete transaction categories service is used to delete the given user-defined category. |
/transactions/categories/rules | POST | The Create or Run Transaction Categorization Rule endpoint is used to:
Create transaction categorization rules for both system and user-defined categories.
Run all the transaction categorization rules to categorize transactions by calling the endpoint with action=run as the query parameter. |
/transactions/categories/rules | GET | The categories service returns the list of available transaction categories. |
/transactions/categories/rules/:transactionCategoryRuleId | PUT | The update transaction categorization rule service is used to update a categorization rule for both system-defined category as well as user-defined category. |
/transactions/categories/rules/:transactionCategoryRuleId | POST | The run transaction categorization rule service is used to run a rule on transactions, to categorize the transactions. |
/transactions/categories/rules | POST | |
/transactions/categories/rules/:transactionCategoryRuleId | DELETE | Deletes a transaction categorization rule |
/providerAccounts | GET | The get provider accounts service is used to return all the provider accounts added by the user. |
/providerAccounts/:providerAccountId | GET | The get provider account details service is used to learn the status of adding accounts and updating accounts. |
/providerAccounts | PUT | Read API docs as it updates a variety of things. |
/providerAccounts/:providerAccountId/preferences | PUT | This endpoint is used to update preferences like data extracts and auto refreshes without triggering refresh for the providerAccount. |
/providerAccounts/:providerAccountId | DELETE | The delete provider account service is used to delete a provider account from the Yodlee system. |
/statements | GET | The statements service is used to get the list of statement related information. |
/derived/holdingSummary | GET | The get holding summary service is used to get the summary of asset classifications for the user. |
/derived/transactionSummary | GET | The transaction summary service provides the summary values of transactions for the given date range by category type, high-level categories, or system-defined categories. |
/derived/networth | GET | The get networth service is used to get the networth for the user. |
/holdings | GET | The get holdings service is used to get the list of holdings of a user. |
/holdings/holdingTypeList | GET | The get holding types list service is used to get the supported holding types. |
/holdings/assetClassificationList | GET | The get asset classifications list service is used to get the supported asset classifications. |
/holdings/securities | GET | The get security details service is used to get all the security information for the holdings |
/dataExtracts/userData | GET | The get user data service is used to get a user's modified data for a particular period of time for accounts, transactions, holdings, and provider account information. |
/dataExtracts/events | GET | The get extracts events service is used to learn about occurrences of data extract related events. |
/documents | GET | The get documents service allows customers to search or retrieve metadata related to documents. |
/documents/:documentId | GET | The get document details service allows consumers to download a document. |
/documents/:documentId | DELETE | The delete document service allows the consumer to delete a document. |
Yodlee Schema
type: object
properties:
account_number:
type: string
description: "The account number associated with the account. This will typically be a masked or partial account number."
example: "5366"
apr:
type: float
description: The annual percentage rate associated with the account.
example: null
apy:
type: float
description: "The annual percentage yield associated with the account."
example: null
available_balance:
type: float
description: "The balance currently available for use in the account. The available balance will normally be a positive value for all account types. The value's sign is determined in the same way as the balance field."
example: null
available_credit:
type: float
description: "The amount of credit currently available for use in the account."
example: 347.01
balance:
type: float
description: "The balance associated with the account. The balance will normally be a positive value for all account types. For instance, asset-type accounts (CHECKING, SAVINGS, INVESTMENT) may have a negative balance if they are in overdraft. Debt-type accounts (CREDIT_CARD, LOAN, LINE_OF_CREDIT, MORTGAGE) may have a negative balance if they are overpaid."
example: 1872.99
cash_balance:
type: float
description: The cash balance of the account.
example: null
cash_surrender_value:
type: float
description: "The sum of money paid to the policyholder or annuity holder in the event the policy is voluntarily terminated before it matures, or the insured event occurs."
example: null
created_at:
type: string
description: The date and time at which the account was created on the MX Platform.
example: "2020-08-04T21:27:47Z"
credit_limit:
type: float
description: "The credit limit associated with the account."
example: null
currency_code:
type: string
description: "The three-character ISO 4217 currency code."
example: "USD"
day_payment_is_due:
type: string
description: "The day of the month the payment is due. For example, the 14th is passed as 14."
example: null
death_benefit:
type: integer
description: "The amount paid to the beneficiary of the account upon death of the account owner."
example: null
guid:
type: string
description: "The unique identifier for the account. Defined by MX."
example: "ACT-82a93692-f756-534f-9b2e-ad10a0f38462"
holdings_value:
type: float
description: "The value of the holdings associated with the account."
example: null
id:
type: string
description: "The unique partner-defined identifier for the account."
example: "1040434698"
institution_code:
type: string
description: "A unique identifier for the institution associated with this account. Defined by MX."
example: "chase"
insured_name:
type: string
description: "The name of the insured individual."
example: null
interest_rate:
type: float
description: "The interest rate associated with the account."
example: null
is_closed:
type: boolean
description: "This indicates whether an account has been closed."
example: false
is_hidden:
type: boolean
description: "This indicates whether the account is hidden. Defaults to false."
example: false
last_payment_at:
type: string
description: "The date and time of the most recent payment on the account."
example: null
last_payment:
type: float
description: "The amount of the most recent payment on the account."
example: null
loan_amount:
type: float
description: "The amount of the loan associated with the account."
example: null
matures_on:
type: string
description: "The date on which the account matures."
example: null
member_guid:
type: string
description: "The unique identifier for the member to which the account belongs, assigned by MX."
example: "MBR-0b2121f5-bf4f-4244-a697-cac69160020f"
minimum_balance:
type: float
description: "The minimum balance associated with the account."
example: null
minimum_payment:
type: float
description: "The minimum payment required for an account. This can apply to any debt account. Max length is 10,2."
example: null
name:
type: string
description: "The human-readable name for the account."
example: "CREDIT CARD"
original_balance:
type: float
description: "The original balance associated with the account. This will always be positive."
example: null
pay_out_amount:
type: string
description: "The amount paid out to the insured individual or beneficiary under the conditions of the insurance policy."
example: null
payment_due_at:
type: string
description: "The date and time at which the next payment is due on the account."
example: null
payoff_balance:
type: float
description: "The payoff balance for a debt account. This will normally be a positive number."
example: null
premium_amount:
type: float
description: "The insurance policy's premium amount."
example: null
started_on:
type: string
description: "The date on which a debt account was started."
example: null
subtype:
type: string
description: "The account’s subtype, e.g., PLAN_401_K, MONEY_MARKET, or HOME_EQUITY."
example: "NONE"
total_account_value:
type: float
description: The total value of the account. Max length is 14,2.
example: null
type:
type: string
description: "The general or parent type of the account."
example: "CREDIT_CARD"
updated_at:
type: string
description: "The date and time at which the account was most recently updated."
example: "2021-01-15T17:09:09Z"
user_guid:
type: string
description: "The unique identifier for the user to which the account belongs."
example: "USR-11141024-90b3-1bce-cac9-c06ced52ab4c"
type: object
properties:
account_guid:
type: string
description: "The unique identifier for the account associated with the transaction. Defined by MX."
example: "ACT-5ab76520-e0f8-434f-aedf-4f41b8b3ac6f"
amount:
type: number
description: "The monetary amount of the transaction."
example: 4.99
category:
type: string
description: The category of the transaction.
example: Shopping
check_number_string:
type: string
description: The check number for the transaction.
example: "12345"
created_at:
type: string
description: The date and time the transaction was created.
example: "2021-03-03T16:55:23Z"
currency_code:
type: string
description: The three-character ISO 4217 currency code.
example: "USD"
date:
type: string
description: The date the transaction was created, given in ISO 8601 format without a timestamp.
example: "2021-03-03"
description:
type: string
description: A human-readable version of the original_description field described below. This is provided by the MX platform.
example: "Sam's Club"
guid:
type: string
description: The unique identifier for the transaction. Described by MX.
example: "TRN-bb65493f-326c-4364-b79d-50829bd8277b"
id:
type: string
description: The unique partner-defined identifier for the transaction. This field is only returned with partner-managed transactions.
example: "12345"
is_bill_pay:
type: boolean
description: This indicates whether the transaction represents a bill pay.
example: false
is_direct_deposit:
type: boolean
description: This indicates whether the transaction represents a direct deposit.
example: false
is_expense:
type: boolean
description: This indicates whether the transaction represents an expense.
example: true
is_fee:
type: boolean
description: This indicates whether the transaction represents a fee.
example: false
is_income:
type: boolean
description: This indicates whether the transaction represents income.
example: false
is_international:
type: boolean
description: If the transaction is international as defined by the data provider, this field will be true. If the data provider determines it is not international then it will be false. It will be null if the data provider does not have this information.
example: null
is_overdraft_fee:
type: boolean
description: This indicates whether the transaction represents an overdraft fee.
example: false
is_payroll_advance:
type: boolean
description: This indicates whether the transaction represents a payroll advance.
example: false
latitude:
type: number
description: The latitude of the location where the transaction occurred. The number is a signed decimal.
example: 35.689488
localized_description:
type: string
description: A human-readable description of the transaction, provided in a local language.
example: "Sam's Club"
localized_memo:
type: string
description: Additional descriptive information about the transaction, provided in a local language.
example: "Purchase at Sam's club"
longitude:
type: number
description: The longitude of the location where the transaction occurred. The number is a signed decimal.
example: 139.691706
member_guid:
type: string
description: The unique identifier for the member associated with the transaction Defined by MX.
example: "MBR-0b2121f5-bf4f-4244-a697-cac69160020f"
memo:
type: string
description: This field contains additional descriptive information about the transaction.
example: "Purchase at Sam's Club"
merchant_category_code:
type: number
description: The ISO 18245 category code for the transaction.
example: 0780
merchant_guid:
type: string
description: The unique identifier for the merchant associated with this transaction. Defined by MX.
example: "MCH-f07fcd23-1a18-a1a5-b49b-41d2b1076a69"
original_description:
type: string
description: The original description of the transaction as provided by our data feed. See description above for more information.
example: "XXXX0437 PURCHASE SAM'S CLUB ROCH NY 0029"
posted_at:
type: string
description: The date and time the transaction was posted.
example: "2021-03-03T16:55:23Z"
status:
type: string
description: The status of the transaction. This will be either POSTED or PENDING.
example: POSTED
top_level_category:
type: string
description: The parent category assigned to this transaction's category.
example: Shopping
transacted_at:
type: string
description: The date and time the transaction took place.
example: "2021-03-03T16:55:23Z"
type:
type: string
description: The type of transaction. This will be either CREDIT or DEBIT.
example: DEBIT
updated_at:
type: string
description: The date and time the transaction was last updated.
example: "2021-03-03T16:55:23Z"
user_guid:
type: string
description: The unique identifier for the user associated with this transaction. Defined by MX.
example: "USR-11141024-90b3-1bce-cac9-c06ced52ab4c"
insight_text:
type: string
description: A short, descriptive test field describing the advice or deal that a fingineer has discovered for this transaction.
insight_ctaurl:
type: string
description: The call to action URL for the advice. Sends the end user to a web page for actionable information to follow the advice.
finsight_image:
type: string
description: A url for a relevant image associated with the advice. Generally, this will be a logo for the merchant FinGoal recommends.
recommendation:
type: string
description: A short title for the Finsight. Generally this will be the name of the merchant that FinGoal recommends.
amountFound:
type: float
description: The amount of "found money" the fingineer estimates this advice will save the end user if it is followed.
type: object
properties:
account_guid:
type: string
description: "The unique identifier for the account associated with the transaction. Defined by MX."
example: "ACT-5ab76520-e0f8-434f-aedf-4f41b8b3ac6f"
amount:
type: number
description: "The monetary amount of the transaction."
example: 4.99
category:
type: string
description: The category of the transaction.
example: Shopping
check_number_string:
type: string
description: The check number for the transaction.
example: "12345"
created_at:
type: string
description: The date and time the transaction was created.
example: "2021-03-03T16:55:23Z"
currency_code:
type: string
description: The three-character ISO 4217 currency code.
example: "USD"
date:
type: string
description: The date the transaction was created, given in ISO 8601 format without a timestamp.
example: "2021-03-03"
description:
type: string
description: A human-readable version of the original_description field described below. This is provided by the MX platform.
example: "Sam's Club"
guid:
type: string
description: The unique identifier for the transaction. Described by MX.
example: "TRN-bb65493f-326c-4364-b79d-50829bd8277b"
id:
type: string
description: The unique partner-defined identifier for the transaction. This field is only returned with partner-managed transactions.
example: "12345"
is_bill_pay:
type: boolean
description: This indicates whether the transaction represents a bill pay.
example: false
is_direct_deposit:
type: boolean
description: This indicates whether the transaction represents a direct deposit.
example: false
is_expense:
type: boolean
description: This indicates whether the transaction represents an expense.
example: true
is_fee:
type: boolean
description: This indicates whether the transaction represents a fee.
example: false
is_income:
type: boolean
description: This indicates whether the transaction represents income.
example: false
is_international:
type: boolean
description: If the transaction is international as defined by the data provider, this field will be true. If the data provider determines it is not international then it will be false. It will be null if the data provider does not have this information.
example: null
is_overdraft_fee:
type: boolean
description: This indicates whether the transaction represents an overdraft fee.
example: false
is_payroll_advance:
type: boolean
description: This indicates whether the transaction represents a payroll advance.
example: false
latitude:
type: number
description: The latitude of the location where the transaction occurred. The number is a signed decimal.
example: 35.689488
localized_description:
type: string
description: A human-readable description of the transaction, provided in a local language.
example: "Sam's Club"
localized_memo:
type: string
description: Additional descriptive information about the transaction, provided in a local language.
example: "Purchase at Sam's club"
longitude:
type: number
description: The longitude of the location where the transaction occurred. The number is a signed decimal.
example: 139.691706
member_guid:
type: string
description: The unique identifier for the member associated with the transaction Defined by MX.
example: "MBR-0b2121f5-bf4f-4244-a697-cac69160020f"
memo:
type: string
description: This field contains additional descriptive information about the transaction.
example: "Purchase at Sam's Club"
merchant_category_code:
type: number
description: The ISO 18245 category code for the transaction.
example: 0780
merchant_guid:
type: string
description: The unique identifier for the merchant associated with this transaction. Defined by MX.
example: "MCH-f07fcd23-1a18-a1a5-b49b-41d2b1076a69"
original_description:
type: string
description: The original description of the transaction as provided by our data feed. See description above for more information.
example: "XXXX0437 PURCHASE SAM'S CLUB ROCH NY 0029"
posted_at:
type: string
description: The date and time the transaction was posted.
example: "2021-03-03T16:55:23Z"
status:
type: string
description: The status of the transaction. This will be either POSTED or PENDING.
example: POSTED
top_level_category:
type: string
description: The parent category assigned to this transaction's category.
example: Shopping
transacted_at:
type: string
description: The date and time the transaction took place.
example: "2021-03-03T16:55:23Z"
type:
type: string
description: The type of transaction. This will be either CREDIT or DEBIT.
example: DEBIT
updated_at:
type: string
description: The date and time the transaction was last updated.
example: "2021-03-03T16:55:23Z"
user_guid:
type: string
description: The unique identifier for the user associated with this transaction. Defined by MX.
example: "USR-11141024-90b3-1bce-cac9-c06ced52ab4c"
type: object
properties:
email:
type: string
description: The end user's email address.
example: "testuser@gmail.com"
guid:
type: string
description: The unique identifier for the user. Defined by MX.
example: "USR-1114024-90b3-1bce-cac9-c06ced52ab"
id:
type: string
description: A unique, partner-defined, enforced identifier for the user.
example: "12345"
is_disabled:
type: boolean
description: This indicates whether the user has been disabled. Defaults to false.
example: false
metadata:
type: string
description: Additional information you can store about this user. MX recommends using JSON-structured data.
example: null
Error Response
These are the error responses in case of error code 400
Name | Data Type |
---|---|
errorMessage | String |
errorCode | String |
referenceCode | String |