curl --request POST \
--url https://sandbox-rampa.mesadepagos.com/api/v2/transactions/deposit/qr \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"fiatCurrency": "BOB",
"referenceId": "ORDER-1001",
"country": "BO",
"fundingSource": "conversion",
"cryptoAmount": 10,
"fiatAmount": 100,
"asset": "USDC",
"blockchain": "Polygon",
"depositAddress": "0x0000000000000000000000000000000000000000",
"description": "Payment for order 1001",
"qrExpirationTime": "00:15:00"
}
'import requests
url = "https://sandbox-rampa.mesadepagos.com/api/v2/transactions/deposit/qr"
payload = {
"fiatCurrency": "BOB",
"referenceId": "ORDER-1001",
"country": "BO",
"fundingSource": "conversion",
"cryptoAmount": 10,
"fiatAmount": 100,
"asset": "USDC",
"blockchain": "Polygon",
"depositAddress": "0x0000000000000000000000000000000000000000",
"description": "Payment for order 1001",
"qrExpirationTime": "00:15:00"
}
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({
fiatCurrency: 'BOB',
referenceId: 'ORDER-1001',
country: 'BO',
fundingSource: 'conversion',
cryptoAmount: 10,
fiatAmount: 100,
asset: 'USDC',
blockchain: 'Polygon',
depositAddress: '0x0000000000000000000000000000000000000000',
description: 'Payment for order 1001',
qrExpirationTime: '00:15:00'
})
};
fetch('https://sandbox-rampa.mesadepagos.com/api/v2/transactions/deposit/qr', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox-rampa.mesadepagos.com/api/v2/transactions/deposit/qr",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'fiatCurrency' => 'BOB',
'referenceId' => 'ORDER-1001',
'country' => 'BO',
'fundingSource' => 'conversion',
'cryptoAmount' => 10,
'fiatAmount' => 100,
'asset' => 'USDC',
'blockchain' => 'Polygon',
'depositAddress' => '0x0000000000000000000000000000000000000000',
'description' => 'Payment for order 1001',
'qrExpirationTime' => '00:15:00'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox-rampa.mesadepagos.com/api/v2/transactions/deposit/qr"
payload := strings.NewReader("{\n \"fiatCurrency\": \"BOB\",\n \"referenceId\": \"ORDER-1001\",\n \"country\": \"BO\",\n \"fundingSource\": \"conversion\",\n \"cryptoAmount\": 10,\n \"fiatAmount\": 100,\n \"asset\": \"USDC\",\n \"blockchain\": \"Polygon\",\n \"depositAddress\": \"0x0000000000000000000000000000000000000000\",\n \"description\": \"Payment for order 1001\",\n \"qrExpirationTime\": \"00:15:00\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox-rampa.mesadepagos.com/api/v2/transactions/deposit/qr")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"fiatCurrency\": \"BOB\",\n \"referenceId\": \"ORDER-1001\",\n \"country\": \"BO\",\n \"fundingSource\": \"conversion\",\n \"cryptoAmount\": 10,\n \"fiatAmount\": 100,\n \"asset\": \"USDC\",\n \"blockchain\": \"Polygon\",\n \"depositAddress\": \"0x0000000000000000000000000000000000000000\",\n \"description\": \"Payment for order 1001\",\n \"qrExpirationTime\": \"00:15:00\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-rampa.mesadepagos.com/api/v2/transactions/deposit/qr")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"fiatCurrency\": \"BOB\",\n \"referenceId\": \"ORDER-1001\",\n \"country\": \"BO\",\n \"fundingSource\": \"conversion\",\n \"cryptoAmount\": 10,\n \"fiatAmount\": 100,\n \"asset\": \"USDC\",\n \"blockchain\": \"Polygon\",\n \"depositAddress\": \"0x0000000000000000000000000000000000000000\",\n \"description\": \"Payment for order 1001\",\n \"qrExpirationTime\": \"00:15:00\"\n}"
response = http.request(request)
puts response.read_body{
"transactionId": "550e8400-e29b-41d4-a716-446655440000",
"type": "deposit_express",
"referenceId": "ORDER-1001",
"country": "BO",
"countryName": "Bolivia",
"requestedCryptoAmount": "10",
"asset": "USDC",
"calculatedFiatAmount": "69.60",
"fiatCurrency": "BOB",
"exchangeRate": "6.96",
"qrCodeBase64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"transactionStatus": "pending_transaction",
"feeAmount": "0.00"
}{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request"
}{
"statusCode": 401,
"message": "Unauthorized"
}Create QR deposit
Creates a QR payin transaction and returns the base64 QR image for the customer to pay.
curl --request POST \
--url https://sandbox-rampa.mesadepagos.com/api/v2/transactions/deposit/qr \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"fiatCurrency": "BOB",
"referenceId": "ORDER-1001",
"country": "BO",
"fundingSource": "conversion",
"cryptoAmount": 10,
"fiatAmount": 100,
"asset": "USDC",
"blockchain": "Polygon",
"depositAddress": "0x0000000000000000000000000000000000000000",
"description": "Payment for order 1001",
"qrExpirationTime": "00:15:00"
}
'import requests
url = "https://sandbox-rampa.mesadepagos.com/api/v2/transactions/deposit/qr"
payload = {
"fiatCurrency": "BOB",
"referenceId": "ORDER-1001",
"country": "BO",
"fundingSource": "conversion",
"cryptoAmount": 10,
"fiatAmount": 100,
"asset": "USDC",
"blockchain": "Polygon",
"depositAddress": "0x0000000000000000000000000000000000000000",
"description": "Payment for order 1001",
"qrExpirationTime": "00:15:00"
}
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({
fiatCurrency: 'BOB',
referenceId: 'ORDER-1001',
country: 'BO',
fundingSource: 'conversion',
cryptoAmount: 10,
fiatAmount: 100,
asset: 'USDC',
blockchain: 'Polygon',
depositAddress: '0x0000000000000000000000000000000000000000',
description: 'Payment for order 1001',
qrExpirationTime: '00:15:00'
})
};
fetch('https://sandbox-rampa.mesadepagos.com/api/v2/transactions/deposit/qr', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox-rampa.mesadepagos.com/api/v2/transactions/deposit/qr",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'fiatCurrency' => 'BOB',
'referenceId' => 'ORDER-1001',
'country' => 'BO',
'fundingSource' => 'conversion',
'cryptoAmount' => 10,
'fiatAmount' => 100,
'asset' => 'USDC',
'blockchain' => 'Polygon',
'depositAddress' => '0x0000000000000000000000000000000000000000',
'description' => 'Payment for order 1001',
'qrExpirationTime' => '00:15:00'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox-rampa.mesadepagos.com/api/v2/transactions/deposit/qr"
payload := strings.NewReader("{\n \"fiatCurrency\": \"BOB\",\n \"referenceId\": \"ORDER-1001\",\n \"country\": \"BO\",\n \"fundingSource\": \"conversion\",\n \"cryptoAmount\": 10,\n \"fiatAmount\": 100,\n \"asset\": \"USDC\",\n \"blockchain\": \"Polygon\",\n \"depositAddress\": \"0x0000000000000000000000000000000000000000\",\n \"description\": \"Payment for order 1001\",\n \"qrExpirationTime\": \"00:15:00\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox-rampa.mesadepagos.com/api/v2/transactions/deposit/qr")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"fiatCurrency\": \"BOB\",\n \"referenceId\": \"ORDER-1001\",\n \"country\": \"BO\",\n \"fundingSource\": \"conversion\",\n \"cryptoAmount\": 10,\n \"fiatAmount\": 100,\n \"asset\": \"USDC\",\n \"blockchain\": \"Polygon\",\n \"depositAddress\": \"0x0000000000000000000000000000000000000000\",\n \"description\": \"Payment for order 1001\",\n \"qrExpirationTime\": \"00:15:00\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-rampa.mesadepagos.com/api/v2/transactions/deposit/qr")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"fiatCurrency\": \"BOB\",\n \"referenceId\": \"ORDER-1001\",\n \"country\": \"BO\",\n \"fundingSource\": \"conversion\",\n \"cryptoAmount\": 10,\n \"fiatAmount\": 100,\n \"asset\": \"USDC\",\n \"blockchain\": \"Polygon\",\n \"depositAddress\": \"0x0000000000000000000000000000000000000000\",\n \"description\": \"Payment for order 1001\",\n \"qrExpirationTime\": \"00:15:00\"\n}"
response = http.request(request)
puts response.read_body{
"transactionId": "550e8400-e29b-41d4-a716-446655440000",
"type": "deposit_express",
"referenceId": "ORDER-1001",
"country": "BO",
"countryName": "Bolivia",
"requestedCryptoAmount": "10",
"asset": "USDC",
"calculatedFiatAmount": "69.60",
"fiatCurrency": "BOB",
"exchangeRate": "6.96",
"qrCodeBase64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"transactionStatus": "pending_transaction",
"feeAmount": "0.00"
}{
"statusCode": 400,
"message": "Validation failed",
"error": "Bad Request"
}{
"statusCode": 401,
"message": "Unauthorized"
}Authorizations
JWT obtained from /v2/auth/login
Body
Data required to generate the deposit QR code.
QR fiat currency.
BOB, USD "BOB"
Partner external reference.
1 - 100"ORDER-1001"
Country where the QR code is generated.
BO "BO"
Source of funds used for the operation.
balance, conversion "conversion"
Crypto amount requested for the deposit. Required when fundingSource is "conversion".
x >= 010
Fiat amount requested for the deposit. Required when fundingSource is "balance".
x >= 0100
Crypto asset used for the transaction. Required when fundingSource is "conversion".
USDC, USDT "USDC"
Asset blockchain. Required when fundingSource is "conversion".
Polygon, Ethereum, TRON "Polygon"
Destination crypto address for the deposit. Required when fundingSource is "conversion".
"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"
External reference sent by the partner.
"ORDER-1001"
Country code.
"BO"
Country name.
"Bolivia"
Requested crypto amount.
"10"
Transaction asset.
"USDC"
Fiat amount calculated for the QR code.
"69.60"
QR fiat currency.
"BOB"
Applied exchange rate.
"6.96"
Base64-encoded QR image.
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
Initial transaction status.
"pending_transaction"
Fee applied to the operation.
"0.00"