Skip to main content

Create payout quote

POST/partner/v1/payout-quotes
Auth Bearer tokenScope partner.write

Prices a payout for a fixed target amount: what the recipient receives, in the destination currency. The quote tells you how much you pay in the source currency, at what rate, and until when that price holds.

You name the corridor and the amount; nothing else. A corridor is one of the routes Ryno has set up for your account: a source currency paid out as a destination currency in a destination country. Ryno derives the currencies, the country, the payout rail and the provider from the corridor, so you cannot ask for a rail that is not configured for you. Get the ids from List payout corridors, which returns only the corridors you can price right now.

A quote holds a price; it does not move money. Payout creation is not yet on the Partner API; when it is, it will take the quoteId from this call as the only accepted price.

Headers​

Idempotency-Keystringheaderrequired

A key you generate per quote request, at most 255 characters. Sending the same key with the same body returns the same quote, so retry a timed-out call with the key you already used. Sending the same key with a different body is 409 PayoutQuote.IdempotencyConflict.

A replay returns the original quote even after it has expired. Use a new key to get a fresh price.

Body​

corridorIduuidrequired

A corridorId from List payout corridors. It fixes the source currency, the destination currency and country, and the payout rail. An id that is not one of your corridors, or whose route is switched off, is 422 PayoutQuote.CorridorUnavailable.

targetAmountnumberrequired

The amount the recipient receives, in the corridor's destination currency. Greater than zero, at most 18 decimal places.

Response​

quoteIduuid

Ryno's id for this quote. Keep it; it is the price a payout will reference.

sourceCurrencystring

The currency you pay in, from the corridor, for example USDT.

sourceNetworkstring

The network the source currency is sent on, for example TRX, when the corridor's route is tied to one. null when it is not.

destinationCurrencystring

The currency the recipient receives, from the corridor.

destinationCountrystring

The recipient's country, ISO 3166-1 alpha-3, from the corridor.

railstring

How the recipient is paid, chosen by Ryno for this corridor. One of Wire, ACH, BankTransfer, OnChain, MobileMoney, SEPA, SWIFT, FasterPayments, PIX, RTGS, EFT, Interac, UPI, NEFT, IMPS, NIP, Stablecoin, Card, CNAPS, FPS.

targetAmountnumber

What the recipient receives, as you requested it.

sourceAmountnumber

What you pay, in sourceCurrency, including Ryno's fees.

exchangeRatenumber

Units of destinationCurrency per one unit of sourceCurrency, exactly targetAmount / sourceAmount at full precision. Round it only for display.

expiresAtUtcdatetime

When the price stops being honoured, in UTC. Quotes are short-lived; request a new one rather than reusing an expired quote.

Errors​

CodeHTTPMeaning
idempotency.key_required400No Idempotency-Key header, or it is blank.
idempotency.key_invalid400More than one Idempotency-Key header, or the key is longer than 255 characters.
PayoutQuote.InvalidRequest400corridorId is missing or not a UUID, or targetAmount is missing, zero, negative or too precise.
Request.Invalid400The body is not valid JSON.
Auth.Unauthorized401The token is missing or invalid.
Auth.Forbidden403The token is not a partner credential, or lacks partner.write.
PayoutQuote.CustomerInactive403Your account is not active. Contact support.
PayoutQuote.CustomerNotFound404Your account could not be found. Contact support.
PayoutQuote.IdempotencyConflict409The Idempotency-Key was already used with a different body. Use a new key.
PayoutQuote.AmountOutsideRouteLimits422targetAmount is below the minimum or above the maximum for this corridor.
PayoutQuote.CorridorUnavailable422corridorId is not one of your corridors, or no active payout route is configured for it. Do not retry unchanged; refresh List payout corridors and use an id from it.
PayoutQuote.Unavailable422Pricing for this corridor is not set up, or not viable right now. Do not retry unchanged.
PayoutQuote.Unavailable503A pricing dependency is down. Retry with backoff, using the same key.

The 401, 429 and 503 responses from the API gateway use a different body. See Errors.