DataOnly
DataOnly – Visa & Mastercard
📋 Overview
DataOnly is an authentication-like data pass‑through available for Visa and Mastercard that lets merchants send rich cardholder and device information to issuers without a customer challenge. It can be used with both credit and debit cards and typically improves approval rates for e‑commerce transactions.
Important: Because there is no challenge, there is no liability shift. Fraud and chargeback risk remains with the merchant.
To enable DataOnly, contact our support team. You cannot keep 3DS and DataOnly active at the same time — your account can have only one of them enabled.
🎯 Benefits
- ✅ Debit & Credit: works for Visa and Mastercard
- ✅ Higher approval rate by sharing richer data with issuers
- ✅ Frictionless: no 3DS challenge for the customer
⚠️ Risks & Considerations
- ❌ No liability shift: chargeback liability remains with the merchant
- ❌ Issuer behavior may vary for debit; some issuers may decline without a challenge
- ❌ Requires a complete, accurate payload (payer data, address,
device_info
, description, items) to maximize approval
🧭 How it works (High‑level flow)
sequenceDiagram autonumber participant C as Customer participant M as Merchant Backend participant A as A55 API participant I as Issuer/Network C->>M: Initiates checkout M->>A: POST /bank/wallet/charge (with full payer + device_info) A->>I: DataOnly authorization (no challenge) I-->>A: Approve/Decline decision A-->>M: Status (confirmed/error) M-->>C: Show result
Pro‑tip: Pair DataOnly with Device Data Collection (DDC) to strengthen issuer risk signals and approval odds.
🔌 Request (example)
Use this payload to create a charge. Make sure to send complete payer_*
, address, items and device_info`.
Note:
card_number
must be Visa or Mastercard for DataOnly.
{
"wallet_uuid": "00000000-0000-0000-0000-000000000000",
"merchant_id": "11111111-1111-1111-1111-111111111111",
"payer_name": "John Doe",
"payer_email": "[email protected]",
"payer_cell_phone": "+5511999999999",
"items": [
{
"name": "Sample Product",
"description": "Description of the sample product",
"quantity": 1,
"total_amount": 100,
"unit_amount": 100,
"sku": "SAMPLE-SKU-123",
"code": "SAMPLE-CODE-456"
}
],
"payer_address": {
"street": "Sample Street",
"address_number": "123",
"complement": "Apt 101",
"neighborhood": "Sample Neighborhood",
"city": "Sample City",
"state": "SP",
"postal_code": "00000-000",
"country": "BR"
},
"currency": "BRL",
"installment_value": 100,
"installment_count": 1,
"due_date": "2025-12-31",
"description": "Sample transaction description",
"type_charge": "credit_card",
"card_name": "John Doe",
"card_number": "4111111111111111",
"card_expiry_month": "12",
"card_expiry_year": "2030",
"card_cvv": "123",
"device_info": {
"ip_address": "192.168.0.1",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.0.0 Safari/537.36",
"http_accept_content": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
"http_browser_language": "en-US",
"http_browser_java_enabled": true,
"http_browser_javascript_enabled": true,
"http_browser_color_depth": "24",
"http_browser_screen_height": "1080",
"http_browser_screen_width": "1920",
"http_browser_time_difference": "-180",
"http_accept_browser_value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"
},
"webhook_url": "https://webhook-test.com/sample-webhook"
}
🔎 Required fields for DataOnly (summary)
Group | Field(s) | Notes |
---|---|---|
Payer | payer_name , payer_email , payer_cell_phone | Contact details used by issuer risk systems |
Address | street , address_number , neighborhood , city , state , postal_code , country | Full, valid address improves approval |
Order | items[] (name, description, quantity, unit_amount, total_amount, sku/code) | Provide SKU/code for clarity |
Card | card_name , card_number , card_expiry_month , card_expiry_year , card_cvv | Visa/Mastercard only |
Device | All device_info.* shown above | Critical for issuer decisioning |
Routing | webhook_url | Final status is delivered here |
🧩 Optional: Using the SDK (payV2) with DataOnly
You can use A55Pay SDK to automate DDC and device fingerprinting. Unlike 3DS, no challenge/modal is expected in DataOnly.
Load the SDK
<script src="https://cdn.jsdelivr.net/npm/a55pay-sdk"></script>
Minimal call
<script>
A55Pay.payV2({
charge_uuid: "<your-charge-uuid>",
userData: {
payer_name: "John Doe",
payer_email: "[email protected]",
holder_name: "JOHN DOE",
number: "4111 1111 1111 1111",
expiry_month: "12",
expiry_year: "2030",
ccv: "123",
postal_code: "00000-000",
street: "Sample Street",
address_number: "123",
neighborhood: "Sample Neighborhood",
city: "Sample City",
state: "SP",
country: "BR"
},
onReady: () => console.log('Collecting device data (DDC)...'),
onSuccess: (result) => console.log('Approved:', result),
onError: (err) => console.error('Error:', err)
});
</script>
📬 Responses (typical)
Approved
{
"status": "confirmed",
"currency": "BRL",
"charge_uuid": "..."
}
Declined
{
"status": "error",
}
You will always receive the final status via your
webhook_url
.
✅ Best Practices
- Provide complete data: payer, address, items, description, and device_info
- Use HTTPS everywhere; avoid mixed content and blocked signals
- Use Idempotency‑Key when creating/capturing payments
- Pair with DDC (via SDK) to strengthen issuer signals
- Monitor your webhook for final status transitions
❓ FAQ
Is DataOnly the same as 3DS?
No. DataOnly is a frictionless data pass‑through with no challenge and no liability shift.
Which brands are supported?
Visa and Mastercard.
What happens with debit cards?
Issuer behavior varies. Some issuers may decline without a challenge.
Can I enable DataOnly and 3DS together?
No. Only one can be active at a time for your account.
Do I still need device_info
?
Yes. Rich device and browser data is essential for issuer risk decisioning.
Updated 21 days ago