#frankcastle_docs

1 messages ยท Page 1 of 1 (latest)

rain canopyBOT
#

๐Ÿ‘‹ Welcome to your new thread!

โฒ๏ธ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.

โฑ๏ธ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.

๐Ÿ”— This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1347614505756135505

๐Ÿ“ Have more to share? Add more details, code, screenshots, videos, etc. below.

Below are links to other discussions we've had with you in the past week in case you want to review that information. If your question is related to one of these previous discussions, please provide a comprehensive summary of the current state and what you need help with now. We help many users simultaneously, so a summary allows us to resolve your issue as soon as possible.

reef pecan
#

Hi!

Can we charge buyers and sellers a percentage of the amount that is charged on our platform

Can you tell me more about what you mean here?

sullen heron
#

We are building a marketplace to facilitate transactions between buyers and sellers. When a buyer pays for something using our platform, we would like to take a percentage of the transaction from both the buyer and the seller.

reef pecan
sullen heron
#

We are using a PaymentIntent like:

  Stripe::PaymentIntent.create(
    {
      amount: amount_cents,
      application_fee_amount: fee_amount_cents,
      confirm: true,
      currency: "usd",
      customer: 'cust_1234...',
      description: "",
      metadata: metadata,
      off_session: true,
      payment_method: 'pm_1234...',
      payment_method_types: ["card"],
      transfer_data: {
        destination: "acct_1234...",
      }
    }
  )
#

that gets the application_fee from the buyer just fine. We would like to short pay the seller though.

reef pecan
#

That doesn't get the application fee from the buyer.

#

That charges an application fee to the seller.

#

Well ... 'withholds', not charges.

#

I do suppose that if the fee_amount_cents was the same amount as the amount that you increased the price by for the 'customer fee' then that should work; then you just short the transfer by setting the transfer_data.amount to less than the original sale price by the fee. Does that make sense?

sullen heron
#

In this case the destination account is the seller, and the customer is the buyer. If the buyer pays 100, and our fee_amount_cents is 1, you are saying the destination account would get 99 correct?

reef pecan
#

Right. If the buyer pays 100, what was the original price of the item?

sullen heron
#

100

reef pecan
#

Then you're not collecting anything additional from the buyer.

#

If your fee is 10% to the buyer, 10% to the seller, you'd want to charge the buyer 110, and transfer 90 to the seller.

sullen heron
#

Something like this?

  Stripe::PaymentIntent.create(
    {
      amount: 110,
      application_fee_amount: 10,
      confirm: true,
      currency: "usd",
      customer: 'cust_1234...',
      description: "",
      metadata: metadata,
      off_session: true,
      payment_method: 'pm_1234...',
      payment_method_types: ["card"],
      transfer_data: {
        destination: "acct_1234...",
        amount: 90
      }
    }
  )
#

I suppose the problem with the above approach is from the buyer's perspective it would look like the seller charged them 110. Is there any way to get that 10 platform fee as a separate line item for the buyer?

#

perhaps we should use separate charges and transfers instead of destination charges?

reef pecan
#

That, or just remove the application_fee_amount entirely. That'll leave the 20 with you.

#

I would not use separate charges and transfers for this - that adds complexity.

sullen heron
#

if we removed the application_fee_amount, then the application fee would not show up as a line item for the seller right? We want there to be a way to show the application fee to both the buyer and the seller for tax and accounting purposes.

reef pecan
#

That's a great point.

#

What you could do is something like this:

#

Hold on, I think you're correct - though you should test it to confirm it does what you expect.

In your case you're both shorting the connected account AND doing an application fee, so they should end up with both the correct fee and the correct transferred amount.

But again, test it in test mode. ๐Ÿ™‚

sullen heron
#

ahh, it says, "Stripe::InvalidRequestError: You may not provide the application_fee_amount parameter and the transfer_data[amount] parameter simultaneously. They are mutually exclusive."

rain canopyBOT
reef pecan
#

Damn ๐Ÿ˜‚

#

So you're going to have to do this using just the transfer_data[amount]

#

And figure out how else to surface the fees they paid.

sullen heron
#

Do you know whether transfer_data[amount] results in the same 1099 reporting as separate charges and transfers? Is it possible that for 1099 reporting you would report the full 110 to the shop even though they were only paid 90?

reef pecan
#

I don't know that, but Support should.

#

Might still need Support after that, but that should be useful context nonetheless. ๐Ÿ‘

sullen heron
#

This looks great. Thank you!