Terminal API / Orders API Combined Workflow

Hi All!

I’m an optician and I’m using my own practice management software (PMS) which, one day, I hope to market. I’m using C#/WPF predominantly for the frontend.

I only switched to Square last week and very pleased. We have a Square Register and a Square Terminal. Our current (temporary) workflow is that we take create a transaction on the PMS so that the itemised transaction is linked to the patient record. We then select “card payment” and manually take a “custom amount” payment on one of our Square devices.

I’ve started to write the API code, so that this process can be automated. Ideally, I’d like the following workflow:

PMS Creates Itemised Order using Order API → Receptionist Selects that order on the Terminal / Register and takes payment → Once payment is complete, that order updates in the PMS.

However, I’m aware at the moment that orders do not appear unless they are paid. So it seems like the actual workflow needs to be:

PMS creates transaction locally and gets a final amount → Use Terminal API to create and take payment on a specific device (chosen from within the PMS) → Once transaction is complete, create the itemised order and mark as paid by card.

Does that seem about right? I’ve already created test transactions in the sandbox and that works well. I’m off-site today - using the terminal API to create a transaction on my iPad’s Square Retail app remains as pending but I assume it will work once I’m physically using the square hardware.

Thanks for any pointers,

With the Terminal API and Square payments once a payment is made there’s not way to update it with additional order details. You’ll need to first create the order then include it in the CreateTerminalCheckout request.

Where is the itemized order being built? You could build a web or mobile application that builds and creates the order. Once the customer is ready to checkout the application can call CreateTerminalCheckout from the web or mobile application that will push the payment to the Terminal. Once the payment is completed the paid itemized order will show in the Square Dashboard. :slightly_smiling_face: