Guidance Needed: Using One Square Account for Creator Marketplace Payments and Platform Advertising Payments

Hello Square Developer Community,

We would like clarification on the recommended Square configuration for our platform, which supports two distinct payment flows.

1. Existing creator payment integration

Our platform allows creators to receive payments directly into their own Square accounts.

For these transactions:

  • Each creator authorizes our application to process payments on their behalf.

  • We use Square’s marketplace-style payment flow with an application fee.

  • Our platform’s application fee is deducted at the Square level.

  • The remaining funds are credited directly to the creator’s Square account.

This integration is already in place.

2. New advertising payment integration

We are introducing an advertising feature that allows creators to purchase promotional packages to advertise their profiles or content on our platform.

These are payments for a service provided by our platform, not payments to creators.

For advertising transactions:

  • The creator purchases an advertising package directly from our platform.

  • The full payment, less Square’s standard processing fees, should be deposited into our platform’s own Square account.

  • No portion of the payment should be transferred to a creator.

  • No application fee or creator payout is involved.

For example, if a creator purchases a $1.34 advertising package, the payment should go directly to our business’s Square account.

3. Our questions

Can both payment flows operate using the same Square business account and the same Production application, or should we create a separate Square account and/or application for advertising payments?

More specifically:

  1. Can we use the same Production application ID and access token for both creator marketplace payments and direct payments to our platform?

  2. For advertising payments, should we create a payment directly under our own Square account and location, without using the creator’s OAuth access token or an application fee?

  3. Is there a recommended way to distinguish direct platform payments from creator marketplace payments in the API configuration?

  4. Are there any account, application, location, or permissions requirements we should consider when implementing these two flows?

  5. Would using the same Square account and Production application for both flows cause any conflicts with our existing creator payment integration?

4. Production issue we are investigating

We have also encountered an issue with the new advertising payment integration:

  • The checkout process works in Sandbox.

  • The equivalent payment attempt does not appear in our Square Production API logs.

  • We are trying to determine whether this is related to our account/application configuration, credentials, location settings, or the way the direct payment request is being submitted.

We would appreciate guidance on the correct architecture and configuration before making further changes to our Production integration.

Our goal is to keep creator payments and advertising revenue completely separate, while ensuring that advertising payments settle directly to our platform’s business.

Thank you for your help.

Hi there,

Yes, you can use the same Square account and the same production application for both flows. The difference is whose access token you use, and whether you include an application fee. I’d recommend keeping some level of seperation. An easy way to do this would by creating a seperate dedicated “advertising” location. This would keep those revenues separate in reporting. Snce there is no specific API setting to flag, you’d be able to use location_id to distinguish.

r.e. the production issue. Could you supply the app ID and a timestamp so I can take a look? Also worth double checking that the access token you’re using is the production token. It’s easy to forget to change it from the sandbox one.

Hi Isolde,

Thank you for clarifying the setup.

The failed Production advertising attempt used our main FansStack location:

Location ID: LMG1YB64T22B3

I don’t have the timestamp of the earlier attempt. Can you investigate with these identifiers, or would you need a fresh test with the time recorded?

We have now created separate locations for F… Advertising and F… Tips. Those locations were not used for the earlier failed attempt.

Thank you.

Heya @fansstack ,

I’ve dug into it and it was as I suspected that you forgot to change your sandbox application ID to your production application ID somewhere

You server is calling sandbox (connect.squareupsandbox.com) with a sandbox token, but passing the production location ID. Everything needs to be production: the base URL, you production access token, the production app ID in the Web Payments SDK, and the production square.js script. The card token also has to come from the production SDK, because a sandbox token won’t work in production.

Hope that helps! Let me know if you have any further questions