title: How to calculate application fees into a Stripe transfer or payment intent where the source is my platform
body: <p>I need to transfer money from my Stripe platform account to a customers Connected bank account. There's no Stripe charge associated with this transfer, as <a href="https://stripe.com/docs/connect/charges-transfers" rel="nofollow noreferrer">separate charges and transfers</a> is how I've created the business model.</p>
  <p><strong>Problem</strong> - I need to collect/recoup fees from the transfer amount to cover my fees (5%) plus the Stripe Connect fees (0.25%) and I'm unsure about how to compute the numbers as taking 0.25% of the transfer will equate to a larger % than what Stripe will take in the payout.</p>
  <p>Ex. Transfer $10.00 to Connect bank account</p>
  <blockquote>
  <p>$10.00 - 5%(myFee) = $9.50</p>
  </blockquote>
  <blockquote>
  <p>I take out $0.25%(stripe) of $9.50 = $9.50 - $0.2375 = $9.2625</p>
  </blockquote>
  <p>I now send(transfer) $9.2625 to a Connect bank account</p>
  <blockquote>
  <p>Stripes payout will take 0.25% of $9.2625 = $0.2316</p>
  </blockquote>
  <blockquote>
  <p>The problem is I'm taking .25% out of $9.50 and Stripe is taking .25% out of $9.2625</p>
  </blockquote>
  <p><strong>Possible 2nd option</strong> - I also see from the <a href="https://stripe.com/docs/connect/destination-charges#application-fee" rel="nofollow noreferrer">Stripe docs collecting fees</a> that you can create a payment intent with a destination where you can add a &quot;ApplicationFeeAmount&quot; and this seems like it might work for what I need, but it only creates a payment intent. I still need a customer's card/bank account to charge with payment intents.</p>
  <p><a href="https://i.stack.imgur.com/KQOpi.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/KQOpi.png" alt="enter image description here" /></a></p>
  <p>Here is the example code Stripe provides.</p>
  <pre><code>var service = new PaymentIntentService();
  var createOptions = new PaymentIntentCreateOptions
  {
    PaymentMethodTypes = new List&lt;string&gt;
    {
      &quot;card&quot;,
    },
    Amount = 2000,
    Currency = &quot;usd&quot;,
    ApplicationFeeAmount = 123,
    TransferData = new PaymentIntentTransferDataOptions
    {
      Destination = &quot;{{CONNECTED_STRIPE_ACCOUNT_ID}}&quot;,
    },
  };
  service.Create(createOptions);
  </code></pre>
  <p>but this doesn't confirm the intent, it just creates it.
  So I tried adding these 3 fields below where &quot;PaymentMethod&quot; is the id of my platform account as the payment intent needs a source.</p>
  <pre><code>Confirm = true,
  CaptureMethod = &quot;automatic&quot;,
  PaymentMethod = &quot;acct_1B1*********K&quot;
  </code></pre>
  <p>After trying this I received an error from the API saying:</p>
  <blockquote>
  <p>&quot;No such PaymentMethod: 'acct_1B1*********K'&quot;</p>
  </blockquote>
  <p>So I'm not sure if it's possible to transfer funds this way from my platform to a Connect account while adding fees? I might be stuck sending a regular transfer with the fees removed.</p>