Yodlee - how to get only new transactions - yodlee

I am looking for a way to get only 'new' transactions from specific account item. I.e. only transactions that was posted to account after I made previous transactions fetch/search.
For example I have the following scenario:
I have add item to consumer. Lets say consumer have 1 account item named 'BankAccount1'.
I fetch/search ALL transactions for some BankAccount1 and store transactions locally.
Now I need a way to get only new transactions on periodic basis. I.e. only transactions that was posted to 'BankAccount1' after previous fetch/search call. Is it possible to do this or I need to get all transactions every time and just skip transactions with Id which already present locally? If transaction Id is unique and incremental (did they?) maybe its possible to save last fetched transaction Id, and on next time get only transactions with Id > prevFetchId (what API to use if its possible)?
p.s.
I am using container based approach REST API.

As per your question, I can infer that you are going to store transactions locally in your DB. In that case Yodlee recommend to use Procedural Data Extracts, using which you can keep your DB in sync with Yodlee Cloud. You can find more details about it here.
Yodlee recommends you to pass date range in the executeUserSearchRequest API to get the transactions for any specific duration,as getting only new transactions may cause some issues. This is why Yodlee recommends to have few days of overlap, this will help you in not missing any transaction.
Transaction ID would be unique but it may not be incremental.

Related

Is it possible to retrive the 'account' associated with a xero bank transaction

I'm using Xero's private API to export bank transactions (so I can automate a bunch of financial reporting).
Retrieving the transactions works well (as documented here https://developer.xero.com/documentation/api/banktransactions) but this endpoint doesn't return the account field associated with each transaction, which I want to use to group the transactions into e.g. "Cost of sale", "Operating expenses" and so on.
Does anyone know of a way to find the account for a given transaction via the API?
Further info:
If the transaction contains line items, then the account associated with each line item is returned by the endpoint above. I'm mostly interested in transactions that do not include line items (the LineItems field is an empty array)
Most of the transactions i'm working with are of the "Spend Money" type
I'm currently using pyxero SDK, but open to other options
The account field is present in Xero's web interface, and on the CSV export available from the web interface.
Our contacts in Xero don't have default accounts.
It is the LineItems of Bank Transactions that have AccountCodes associated with them and I've not been able to find a bank transaction record without a line item in the data I have available to me.
Is it possible that you are not implementing paging? From the bank transactions documentation you linked to above:
Paging BankTransactions (recommended)
To utilise paging, append a page parameter to the URL e.g. ?page=1. If there are 100 records in the response you will need to check if there is any more data by fetching the next page e.g ?page=2 and continuing this process until no more results are returned.
By using paging all the line item details for each bank transaction are returned which may avoid the need to retrieve each individual bank transaction.
I'm not familiar with the pyXero implementation, but it looks like they support Xero paging. From the pyXero readme:
# Grab 100 invoices created after 01-01-2013
xero.invoices.filter(since=datetime(2013, 1, 1), page=1)

How do I access all the information for a Square transaction?

I am a student (so I am pretty new to all of this stuff) trying to create a database for a coffee shop that uses Square for their register and website. I want the database to update with all the information from a transaction every time one is completed.
I have a webhook that gets me the IDs every time a transaction completes, I can send the transaction ID to the Square API with an http request and get back information about the payment, but I still cannot figure out how to get the rest of the transaction information. We want to query the database about what kinds of items are being sold when and with what modifiers, but so far the only way I can get that is through downloading a csv file with the item line information from the Square Dashboard.
If there is a way to get the line item information in some kind of way that can be automatically added to the database, I would really appreciate the help. I have been looking for a solution and cannot find it on my own.
For in-person payments the only way to see itemizations is to use V1 ListPayments (or RetrievePayment).
In order to see itemizations for online payments, you must utilize Square's Orders API. The workflow would be:
Create an order (CreateOrder) with line_items (can be ad-hoc, or use Catalog ids). Save the order_id for the next step.
When calling Charge, pass in the order_id from the previous step.
Once you are successfully attaching the order_id's, when you retrieve a transaction you will be able to call the BatchRetrieveOrders endpoint with the order_id to see the itemizations.
References:
V1 Payments
Orders Overview
Orders Reference

How can i determine correct transaction order?(Order in which transactions were done in the account)

Yodlee seems to be returning running balance for each transaction returned in the API response but here i am facing an issue where i am not able to determine the correct order of transactions and hence the running balance displayed in my app does'nt make any sense because the transactions are not in correct order i.e. the order in which they happened # bank.
Is there any solution to this?
I will really appreciate a proper solutions or any work around for this issue
Note
I have already tried to sort by the id returned for each transaction but it results in incorrect order of transactions
The order can be determined by the transactionDate if returned , Yodlee does not know what order the transactions are nor does it store chronologically.
Its dependent on the end Site from where its scraped and most of the banks are missing the transaction Date .

In Quickbooks Api retrieving a aggreate view of the transactionqueryrq

I am using the QuickBooks Api to request transaction data from a QB database. However due to the number of transactions, it takes a long time for the request to come back. Is there a way of requesting a summarise view in the XML, i.e instead of getting data on TxnID level, I can get it to just aggregated the 'amount' by accounts.
Thanks in advance
Is there a way of requesting a summarise view in the XML, i.e instead of getting data on TxnID level, I can get it to just aggregated the 'amount' by accounts.
Using a TransactionQueryRq? No.
If you're trying to get summary data, you should look into the reporting features of the SDK/qbXML instead -- they are likely closer to what you need.

How can I add test data to retrieve stocks transactions?

I'm testing the
https://developer.yodlee.com/Aggregation_API/Aggregation_Services_Guide/Aggregation_REST_API_Reference/executeUserSearchRequest
endpoint using the sandbox. And I'm able to retrieve all the data; but for the project that I'm working on I need to test mostly with "stocks" data; when I set the data type to "stocks" I get 0 results.
How can I test that? or, maybe, how can I add stocks test data?
Thanks,
JD
For getting stocks transaction you need to have a investment account aggregated which have stocks and transactions. You could use the Dummy Account Generator(DAG) tool to test this. Here is the link about how to use DAG.
Once you create a DAG catalog you can use it as it is or even edit the data or number of transactions present in it(in form of XML) and upload the edited XML to the DAG and then add the site within your Test user account in sandbox.
Using executeUserSearchRequest API you will get the transactions either for all containers or specifically for stocks. But you need to have a test account added to retrieve the transactions.