Praxis Wiki logo

Overview Understanding Amounts


Understanding how amounts are handled throughout a transaction is essential — including how they're processed, how fees are applied, how currency conversion works, and most importantly, which values should be credited or debited to the customer’s balance.

{danger.fa-exclamation} IMPORTANT:
Transaction and session amounts may change during processing. More details are available in the Notification Amounts section.

Notification Amounts

During transaction processing, amounts may sometimes change especially in approved deposits. This typically occurs due to the behavior of certain PSPs.
For example, bank wire and crypto payments require customers to complete the transfer outside the PSP interface, which allows them to modify the amount and/or currency.

Amount-related values appear in multiple fields across notifications:

  • session.amount and session.currency represent the amount attempted — either submitted in a cashier login request or by the customer during a withdrawal. These are always in the base currency (same currency as you sent in the cashier login request).

  • session.processed_amount and session.processed_currency represent the total processed amount across all approved transactions during cashier session or via Direct API, in base currency.

  • transaction.amount and transaction.currency reflect what the customer submitted within the cashier. These may change in the final notification based on the amount received from the PSP. This is the value you should use to credit or debit the customer’s balance.

  • transaction.processed_amount and transaction.processed_currency show what the customer will see on their bank receipt or SMS. The currency here may differ if changed in the cashier or by the PSP. If a conversion occurs, transaction.conversion_rate will indicate the rate used to convert from amount to processed_amount.

Key Points:

  • transaction.currency always matches the currency sent in the initial API call.
  • After processing, transaction.amount will always correspond to transaction.processed_amount, either in the same currency or different - calculated according to the transaction.conversion_rate.
  • These values — transaction.amount, transaction.processed_amount, and transaction.processed_currency — may change by the time the transaction reaches its final status, depending on what is confirmed by the PSP.
  • If PSP processing takes time, the transaction.conversion_rate may change.
  • For withdrawals where transaction.processed_currency differs from transaction.currency, you must treat transaction.currency as the base for payout processing, though the actual process at PSP will be in the transactionprocessed_currency.

Conversion

In some cases, the processing currency may differ from the one originally submitted. This can happen in the following scenarios:

  • The cashier offers multiple currencies based on configuration, and the customer selects an alternative.
  • The PSP itself processes in a different currency — depending on the PSP or merchant account configuration.

Note:
Currency conversion at the Praxis side is never applied to refunds or to transactions processed via Direct API, unless the PSP itself performs the conversion.

If a withdrawal is requested in a currency different from the base, processing will occur in the customer-selected currency. This will be reflected in transaction.processed_amount and transaction.processed_currency.

Fees

If you are applying transaction fees, there are two main fee types to consider:

  • Included fees: The fee is subtracted from the intended transaction amount.
  • Added fees: The fee is added on top of the transaction amount, increasing the total charge.

Fees can be calculated as a flat value or as a percentage of the transaction amount.

The examples below demonstrate the effect of a 7% fee on a $10 transaction (deposit or withdrawal).

Deposit – Fee Included

  • Amount shown on status page: $9.30 (credited to customer’s balance)
  • Receipt note: $10.00 (charged to customer)
  • transaction.amount= 930
  • transaction.processed_amount= 1000
  • fee= 70

Deposit – Fee Added

  • Amount shown on status page: $10.00 (credited to customer’s balance)
  • Receipt note: $10.70 (charged to customer)
  • transaction.amount= 1000
  • transaction.processed_amount= 1070
  • fee= 70

Withdrawal – Fee Included

  • Amount shown on status page: $10.00 (debited from customer’s balance)
  • transaction.amount= 1000
  • transaction.processed_amount= 930
  • fee= 70

Withdrawal – Fee Added

  • Amount shown on status page: $10.70 (debited from customer’s balance)
  • transaction.amount= 1070
  • transaction.processed_amount= 1000
  • fee= 70