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.
Hay dos versiones disponibles:
| Versión | Endpoint | Diferencia Clave |
|---|---|---|
| v1 | POST /foreign-exchange | Consulta simple por par de divisas |
| v2 | POST /v2/foreign-exchange | Incluye paymentMethod para tasas especÃficas por método, y monto/paÃs opcionales |
v1 — Tasa FX Simple
Devuelve una tasa de cambio para un par de divisas.
Endpoint
POST https://{FQDN}/foreign-exchange
Encabezados:
| Encabezado | Valor |
|---|---|
Authorization | Bearer {accessToken} |
Content-Type | application/json |
Solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
sourceCurrencyCode | string | No | Divisa de origen (ISO 4217, p. ej., "USD") |
destinationCurrencyCode | string | No | Divisa de destino (ISO 4217, p. ej., "BRL") |
Ejemplo de Solicitud
curl -X POST https://{FQDN}/foreign-exchange \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIs...' \
-H 'Content-Type: application/json' \
-d '{
"sourceCurrencyCode": "USD",
"destinationCurrencyCode": "BRL"
}'
Respuesta (200)
{
"fxId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"conversionRate": 4.975,
"quoteIdExpiryDateTime": "2025-03-31T15:30:00Z"
}
v2 — Tasa FX EspecÃfica por Método de Pago
Devuelve una tasa de cambio ajustada al método de pago. Métodos diferentes (tarjeta, ACH, PIX, billetera) pueden llevar spreads de FX diferentes.
Endpoint
POST https://{FQDN}/v2/foreign-exchange
Encabezados:
| Encabezado | Valor |
|---|---|
Authorization | Bearer {accessToken} |
Content-Type | application/json |
Solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
sourceCurrencyCode | string | SÃ | Divisa de origen (ISO 4217, p. ej., "USD") |
destinationCurrencyCode | string | SÃ | Divisa de destino (ISO 4217, p. ej., "BRL") |
paymentMethod | string | Sà | Método de pago para el cálculo de la tasa (ver valores abajo) |
sourceCurrencyAmount | number | No | Monto en la divisa de origen — cuando se proporciona, la respuesta incluye el monto de destino convertido |
destinationCountryCode | string | No | PaÃs de destino (ISO Alpha-2) — acota la tasa a un corredor especÃfico |
Valores de paymentMethod
| Valor | Descripción |
|---|---|
CARD | Payout a tarjeta (Visa Direct / Mastercard Send) |
CREDIT_CARD | Tarjeta de crédito |
DEBIT_CARD | Tarjeta de débito |
ACH | Transferencia bancaria ACH |
BANK_ACCOUNT | Payout transfronterizo a cuenta bancaria |
WALLET | Payout a billetera digital |
AFT | Account funding transaction |
CASH | Retiro en efectivo |
CHECK | Cheque |
MONEY_ORDER | Giro postal |
APPLE_PAY | Apple Pay |
GOOGLE_PAY | Google Pay |
OTHER | Otro método de pago |
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": "PH",
"paymentMethod": "WALLET"
}'
Respuesta (200)
{
"fxId": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
"conversionRate": 56.42,
"sourceCurrencyCode": "USD",
"sourceCurrencyAmount": 100.00,
"destinationCurrencyCode": "PHP",
"destinationCurrencyAmount": 5642.00,
"paymentMethod": "WALLET",
"quoteIdExpiryDateTime": "2025-03-31T15:30:00Z"
}
Campos de la Respuesta
| Campo | Tipo | Descripción |
|---|---|---|
fxId | string | Identificador de la cotización FX — pásalo en tu solicitud de pago para fijar la tasa |
conversionRate | number | Tasa de cambio aplicada |
sourceCurrencyCode | string | Divisa de origen (solo v2) |
sourceCurrencyAmount | number | Monto de origen (solo v2, cuando se proporciona en la solicitud) |
destinationCurrencyCode | string | Divisa de destino (solo v2) |
destinationCurrencyAmount | number | Monto convertido (solo v2, cuando se proporciona sourceCurrencyAmount) |
paymentMethod | string | Método de pago al que aplica la tasa (solo v2) |
quoteIdExpiryDateTime | string | Marca de tiempo de expiración ISO 8601 — la tasa deja de ser válida después de ese momento |
Uso en Pagos
Pasa el fxId y el conversionRate de la respuesta a tu solicitud de pago:
fxId→ campofxIddel pagoconversionRate→ campoexchangeRatedel pago
Nota: Las cotizaciones FX tienen un perÃodo de validez limitado. Verifica
quoteIdExpiryDateTimey solicita una nueva cotización si expiró antes de enviar el pago.
Qué Sigue
- Push Transaction — EnvÃa payouts entre divisas
- Pull y push en un solo paso — Cobra y dispersa en una sola llamada
- Balance — Verifica los fondos disponibles antes de transaccionar
