Skip to content
API DocsDocs

QR Flow Payload

Request and response payloads for APM methods that return actionType: QR.

3 min readUpdated Apr 8, 2026

QR-flow APM methods return actionType: QR — the customer scans a dynamically generated QR code with their payment app. All QR methods use the same payload structure, differing only by paymentMethod and paymentType. See QR Code flow for the end-to-end sequence.

QR codes expire in 1–5 minutes (varies by provider). Show a countdown timer and offer a "Refresh QR" option on expiry.

For the full list of supported QR methods, see APM Payload References.

#Required Request Fields

Top-Level Fields

FieldTypeDescription
callbackUrlStringURL to receive transaction status updates
successRedirectUrlStringURL to redirect the customer after successful payment
failureRedirectUrlStringURL to redirect the customer after failed payment

Billing Details (ApmBillingDetails)

FieldTypeDescription
emailStringThe customer's email address used for communication or receipts

#Payload Structure

{
  "paymentMethod": "PIX_QR",
  "paymentType": "E_WALLET"
}

Payload Fields

FieldTypeRequiredDescription
paymentMethodEnumYesQR method identifier (e.g. PIX_QR, UPI_QR, ASTRO_PAY_QR)
paymentTypeEnumYesPayment type for the method (e.g. E_WALLET, BANK_TRANSFER)

#Expected apmResponseData

{
  "paymentMethod": "PIX_QR",
  "paymentType": "E_WALLET",
  "actionType": "QR",
  "redirectUrl": null,
  "iframeUrl": null,
  "qrData": "iVBORw0KGgoAAAANSUhEUg...base64-encoded-png...",
  "qrDeepLink": "pix://pay?code=BR123456789ABCDEF",
  "providerTransactionId": "pix-tx-abc123",
  "extra": null
}

#Response Fields

FieldTypeRequiredDescription
paymentMethodEnumYesThe QR method used
paymentTypeEnumYesPayment type
actionTypeEnumYesAlways QR
redirectUrlStringNoAlways null for QR methods
iframeUrlStringNoAlways null for QR methods
qrDataStringNoBase64-encoded QR code PNG image
qrDeepLinkStringNoMobile deep link to open the payment app directly. May be null for some methods
providerTransactionIdStringNoTransaction ID in the provider's system

#Rendering QR Codes

// Display QR image from Base64
const img = document.createElement('img');
img.src = `data:image/png;base64,${apmResponseData.qrData}`;
document.getElementById('qr-container').appendChild(img);
 
// Deep link fallback for mobile
if (apmResponseData.qrDeepLink) {
  const link = document.createElement('a');
  link.href = apmResponseData.qrDeepLink;
  link.textContent = 'Open in app';
  document.getElementById('qr-container').appendChild(link);
}

#See Also

Was this helpful?