B2B Workflow - Which API I should use?

Hi

I am going to use Square Payment Processing for my B2B application. I would like to have complete control of all my data rather than relying on sellers accounts. . Like stripe is having Connect accounts concept where all your Sellers and there customers data reside in single Stripe account. Let me give you an example

Square Account :- My-Company
Sellers :- Company A
Customer :- This customers belongs to Company A
Category/Services/Items - Need to create for Company A

What are the API endpoint I should use to achieve B2B workflow so My-Company controls all the data.

can Company A have there on Square dashboard login ?

Thanks
Rakesh

:wave: I’m Square Dev AI, here to help answer your question!
Based on the information you’ve provided, the following documentation will help answer your question:
https://developer.squareup.com/docs/squarebridge/business-central/payments/collect-payments

Additional Documentation

Merchant APIs
https://developer.squareup.com/docs/squarebridge
Payment API: Process Online and In-Person Payments

If this documentation helped you find a solution, please check the box indicating that this reply solves the problem.
Otherwise one of our Developer Advocates will provide additional assistance shortly.

To achieve a B2B workflow where your company controls all the data, you would need to use a combination of Square’s APIs.

  1. Customers API: This API allows you to manage customer profiles on behalf of your sellers. You can create, retrieve, update, and delete customer profiles, and also search for customer profiles based on various criteria.

  2. Catalog API: This API allows you to manage the catalog of items for your sellers. You can create, retrieve, update, and delete catalog objects, including items, item variations, categories, discounts, and taxes.

  3. Orders API: This API allows you to manage orders on behalf of your sellers. You can create, retrieve, and pay for orders.

  4. Payments API: This API allows you to take payments on behalf of your sellers. You can create payments, complete (capture) payments, cancel payments, and retrieve payments.

  5. Locations API: This API allows you to manage the locations for your sellers. You can retrieve information about a seller’s locations, including the location’s ID, name, address, and business hours.

As for your question about Company A having their own Square dashboard login, yes, they can. Each Square account has its own login credentials and dashboard. However, if you’re managing all the data on behalf of your sellers, they may not need to access their Square dashboard frequently.

Remember, you will need to use Square’s OAuth API to obtain authorization from your sellers to manage their data. This will provide you with an access token that you can use to make API calls on behalf of each seller.

This answer was reviewed by @Bryan-Square.

so If I am creating all my Sellers and there Customer data into my square account (My-Company), why I need OAuth permission from my sellers ? or my understanding is not right ? I am trying to compare entire implementation with Stripe integration we have done recently so trying to find out how my workflow is gonna look like.

Thanks
Rakesh

If your application is going to take any action like creating a payment or a customer for an account other then your own you’ll have to use OAuth. :slightly_smiling_face:

so I am creating all my sellers and there customers in 1 single Square accounts as I want to hold that information in single account. Will Square support this workflow. ? Stripe supports this workflow and it’s called Connect Accounts. All my sellers and there customer data reside in single Stripe Account.

Your sellers will have there own Square accounts to process payment on right? If so you will need to use OAuth. Once you’ve OAuth’d the sellers account you can store information on your Square account or your sellers account. For example you can create card on file for shared accounts. :slightly_smiling_face:

so for stripe implementation, I don’t need to use OAuth as all connected accounts and there customer are visible from single stripe account.

For square implementation, I assume each sellers accounts will have there own account and I have to get permission through OAuth to process there Payments. Once I get permission , I can save there customer in my own Square account. Probably I have to create Group and add there customer to the group.

Can I create Company A location, there customer, Catalog in my square accounts once I get OAuth Permission right ?

Yes, you can create them all in your account if you need to but since you have OAuth permissions you don’t really need another instance of the customer. Also none of the ID’s will match since we would be creating a new instance of the profile that’s unique to your Square account. :slightly_smiling_face:

make sense. Thanks for your support Bryan.