Skip to main content
POST
/
api
/
partner
/
v2
/
quotes
cURL
curl --request POST \
  --url https://staging-api.capa.fi/api/partner/v2/quotes \
  --header 'Content-Type: application/json' \
  --header 'partner-api-key: <partner-api-key>' \
  --data '
{
  "tokenSymbol": "USDC",
  "transactionType": "ON_RAMP",
  "blockchainSymbol": "POL",
  "fiatCurrency": "MXN",
  "cryptoAmount": 123,
  "fiatAmount": 123,
  "premiumSpread": 123,
  "country": "MX",
  "rail": "SPEI",
  "forwardingDays": 123
}
'
{
  "success": true,
  "data": {
    "fiatAmount": 5000,
    "fiatCurrency": "DOP, MXN",
    "blockchainSymbol": "ARB",
    "tokenSymbol": "USDC",
    "transactionType": "ON_RAMP",
    "cryptoAmount": 40,
    "rate": 57.01,
    "flow": "REGULAR | OTC",
    "quoteId": "123e4567-e89b-12d3-a456-426614174000",
    "expiresAt": "2025-01-01T00:00:00.000Z",
    "premiumSpread": 0.01
  }
}
Creates a locked quote with a guaranteed exchange rate. Pass the returned quoteId when creating a transaction to use this rate.
For Mexico transactions exceeding $50,000 MXN, a different pricing tier applies, which may result in higher fees. Please account for this when generating quotes for large amounts.

Field Relationships

  • cryptoAmount is required for OFF_RAMP transactions, fiatAmount is required for ON_RAMP.
  • country and rail are optional overrides for non-default currency/country combinations.
  • forwardingDays (0–4) is only supported for MXN OTC transactions (T+N settlement).

Important Notes


Error Codes

Common Errors

HTTP StatusCodeMessage
401UNAUTHORIZED”API Key is missing”
401UNAUTHORIZED”Invalid API Key format”
401UNAUTHORIZED”Invalid API Key”
403INVALID_PARTNER_FLOW”The partner has an invalid flow.”

Endpoint-Specific Errors

HTTP StatusCodeMessage
400INVALID_USER_INPUT_ERROR”Invalid User Input”
400BAD_REQUEST”Fiat currency is disabled or does not exist”
400BAD_REQUEST”This blockchain and token combination is disabled or does not exist”
500INTERNAL_SERVER_ERROR”Failed to create quote”

Headers

partner-api-key
string
required

Api key for the affiliated partner that is performing the request

Body

application/json
tokenSymbol
enum<string>
required

The token symbol

Available options:
USDC,
USDT,
MXNe,
SOL,
ETH,
wBTC,
cbBTC,
PYSUD,
POL,
BNB,
WLD,
STK,
USDY,
CORE,
USDC.e,
wUSDL,
CoreBTC,
MATIC,
USDbC
Example:

"USDC"

transactionType
enum<string>
required

Transaction type (ON_RAMP or OFF_RAMP)

Available options:
ON_RAMP,
OFF_RAMP,
CROSS_RAMP
Example:

"ON_RAMP"

blockchainSymbol
enum<string>
required

The blockchain symbol

Available options:
POL,
SOL,
BASE,
ARB,
BSC,
OP,
WLD,
STK,
ETH,
MTN,
CORE
Example:

"POL"

fiatCurrency
enum<string>
required

The fiat currency

Available options:
MXN,
DOP,
USD,
EUR
Example:

"MXN"

cryptoAmount
number

The amount of crypto (required for OFF_RAMP)

fiatAmount
number

The amount of fiat (required for ON_RAMP)

premiumSpread
number

Spread percentage to be applied to the exchange rate

country
enum<string>

The country where the transaction is being performed. Use it only when the currency is not default for the country.

Available options:
MX,
DO,
US,
AT,
BE,
BG,
HR,
CY,
CZ,
DK,
EE,
FI,
FR,
DE,
GR,
HU,
IE,
IT,
LV,
LT,
LU,
MT,
NL,
PL,
PT,
RO,
SK,
SI,
ES,
SE,
IS,
LI,
NO,
CH,
GB,
MC,
SM,
AD,
VA,
CN
rail
enum<string>

The payment rail for the transaction. Use it only when the rail is not default for the country.

Available options:
SPEI,
ACH,
WIRE,
SEPA,
SWIFT
forwardingDays
number

Number of T+N forwarding days for settlement (0-4). Only supported for MXN OTC transactions.

Response

201 - application/json
success
boolean
Example:

true

data
object