Quote Ramp (Receive Based)
curl --request POST \
--url https://testapi.kravata.co/api/inverse/ramp/calculate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"amountReceive": 1000,
"clientId": "{{clientId}}",
"rampType": "on_ramp",
"symbolTypeSent": "COP",
"symbolTypeReceived": "USDC",
"network": "POLYGON"
}
'import requests
url = "https://testapi.kravata.co/api/inverse/ramp/calculate"
payload = {
"amountReceive": 1000,
"clientId": "{{clientId}}",
"rampType": "on_ramp",
"symbolTypeSent": "COP",
"symbolTypeReceived": "USDC",
"network": "POLYGON"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
amountReceive: 1000,
clientId: '{{clientId}}',
rampType: 'on_ramp',
symbolTypeSent: 'COP',
symbolTypeReceived: 'USDC',
network: 'POLYGON'
})
};
fetch('https://testapi.kravata.co/api/inverse/ramp/calculate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"amountReceive": 1000,
"amountSent": 4412880.5,
"costInfra": 3200,
"rateClient": 4398.2,
"feeGMF": 17651.5,
"rampType": "on_ramp",
"symbolTypeReceived": "USDC",
"symbolTypeSent": "COP",
"quoteId": "3f2b8f7e-6c1d-4a7e-9b1e-2d4c5a6b7c8d",
"validUntil": "2026-09-30T15:04:35.123456Z"
}Ramp Orders
Quote Ramp (Receive Based)
By consuming this endpoint you can calculate the ramp details by providing the desired parameters. The response body will show the calculated ramp details based on them.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
amountReceive | float | Yes | This is the amount that we will send and you will receive as a result of your operation. This value will be used to calculate the required amount to send. |
rampType | string | Yes | The type of order/ ramp you will create (“on_ramp”: if you have Fiat and want to receive Stable Coin; “off_ramp”: if you have Stable Coin and want to receive Fiat). |
symbolTypeSent | string | Yes | The symbol of the token/fiat you will send us (COP, MXN, USD, USDC, USDT). |
symbolTypeReceived | string | Yes | The symbol of the token/fiat we will send you (COP, MXN, USD, USDC, USDT). |
network | string | Yes | The network used for the transaction (e.g. POLYGON, ERC20, TRC20, SOLANA, CELO). |
clientId | string | Yes | Your unique client identifier, obtainable via the Get infoClient endpoint. |
Response
The response is a JSON object representing the quote for the transaction, including costs and expected values.
| Field | Description |
|---|---|
amountSent | This is the amount you will operate and send to us. |
amountToReceive | This is the amount that we will send and you will receive as a result of your operation. (matches the input amountReceive). |
costInfra | This is the infrastructure use cost applied to your transaction |
rateClient | The exchange rate applied to calculate the transaction. |
symbolTypeSent | The symbol of the token/fiat you will send us (COP, MXN, USD, USDC, USDT). |
symbolTypeReceived | The symbol of the token/fiat we will send you (COP, MXN, USD, USDC, USDT). |
withdrawalFee | Withdrawal costs related to the transaction. |
rampType | The type of order/ ramp you will create (“on_ramp”: if you have Fiat and want to receive Stable Coin; “off_ramp”: if you have Stable Coin and want to receive Fiat). |
validUntil | This is your quote’s validity period. Time is expressed in UTC. |
The response also includes quoteId. Send it when creating the ramp to lock this quote; it can be used only once and only until validUntil (30 seconds by default). Fields whose value is zero are omitted from the response.
POST
/
api
/
inverse
/
ramp
/
calculate
Quote Ramp (Receive Based)
curl --request POST \
--url https://testapi.kravata.co/api/inverse/ramp/calculate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"amountReceive": 1000,
"clientId": "{{clientId}}",
"rampType": "on_ramp",
"symbolTypeSent": "COP",
"symbolTypeReceived": "USDC",
"network": "POLYGON"
}
'import requests
url = "https://testapi.kravata.co/api/inverse/ramp/calculate"
payload = {
"amountReceive": 1000,
"clientId": "{{clientId}}",
"rampType": "on_ramp",
"symbolTypeSent": "COP",
"symbolTypeReceived": "USDC",
"network": "POLYGON"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
amountReceive: 1000,
clientId: '{{clientId}}',
rampType: 'on_ramp',
symbolTypeSent: 'COP',
symbolTypeReceived: 'USDC',
network: 'POLYGON'
})
};
fetch('https://testapi.kravata.co/api/inverse/ramp/calculate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"amountReceive": 1000,
"amountSent": 4412880.5,
"costInfra": 3200,
"rateClient": 4398.2,
"feeGMF": 17651.5,
"rampType": "on_ramp",
"symbolTypeReceived": "USDC",
"symbolTypeSent": "COP",
"quoteId": "3f2b8f7e-6c1d-4a7e-9b1e-2d4c5a6b7c8d",
"validUntil": "2026-09-30T15:04:35.123456Z"
}Authorizations
Access token from POST /api/token (valid 5 minutes).
Body
application/json

