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": "Pago orden 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": "Pago orden 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: 'Pago orden 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' => 'Pago orden 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\": \"Pago orden 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\": \"Pago orden 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\": \"Pago orden 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"
}Crear deposito QR
Crea una transaccion de payin por QR y devuelve la imagen QR en base64 para que el cliente realice el pago.
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": "Pago orden 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": "Pago orden 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: 'Pago orden 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' => 'Pago orden 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\": \"Pago orden 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\": \"Pago orden 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\": \"Pago orden 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"
}Autorizaciones
JWT obtenido desde /v2/auth/login
Cuerpo
Datos necesarios para generar el QR de deposito.
Moneda fiat del QR.
BOB, USD "BOB"
Referencia externa del partner.
1 - 100"ORDER-1001"
Pais donde se genera el QR.
BO "BO"
Origen de fondos usado para la operacion.
balance, conversion "conversion"
Monto crypto solicitado para el deposito. Requerido cuando fundingSource es "conversion".
x >= 010
Monto fiat solicitado para el deposito. Requerido cuando fundingSource es "balance".
x >= 0100
Asset crypto usado para la transaccion. Requerido cuando fundingSource es "conversion".
USDC, USDT "USDC"
Blockchain del asset. Requerido cuando fundingSource es "conversion".
Polygon, Ethereum, TRON "Polygon"
Direccion crypto de destino para el deposito. Requerido cuando fundingSource es "conversion".
"0x0000000000000000000000000000000000000000"
Descripcion visible para conciliacion.
60"Pago orden 1001"
Tiempo de expiracion del QR en formato HH:MM:SS.
^([01]\d|2[0-3]):[0-5]\d:[0-5]\d$"00:15:00"
Respuesta
Deposito QR creado exitosamente.
Identificador unico de la transaccion.
"550e8400-e29b-41d4-a716-446655440000"
Tipo de transaccion creada.
deposit_express "deposit_express"
Referencia externa enviada por el partner.
"ORDER-1001"
Codigo del pais.
"BO"
Nombre del pais.
"Bolivia"
Monto crypto solicitado.
"10"
Asset de la transaccion.
"USDC"
Monto fiat calculado para el QR.
"69.60"
Moneda fiat del QR.
"BOB"
Tipo de cambio aplicado.
"6.96"
Imagen QR codificada en base64.
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
Estado inicial de la transaccion.
"pending_transaction"
Fee aplicado a la operacion.
"0.00"