Ticket Printing for Scheduled Pickups

I’m seeing some topics and help articles touching on this but I’m not quite sure of the current limitations. In the “Create order” call, we send a “schedule_type” of SCHEDULED and “pickup_at” as the actual pickup time (might be later the same day, or 1-5 days away) and it prints the ticket immediately.

I’ve seen some doc stating this will be the case if automatic printing is turned on. Is this still the case, or is there another attribute I need to set in the “Create order” API call to delay the ticket printing until the day of the PICKUP order? If this is controlled by the ticket printing setting, where is that in the square dashboard now, and what are the full implications of turning that off? Are there only two options: manually print tickets or print every ticket immediately regardless of schedule_type?

:wave: Orders with a fulfillment it prints immediately for ASAP orders. SCHEDULED orders print at the pickup_at time minus any prep_time_duration . :slightly_smiling_face:

Thanks @Bryan-Square. Could not specifying a prep_time_duration cause the ticket to print immediately, instead of at its’ pickup_at time?

If you don’t specify a prep_time_duration it should print at the scheduled pickup_at time. Are you seeing a different behavior?

Yes, the stores are reporting that the tickets are printing immediately for scheduled orders.
Below is an example of a fulfillment object for an order placed last night, for pickup at 9:00am CDT:

{ "state": "PROPOSED", "type": "PICKUP", "uid": "1634536625064x639463653858345000" ,"pickup_details": { "is_curbside_pickup": false, "schedule_type": "SCHEDULED","recipient": { "display_name": "ONLINE ORDER JOEL Pickup", "email_address": "[email protected]", "phone_number": "(xxx) xxx-xxxx" }, "pickup_at": "2021-10-18T14:00:00.000Z" } }

What’s the order_id of one of the orders that printed immediately?


So I was wrong and you do need to have a prep time on it. You can add a field prep_time_duration to the fulfillment (under the pickup_details ) and then the order will print that time period before the pickup_at . :slightly_smiling_face:

Okay, great. Thanks Bryan!

Just want to confirm that we are supposed to define the duration in RFC 3339 - e.g. “PT20M” will result in the ticket being printed 20 minutes before the specified “pickup_at” time, correct? Should this only be included for SCHEDULED orders, or is there no negative effect to defining this duration for ASAP orders?

That is correct. To have the ticket print 20 minutes prior to pickup you’ll need to set the prep_time_duration in RFC 3339. You can also set it for ASAP orders but since they are ASAP they will print immediately. :slightly_smiling_face:

Awesome - thanks again!

@Bryan-Square - I have a scheduled order (for tomorrow) with the prep_time_duration set to 45 minutes, but the ticket printed immediately. This was a very large order, so the additional lead time is actually beneficial in this scenario, but it seems like malfunction based on my understanding of how this is supposed to work. Hoping you can provide some additional details here. Thanks in advance!

Order ID:

The team is looking into this. :slightly_smiling_face:

Hello, I can confirm as an end user using built in square functionality, tickets usually print when the order is placed AND at the desired time minus prep time. “Automatically print tickets” is turned on. However, we have also run into scenarios where the tickets seem to print multiple times (more than desired) randomly. I kind of like the initial print, it gives staff a heads up especially when we start getting slammed with online orders.

@SoTexBBQCo Do you have the Square order_ids of recent orders that printed immediately so the team can take a look?

Hi @Bryan-Square, just checking to see if there’s any update here. Thanks.

The team is still looking into this. I’ll be sure to reach out with any updates. :slightly_smiling_face:

Thanks @Bryan-Square - Just adding a reply so the topic doesn’t auto-close.

Hi there, any news about that?

On the iPad it takes about 2 minutes until the online order is displayed. On an Android phone, however, only a few seconds. Any reason for that? @Bryan-Square

We saw that the auto-print function is not 100% reliable. Especially when the app is closed or running in the background.

Btw: Great forum :wink: