#chrisvr_81746
1 messages ยท Page 1 of 1 (latest)
Good question, checking in to how a currency exchange would show up here
Do you have the ID of a test payment on hand that I can look at for reference?
I actually think it would be on the balance transaction with a type of stripe_fx_fee
If you list balance transactions of that type in your test mode account, do you see the fx fee amount in the amount or fee property on the object?
This payment intent id for example pi_3OH6SzH2wLHuCKJp1Syj0ZU3
from EUR setting in USD account
let me double check that
I believe this is the one
have you tried expanding the balance transaction already? If not, try that out
https://stripe.com/docs/expand/use-cases#stripe-fee-for-payment
I don't think you're expanding balance transaction correctly
look at the example in the doc I shared above for the code, you should have an object under charge.balance_transaction
okay, I tried the other example and got this ^
I see balance_transaction under charges
oh actually, stripe_fx_fee is a type of balance transaction
https://stripe.com/docs/api/balance_transactions/object#balance_transaction_object-type
so I wonder if you might have multiple balance transactions for this payment
hmm. The balance transaction on the charge is a dictionary not a list. But maybe
I see fee: 0 in the balance transaction though. Why is that? is it because is a testing account?
Ah okay, so here's whats happening
I see this from a production case
"balance_transaction": {
"id": "txn_3OH5M3H2wLHuCKJp0XUQq2eG",
"object": "balance_transaction",
"amount": 5745,
"available_on": 1701216000,
"created": 1701093664,
"currency": "usd",
"description": null,
"exchange_rate": 1.08436,
"fee": 0,
"fee_details": [],
"net": 5745,
"reporting_category": "charge",
"source": "ch_3OH5M3H2wLHuCKJp03KEOLoG",
"status": "pending",
"type": "charge"
},
no fee
Each operation with the payment generates its own balance transaction,
i.e.
- actual charge processing has its own balance transaction object
- transfer to connected account has its own balance transaction object
- payment object getting created on the connected account has its own balance transaction object
fx fees are charged on step 3
so they'll be reflected on the balance transaction object linked to py_1OH6TUH0sGnEzV4arG32rp4Y payment object on the connected account
try calling https://stripe.com/docs/api/balance_transactions/list
and setting source to py_1OH6TUH0sGnEzV4arG32rp4Y
ok trying that now
{
"object": "list",
"data": [],
"has_more": false,
"url": "/v1/balance_transactions"
}
oh you might need to set stripe_account header since this object gets created on the connected account
ok let me try that
{
"object": "list",
"data": [],
"has_more": false,
"url": "/v1/balance_transactions"
}
hmm
thinking..
I would assume we should be able to see it in the dashboard
Let's try a different route
Each transfer object would have a destination_payment parameter
https://stripe.com/docs/api/transfers/object#transfer_object-destination_payment
can you try retrieving the transfer object tr_3OH6SzH2wLHuCKJp1oBJQ9NM and expand destination_payment parameteR?
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
since it is a connected account, would that fee be charged to the connected account or the parent account?
sure I can try that
cool, now try expanding destination_payment.balance_transaction ๐ค
no exchange rate shown from this
hmm
on the previous calls I did see an exchange rate, but no fee
"balance_transaction": {
"id": "txn_3OH6SzH2wLHuCKJp1wPcjVwj",
"object": "balance_transaction",
"amount": 14527,
"available_on": 1701216000,
"created": 1701097911,
"currency": "usd",
"description": null,
"exchange_rate": 1.08436,
"fee": 0,
"fee_details": [],
"net": 14527,
"reporting_category": "charge",
"source": "ch_3OH6SzH2wLHuCKJp11WpvemX",
"status": "pending",
"type": "charge"
},
hmm, taking a step back actually I don't see a separate fee for FX on this payment
Are you seeing it anywhere?
no not at all
but its a different currency for sure
customer paying in EUR and connected account is USD
Sorry we went down this rabbit hole without zooming out first.
Part of the reason is our team on discord only knows a fraction about fees related stuff.
Zooming out, you seem to be using Destination charges flow.
With Destination Charges, the platform is responsible for fees. However, I don't see any fee on the balance transaction for the PaymentIntent.
This could either be due to test mode or your account having a special fees structure. I'm not 100% certain.
Hate to do this but I'd recommend writing into our support as they're more familiar with fees and can help understand why you're not seeing any on the PaymentIntent
awesome, no worries. Thanks for all the help!