Inyo

Foreign Exchange

La API Foreign Exchange devuelve tasas de cambio (FX) en tiempo real para pagos entre divisas. Usa la tasa y el fxId en tu solicitud de Push Transaction o Pull and Push.

Solicitar una Tasa

Devuelve una tasa de cambio ajustada al método de pago. Métodos diferentes (cuenta bancaria, billetera, tarjeta) pueden llevar spreads de FX diferentes.

Endpoint

POST https://{FQDN}/v2/foreign-exchange

Encabezados:

EncabezadoValor
AuthorizationBearer {accessToken}
Content-Typeapplication/json

Solicitud

CampoTipoRequeridoDescripción
sourceCurrencyCodestringSíDivisa de origen (ISO 4217, p. ej., "USD")
destinationCurrencyCodestringSíDivisa de destino (ISO 4217, p. ej., "BRL")
paymentMethodstringSíMétodo de pago para el cálculo de la tasa (ver valores abajo)
sourceCurrencyAmountnumberNoMonto en la divisa de origen. Se acepta como número o como cadena entre comillas (20.00 y "20.00" funcionan). No cambia la respuesta — calcula tú el monto de destino como sourceCurrencyAmount × conversionRate
destinationCountryCodestringNoPaís de destino, ISO 3166-1 alfa-3 (p. ej., "KEN", "PHL") — acota la tasa a un corredor específico. Un código de dos letras se rechaza con PAY_001

Valores de paymentMethod

ValorDescripción
BANK_ACCOUNTPayout transfronterizo a cuenta bancaria
WALLETPayout a billetera digital
CARDPayout a tarjeta

Estos tres son los valores aceptados. Cualquier otro valor se rechaza con PAY_005 — Payment method not found for description.

Un PAY_001 — No router found for agent and payment method significa lo contrario: el método es válido, pero tu cuenta no tiene ruta para ese método en ese corredor.

Ejemplo — Tasa para Payout a Tarjeta

curl -X POST https://{FQDN}/v2/foreign-exchange \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIs...' \
  -H 'Content-Type: application/json' \
  -d '{
    "sourceCurrencyCode": "USD",
    "destinationCurrencyCode": "BRL",
    "paymentMethod": "CARD"
  }'

Ejemplo — Tasa con Monto y País

curl -X POST https://{FQDN}/v2/foreign-exchange \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIs...' \
  -H 'Content-Type: application/json' \
  -d '{
    "sourceCurrencyCode": "USD",
    "sourceCurrencyAmount": 100.00,
    "destinationCurrencyCode": "PHP",
    "destinationCountryCode": "PHL",
    "paymentMethod": "WALLET"
  }'

Respuesta (200)

{
  "fxId": "763eea51-4c57-4fbc-9729-6484b06daac2",
  "conversionRate": 59.57535,
  "sourceCurrencyCode": "USD",
  "destinationCurrencyCode": "PHP",
  "quoteIdExpiryDateTime": "2026-08-11T14:49:06.490Z"
}

Campos de la Respuesta

CampoTipoDescripción
fxIdstringIdentificador de la cotización FX — pásalo en tu solicitud de pago para fijar la tasa
conversionRatenumberTasa de cambio aplicada
sourceCurrencyCodestringDivisa de origen
destinationCurrencyCodestringDivisa de destino
quoteIdExpiryDateTimestringMarca de tiempo de expiración ISO 8601 — la tasa deja de ser válida después de ese momento

Estos cinco campos son toda la respuesta. No devuelve sourceCurrencyAmount, destinationCurrencyAmount ni paymentMethod — el monto convertido nunca se devuelve. Para llenar recipientAmount.total en el pago, calcúlalo tú:

recipientAmount.total = sourceCurrencyAmount × conversionRate

Uso en Pagos

Pasa el fxId y el conversionRate de la respuesta a tu solicitud de pago:

  • fxId → campo fxId del pago
  • conversionRate → campo exchangeRate del pago

Nota: Las cotizaciones FX tienen un período de validez limitado. Verifica quoteIdExpiryDateTime y solicita una nueva cotización si expiró antes de enviar el pago.

Qué Sigue