Stripe FX Quotes API vs выделенный валютный API: что выбрать в 2026?
Если вы принимаете платежи онлайн, то наверняка заметили: Stripe FX Quotes API против выделенного валютного API — один из самых частых архитектурных вопросов в инженерных каналах финтеха. FX-инструменты Stripe выросли: курс можно зафиксировать на срок до 24 часов, FX-комиссию увидеть заранее, а локализованные цены показывать автоматически. Закономерный вопрос: нужен ли вообще отдельный API курсов в стеке?
Короткий ответ — «зависит, и серьёзные продукты обычно используют оба». Длинный ответ — этот материал. Сравним подходы по цене, покрытию, задержкам, точности и DX, разберём пять реальных инженерных сценариев и покажем рабочий код для каждой стороны, чтобы решение выдерживало масштаб.
TL;DR — кто когда выигрывает
Используйте Stripe FX Quotes API, когда конверсия привязана к платежу/трансферу/выплате через Stripe и нужно гарантировать ставку, по которой Stripe реально проведёт операцию, до чекаута.
Используйте выделенный валютный API вроде Finexly для курсов вне платёжного потока: страницы прайса, бухгалтерия, treasury-дашборды, аналитика, мобильные приложения, мульти-валютные счета, FX-риск-модели или любой продукт, который показывает курсы без немедленного списания.
Большинство продакшен-стэков сочетают оба: выделенный валютный API питает всё до и после платежа, а Stripe FX Quotes API — момент конверсии в чекауте. Почему — ниже.
Что на самом деле делает Stripe FX Quotes API
FX Quotes API — относительно новая часть платёжного стэка Stripe. Можно запросить гарантированный курс пары валют, привязать котировку к PaymentIntent, Transfer или Payout, и пока котировка действительна, Stripe обещает рассчитать по этому курсу.
Как это работает
Запрашиваете у Stripe котировку для пары валют и срока. Stripe возвращает quote с зафиксированным курсом, временем истечения, FX-комиссией и «премией», растущей со сроком. ID котировки указываете при создании платёжного объекта. Если на момент расчёта котировка ещё валидна — получаете ровно обещанную конвертацию.
Три типичных срока:
- Короткое окно ~ 5 минут, для синхронных чекаутов.
- Среднее окно ~ 1 час, для корзин, восстановления брошенных корзин и quote-to-cash.
- Длинное окно ~ 24 часа, для B2B-инвойсов, плановых трансферов и расчётов с отсрочкой.
Цена состоит из двух частей. Первая — стандартная FX-комиссия Stripe около 2% для большинства пар, поверх стоимости обработки кросс-бордер карты. Вторая — премия, растущая со сроком: 24-часовая котировка дороже 5-минутной, потому что Stripe берёт на себя больше рыночного риска.
В чём сильна
FX Quotes API превосходно решает одну конкретную и ценную задачу: убирает неопределённость в момент реального движения денег. Если клиент когда-либо жаловался, что цена в чекауте не совпала с выпиской по карте, вы знаете, как болезненно. С зафиксированной котировкой Stripe этот разрыв исчезает. Цифра, которую показали, — это цифра, по которой рассчитались.
Это и единственный способ узнать точную FX-комиссию Stripe заранее. Это не чистый процент: она меняется по коридорам, валютам и времени. FX Quotes API возвращает её как число для отображения, логирования или передачи покупателю.
В чём слаба
FX-инструменты Stripe жёстко связаны с его расчётной системой. Они построены вокруг денег, которые вы двигаете через Stripe. Это плохо подходит, когда курсы нужны, а карта не списывается: страницы цен, внутренние отчёты, treasury-модели, оффлайн-приложения, бухгалтерия, сверяющая банковские переводы, дашборды трендов FX.
Покрытие тоже у́же, чем кажется. Stripe принимает платежи в 135+ валютах, но FX Quotes доступны не для каждой пары, региона и Merchant Category Code (MCC). Высокорисковые MCC исключены полностью.
Что делает выделенный валютный API
Выделенный API курсов валют вроде Finexly — узкоспециализированный сервис: говорит, какой курс между двумя валютами сейчас и в любой момент в прошлом. Он не двигает деньги. Ему всё равно на MCC. Он отдаёт надёжные данные через простой REST.
Как это работает
Делаете HTTP-запрос — получаете JSON со свежими mid-market курсами из Finexly API. Также — исторические курсы за любую дату на годы назад, time-series для графиков и прямой эндпоинт конвертации.
Один вызов вернёт текущий курс для 170+ валют:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://api.finexly.com/v1/latest?base=USD&symbols=EUR,GBP,JPY"Ответ из edge — менее 50 мс и кэшируется, что важно для высоконагруженных страниц цен.
Покрытие и цены
Хороший валютный API обычно покрывает 170+ валют, включая мажоры, миноры, экзотику и часто крипто. Тариф — за запрос, и обычно сильно дешевле FX-комиссий платёжных процессоров. Free-план Finexly включает 1000 бесплатных запросов в месяц, чего достаточно для небольшого SaaS целиком на free-уровне. Большие объёмы — тарифы.
Важно: вы платите за доступ к данным, а не за конвертированный объём. Если показываете миллион конверсий в день на маркетинг-сайте, это не процент от воображаемых $1M, а один CDN-кэшируемый вызов API.
В чём сильна
Выделенные валютные API — правильный инструмент, когда курс — это поверхность продукта, а не платежа. Примеры: маркетинг-страница с «от 19 €» по локали; SaaS-дашборд с балансами в валюте пользователя; Shopify-тема с превью в 30 валютах до чекаута; бухгалтерия, проводящая USD-инвойс в EUR-книге по историческому mid-market; финтех-приложение, визуализирующее тренд EUR/USD за 5 лет.
Подробнее — гайды мульти-валютный чекаут Shopify и конвертер на React.
В чём слаба
Выделенный API публикует mid-market референс. Это правильное число для отображения, бухгалтерии и аналитики, но не обязательно курс, по которому платёжный процессор рассчитает карту. Если нужен точный курс движения денег — котировка процессора и есть истина. Mid-market — истина рынка; курс процессора — истина транзакции.
Сравнение «бок о бок»
| Параметр | Stripe FX Quotes API | Выделенный валютный API (напр. Finexly) |
|---|---|---|
| Главная цель | Зафиксировать курс для платежа Stripe | Данные курса для любого случая |
| Покрытие валют | 135+ (с учётом MCC и региона) | 170+, включая экзотику |
| Тип курса | Расчётный курс Stripe (с FX-комиссией) | Mid-market референс |
| Задержка | ~150–400 мс (live-вызов) | <50 мс с edge-кэшем |
| История | Нет | Да, многолетняя |
| Time-series | Нет | Да |
| Модель стоимости | ~2% FX + премия за срок | За запрос, есть free |
| Кэш | Ограниченно (срок котировок) | Поощряется агрессивный |
| Использование вне платежей | Не для этого | Основной кейс |
| Mobile/offline | Нужна live-сеть | Легко локально кэшируется |
| Онбординг разработчика | Аккаунт Stripe, KYC, проверка MCC | API-ключ за 60 секунд |
Пять реальных сценариев — что выбрать
1. Страница цен с локальной валютой
У вас SaaS. Цены: «$29/мес» для США и «27 €/мес» для Германии. Выделенный валютный API. Это отображение, не платёж. Нужен один sub-50мс запрос, кэшируемый на часы, а не платёжная котировка с зашитыми 2%.
2. Кросс-бордер чекаут картой
Клиент платит в EUR, а вы получаете в USD. Чек должен совпадать с карточным списанием. Stripe FX Quotes API. Зафиксируйте 5-минутную котировку при загрузке корзины, привяжите к PaymentIntent — клиент не увидит расхождения.
3. B2B-инвойс с net-30
Сегодня выставляете инвойс в GBP; клиент платит в USD через 25 дней. Оба. Покажите GBP-сумму и USD-референс через конвертер Finexly для контекста. На клик «оплатить» — свежая котировка Stripe в этот момент. Референс при выставлении и расчётный курс при оплате — разные задачи.
4. Treasury-дашборд и мониторинг FX-риска
Финансы хотят дашборд в стиле Looker: остатки в 7 валютах + 90-дневный график EUR/USD. Выделенный валютный API. Stripe FX Quotes не отдают истории, не дают time-series и не созданы для аналитики. Валютный API — нативно.
5. Мобильное приложение с офлайном
Вы делаете travel-приложение, конвертирующее валюты в аэропортах с плохим Wi-Fi. Выделенный валютный API. На запуске кэшируете 170 курсов в ~4 КБ JSON и конвертируете офлайн что угодно. FX-инструменты Stripe не работают офлайн — они привязаны к live-котировке. Подробнее — гайд по API курсов для мобильных.
Примеры кода
Stripe FX Quotes API (Node.js)
import Stripe from 'stripe';
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
// Step 1: lock a rate good for 5 minutes
const quote = await stripe.fxQuotes.create({
to_currencies: ['eur'],
from_currency: 'usd',
lock_duration: 'five_minutes',
});
const rate = quote.rates['eur'].exchange_rate;
const expiresAt = quote.lock_expires_at;
// Step 2: attach the quote to a PaymentIntent
const intent = await stripe.paymentIntents.create({
amount: 2900, // 29.00 USD presented to the buyer
currency: 'eur', // settled in EUR using the quote
fx_quote: quote.id,
});Гарантированный курс, EUR-сумма до оплаты и точное совпадение расчёта. Цена — FX-комиссия Stripe + небольшая премия за окно.
Finexly Currency API (Node.js)
const API_KEY = process.env.FINEXLY_API_KEY;
async function getRates() {
const res = await fetch(
'https://api.finexly.com/v1/latest?base=USD&symbols=EUR,GBP,JPY',
{ headers: { Authorization: `Bearer ${API_KEY}` } }
);
const data = await res.json();
return data.rates;
}
// Display localized pricing
const rates = await getRates();
const priceInEur = (29 * rates.EUR).toFixed(2);
console.log(`Price for German visitor: €${priceInEur}`);Это курс, который вы показываете, логируете или используете в аналитике. Не коммитите транзакцию — читаете рынок. Кэш на час и один вызов API обслуживает тысячи pageview. Больше языков — в гайде по Node.js или туториале Python.
Скрытые издержки, на которые стоит смотреть
При сравнении не останавливайтесь на заголовочных цифрах. Скрытые расходы есть.
Сюрпризы со стороны Stripe. 2% — средняя; некоторые коридоры выше. Adaptive Pricing может добавить 2–4% невидимо для клиента, повышая эффективную цену. Кросс-бордер карточные сборы складываются с FX. На $100K/мес кросс-бордера даже разрыв в 0.5% — это $6K/год.
Подводные камни валютных API. Free-планы часто жёстко ограничивают rate; кэш — с первого дня. Некоторые провайдеры обновляют только раз в день; для intraday — уточняйте частоту. Перед продом прочитайте наш разбор кэша и обработки ошибок.
Цена неиспользования котировки. Если показали цену по вчерашнему курсу, а Stripe рассчитал по сегодняшнему — разница ваша. На 1% движения по сделке мало, но накапливается за месяц. Либо фиксируйте на чекауте, либо заложите буфер в цене.
Как объединить оба для лучших результатов
Самая сильная продакшен-архитектура, которую мы видим в Finexly:
Выделенный валютный API питает всё вне момента платежа: страницы цен, дашборды, бухгалтерия, мобильные, поиск, аналитика, FX-риск-отчёты. Кэшируйте агрессивно (TTL 1 час чаще всего достаточно). Один API-ключ, предсказуемая стоимость, sub-50мс ответы.
Stripe FX Quotes API питает всё внутри момента платежа: зафиксированные курсы в чекауте, точные числа в чеках, проводки, согласованные с расчётом. Без сюрпризов клиенту.
Сверка замыкает контур. После расчёта в Stripe логируйте и расчётный курс Stripe, и соответствующий mid-market валютного API. Разница — реальная стоимость FX, а отслеживание её во времени — одно из самых высокорычажных действий финансовой команды финтеха. Подробнее — гайды по хеджированию и управлению валютным риском.
Прямое сравнение с другими выделенными провайдерами — наша сравнялка ExchangeRate-API vs CurrencyLayer vs Finexly.
Часто задаваемые вопросы
Stripe FX Quotes API бесплатен?
Сама по себе API не имеет повызовной платы, но конверсии несут стандартную FX-комиссию Stripe (~2% по большинству пар) плюс небольшую премию за длинные локи. Отдельной «подписки» нет; цена включена в платёж.
Можно ли валютным API рассчитать платёж Stripe по своему курсу?
Нет. Stripe всегда рассчитывает по своему курсу; внешний курс в его движок не вшивается. Можно показать клиенту собственный курс (валютный API + ваша маржа), а реальный расчёт зафиксировать котировкой Stripe. Промахнулись — разрыв ваш.
Насколько быстрее выделенный валютный API?
Типичный edge-вызов — менее 50 мс. Round-trip Stripe FX Quote — 150–400 мс, потому что это live-подписанный вызов к платёжной инфре. На сайте с сотнями ярлыков валют на странице — это разница между мгновенным рендером и заметной задержкой.
Что если котировка Stripe истекла до использования?
Становится недействительной — нужна новая. В синхронном чекауте редко. В асинхронных задачах (B2B-инвойсы, плановые трансферы) выбирайте более длинный лок заранее или будьте готовы перезапросить и подтвердить с клиентом.
Можно ли совсем избежать FX-комиссии Stripe?
Иногда. Если держите остатки в валюте клиента и расчёт ведёте в ней — FX не нужно. Мульти-валютные аккаунты Stripe и treasury-стратегия по нескольким PSP убирают большую часть. Выделенный валютный API нужен, чтобы смоделировать, оправдана ли стратегия.
Начать
Готовы добавить курсы в реальном времени? Получите бесплатный API-ключ Finexly — без карты. Начните с 1000 бесплатных запросов в месяц, ответами sub-50 мс и 170+ валютами из коробки и масштабируйтесь по росту.
Explore More
Vlado Grigirov
Senior Currency Markets Analyst & Financial Strategist
Vlado Grigirov is a senior currency markets analyst and financial strategist with over 14 years of experience in foreign exchange markets, cross-border finance, and currency risk management. He has wo...
View full profile →