Automated Digital Fullfilment by 3rd Party

I would like to know if Square has a way for my company to develop a solution that would automatically fulfill an order of a digital item sold by another company at a retail location.

Here is the scenario we would like to create if possible.

There are 2 businesses involved.

  • Business A is a software development company.
  • Business B is an event center location that already uses Square to sell physical products and admission to their location.

A patron arrives at Business B, and along with paying for admission, they also purchase a digital item that Business B is selling, but Business A is fulfilling.

When this item is purchased, Business A’s backend API is notified, and asked to fulfill the order. To fulfill the order, the API generates a unique code, and sends it to a phone number or email provided by buyer at time of purchase to Business B.

This code is then used by the patron to unlock content within a mobile app created by Business A.

So to put it another way, using tools provided by Square, is there a way for one business to sell an item at a retail location, that will by automatically fulfilled by another company in a digital manner?

Currently we don’t have a publicly available digital delivery service that you can use to programmatically fulfill orders sold by other Square sellers. We’re constantly working to improve our features based on feedback like this, so I’ll be sure to share your request to the API product team. :slightly_smiling_face:

@Bryan-Square , I don’t have much experience with Square at all.

Can you explain how what I am trying to do is different than an integration like Printful, where a 3rd party customizes a physical product and ships it based on an order through Square?

It’s the delivery and fulfillment part that we don’t have a solution for. You can create the order and process the payments with Square using OAuth, Payments API, Orders API, and Catalog API. After that we don’t have any additional products that can be used to digitally deliver the items purchased. :slightly_smiling_face:

Ignoring delivery for a moment…

Is there a way for Business B to allow Business A’s API to be automatically notified when Business B sells a particular item at a retail location?

Where are the funds going to? Business B or business A. :slightly_smiling_face:

It would be awesome if there was a mechanism for a portion of the funds to go to each business.

However, it would meet our needs if all the funds went to Business B, as long as Business A was informed of the item purchase.

You can with app_fee_money. Lastly is this a custom application that business A is using or are they using the 1st party Square app? If so this isn’t possible.

However it is possible to build this if the app your building is a custom POS that business A will be using for all their sales. You can do this with Terminal API. :slightly_smiling_face:

We, Business A, want to be able to offer this type of mechanism to other businesses, that are likely using the standard Square POS app.

So, it seems the answer is: Not Possible.


Yes, that’s correct! This isn’t currently possible you want the fee. But if you have another way of collecting a fee outside of Square. You can have an app that listens with webhooks for sales and reads the itemized sale. :slightly_smiling_face:

If I understand the webhooks correctly, this would mean that Business B would have to grant Business A access to information about ALL items in ALL orders?

Is there an approach I am overlooking that would result in a webhook being called only for a particular item that Business B is selling in partnership with Business A?

Also, with this webhooks approach, is it possible for the customer’s email and/or phone number to be collected in a way that Business A would be able to access this info?

With this approach business B would have access to orders and catalog items. You can OAuth with read only permissions if you don’t plan on writing to the catalog.

With webhooks there isn’t an event that is triggered for a specific item. It will trigger an event for every order.

Since the sale is happening on business As account the customer information would belong to business A. You’ll have to add CUSTOMERS_READ permission to allow business B read customer information from business A. :slightly_smiling_face: