Skip to content

Currencies

Every bill has a native currency — the currency the service provider raised it in. An account can have bills in more than one currency.

Each service provider chooses the currencies it accepts; a lookup lists them in acceptedCurrencies. A payment in any other currency is refused:

{ "successful": false, "message": "Currency 'EUR' is not accepted by this service provider. Accepted currencies: USD, ZWG" }

If a lookup response has no acceptedCurrencies, pay in the bill’s own currency.

Every lookup takes an optional currency (a three-letter ISO 4217 code such as USD or ZWG):

  • If the account has a bill in that currency, you get that bill.
  • Otherwise you get the provider’s default bill, and — when the provider publishes an exchange rate — its amounts converted into the currency you asked for: conversionApplied: true, with convertedTotalAmount, convertedRemainingBalance, rate and rateDate. conversionIsIndicative: true means the figure is a guide, not a quote.
  • otherCurrenciesAvailable lists the other currencies the account has bills in.

UniPay never converts money. It records exactly what the customer tendered, and separately what obligation that payment settles:

  1. The account has a bill in the payment currency: the payment settles that bill directly.
  2. It doesn’t, the provider bills in a single currency, and it has an exchange rate for the payment date: the payment settles the bill, converted at the provider’s own rate. The rate is recorded with the payment.
  3. Otherwise: the payment is still accepted and recorded, but not against a bill — money that has already left the customer is never turned away. The service provider resolves it through its own exceptions process.

The service provider sees both figures on every payment: what was tendered (amount, currency) and what it settled (allocatedAmount, allocatedCurrency, allocationRate) — see Collect payments.

UniPay API v1 · build e1eb5c49 · Powered by Axis Solutions