Request prices in a supported currency and know which amount to charge.
Supported currencies
EUR, USD, INR, CHF, JPY, GBP, AUD, CAD, CNY, SGD, NZD, MXNLowercase values are accepted and normalized to uppercase.
Where to send it
- On
POSTendpoints,currencygoes in the body. - On
GETandDELETEendpoints,currencygoes in the query string.
How a currency is chosen
A new search defaults to USD when you omit currency. From there, pricing, booking, reservation reads and cancellation all inherit the currency of the offer, so you can leave the field out for the rest of the flow.
If you do send currency on a later call, it must match the offer or the quote. A mismatch is rejected with transfer_currency_mismatch rather than silently converted.
The amount to charge
Charge exactly the finalPrice.amount returned by POST /pricing, in the finalPrice.currency returned alongside it.
Do not add anything to it, and do not rebuild a total from the search response or from amenity data. totalAmount on a search offer is indicative: it lets you sort and display options, but only pricing produces the amount you can charge.
If the price of the selected offer is no longer valid, booking answers 409 transfer_price_changed. Request pricing again and charge the new amount.
Errors
{
"statusCode": 400,
"code": "transfer_invalid_currency",
"message": "Unsupported public transfer currency: COP"
}| HTTP | Code | Meaning |
|---|---|---|
400 | transfer_invalid_currency | The currency is outside the supported list. |
400 | transfer_currency_mismatch | The currency does not match the offer, the quote or the reservation. |
503 | The price could not be confirmed right now. Retry later; do not book and do not charge. |