Global payment operations including currency conversion, tax calculation, regional pricing, and fraud detection via Stripe.
| Method | Path | Summary |
|---|---|---|
GET | /payments/localization | List supported currencies |
POST | /payments/localization/convert | Convert currency |
POST | /payments/localization/calculate-tax | Calculate tax |
POST | /payments/localization/get-price | Get regional price |
POST | /payments/localization/fraud-check | Check fraud risk |
{% api-endpoint method=“GET” path=“/payments/localization” /%}
List supported currencies and exchange rates
Operation ID: listCurrencies
| Name | Type | Required | Description |
|---|---|---|---|
action | string | No | Values: currencies, exchange-rates, payment-methods |
region | string | No | ISO country code for regional payment methods |
Currency list or exchange rates depending on action
| Field | Type | Required | Description |
|---|---|---|---|
currencies | object[] | No | - |
rates | object | No | - |
methods | object[] | No | - |
{% tabs %} {% tab label=“cURL” %}
curl -X GET 'https://api.wave.online/api/v1/payments/localization?action=currencies' \
-H 'Authorization: Bearer YOUR_API_KEY'
{% /tab %} {% tab label=“TypeScript” %}
import { WaveClient } from "@wave/sdk";
const client = new WaveClient({ apiKey: "your-api-key" });
const currencies = await client.payments.listCurrencies();
console.log(currencies);
{% /tab %} {% /tabs %}
{% api-endpoint method=“POST” path=“/payments/localization/convert” /%}
Convert between currencies
Operation ID: convertCurrency
Content-Type: application/json
| Required
| Field | Type | Required | Description |
|---|---|---|---|
amount | number | Yes | Amount to convert |
fromCurrency | string | Yes | Source currency code (e.g., USD) |
toCurrency | string | Yes | Target currency code (e.g., EUR) |
Conversion result
| Field | Type | Required | Description |
|---|---|---|---|
originalAmount | number | Yes | - |
convertedAmount | number | Yes | - |
fromCurrency | string | Yes | - |
toCurrency | string | Yes | - |
exchangeRate | number | Yes | Rate used for conversion |
timestamp | string | Yes | Rate timestamp |
{% tabs %} {% tab label=“cURL” %}
curl -X POST 'https://api.wave.online/api/v1/payments/localization/convert' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"amount": 9999,
"fromCurrency": "USD",
"toCurrency": "EUR"
}'
{% /tab %} {% /tabs %}
{% api-endpoint method=“POST” path=“/payments/localization/calculate-tax” /%}
Calculate tax for a given amount and jurisdiction
Operation ID: calculateTax
Content-Type: application/json
| Required
| Field | Type | Required | Description |
|---|---|---|---|
amount | number | Yes | Amount in smallest currency unit |
currency | string | Yes | Currency code |
jurisdictionCode | string | Yes | Tax jurisdiction (e.g., US-CA) |
customerId | string | No | Customer ID for exemptions |
isBusiness | boolean | No | Whether buyer is a business |
isDigitalService | boolean | No | Whether product is digital |
Tax calculation
| Field | Type | Required | Description |
|---|---|---|---|
subtotal | number | Yes | Amount before tax |
taxAmount | number | Yes | Calculated tax |
total | number | Yes | Amount including tax |
taxRate | number | Yes | Applied tax rate (decimal) |
jurisdiction | string | Yes | - |
breakdown | object[] | No | Tax breakdown by type |
{% tabs %} {% tab label=“cURL” %}
curl -X POST 'https://api.wave.online/api/v1/payments/localization/calculate-tax' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"amount": 9999,
"currency": "USD",
"jurisdictionCode": "US-CA",
"isDigitalService": true
}'
{% /tab %} {% /tabs %}
{% api-endpoint method=“POST” path=“/payments/localization/get-price” /%}
Get regional pricing for a product
Operation ID: getRegionalPrice
Content-Type: application/json
| Required
| Field | Type | Required | Description |
|---|---|---|---|
productId | string | Yes | WAVE product identifier |
regionCode | string | Yes | ISO region code (e.g., BR) |
Regional price
| Field | Type | Required | Description |
|---|---|---|---|
price | number | Yes | Price in local currency |
currency | string | Yes | Local currency code |
usdPrice | number | Yes | Equivalent USD price |
discount | number | No | Regional discount percentage |
{% tabs %} {% tab label=“cURL” %}
curl -X POST 'https://api.wave.online/api/v1/payments/localization/get-price' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"productId": "pro_monthly",
"regionCode": "BR"
}'
{% /tab %} {% /tabs %}
{% api-endpoint method=“POST” path=“/payments/localization/fraud-check” /%}
Check fraud risk for a transaction
Operation ID: checkFraudRisk
Content-Type: application/json
| Required
| Field | Type | Required | Description |
|---|---|---|---|
amount | number | Yes | Transaction amount |
currency | string | Yes | Currency code |
address | object | Yes | Billing address |
email | string | No | Buyer email |
Fraud assessment
| Field | Type | Required | Description |
|---|---|---|---|
riskLevel | string | Yes | Values: low, medium, high |
score | number | Yes | Risk score (0-100) |
flags | string[] | No | Risk flags |
approved | boolean | Yes | Whether transaction should proceed |
{% tabs %} {% tab label=“cURL” %}
curl -X POST 'https://api.wave.online/api/v1/payments/localization/fraud-check' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"amount": 9999,
"currency": "USD",
"address": { "country": "US", "state": "CA", "postalCode": "94105" }
}'
{% /tab %} {% /tabs %}