Trouble trying to import Square transactions to Invoice Ninja via Zapier

So I’m attempting to use zapier to integrate square and invoice ninja. Client creation is going back and forth nicely, but invoice creation from a square transaction is going badly. It appears that needed information either isn’t supplied to zapier by square, or is in a manner neither zapier nor ninja can interpret. I get blank invoices.

I’m curious if anyone else has tried to do this and if they were successful? If successful, what settings did they choose in their zap setup to get a properly filled-in invoice?

Secondly, has anyone found any app, service, or script that can read a receipt and import it into ninja as an invoice?

I figure if I can’t use zapier to do what I need, and I initially went with invoice ninja because of the promised integration square offered via zapier, then perhaps I can use another method to do the same thing. I just want my clients to log into their ninja dashboard to see all their invoices and transactions with me, even if I swiped their card on the square device at the end of a call. I want their invoice records all in one place.

Maybe try using the logs in Zapier to debug what’s being sent from Square.

That’s what the zapier tech and I were doing yesterday. I did a dump into google sheets from one of their zaps just to see what was being brought through. Unfortunately, it appears that square isn’t offering the needed fields in their transactions to the zapier system. I downloaded the square transaction csv file late yesterday to see if I could do basic csv imports into ninja. They have the product, quantity, and description all in the same csv field! When I went poking around the square knowledgebase, there isn’t a way to configure the csv fields before download and I let them know this is really bad.

I thought perhaps if I could split that field up into at least two fields, quantity and description, that perhaps that might work, but when I save to csv out of openoffice calc, ninja’s import feature thinks everything is in one massive column instead of the separate columns they are in the spreadsheet. I went digging around online and learned about the field settings checkbox in openoffice calc, so I went in there and ensured that tab and comma were chosen and that text delimiter was still quotations. But still, ninja didn’t like the output.

I’m not sure how to manipulate the csv file for direct import into ninja now. I thought that maybe if I did direct imports once a day or once a week, that would do just fine and not bother with zapier.

I’m not sure, you may want to open the CSV file is a plain text editor to make sure commas are used as the delimiter.

That would work as far as a low number of transactions goes, but making changes via spreadsheet view would go faster for larger lists. I have a couple tasks I’ve pushed off so far this week that need tending to before I return to this issue, then I will try the plain text editor method and see how it goes. Whether I use zapier or csv import or some other method I don’t know about yet, I just want a way to import transactions into ninja. … that’s what I thought I could do when I first chose the two programs.

You seem to be implying we’re advertising something we’re not providing, I don’t think that’s the case. I personally implemented our Zapier integration, it works exactly as expected.

If you have questions I’m happy to help, if you want to complain I’m probably not the best person to complain to.

#1: I did say in my original post in this thread:

I’m curious if anyone else has tried to do this and if they were successful? If successful, what settings did they choose in their zap setup to get a properly filled-in invoice?

Secondly, has anyone found any app, service, or script that can read a receipt and import it into ninja as an invoice?

#2: My complaint, if you read my statements about what was provided to zapier and what wasn’t, is with Square! It appears based on my google sheets dump and their csv file, that they are the ones not providing the necessary information. That isn’t a complaint against you, it’s against them, and I’ve let them know that.

I want to know if anyone has done this successfully as per my quoted portion of the original thread above, and if they managed to do it, how they accomplished it, because even the zapier tech I’m working with is baffled.

InvoiceNinja itself is something I wish I’d found over a year ago because it actually does pretty much everything I needed but had to outsource for after I left freshbooks a year ago in the spring. My searches failed to bring up your software back then, which is a shame for me because it appears your software was around at that time. But. . . I’ve found it now. I found it because square was the one promoting their zaps, and your software came up in the list on zapier.

I am disappointed with Square’s integration fields.

Don’t take my disappointment with them as being with you. I want to know who made this work and how they did it. If they didn’t do it, what other service or method did they use to do it. So if you got this working, was it with the invoicing or the data created from the square app? That will be my first question directly. My plan is to use the app on my android for Square with the card reader and I’ve actually ordered the tap’n pay reader, hoping to split the cost with another business in the household if all can go well for me first.

Sorry, I’m overly sensitive :slight_smile:

Happy you found us, I’ll obviously do everything I can to help get it working.

Thanks. I have the client integration working great. A different tech at zap agreed that I could do this in a two-zap method rather than a multi-zap which I currently don’t have enough business to support (the $20/mo fee). So my second zap needs to find the client and create the invoice. I did create a 3-step zap that would find or create the client then create the invoice, but I have another zap doing the find or create.

The zapier tech and I simply can’t seem to match up the fields square has provided. I get blank invoices or no invoices if I fill in optional fields or not.

