API reference
Every public endpoint of the Ezus Pay REST API: bookings, payment links, transactions and refunds, with parameters, full responses and errors.
Checked against the API code on October 13, 2026
Overview
Base URL: https://api.ezuspay.app. Every request needs the x-api-key header. See Authentication for keys, scopes, limits and the error format.
| Method | Path | Scope |
|---|---|---|
GET | /v1/ping | none |
POST | /v1/bookings | bookings:write |
POST | /v1/bookings/:id/resync | bookings:write |
GET | /v1/checkout-fields | payment-links:read |
POST | /v1/bookings/:id/payment-links | payment-links:write |
GET | /v1/bookings/:id/payment-links | payment-links:read |
GET | /v1/payment-links/:id | payment-links:read |
GET | /v1/transactions | transactions:read |
GET | /v1/bookings/:id/transactions | transactions:read |
GET | /v1/payment-links/:id/transactions | transactions:read |
GET | /v1/transactions/:id | transactions:read |
POST | /v1/transactions/:id/refunds | refunds:write |
The data model in one paragraph. A booking is a trip file. It holds one or more alternatives, which are priced options of the trip (one is the main alternative). Payment links belong to an alternative. Each payment made through a link is a transaction, and a transaction can have refunds. Payments received outside Stripe (bank transfer, cash, cheque) are transactions too, with source: "MANUAL".
Check a key
Ping
/v1/pingReturns the agency behind the key, the environment it reaches and the key's metadata. Use it to validate a key before anything else.
curl https://api.ezuspay.app/v1/ping -H "x-api-key: $EZP_KEY"
{
"success": true,
"data": {
"status": "ok",
"agency": { "id": "3f1c2a9e-8b7d-4c21-9a0e-5d6f7a8b9c0d", "name": "Voyages Horizon", "slug": "voyages-horizon" },
"mode": "LIVE",
"apiKey": {
"id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"prefix": "ezpay_li",
"label": "CRM sync",
"scopes": ["bookings:write", "payment-links:read", "payment-links:write", "transactions:read"],
"expiresAt": "2027-01-11T09:00:00.000Z"
}
}
}
Bookings
Create a booking
/v1/bookingsScopebookings:writeCreates a booking, with its first alternative if you send one. Returns 201. When you send an ezusProjectId that already has a booking, that booking is returned with 200 instead of a duplicate.
| Field | Type | Required | Rules |
|---|---|---|---|
name | string | yes | 1 to 255 characters |
reference | string | no | Up to 255. Generated from your reference settings when omitted. Must be unique in the agency |
ezusProjectId | string | no | Ezus project reference. Needs a connected Ezus account. Alternatives are then read from Ezus |
clientName | string | no | Up to 255 |
clientEmail | string | no | Valid email, or "" |
currency | string | no | A supported currency. Defaults to the agency currency |
fxRateToDefault | number | no | Above 0. Required when currency differs from the agency currency |
alternative | object | no | First alternative. Ignored when ezusProjectId is set |
alternative.alternativeName | string | no | Up to 255 |
alternative.ezusAlternativeId | string | no | Up to 255 |
alternative.totalAmountCents | integer | yes, in alternative | 0 to 99,999,999 |
alternative.departureDate | date | no | YYYY-MM-DD |
alternative.returnDate | date | no | YYYY-MM-DD, on or after the departure |
alternative.travelersCount | integer | no | 1 or more. Default 1 |
curl -X POST https://api.ezuspay.app/v1/bookings \
-H "x-api-key: $EZP_KEY" -H "Content-Type: application/json" \
-d '{
"name": "Bali honeymoon 2026",
"clientName": "Jean Dupont",
"clientEmail": "jean@example.com",
"alternative": {
"alternativeName": "14 days",
"totalAmountCents": 480000,
"departureDate": "2026-07-10",
"returnDate": "2026-07-24",
"travelersCount": 2
}
}'
{
"success": true,
"data": {
"booking": {
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Bali honeymoon 2026",
"reference": "2026-0042",
"ezusProjectId": null,
"ezusDeletedAt": null,
"lastEzusSyncAt": null,
"clientName": "Jean Dupont",
"clientEmail": "jean@example.com",
"currency": "EUR",
"fxRateToDefault": null,
"status": "DRAFT",
"createdAt": "2026-04-21T09:12:00.000Z",
"updatedAt": "2026-04-21T09:12:00.000Z",
"mainAlternative": { "totalAmountCents": 480000, "amountAlreadyCollected": 0 },
"hasPaymentLinks": false
},
"alternative": {
"id": "b3a1f0e2-6d4c-4e8a-9b7f-1c2d3e4f5a6b",
"bookingId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"alternativeName": "14 days",
"ezusAlternativeId": null,
"clientName": null,
"clientEmail": null,
"notes": null,
"totalAmountCents": 480000,
"amountAlreadyCollected": 0,
"departureDate": "2026-07-10T00:00:00.000Z",
"returnDate": "2026-07-24T00:00:00.000Z",
"travelersCount": 2,
"syncStatus": "PENDING",
"createdAt": "2026-04-21T09:12:00.000Z",
"updatedAt": "2026-04-21T09:12:00.000Z"
}
}
}
Booking status is one of DRAFT, PENDING, DEPOSIT_RECEIVED, FULLY_PAID, OVERDUE, CANCELLED. A new booking starts as DRAFT and becomes PENDING when its first link is created. amountAlreadyCollected is in cents.
| Error | When |
|---|---|
409 BOOKING_REFERENCE_CONFLICT | The reference is already used in the agency |
409 EZUS_NOT_CONNECTED | ezusProjectId sent, but the agency has no Ezus connection |
422 FX_RATE_REQUIRED | Foreign currency without fxRateToDefault |
Resync a booking from Ezus
/v1/bookings/:id/resyncScopebookings:writeReads the Ezus project again and updates the booking and its alternatives: name, client, amounts, dates, travelers and main alternative. Alternatives removed in Ezus are marked ORPHAN, never deleted. If an open payment plan exists, its unpaid installments absorb a change of total. The call is synchronous and returns the booking with all its alternatives.
Only for bookings created with an ezusProjectId. No body.
curl -X POST https://api.ezuspay.app/v1/bookings/7c9e6679-7425-40de-944b-e07fc1f90ae7/resync \
-H "x-api-key: $EZP_KEY"
{
"success": true,
"data": {
"booking": {
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"reference": "2026-0042",
"name": "Bali honeymoon 2026",
"ezusProjectId": "PRJ-1029",
"clientName": "Jean Dupont",
"clientEmail": "jean@example.com",
"currency": "EUR",
"status": "PENDING",
"createdAt": "2026-04-21T09:12:00.000Z",
"updatedAt": "2026-04-22T14:30:00.000Z",
"alternatives": [
{
"id": "b3a1f0e2-6d4c-4e8a-9b7f-1c2d3e4f5a6b",
"ezusAlternativeId": "ALT-1",
"alternativeName": "14 days",
"clientName": "Jean Dupont",
"clientEmail": "jean@example.com",
"isMainAlternative": true,
"syncStatus": "SYNCED",
"totalAmountCents": 480000,
"amountAlreadyCollected": 144000,
"travelersCount": 2,
"departureDate": "2026-07-10T00:00:00.000Z",
"returnDate": "2026-07-24T00:00:00.000Z",
"createdAt": "2026-04-21T09:12:00.000Z",
"updatedAt": "2026-04-22T14:30:00.000Z"
}
]
}
}
}
If the project was deleted in Ezus, the call still succeeds: the booking gets an ezusDeletedAt date and its alternatives become ORPHAN.
| Error | When |
|---|---|
404 BOOKING_NOT_FOUND | No such booking in this agency |
422 BOOKING_NOT_FROM_EZUS | The booking has no ezusProjectId |
409 EZUS_NOT_CONNECTED | The agency has no Ezus connection |
401 EZUS_TOKEN_REJECTED, 422 EZUS_LOGIN_FAILED | Ezus refused the stored credentials |
502 EZUS_PROJECT_UNREACHABLE, 502 EZUS_PROJECT_FAILED | Ezus is down or answered with an error |
Payment links
List checkout fields
/v1/checkout-fieldsScopepayment-links:readReturns the questions your agency can ask travelers on the checkout: passport number, dietary needs, and so on. Send the chosen keys as checkoutFieldKeys when you create a link.
curl https://api.ezuspay.app/v1/checkout-fields -H "x-api-key: $EZP_KEY"
{
"success": true,
"data": {
"checkoutFields": [
{ "key": "phone", "label": "Phone", "type": "PHONE", "required": true, "isDefault": true },
{ "key": "passport_number", "label": "Passport number", "type": "TEXT", "required": false, "isDefault": false },
{ "key": "room_type", "label": "Room type", "type": "SELECT", "required": false, "isDefault": false, "options": ["Double", "Twin"] }
]
}
}
| Field | Notes |
|---|---|
key | Stable identifier, a-z, 0-9 and _, up to 50 characters |
type | TEXT, TEXTAREA, EMAIL, PHONE, DATE, SELECT or CHECKBOX |
isDefault | Applied when a link is created without checkoutFieldKeys |
options | SELECT only |
sendConfirmation | EMAIL only. The payment confirmation also goes to the address typed in this field |
An agency has at most 10 fields. The list is empty when none are set up.
Create a payment link
/v1/bookings/:id/payment-linksScopepayment-links:writeCreates a payment link on one alternative of the booking and returns a checkout URL ready to share. Returns 201.
| Field | Type | Required | Rules |
|---|---|---|---|
amountCents | integer | yes | 100 to 99,999,999 |
label | string | no | Up to 255. Defaults to the booking reference, or its name |
allowedMethods | array | no | "card" and/or "sepa_debit". Default ["card"]. SEPA applies to EUR only |
expiresAt | datetime | no | ISO 8601. Omit for a link that never expires |
isReusable | boolean | no | Default false. A reusable link can be paid several times, by several people |
checkoutFieldKeys | array | no | Keys from GET /v1/checkout-fields, up to 10. Omitted: default fields. []: no fields |
alternativeId | string | no | Ezus Pay alternative ID |
ezusAlternativeId | string | no | The alternative's reference in Ezus |
Which alternative gets the link. With alternativeId, that alternative. With ezusAlternativeId, the matching alternative; if it is unknown, Ezus Pay resyncs the booking once and tries again. With neither, the main alternative. Never send both (422).
The currency is always the booking's. For an Ezus booking, the booking is refreshed from Ezus first if its last sync is over a minute old.
curl -X POST https://api.ezuspay.app/v1/bookings/7c9e6679-7425-40de-944b-e07fc1f90ae7/payment-links \
-H "x-api-key: $EZP_KEY" -H "Content-Type: application/json" \
-d '{
"amountCents": 144000,
"label": "Deposit 30%",
"allowedMethods": ["card", "sepa_debit"],
"expiresAt": "2026-05-23T00:00:00Z",
"checkoutFieldKeys": ["phone"],
"ezusAlternativeId": "ALT-1"
}'
{
"success": true,
"data": {
"paymentLink": {
"id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"alternativeId": "b3a1f0e2-6d4c-4e8a-9b7f-1c2d3e4f5a6b",
"label": "Deposit 30%",
"amountCents": 144000,
"currency": "EUR",
"allowedMethods": ["card", "sepa_debit"],
"status": "ACTIVE",
"isReusable": false,
"checkoutFields": [
{ "key": "phone", "label": "Phone", "type": "PHONE", "required": true, "isDefault": true }
],
"kind": "SINGLE",
"checkoutUrl": "https://app.ezuspay.io/lnk/voyages-horizon/8K3QZ7M2XR4T",
"shortToken": "8K3QZ7M2XR4T",
"expiresAt": "2026-05-23T00:00:00.000Z",
"createdAt": "2026-04-21T09:15:00.000Z",
"updatedAt": "2026-04-21T09:15:00.000Z"
}
}
}
checkoutFields is a copy taken when the link is created. Later edits to your field library do not change links already shared.
| Error | When |
|---|---|
404 BOOKING_NOT_FOUND | No such booking in this agency |
404 ALTERNATIVE_NOT_FOUND | The target alternative does not exist |
409 REUSABLE_LINK_BESIDE_PLAN | Reusable link on an alternative with an open payment plan |
422 AMOUNT_EXCEEDS_AVAILABLE | The amount is more than what the payment plan leaves to collect |
List a booking's payment links
/v1/bookings/:id/payment-linksScopepayment-links:readEvery link of the booking, across all its alternatives, newest first. Payment plan links are included. Not paginated.
curl https://api.ezuspay.app/v1/bookings/7c9e6679-7425-40de-944b-e07fc1f90ae7/payment-links \
-H "x-api-key: $EZP_KEY"
{
"success": true,
"data": {
"paymentLinks": [
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"label": "Extra excursion",
"amountCents": 20000,
"currency": "EUR",
"allowedMethods": ["card", "sepa_debit"],
"status": "ACTIVE",
"kind": "SINGLE",
"plan": null,
"expiresAt": "2026-05-23T00:00:00.000Z",
"createdAt": "2026-04-21T09:15:00.000Z",
"updatedAt": "2026-04-21T09:15:00.000Z",
"checkoutUrl": "https://app.ezuspay.io/lnk/voyages-horizon/8K3QZ7M2XR4T",
"alternative": { "id": "b3a1f0e2-6d4c-4e8a-9b7f-1c2d3e4f5a6b", "alternativeName": "14 days", "ezusAlternativeId": "ALT-1" }
}
]
}
}
Link status is one of DRAFT, ACTIVE, EXPIRED, PAID, CANCELLED. A single-use link becomes PAID after its payment. A reusable link stays ACTIVE.
Retrieve a payment link
/v1/payment-links/:idScopepayment-links:readOne link, with its alternative, its booking and what it has collected.
curl https://api.ezuspay.app/v1/payment-links/d290f1ee-6c54-4b01-90e6-d701748f0851 \
-H "x-api-key: $EZP_KEY"
{
"success": true,
"data": {
"paymentLink": {
"id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"label": "Deposit 30%",
"amountCents": 144000,
"currency": "EUR",
"allowedMethods": ["card", "sepa_debit"],
"status": "PAID",
"isReusable": false,
"kind": "SINGLE",
"plan": null,
"checkoutUrl": "https://app.ezuspay.io/lnk/voyages-horizon/8K3QZ7M2XR4T",
"shortToken": "8K3QZ7M2XR4T",
"expiresAt": "2026-05-23T00:00:00.000Z",
"createdAt": "2026-04-21T09:15:00.000Z",
"updatedAt": "2026-04-22T14:30:00.000Z",
"amountPaidCents": 144000,
"paymentCount": 1,
"alternative": {
"id": "b3a1f0e2-6d4c-4e8a-9b7f-1c2d3e4f5a6b",
"alternativeName": "14 days",
"ezusAlternativeId": "ALT-1",
"clientName": "Jean Dupont",
"clientEmail": "jean@example.com"
},
"booking": {
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"reference": "2026-0042",
"name": "Bali honeymoon 2026",
"clientName": "Jean Dupont",
"ezusProjectId": "PRJ-1029"
}
}
}
}
amountPaidCents and paymentCount count payments whose status is SUCCEEDED. A payment that was later refunded, even in part, drops out of these totals. For exact figures, use the link's transactions.
Error: 404 PAYMENT_LINK_NOT_FOUND.
Payment plans in responses
Payment plans (deposit, installments and balance, paid by link or charged to a saved card) are set up in the app. The API does not create them, and a link created through the API is always kind: "SINGLE". Plan links do appear in the two read endpoints above, with kind: "PLAN" and a plan object.
{
"kind": "PLAN",
"amountCents": 168000,
"plan": {
"id": "9b2e4c1a-3f5d-4e6a-8b7c-0d1e2f3a4b5c",
"status": "ACTIVE",
"collectionMode": "AUTO_CHARGE",
"totalAmountCents": 480000,
"paidCents": 144000,
"installments": [
{ "id": "1a2b3c4d-0000-4000-8000-000000000001", "sequence": 1, "amountCents": 144000, "dueDate": "2026-04-21", "status": "PAID", "paidAt": "2026-04-21T10:02:00.000Z", "collectionMode": "AUTO_CHARGE" },
{ "id": "1a2b3c4d-0000-4000-8000-000000000002", "sequence": 2, "amountCents": 168000, "dueDate": "2026-06-15", "status": "SCHEDULED", "paidAt": null, "collectionMode": "AUTO_CHARGE" },
{ "id": "1a2b3c4d-0000-4000-8000-000000000003", "sequence": 3, "amountCents": 168000, "dueDate": "2026-08-01", "status": "SCHEDULED", "paidAt": null, "collectionMode": "AUTO_CHARGE" }
]
}
}
| Field | Values |
|---|---|
amountCents (on the link) | The installment payable now, not the plan total |
plan.status | PENDING (deposit not paid yet), ACTIVE, PAUSED, COMPLETED, CANCELLED |
plan.collectionMode | LINK (the traveler pays each installment) or AUTO_CHARGE (the saved card is charged) |
installments[].sequence | 1 is the deposit |
installments[].status | SCHEDULED, PROCESSING, PAID, FAILED, ACTION_REQUIRED, ON_HOLD, CANCELLED |
installments[].collectionMode | Can be LINK on an AUTO_CHARGE plan: that installment will be paid by link |
installments[].dueDate | YYYY-MM-DD |
On an alternative with an open plan, you cannot add a reusable link, and a new link cannot exceed what the plan leaves to collect.
Transactions
List transactions
/v1/transactionsScopetransactions:readThe agency's payments, paginated. Payments by link, payments entered by hand and payments imported from Ezus are all included.
| Query | Default | Values |
|---|---|---|
page | 1 | 1 or more |
limit | 50 | 1 to 100 |
status | PENDING, SUCCEEDED, FAILED, REFUNDED, PARTIALLY_REFUNDED | |
source | EZUS_PAY (paid by link), MANUAL (entered by hand), EZUS_LEGACY (imported from Ezus) | |
sortDir | desc | asc or desc, by payment date |
dateFrom | YYYY-MM-DD, inclusive | |
dateTo | YYYY-MM-DD, inclusive |
Dates filter on the payment date, or on the creation date for a payment not completed yet.
curl "https://api.ezuspay.app/v1/transactions?status=SUCCEEDED&dateFrom=2026-04-01&dateTo=2026-04-30" \
-H "x-api-key: $EZP_KEY"
{
"success": true,
"data": {
"transactions": [
{
"id": "5f8d0d55-b4a1-4c7e-9a3f-2e1d0c9b8a7f",
"status": "SUCCEEDED",
"source": "EZUS_PAY",
"amountCents": 144000,
"currency": "EUR",
"paymentMethod": "card",
"manualMethod": null,
"note": null,
"payerName": "Marie Martin",
"cardBrand": "visa",
"cardFunding": "credit",
"cardCountry": "FR",
"applicationFeeAmount": 4320,
"applicationFeeAmountHt": 3600,
"applicationFeeVatRate": 20,
"refundedAmountCents": 0,
"refundableAmountCents": 144000,
"stripePaymentIntentId": "pi_3PqR8sLkdIwHu7ix0abc1234",
"paidAt": "2026-04-22T14:30:00.000Z",
"createdAt": "2026-04-22T14:29:58.000Z",
"paymentLink": { "id": "d290f1ee-6c54-4b01-90e6-d701748f0851", "label": "Deposit 30%" },
"alternative": {
"id": "b3a1f0e2-6d4c-4e8a-9b7f-1c2d3e4f5a6b",
"alternativeName": "14 days",
"ezusAlternativeId": "ALT-1",
"clientName": "Jean Dupont",
"clientEmail": "jean@example.com"
},
"booking": { "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7", "reference": "2026-0042", "name": "Bali honeymoon 2026", "ezusProjectId": "PRJ-1029" }
}
],
"pagination": { "page": 1, "limit": 50, "total": 1, "totalPages": 1 }
}
}
| Field | Notes |
|---|---|
paymentMethod | card or sepa_debit. null for a manual payment |
manualMethod | BANK_TRANSFER, CASH, CHECK or OTHER, for manual payments |
payerName | Name of the cardholder or payer. It can differ from the client, for example when a company pays |
applicationFeeAmount | Ezus Pay fee including VAT, in cents. applicationFeeAmountHt excludes VAT. Zero on manual payments |
refundableAmountCents | What a refund would accept right now |
paymentLink, booking | null when the payment has no link or no booking (manual or imported) |
Transactions do not carry payment plan information.
List a booking's transactions
/v1/bookings/:id/transactionsScopetransactions:readSame query parameters and response as GET /v1/transactions, for one booking. Payments by link and payments entered by hand are both included. Returns 404 BOOKING_NOT_FOUND, rather than an empty list, for a booking outside your agency.
List a payment link's transactions
/v1/payment-links/:id/transactionsScopetransactions:readSame query parameters and response, for one link. This is the payment-by-payment detail behind a reusable link. Returns 404 PAYMENT_LINK_NOT_FOUND for an unknown link.
Retrieve a transaction
/v1/transactions/:idScopetransactions:readOne transaction, with two extra fields: the traveler's answers to the checkout fields, and the refund history.
{
"success": true,
"data": {
"transaction": {
"id": "5f8d0d55-b4a1-4c7e-9a3f-2e1d0c9b8a7f",
"status": "PARTIALLY_REFUNDED",
"amountCents": 144000,
"refundedAmountCents": 30000,
"refundableAmountCents": 114000,
"checkoutFields": [
{ "key": "phone", "label": "Phone", "type": "PHONE", "value": "+33612345678" }
],
"refunds": [
{
"id": "0e4c7b2a-9d1f-4a3b-8c6e-5f7a9b1c3d5e",
"amountCents": 30000,
"currency": "EUR",
"status": "SUCCEEDED",
"reason": "REQUESTED_BY_CUSTOMER",
"note": null,
"policy": "KEEP_FEE",
"failureReason": null,
"succeededAt": "2026-05-02T10:00:00.000Z",
"createdAt": "2026-05-01T10:00:00.000Z"
}
]
}
}
}
The other fields are the same as in the list (shortened here). checkoutFields keeps the label and type as they were at payment time, and every value is a string. Refund status is PENDING, SUCCEEDED, FAILED or CANCELED.
Error: 404 TRANSACTION_NOT_FOUND.
Refunds
Refund a payment
/v1/transactions/:id/refundsScoperefunds:writeRefunds all or part of a card or SEPA payment. Returns 202 Accepted: Stripe has accepted the refund, but the money has not moved yet. The final state arrives later, through the payment.refunded webhook and on the transaction. A SEPA refund can take several days.
| Field | Type | Rules |
|---|---|---|
amountCents | integer | 1 to 99,999,999. Omit it to refund everything that is left |
reason | string | DUPLICATE, FRAUDULENT, REQUESTED_BY_CUSTOMER or OTHER |
note | string | Up to 1,000 characters, for your records |
curl -X POST https://api.ezuspay.app/v1/transactions/5f8d0d55-b4a1-4c7e-9a3f-2e1d0c9b8a7f/refunds \
-H "x-api-key: $EZP_KEY" -H "Content-Type: application/json" \
-d '{ "amountCents": 48000, "reason": "REQUESTED_BY_CUSTOMER", "note": "Partial trip cancellation" }'
{
"success": true,
"data": {
"refund": {
"id": "0e4c7b2a-9d1f-4a3b-8c6e-5f7a9b1c3d5e",
"amountCents": 48000,
"status": "PENDING",
"remainingCents": 96000
}
}
}
- The Ezus Pay fee is not refunded.
- A refund already in progress counts against what is left, so two calls can never refund more than the payment.
- Retrying the call creates a second refund. Check
refundableAmountCentsbefore you retry. - Payments entered by hand cannot be refunded through Ezus Pay.
| Error | When |
|---|---|
404 TRANSACTION_NOT_FOUND | No such payment in this agency |
409 TRANSACTION_NOT_REFUNDABLE | The payment has not succeeded, or has no Stripe charge |
409 MANUAL_PAYMENT_NOT_REFUNDABLE | Payment entered by hand |
409 NOTHING_LEFT_TO_REFUND | Already fully refunded |
422 REFUND_AMOUNT_TOO_HIGH | More than what is left to refund |
502 REFUND_FAILED | Stripe refused the refund |
Supported currencies
EUR, USD, GBP, CHF, CAD, AUD, NZD, SGD, HKD, SEK, NOK, DKK, PLN, CZK, HUF, RON, BGN, MXN, BRL, ARS, CLP, COP, AED, SAR, QAR, BHD, KWD, ZAR, KES, GHS, INR, THB, MYR, IDR, PHP.