QRA
Quick Reference
WhatQRA payments (Argentina)
WhyInstant QR payments in Argentina — interoperable across all banks and fintechs
Reading Time10 min
DifficultyBeginner
PrerequisitesAuthentication → Environment
Argentina market context
Transferencias 3.0 (BCRA-regulated) delivers interoperable QR payments across banks and fintechs. One QR works with any participating app.
Why QRA
| Advantage | Detail |
|---|---|
| Interoperable | Any Argentine banking or wallet app can scan and pay |
| Instant settlement | Real-time transfer via BCRA clearing |
| No chargebacks | Push payment — irrevocable once confirmed |
| Broad reach | 90%+ of adults with bank or wallet access |
Payment flow
Step-by-step
- Create charge —
POSTwithtype_charge: "qra"andcurrency: "ARS". - Render QR — Use
qra_payload.qr_code(Base64 PNG). - Payer scans — Any compatible app completes the transfer.
- Webhook — Listen for
paid,canceled, or terminal errors.
Create a QRA charge
- cURL
- Python
- JavaScript
curl -X POST https://core-manager.a55.tech/api/v1/bank/wallet/charge/ \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"wallet_uuid": "00000000-0000-0000-0000-000000000000",
"merchant_id": "11111111-1111-1111-1111-111111111111",
"payer_name": "María García",
"payer_email": "maria.garcia@example.com",
"payer_tax_id": "27123456789",
"payer_cell_phone": "+5491155551234",
"installment_value": 5000,
"installment_count": 1,
"items": [{"name":"Zapatillas","quantity":1,"total_amount":5000,"unit_amount":5000,"sku":"ZAP-001","code":"Z001"}],
"payer_address": {"street":"Corrientes","address_number":"1200","complement":"","neighborhood":"Centro","city":"CABA","state":"C","postal_code":"C1043","country":"AR"},
"currency": "ARS",
"due_date": "2026-12-31T23:59:59Z",
"description": "Compra via QRA",
"type_charge": "qra",
"webhook_url": "https://yoursite.com/webhook",
"redirect_url": "https://yoursite.com/"
}'
import requests
charge = requests.post(
"https://core-manager.a55.tech/api/v1/bank/wallet/charge/",
headers={"Authorization": f"Bearer {access_token}", "Content-Type": "application/json"},
json={
"wallet_uuid": "00000000-0000-0000-0000-000000000000",
"merchant_id": "11111111-1111-1111-1111-111111111111",
"payer_name": "María García",
"payer_email": "maria.garcia@example.com",
"payer_tax_id": "27123456789",
"payer_cell_phone": "+5491155551234",
"installment_value": 5000,
"installment_count": 1,
"items": [{"name": "Zapatillas", "quantity": 1, "total_amount": 5000, "unit_amount": 5000, "sku": "ZAP-001", "code": "Z001"}],
"payer_address": {"street": "Corrientes", "address_number": "1200", "complement": "", "neighborhood": "Centro", "city": "CABA", "state": "C", "postal_code": "C1043", "country": "AR"},
"currency": "ARS",
"due_date": "2026-12-31T23:59:59Z",
"description": "Compra via QRA",
"type_charge": "qra",
"webhook_url": "https://yoursite.com/webhook",
"redirect_url": "https://yoursite.com/",
},
)
qr_image = charge.json()["qra_payload"]["qr_code"]
const response = await fetch(
"https://core-manager.a55.tech/api/v1/bank/wallet/charge/",
{
method: "POST",
headers: {
Authorization: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
wallet_uuid: "00000000-0000-0000-0000-000000000000",
merchant_id: "11111111-1111-1111-1111-111111111111",
payer_name: "María García",
payer_email: "maria.garcia@example.com",
payer_tax_id: "27123456789",
payer_cell_phone: "+5491155551234",
installment_value: 5000,
installment_count: 1,
items: [{ name: "Zapatillas", quantity: 1, total_amount: 5000, unit_amount: 5000, sku: "ZAP-001", code: "Z001" }],
payer_address: { street: "Corrientes", address_number: "1200", complement: "", neighborhood: "Centro", city: "CABA", state: "C", postal_code: "C1043", country: "AR" },
currency: "ARS",
due_date: "2026-12-31T23:59:59Z",
description: "Compra via QRA",
type_charge: "qra",
webhook_url: "https://yoursite.com/webhook",
redirect_url: "https://yoursite.com/",
}),
}
);
const { qra_payload } = await response.json();
UTF-8 QR encoding
Encode qra_payload for QR generation with UTF-8 and no transforms — altered bytes break scanning.
Response example
{
"charge_uuid": "81f0045c-301a-45c4-96bc-5395f7cf35f9",
"local_currency": 5000,
"currency": "ARS",
"type": "qra",
"status": "issued",
"qra_payload": {
"qr_code": "data:image/png;base64,iVBORw0KGgoAAAANSUh…",
"expiration_date": "2026-01-15 18:30:00.000000"
}
}
Status lifecycle
| Status | Description |
|---|---|
issued | QR issued; awaiting payment |
paid | Confirmed by the clearing network |
canceled | Expired or voided |
refunded | Refund processed when eligible |