Is this something we need to move to email over, or how do you want to offer your assistance?

How are you matching up the fields? Can you post an example from the Zapier logs.

Trying to get this working has pushed off two other tasks for three days, so I am going to get those out of the way, then return to this one.

My transaction history has several iterations of this zap, and only show results of fields chosen, not the field names themselves. I will try to match up field names with field results, probably via screenshots and photoshop, to answer your question as fully as I can. The first transaction history entry tried to say there was no client found, when the client that should have been found IS in the ninja database thanks to another zap that put it there. According to the zapier tech, that seems to be an issue between client ID, or customer ID available from square. I’ll have to find the zap where I tried to fill in optional purchase information. That will take a little time so I will get these two pushed-off tasks done first, then return to this.

Going back through the logs, I think the zapier tech might have been closer than we both thought, to solving this. At least for a 3 step zap.

phone_number: (blanked out as it’s a real number)
family_name: Dawson
email_unsubscribed: false
created_at: 2018-08-29T02:51:41.32Z
updated_at: 2018-08-29T02:54:19Z
given_name: Marilynn
id: Y64CC8EM2591Q.LOYAL
name: Regulars
creation_source: MERGE
product: REGISTER
created_at: 2018-08-29T20:32:05Z
currency: CAD
amount: 1050
currency: CAD
amount: 0
currency: CAD
amount: 1050
location_id: E63C33315A8EZ
created_at: 2018-08-29T20:32:05Z
currency: CAD
amount: 0
customer_id: 90BJJ5BKM57PYHQHG0MXTR4FWG
type: CASH
id: EpceT9IUnTd554CnJeI6KQB
transaction_id: qqBPWAR7axLOJhMQg6VEkB5eV
client_id: d067ada4-68f5-4a43-a446-436e0d29da41
location_id: E63C33315A8EZ
id: qqBPWAR7axLOJhMQg6VEkB5eV

I’ve had issues getting from “register” to actual data. In this example, a single purchase came up as a single purchase in invoice ninja, but I still needed to add the actual item to add the price and taxes. Right now this invoice looks like a credit instead. How do I ensure the right quantity of a product is imported, and have the product chosen so it’s price and taxes are properly accounted for?

What values are being passed for the item qty and cost?

Nothing that I can correlate. The square transaction fields have a gross which seems to be the same as cash details, but then they have two other values that seem to duplicate each other for transaction money. If there was only one of each, I’d assume one was cost and the other was transaction total, but that’s not what I see by way of field names.

Incidentally, square is now denying they support any integration through zapier that isn’t in line with the apps they officially support. So much for getting their help on this. I’m not doing so well trying to edit the csv file in notepad, which at this point would otherwise be so much easier and I could call the issue closer to being done.

So yeah, there doesn’t seem to be a cost field that relates only to the product. The quantity is lumped into the description field along with the product name. They don’t have their own field names to call in the zapier invoice template screen. Two of my tests have more than one of an item, and that quantity shows up at the beginning of the description, not as a field of it’s own. I found this out looking at the csv in openoffice calc because I couldn’t find this info in the google sheets dump. Product in the square field options contains the quantity, name, and description of the product in the csv file, but only shows as “register” in google sheets. The one time I managed to somehow get a partial invoice created via the three-step zap, all that data showed up in the ninja description area.

I’m not sure, I think Zapier support (who are very helpful) will likely be your best source of help.

If you want to email the CSV file to I can review it. My suggestion was to use a text editor just to check which delimiter is used, not to update the file.

From what I saw in notepad, the delimiter for text is a quotation mark, the delimiter between fields is a comma. I’ll take a look at the output of saving a csv from calc to see what ended up there. . . just had the thought that perhaps I can do a mass find and replace if its something different, then try an import routine.

Oh, and the guy at zapier is saying I can do this with a 3-step zap, but not a 2-step, and unfortunately for me, I need to build my income back up to where I can afford a $20/mo fee to allow for 3-step zaps.

Ok, in Calc, if I change the output from western to utf-8, check to put all text fields in quotes, remove check for presenting data in same appearance, and then save, it will be read just fine by your import feature. Invoices import as credit notes to begin with until I go into each invoice and add the item from the item list. When I do that, the invoice balances out.

I think this is how I will do my integration for now. I add a quantity column. The only time invoices won’t import, is if they are missing required information. The fields in the importer mapping screen don’t tell me which fields are required however. Could you provide that list? When I have entries that complete that list, the import goes just fine.

Did one more calc test. . . I broke out the product name into it’s own field as well, changed the transaction ID’s a little for a fresh import, and now I have complete invoices in Ninja! Until I do so many square swiped that this becomes too tedious, this will be how I go forward.

Great, so it sounds like it’s working?

Let us know if you have any other questions.