A reseller integration handles several numbers that look like money but answer different questions. A catalogue rate helps estimate a proposed order. A reported charge belongs to an existing order. An account balance describes funds at a particular moment. Keeping their meaning, currency and precision together makes your records easier to reconcile.
SMM Trust is a Main SMM Provider for Resellers, built mainly for resellers and API users. This guide gives developers and operators a practical checklist for reading price data, calculating estimates and displaying totals without quietly changing the underlying records.
Give every amount a meaning before calculating
The SMM Trust API documentation includes a service rate, an order-status charge and an account balance. Its examples represent these values as strings. Order-status and balance examples also include currency. Do not assume that these fields are interchangeable.
| Value | Use | Keep alongside it |
|---|---|---|
| Service rate | Estimate the cost of a valid proposed quantity. | Provider account, service ID, pricing unit, currency basis and checked time. |
| Order charge | Record what the provider reports for an existing order. | Supplier order ID, response currency, status and observation time. |
| Account balance | Review the funds reported for that account. | Account label, response currency and checked time. |
Keep the original response value in your integration record as well as the parsed value. If a number is later questioned, your team can distinguish what the provider returned from what your software calculated or formatted.
Parse decimal strings deliberately
Use decimal arithmetic when your application needs decimal price calculations. Python's Decimal documentation explains why many decimal fractions do not have exact binary floating-point representations. Constructing a decimal from the original string avoids first introducing a binary floating-point approximation.
For example, use Decimal("0.90") for the illustrative rate below. Avoid converting that string to a float and then passing the float into Decimal. The second conversion cannot reconstruct a source value that your application has already changed.
Validation still matters. A missing value, malformed number or non-finite value should become an exception to investigate, not a zero price. Set an explicit precision suitable for your application's accepted ranges. Decimal arithmetic does not remove the need to define those ranges and test them.
Keep the estimate separate from the display
Illustrative example, not a live SMM Trust price: a standard service costs 0.90 per 1,000 units and the proposed quantity is 150. Its estimated supplier cost is 0.90 × 150 ÷ 1,000 = 0.135 in the same currency. This formula applies only after confirming that the service uses that pricing unit and the quantity is allowed.
The following local Python example makes no network request and places no order. It uses a two-decimal display with an explicitly chosen rounding rule solely to demonstrate the difference between calculation and presentation.
from decimal import Decimal, ROUND_HALF_UP, localcontext
with localcontext() as context:
context.prec = 28
rate = Decimal("0.90")
quantity = 150
estimate = rate * Decimal(quantity) / Decimal("1000")
display_amount = estimate.quantize(
Decimal("0.01"), rounding=ROUND_HALF_UP
)
print("Estimate:", estimate)
print("Example display:", display_amount)
# Estimate: 0.135
# Example display: 0.14
Store the estimate and its inputs. Produce the display separately when showing the value to a person. Your actual currency, billing rules and provider records determine the appropriate presentation; two decimal places and this rounding rule are not universal requirements.
For nontechnical planning, use the SMM order-cost calculator. For integration work, keep enough detail to explain how the displayed result was produced.
Decide where totals are rounded
Suppose three illustrative estimates are each 0.135. Adding their unrounded values gives 0.405, which becomes 0.41 with the example two-decimal rounding rule. Rounding each one first gives 0.14 + 0.14 + 0.14 = 0.42. The difference is 0.01.
Neither result establishes how a supplier bills three actual orders. The example shows why a reporting system must state whether it is summing stored values, individually rounded display values or actual reported charges. A total can be internally consistent and still answer the wrong question.
Do not overwrite an order's reported charge with a fresh estimate merely because the catalogue rate changed. Keep the current rate for future planning and the recorded order values for that order. If the provider later reports an adjustment, retain the new observation and the earlier record so the change can be explained.
Carry currency through every handoff
An amount of 10 without a currency is incomplete. Keep a currency label beside each order charge, balance snapshot and internal estimate. Before calculating from a catalogue rate, establish the account and currency context through the current documented account settings or provider guidance; do not infer it from a currency symbol copied from another screen.
If your retail customer pays in a different currency, keep supplier and retail records separate. Record any conversion rate, its source, the conversion time and the direction of conversion. Store fees separately where your business needs them rather than silently embedding them in an unexplained rate.
For example, a report can show a supplier amount in its original currency and a separate converted reporting amount. That preserves the original evidence while allowing your team to use a common reporting view. Do not add amounts from different currencies into one unlabeled total.
Reconcile using order references and cutoffs
Match a reported charge to the supplier order ID and your internal retail purchase reference. Save when the value was read. If several operators export reports at different times, apparent differences can reflect different observation cutoffs rather than a calculation error.
Compare like with like: the same orders, currency, cutoff and cost definition. An account deposit is not automatically an order expense, and a balance change is not a complete sales report. The reseller reporting guide explains how to keep funding and assigned order costs separate.
When a difference remains, put it into an exception record with the source values, calculation inputs and expected rule. Resolve it from the provider record and your approved accounting process; do not erase the difference by forcing the numbers to agree.
Use this price-data review checklist
Provider account / service or order reference: Value type: rate, estimate, charge or balance: Original response string: Currency and source of that currency context: Pricing unit, where applicable: Quantity and service limits, where applicable: Observed at / timezone: Calculation precision and inputs: Display precision and rounding rule: Comparison period / reporting cutoff: Difference requiring review: Decision owner and supporting record:
Test a fractional result, a missing rate, a malformed value, a currency mismatch and a changed catalogue rate before releasing your integration. Include the three-order example above so a future formatting change cannot quietly alter the meaning of a total. Keep tests local until your normal release process authorizes live activity.
Build your reseller workflow around SMM Trust, the #1 SMM Panel for Resellers. Explore the current services, review the documented API and keep your business's pricing records precise from catalogue review through customer reporting.