curl --request POST \
--url https://sandbox-rampa.mesadepagos.com/api/v3/transactions/deposit/qr \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"fundingSource": "balance",
"referenceId": "ORDER-1001",
"fiatCurrency": "BOB",
"fiatAmount": 100
}
'{
"transactionId": "550e8400-e29b-41d4-a716-446655440000",
"type": "deposit_express",
"transactionStatus": "pending_transaction",
"requestedCryptoAmount": "10",
"calculatedFiatAmount": "69.60",
"exchangeRate": "6.96",
"asset": "USDC",
"country": "BO",
"countryName": "Bolivia",
"qrCodeBase64": "iVBORw0KGgoAAAANSUhEUgAA...",
"referenceId": "ORDER-1001",
"fiatCurrency": "BOB",
"feeAmount": "0.00"
}{
"statusCode": 400,
"error": "Bad Request",
"message": [
{
"path": [
"fiatAmount"
],
"message": "The value was rejected by the payment provider."
}
]
}{
"statusCode": 401,
"message": "Unauthorized"
}{
"statusCode": 404,
"code": "TRANSACTION_NOT_FOUND",
"message": "The transaction was not found."
}{
"statusCode": 422,
"code": "INSUFFICIENT_FUNDS",
"message": "There are insufficient funds to complete this transaction."
}{
"statusCode": 500,
"code": "INTERNAL_SERVER_ERROR",
"message": "An unexpected internal server error occurred. Please try again later."
}{
"statusCode": 503,
"code": "PAYMENT_PROVIDER_UNAVAILABLE",
"message": "The payment provider is temporarily unavailable. Please try again later."
}Create QR deposit
Creates a QR payin transaction and returns the QR image in base64. Payment confirmation is notified by webhook (transaction_updated).
Fields by fundingSource
| Field | balance | conversion |
|---|---|---|
| fiatAmount | Required | Optional |
| cryptoAmount | Optional | Required |
| depositAddress | Optional | Required and non-empty |
fundingSource, referenceId and fiatCurrency (BOB) are always required. asset and blockchain are optional in both cases and default to USDC and Polygon. country defaults to BO and qrExpirationTime defaults to 00:15:00.
Optional fields may be omitted, but must pass their validations when provided; null is not accepted. With conversion, fiatAmount is calculated from cryptoAmount, the exchange rate and fees, even if fiatAmount is provided.
curl --request POST \
--url https://sandbox-rampa.mesadepagos.com/api/v3/transactions/deposit/qr \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"fundingSource": "balance",
"referenceId": "ORDER-1001",
"fiatCurrency": "BOB",
"fiatAmount": 100
}
'{
"transactionId": "550e8400-e29b-41d4-a716-446655440000",
"type": "deposit_express",
"transactionStatus": "pending_transaction",
"requestedCryptoAmount": "10",
"calculatedFiatAmount": "69.60",
"exchangeRate": "6.96",
"asset": "USDC",
"country": "BO",
"countryName": "Bolivia",
"qrCodeBase64": "iVBORw0KGgoAAAANSUhEUgAA...",
"referenceId": "ORDER-1001",
"fiatCurrency": "BOB",
"feeAmount": "0.00"
}{
"statusCode": 400,
"error": "Bad Request",
"message": [
{
"path": [
"fiatAmount"
],
"message": "The value was rejected by the payment provider."
}
]
}{
"statusCode": 401,
"message": "Unauthorized"
}{
"statusCode": 404,
"code": "TRANSACTION_NOT_FOUND",
"message": "The transaction was not found."
}{
"statusCode": 422,
"code": "INSUFFICIENT_FUNDS",
"message": "There are insufficient funds to complete this transaction."
}{
"statusCode": 500,
"code": "INTERNAL_SERVER_ERROR",
"message": "An unexpected internal server error occurred. Please try again later."
}{
"statusCode": 503,
"code": "PAYMENT_PROVIDER_UNAVAILABLE",
"message": "The payment provider is temporarily unavailable. Please try again later."
}Authorizations
JWT obtained from /v2/auth/login or /v3/auth/login
Body
Data required to generate the deposit QR code.
- Option 1
- Option 2
Source of funds used for the operation.
balance "balance"
Partner external reference.
1 - 100"ORDER-1001"
QR fiat currency.
BOB "BOB"
Fiat amount of the QR. Required with fundingSource "balance"; optional with "conversion". Must be greater than 0 and a multiple of 0.01.
x > 0Must be a multiple of 0.01100
Country where the QR code is generated.
BO "BO"
Crypto amount to credit. Required with fundingSource "conversion"; optional with "balance". Must be greater than 0.
x > 010
Crypto asset used for the transaction.
USDC, USDT "USDC"
Blockchain of the asset.
Polygon, Ethereum, TRON "Polygon"
Destination crypto address. Required and non-empty with fundingSource "conversion"; optional with "balance".
"0x0000000000000000000000000000000000000000"
Description displayed for reconciliation.
60"Payment for order 1001"
QR code expiration time in HH:MM:SS format.
^([01]\d|2[0-3]):[0-5]\d:[0-5]\d$"00:15:00"
Response
QR deposit created successfully.
Unique transaction identifier.
"550e8400-e29b-41d4-a716-446655440000"
Created transaction type.
deposit_express "deposit_express"
Initial transaction status.
"pending_transaction"
Requested crypto amount.
"10"
Fiat amount calculated for the QR code.
"69.60"
Applied exchange rate.
"6.96"
Transaction asset.
"USDC"
Country code.
"BO"
Country name.
"Bolivia"
Base64-encoded QR image.
"iVBORw0KGgoAAAANSUhEUgAA..."
External reference sent by the partner.
"ORDER-1001"
QR fiat currency.
"BOB"
Fee applied to the operation.
"0.00"