The Task
My company management want to automate the reports and display the payment data, along with other key indicators in a custom dashboard for executives. Currently, our reports are just a large spreadsheet with graphs that admins have to build manually.
Our admins will get a report from Square by log in to the dashboard and export a CSV then add the numbers to the company report. This report takes too much time and is not accurate on a daily basis. Hence the request to automate the retrieval of data from Square.
The Problem
We have pulled all payments for a given week, starting Monday and 12am (T00:00:00) ending Sunday at 11:59 (T23:59:59). Then compared them to a report in the Square dashboard for the same time period. The totals do not match. For every time period the numbers are off by hundreds of dollars.
We are using the Payments API to request all payments within the time frame
https://connect.squareup.com/v2/payments?begin_time=2024-03-17T00:00:00+06:00&end_time=2024-03-24T23:59:59+06:00
Then we get the refunds processed within that same time period
https://connect.squareup.com/v2/refunds?begin_time=2024-03-17T00:00:00+06:00&end_time=2024-03-24T23:59:59+06:00
After adding up all the payment totals, adding the fees, and adding the refunds we get totally different numbers.
The Questions
Why are the numbers from the API different from the numbers from the API?
Are there other sources in the API we can use to get more accurate total sales for a given day/week/month that match the dashboard numbers?
How are the Square dashboard report numbers calculated? What data sources are they using that the API does not have access to?
There used to be a Reports API for Square that essentially negated this problem. I could pull data from the same report using that API that matched the data users would see on the web interface. Why can’t we do that now?
Why doesn’t Square allow custom user created reports to be emailed on user determined timelines from the web interface?
As far as we can tell, the only way to schedule a report is to go to Account & Settings → Business Information → Email Notifications. The only option is clicking one checkbox titled “Monthly and annual sales summaries”. Which is basically useless for timely reporting.
I’m not sure what other information I can give. Please let me know whet we can do to get accurate data from the API.