Saltar al contenido principal

Rutas

Una Ruta describe un corredor destino al que tu compañía puede enviar en este momento — el método de pago, país, moneda, tipo de cambio cotizado, esquema de comisiones y los límites operacionales disponibles ahora mismo. getRoutes es el único método de este objeto: léelo en tiempo de ejecución en vez de hardcodear corredores o límites, porque ambos se mueven con tu consumo.

getRoutes(...)​

Lista las rutas disponibles para tu compañía en este momento, para una moneda origen dada.

Firma​

getRoutes(params?: GetRoutesParams): Promise<RoutesResponse>

Parámetros​

NombreTipoObligatorioDescripción
params.sourceCurrencystringNoFiltro de moneda origen. El servidor usa "USDR" por default si se omite.

Retorno​

RoutesResponse:

CampoTipoSignificado
routesRoute[]Las rutas disponibles.
routes[].namestringNombre de la ruta.
routes[].methodstringMétodo de pago, ej. "BANK_TRANSFER".
routes[].countrystringPaís destino de 2 caracteres.
routes[].currencystringMoneda destino de la ruta, ej. "VES".
routes[].ratestringTipo de cambio cotizado para la ruta, como decimal string (p. ej. "852.79").
routes[].fees[].pricingRulestringIdentificador de la regla de comisión. camelCase — la única parte de esta respuesta que se queda en camelCase.
routes[].fees[].pricingTypestringej. "FEE".
routes[].fees[].percentageValuenumberComponente porcentual de la comisión.
routes[].fees[].flatValuenumberComponente fijo de la comisión.
routes[].fees[].pricingLabelstringEtiqueta legible por humanos para la línea de comisión.
routes[].limits.per_transaction.min / .maxstringLímites por transacción, strings decimales.
routes[].limits.transaction.daily/weekly/monthly.maxnumberLímite de cantidad de transacciones para la ventana.
routes[].limits.transaction.daily/weekly/monthly.currentnumberTransacciones ya consumidas en la ventana.
routes[].limits.transaction.daily/weekly/monthly.remainingnumbermax - current.
routes[].limits.fund.daily/weekly/monthly.maxstringLímite de monto financiado para la ventana, string decimal.
routes[].limits.fund.daily/weekly/monthly.currentstringMonto ya financiado en la ventana, string decimal.
routes[].limits.fund.daily/weekly/monthly.remainingstringmax - current, string decimal.

Ejemplo​

import {
RetornaClientBuilder,
RetornaEnvironment,
} from "@retorna-tech/retorna-gateway-sdk";

const client = new RetornaClientBuilder()
.environment(RetornaEnvironment.SANDBOX)
.clientId(process.env.RETORNA_CLIENT_ID!)
.clientSecret(process.env.RETORNA_CLIENT_SECRET!)
.privateKey(process.env.RETORNA_PRIVATE_KEY!)
.buildClient();

const { routes } = await client.getRoutes({ sourceCurrency: "USDR" });

for (const route of routes) {
console.log(route.method, route.country, route.currency, route.rate);
console.log(route.limits.per_transaction.min, route.limits.per_transaction.max);
}

Errores​

Desde la API (RetornaB2BError, consulta el catálogo de errores):

  • B2B_UNAUTHORIZED — credenciales, token o firma rechazados.
  • B2B_COMPANY_NOT_FOUND — no hay ninguna compañía asociada a las credenciales usadas.
  • B2B_RATE_LIMITED — demasiadas requests; reintenta con backoff.
  • B2B_UNKNOWN — falla sin clasificar; reintenta una vez y después escala con el correlationId.

Notas​

  • fees[] es la única parte de la respuesta que se queda en camelCase — todo lo demás en este contrato es snake_case.
  • Los límites de USDR de cada ruta se mueven con tu consumo; léelos en el momento de la llamada en vez de cachearlos.
  • sourceCurrency es el único parámetro — no hay un filtro por corredor más allá de lo que ya devuelve el listado de rutas.

Referencia de API​

GET /me/routes