
A founder says the platform kept its cut, or says the refund on the dashboard is not the one the connected account was shown. Tonight, three proofs, in a console you administer. Name the fee that charge kept: the fee id, the amount, and the charge, or write that the charge field is null. Show a different fee whose id, or whose amount, is not this one. Show another account's list that does not contain this fee. If any of the three needs the person who wired billing, you have not named the fee. You have a percentage and a guess.
This is the Application Fee object. It is not the transfer a charge created. Which transfer did that charge create? is a transfer id, an amount, and a source charge that the sample leaves null. A fee can name a charge while that transfer's source is still null, and a transfer id is not a fee id. It is not the portal a customer opened. Which portal did that customer open? is a session id, a customer, and a return address. It is not the invite a repository sent. Which invite did that repository send? is an invitation id. It is not the file a store accepted. Which file did that store accept? is a file id and a byte count. It is not the note an invoice issued. Which note did that invoice issue? is a credit note id, an amount, and an invoice. It is not the tax id a customer stored. Which tax id did that customer store? is a tax id, a type, and a value. A platform cut is none of those.
None of what follows is a rate for this product, and none of it is legal advice. The fields below are one processor's current samples of an application fee and of a fee refund. The samples that share an amount do not share an id. The figures below that are a Census estimate of other people's retail sales. A billion-dollar total is not the fee the charge kept tonight.
Stripe's object sample prints one fee, and the refund list inside it does not add to the amount the header claims. The id is fee_1B73DOKbnvuxQXGuhY8Aw0TN. 28 characters. object is application_fee. 15 characters. 15 is not 28. account is acct_164wxjKbnvuxQXGu. 21 characters. amount is 105. amount_refunded is 105. 105 equals 105, and refunded is true. The page says refunded stays false when the fee is only partly refunded. A true flag beside equal amounts is the header saying the fee was fully refunded. application is ca_32D88BD1qLklliziD7gYQvctJIhWBSQ7. 35 characters. 35 is not 28. balance_transaction is txn_1032HU2eZvKYlo2CEPtcnUvl. Also 28 characters, the same length as the fee id, and not the same string. charge is ch_1B73DOKbnvuxQXGurbwPqzsu. 27 characters. 27 is not 28. created is 1506609734. currency is gbp. 3 characters. livemode is false, so the object is an example, not a live fee on your account. originating_transaction is null. The page says that field is the charge on the platform account when the fee came from a destination charge. This sample, the one people paste when they are asked which fee a charge kept, leaves that field null and still prints a charge. fee_source.charge is the same ch_1B73DOKbnvuxQXGurbwPqzsu. fee_source.type is charge. 6 characters. 6 is not 3. A type of charge is not a second charge id (Stripe, The Application Fee object).
The two refunds inside that same object do not support the header. The first id is fr_1MBoU0KbnvuxQXGu2wCCz4Bb. 27 characters, the same length as the charge id, and not that string. object is fee_refund. 10 characters. 10 is not 15. amount is 38. balance_transaction is null. created is 1670284441. currency is usd. 3 characters, the same length as gbp, and not the same string. fee is fee_1B73DOKbnvuxQXGuhY8Aw0TN, the parent. The second id is fr_D0s7fGBKB40Twy. 17 characters. 17 is not 27. amount is 100. balance_transaction is txn_1CaqNg2eZvKYlo2C75cA3Euk. 28 characters, the same length as the fee's own balance transaction, and not the same string. created is 1528486576. currency is usd again. 38 plus 100 is 138. 138 is not 105. 138 minus 105 is 33. The page does not print 138 or 33. 105 minus 38 is 67, which is not the printed 100. 105 minus 100 is 5, which is not the printed 38. Both refund currencies are usd. The fee currency is gbp. Adding two usd amounts to a gbp amount is not a check the page performed, and the page still prints refunded true beside amount_refunded 105. A list that overshoots the header is not a second fee. It is this sample failing to add (Stripe, The Application Fee object).
The gaps between those timestamps are not amounts. 1670284441 minus 1506609734 is 163674707 seconds: 1,894 days, 9 hours, 11 minutes, and 47 seconds. 1528486576 minus 1506609734 is 21876842 seconds: 253 days, 4 hours, 54 minutes, and 2 seconds. 1670284441 minus 1528486576 is 141797865 seconds: 1,641 days, 4 hours, 17 minutes, and 45 seconds. The page does not print any of those gaps. 163674707 is not 105, and 253 is not 38. The second refund's created time is earlier than the first refund's created time. The list order is not time order. The prefix fr_ is 3 characters. The prefix fee_ is 4. 3 is not 4. A shorter id with amount 100 is not the longer id with amount 38, and neither amount is the header's 105.
The create-refund sample is a third id, and it reprints an amount you have already seen. The id is fr_1MtJRpKbnvuxQXGuM6Ww0D24. 27 characters, the same length as fr_1MBoU0KbnvuxQXGu2wCCz4Bb, and not the same string. object is fee_refund. amount is 100. 100 matches the second refund in the object sample and is not a reason to merge the ids. balance_transaction is null, which matches the 38 refund and does not match the 100 refund that stored a transaction. created is 1680651573. 1680651573 minus 1506609734 is 174041839 seconds: 2,014 days, 8 hours, 57 minutes, and 19 seconds. 1680651573 minus 1670284441 is 10367132 seconds: 119 days, 23 hours, 45 minutes, and 32 seconds. The page does not print those gaps. currency is usd. fee is again fee_1B73DOKbnvuxQXGuhY8Aw0TN. metadata is empty. The request on that page does not send an amount. The response prints 100 anyway. A number the sample printed is not a field you sent. Stripe-Version on that request is 2026-10-28.endive. 17 characters, the same length as fr_D0s7fGBKB40Twy, and not that string. The refunds url on the object is /v1/application_fees/fee_1B73DOKbnvuxQXGuhY8Aw0TN/refunds. 57 characters. 57 is not 17, and 57 is not 28. Do not paste 105 onto this refund because the parent fee prints 105. The create sample does not print amount_refunded, and it does not print refunded (Stripe, Create an application fee refund).
The retail totals people quote when they want a money figure did not open this fee. The Census Bureau's advance release of 15 October 2026 says U.S. retail and food services sales for September 2026 were $745.0 billion, up 0.8 percent, plus or minus 0.4 percent, from the previous month, and up 6.3 percent, plus or minus 0.5 percent, from September 2025. 0.8 is not 6.3. 0.4 is not 0.5. 0.8 divided by 2 is 0.4, so the monthly margin is half the monthly point estimate. The page prints both numbers and does not print that half. 6.3 divided by 0.5 is 12.6. The page does not print 12.6. 745.0 divided by 1.008 is 739.087. The page does not print the prior month. 745.0 minus 739.087 is 5.913. The page does not print a dollar change of 5.913 billion. 745.0 divided by 1.063 is 700.847. The page does not print September 2025. None of these is amount 105, and none of them is a fee id (U.S. Census Bureau, Advance Monthly Sales for Retail and Food Services).
The same release revises a month it is no longer estimating, and the revision does not land on the September figures. Total sales for July 2026 through September 2026 were up 5.5 percent, plus or minus 0.5 percent, from the same period a year ago. 5.5 is not 6.3. 6.3 minus 5.5 is 0.8. 0.8 is the September month-to-month figure, and it is not this three-month comparison. The July 2026 to August 2026 change was revised from up 1.1 percent, plus or minus 0.4 percent, to up 1.3 percent, plus or minus 0.1 percent. 1.3 minus 1.1 is 0.2. The page does not print 0.2. The old interval runs from 0.7 to 1.5. 1.3 sits inside it. The new interval runs from 1.2 to 1.4. 1.1 sits outside it. The page does not print 0.7, 1.5, 1.2, or 1.4. A revised percent that still does not name a fee is not your amount. 745.0 is not 105, and a margin of 0.4 is not amount_refunded.
Do the three proofs on one real fee, in the console that actually holds it. First, the binding. Copy the fee id, the amount, the currency, the charge, and amount_refunded. If the charge field is null, write null. Do not invent a charge id because a customer is asking which fee a charge kept. If refunded is true, add the refund rows yourself before you repeat the word. 38 plus 100 was not 105 on the sample, and your rows can fail the same way. If the refund currency is not the fee currency, write both, and do not add them. Second, the other fee. A different id, even with the same amount, is not this one. The create-refund sample is that shape: amount 100 on a new id, against an older refund that also printed 100. A list that reprints the parent id is not that second fee. A retail total is not that second fee. Third, the other account. A list that belongs to someone else does not contain this id. If the only list is one shared platform account, write that. A connected account you cannot name is the finding.
Three moves feel like the proof and are a second problem. Refunding the fee because the amount was embarrassing, and then describing the missing row as a cleanup. The create sample is a different refund id, and a header that already says amount_refunded 105 does not become honest because a later call printed 100. Quoting $745.0 billion because it looks precise, while the fee you were asked about is one object, and the release that printed it had already revised 1.1 to 1.3 without printing the gap. Asking a model which fee the charge kept. The model will pick a plausible account. It will not open the object. A transfer you have not kept is which transfer did that charge create?. Opening that transfer does not name this fee id, and a null source_transaction on a transfer is not a charge you may paste onto a fee.
The path is ordinary when an operator can open one merchant's fees without opening the next merchant's fees as the way to prove it. Meditizer is a commerce ecosystem: a storefront, an agent portal, a customer app, and a referral engine, run from one admin. The shape that matters here is one merchant you can point at, in an account you administer, distinct from the next merchant. That case is not an application-fee ledger. Nothing in that sentence is a headcount, a duration, or a result figure. If the only control on the screen changes every merchant's cut together, you do not have this proof. You have a totals page.
There is a version of this afternoon where hiring the path is the wrong purchase. Nothing is for sale, because the product does not take money yet. You have no product. You are still choosing who will build, and the document in front of you is a term sheet. The criteria for that choice sit on the page written for a top SaaS development company. That page is criteria. It does not rank anyone, including us. The only fact in the room is a retail total. $745.0 billion is not your fee, and 105 on a sample is not your fee, and a refund list that sums to 138 is not a reason to tell a customer the cut was 105. A customer has already seen another customer's fee. Naming an account does not close a leak. Or you wanted a lawyer to say whether a platform cut is allowed. Hire the lawyer.
When the customer is real and the console cannot name the fee, the missing object is specific. An admin action, in an account you administer, that shows one fee id, one amount, and one charge or an explicit null, shows a different fee that is not that one, and shows another account's list without it. A startup software development company that expects this will have put that action next to the rest of the billing screen, before a stranger's complaint is the way you discover the vendor owns the cut. One that needs a call in order for you to see which fee was kept is telling you who holds the id. If the first slice is a fixed capability, an AI integration sprint is the shape where the acceptance sentence can include the three proofs. If you do not yet know which system stores the charge, a two-week AI readiness assessment maps the systems. The findings are yours. They are not a promise that $745.0 billion will appear on your account. If what you are buying is the product around the billing screen, the offer is an AI product development company.
Before you tell them which fee the charge kept, do the three proofs and write the id. Name the id, the amount, and the charge, or write that the charge field was null. Show a different fee that is not that one, even if the amount matches. Show another account's list that does not contain it. Do not paste 100 from a refund onto the fee because both numbers sit near the same parent id, and do not paste 0.8 onto a three-month comparison that prints 5.5. The binding is the fee you can defend.
Questions
Three records, in a console you administer. The fee id, the amount, and the charge, or a written line that the charge field was null. A different fee whose id or amount is not this one, even when the amount matches. Another account's list that does not contain this fee. If any of the three needs the person who wired billing, you do not have the proof.
No. A billion-dollar total of other people's sales is not the id on this fee. A fee you can defend is the id, the amount, and the charge, or a written line that the charge was null. 745.0 billion is not fee_1B73DOKbnvuxQXGuhY8Aw0TN, and 105 on a sample is not your amount.
When nothing is for sale, when you have no product, when you are still choosing a firm, when the only fact in the room is a retail total, when a customer has already seen another customer's fee, or when you wanted a lawyer.
Related: Startup software development company
Find this useful? Tell Google to show you more of it.
