Version 1.0 · Effective 29/08/2026 · The Vietnamese text is the binding version; this English text is a reference translation
This document describes how the system actually charges, including the places where that mechanism is not yet complete. Refunds are a separate document: the Refund Policy.
The TexAPI wallet balance is prepayment for the service, denominated in US dollars. It is recorded to a resolution of one millionth of a dollar ($0.000001). In accounting terms it is an obligation TexAPI owes you — revenue is recognised only when you actually use the service.
And, precisely, what it is NOT:
There is no “credit” unit. The system uses USD. If you see the word “credit” anywhere in the product, that is stale copy — please report it to support.
Your balance does not expire. That is a commitment, and it is consistent with how the system is built: there is no expiry column on the wallet or the ledger, and no expiry logic anywhere.
This applies to a subscription’s included usage too: in economic substance a plan is a prepayment plus a discount, and the unused part remains yours.
If your organisation has other members, deleting your individual account does not delete the organisation and does not affect its balance.
Only these amounts are accepted: 5 · 10 · 20 · 50 · 100 USD. The reason for a minimum: below that, the payment-gateway fee plus the first-top-up bonus makes the transaction a loss for TexAPI. That is a real economic constraint, not an arbitrary barrier.
| Domestic bank transfer / QR | International card | |
|---|---|---|
| Currency you pay | VND | USD |
| Conversion rate | a fixed 27,000 VND/USD, not a live rate | — |
| What reaches the wallet vs what you pay | equal in USD value — TexAPI absorbs the gateway fee and any exchange difference | you pay more — the card fee is added to the price |
| Example | top up $10 → pay 270,000 VND → wallet +$10.00 | top up $5 → pay $5.62 → wallet +$5.00 |
| Minimum | $5 | $5 |
On the fixed 27,000 rate: it is a configuration constant, not connected to a live source. The rate applied to an order is fixed when the order is created and recorded on it — changing the configuration afterwards does not re-price existing orders.
On the card surcharge: the amount you will pay is shown before you confirm. The difference is the payment gateway’s fee, not TexAPI’s, and it is not recoverable on a refund.
The gateway notifies TexAPI; TexAPI verifies the notification’s signature, locks the order row, checks the status, then credits the wallet — all in one database transaction. That same transaction applies the first-top-up bonus and any coupon. There is a Confirm payment button if you would rather not wait.
Against double crediting. An order already in the completed state is never credited twice; the bonuses carry a unique database index so they cannot be granted twice. If you ever see money credited twice for one transaction, that is a bug — report it to support, and it is a mandatory-refund case.
| Situation | What the system does | What you should do |
|---|---|---|
| You cancel or abandon it | no credit; the order stays pending | nothing; nothing is taken |
| The gateway reports failure | no credit | try again |
| You underpaid relative to the order | the order moves to failed, and the wallet is NOT credited | contact support immediately — see the warning below |
| You overpaid | the order amount is credited; the excess is not handled automatically | contact support for a refund of the excess |
| The payment link expires (15 minutes) | the order stays pending | create a new order |
Every balance movement leaves an entry, written in the same transaction as the movement itself. Each entry records: the type, the amount (negative is money out), the balance after the entry, a reference type and id, and supporting data. You can see your ledger at Dashboard → Wallet.
| Type | When |
|---|---|
topup | you top up |
subscription_grant | a subscription's included usage is granted |
usage | you use the service (a negative amount) |
adjustment | a manual adjustment by an operator — a credit or a debit |
refund | a refund (negative — money leaves the wallet back to your payment method) |
A transparency point worth making: the first-top-up bonus, coupon bonuses and welcome credit are all recorded as type adjustment, not as a type of their own — they are distinguishable through the reference field. The “total paid in” column rises only on topup and subscription_grant, which means bonus money does not count as real money received. That is the correct treatment, and it is the basis of the refund rule.
A limitation you should know about: the wallet balance is a single amount with no record of which part came from where. Once $10 of real money and $1 of bonus are both in the wallet, the system does not track which was spent first. That is why TexAPI uses the rule “refund no more than what you actually paid on that order”.
On immutability: the ledger is protected by the database so that it cannot be updated — a mechanism at the database layer blocks every update on the ledger table, so correcting a wrong entry means writing a compensating one. Deletion is still allowed, because your own account deletion depends on it; before deletion, entries are copied to a retention table.
A consequence of step 2 that you will see: while a discount applies to you, the hold can be considerably larger than the amount finally taken, because it is priced at the undiscounted rate. Your available balance dips by more than the real cost for a while, and your per-key spend cap is drawn down further than reality. The hold is released when the request finishes.
Rounding: to the micro-dollar, always rounded UP. That favours TexAPI, and this document says so plainly rather than calling it “rounding”. The magnitude: at most $0.000001 per request — roughly $1 over a million requests.
The pricing receipt on each request records: the tokens counted of each kind, the rate in force, the list rate, the discount level, the gross total, the allowed ceiling, the amount as limited by the balance, and the basis the usage was counted on. The receipt is written once at charging time and read back verbatim — the formula is never rebuilt on view — so the number you see today is the number that was applied that day, even if prices have changed since.
This is the most important section of the document. TexAPI publishes the cases that are unfavourable to you too.
| Situation | Handling |
|---|---|
| No route can serve the request | hold released, cost zero |
| The infrastructure returns an error | released, cost zero, a record written with the error code |
| An empty stream — no content reached you | released, cost zero |
| An error while setting up format conversion | released, cost zero |
| The request is blocked by content moderation | the infrastructure is never called; no charge |
| Over a throughput limit or a spend cap | 429 returned, no charge |
| Insufficient balance | 402 returned, no charge |
A stream cut off mid-way. If the model had generated part of an answer and part of it reached you, that part is charged. This holds in all three cases: the infrastructure timed out mid-stream, the connection dropped, and you disconnected yourself.
How the amount is set when the infrastructure reports no token counts — the typical cut-stream case:
The ceiling that protects you: in this reconstruction, the amount does not exceed the sum placed on hold when the request began. The receipt states which basis was used, so you can check.
Why TexAPI charges, plainly: when a stream is cut, the infrastructure still bills TexAPI for all the work the model did. Charging zero in that case would mean giving away precisely the longest calls — which are the most expensive ones — and would create an incentive to abuse the service by disconnecting on purpose.
If you believe a charge in this group is wrong: send the request id to support. TexAPI holds the full pricing receipt to check against, and will refund if the receipt shows an error.
If the process handling your request dies without settling, the reaper closes the hold after 15 minutes and takes the entire held amount — that is, at the undiscounted list rate, for work you may never have received.
That is unfavourable to you and TexAPI publishes it. If your balance is zero, the hold is closed with nothing taken.
Cannot happen. Guaranteed by three independent layers: a database constraint, a check before the debit, and a limit at settlement.
When the balance runs out mid-request: that request completes, and is charged at most the remaining balance — TexAPI absorbs the difference, and the receipt records that the amount was limited by the balance. The next request returns a 402.
TexAPI allows no credit, charges no interest, and offers no credit limit.
The selling price is derived from cost, not typed in by hand: price = cost ÷ (1 − target margin). Because the price is the result of a division, there is no path by which a model can be priced below cost by a typo.
The cost sync runs roughly every 30 minutes and the selling price adjusts with it. There is currently no human approval step in between — the infrastructure raises its price, yours rises automatically. Four guarantees come with that:
| Source | How it applies |
|---|---|
| A subscription plan's discount | applies to all usage, not only the part above the plan |
| A usage-discount coupon | has a validity window; when several qualify, the highest one is taken |
| A promotion set by TexAPI | the most specific rule wins; they do not stack |
A plan discount and a coupon discount stack. A TexAPI promotion competes rather than stacking — the final level applied is the higher of the two.
The loss floor. Every discount is capped by a floor computed from the cost of the exact route that served the request, not an average cost — necessary because routes for the same model can differ greatly in cost. The consequence for you: a published discount may not be applied in full when it hits the floor, and the pricing receipt records when that happens.
| Plan | Price/month | Included usage | Discount | API keys |
|---|---|---|---|---|
| Pay as you go | — | = what you top up | 0% | 2 |
| Starter | $12 | $12 | 5% | 5 |
| Builder | $29 | $29 | 8% | 15 |
| Pro | $79 | $79 | 12% | 50 |
| Team | $199 | $199 | 15% | no practical limit |
Prices exclude VAT — see section 10. Per-plan throughput limits are in the API Terms, section 4.
The plan’s included usage lands in the wallet as real money and does not expire. The period is one calendar month from purchase. Automatic renewal works only on the card channel; orders paid by domestic transfer are one-off and do not renew. There is no pro-rating when you change plans or cancel mid-period.
Cancel at Dashboard → Wallet → Subscription. When you cancel, TexAPI stops the recurring charge at the payment gateway itself — you have nothing further to do on the gateway side.
If stopping the charge at the gateway fails for a technical reason, the interface tells you so at the moment of cancelling rather than reporting success. In that case, if a period is still charged, the system recognises it as a refund owed rather than re-activating the plan, and TexAPI refunds that entire period.
What remains unfavourable and must be said: the benefits end the moment you cancel, with no pro-rating — the plan’s discount and throughput limits stop immediately, even if many days of the period remain. If you cancel mid-period and lose the rest of the period you had paid for, TexAPI credits back the corresponding part on request.
The “held coupon” mechanism, understood correctly: a top-up bonus coupon cannot be valued at the moment you enter it, because its value depends on the amount you top up. So when you enter it, the coupon is held and only applied when you actually top up. Two consequences: holding a coupon is not redeeming it — the coupon’s redemption count has not been used; and an organisation can hold one coupon at a time — entering a second replaces the first.
If applying the coupon fails at the moment of the top-up, your top-up is still credited — the mechanism is designed so a failure at the coupon step cannot lose the money you paid.
First top-up bonus: 10% on the first real-money top-up, once per organisation, with a unique database index guaranteeing it is never granted twice. Once bonus money is in the wallet it does not expire, but it is not refundable — you did not pay for that part.
Abuse prevention: a total redemption count per coupon, a per-organisation count, a minimum top-up, a rate limit on entering codes, and a verified email required to top up. Creating multiple accounts to collect a bonus more than once is prohibited conduct.
Two commitments while that machinery does not exist, both protecting you:
An operator can adjust your balance — crediting or debiting it. Every adjustment:
adjustment entry in the ledger you can see;A debiting adjustment is permitted only to: correct a system crediting error, claw back bonus credit granted through abuse, or process a transaction reversed at the payment gateway. Every case must carry its reason in the audit record, and TexAPI notifies you.
An adjustment is not a refund. An adjustment changes the wallet balance; a refund sends money back to your payment method.
If you see an adjustment in the ledger you cannot explain: contact support, and TexAPI replies with the recorded reason within 5 working days.
The ledger is the authoritative record of your balance. If you believe the balance or a charge is wrong: