Get a test QR to pay (sandbox only)
curl --request POST \
--url https://examples.staging.rampapay.com/v1/sandbox/qr-codes \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"amount": "100.00"
}
'const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({amount: '100.00'})
};
fetch('https://examples.staging.rampapay.com/v1/sandbox/qr-codes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://examples.staging.rampapay.com/v1/sandbox/qr-codes"
payload = { "amount": "100.00" }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"qr": {
"content": "000201010212…"
},
"amount": "100.00",
"currency": "BOB",
"reference_number": "11198641",
"png_base64": "iVBORw0KGgo…",
"expires_at": "2026-09-27T15:02:00.000Z"
}Payouts
Get a test QR to pay (sandbox only)
Scope: payouts:write
Sandbox only — in production your end user scans a merchant’s QR. A collection QR from the QR network’s test environment, for the amount you pick: the only QRs the sandbox can pay. qr is exactly what POST /payouts takes; png_base64 is the same QR as an image, to scan with your app. Read it, quote the same amount, then pay it. expires_at is when the QR stops being payable. 20 per hour per key.
POST
/
sandbox
/
qr-codes
Get a test QR to pay (sandbox only)
curl --request POST \
--url https://examples.staging.rampapay.com/v1/sandbox/qr-codes \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"amount": "100.00"
}
'const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({amount: '100.00'})
};
fetch('https://examples.staging.rampapay.com/v1/sandbox/qr-codes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://examples.staging.rampapay.com/v1/sandbox/qr-codes"
payload = { "amount": "100.00" }
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"qr": {
"content": "000201010212…"
},
"amount": "100.00",
"currency": "BOB",
"reference_number": "11198641",
"png_base64": "iVBORw0KGgo…",
"expires_at": "2026-09-27T15:02:00.000Z"
}Authorizations
On the example server, any key that starts with rpk_mock_, e.g. rpk_mock_yourname. Never your real key.
Body
application/json
BOB decimal, ≤ 2 decimals. Required. What the QR asks for. At most the per-payment limit.