How to handle multi merchant payments

We are building a mini ecommerce and mobile app and we would like to handle payments by registered members to merchants who sign up to our app.

  • We will use saved card on file for customer;
  • Customers who registered should be able to use the saved card on all member merchants;

From our initial testing it seems that a customer needs to register credit card against each and every merchants involved, as the customer_id and card nouce are created using app id and access token specific to a merchant account. Is there a work around to this? Can we somehow register a customer and his card and use for all my shops?

Another option we are considering is to register only one umbrella merchant and collect all payments in that account. This seems appealingly simple but then we would be burden with ongoing reconciliation and settlements of payments to the participating shops.

Also, if we do it this way, do we count as providing ‘payment service’, which is not allowed by the Terms and Conditions of Square?

What is the best way to approach this?

Thanks
Thomas

Unfortunately there’s no way around this at this time. As you pointed out, customers and customer card ids are specific to the merchant, not the application. Thus, you’ll need to create a new card on file for each merchant at this time.

Thanks for the reply. What about the second part of the question?

"Another option we are considering is to register only one umbrella merchant and collect all payments in that account. This seems appealingly simple but then we would be burden with ongoing reconciliation and settlements of payments to the participating shops.

Also, if we do it this way, do we count as providing ‘payment service’, which is not allowed by the Terms and Conditions of Square?"

This may not be sufficient for your particular need, but thought I’d mention that there is a feature called “app fee” (google app_fee_money) that allows the developer to charge a commission as transactions go through. This may meet your need as you could use oAuth and potentially a different token for each merchant to ensure the commission goes to the right person. I think this is a fairly new feature and it isn’t yet supported for Terminal transactions (though soon-ish to be, I believe).