API Reference

Anti-Fraud & Device Fingerprint

🛡️ Anti-Fraud & Device Fingerprint

Production-ready guidance for merchants integrating A55’s risk checks and device fingerprint to improve approval rates and reduce fraud—without referencing any third-party providers.


1) What our Anti-Fraud layer does

Our risk engine evaluates each charge using:

  • Device signals (fingerprint, IP, user agent, screen data)
  • Behavioral/velocity rules (retries, rapid value changes, multi-card patterns)
  • Payment attributes (BIN, amount, MCC, currency, installment count)
  • Customer metadata (email, phone, address consistency)
  • Historical reputation (allow/deny lists, prior disputes)

Possible outcomes

  • risk_approved → we proceed to authorization (and 3DS if configured)
  • risk_challenge → we require additional authentication (e.g., 3DS challenge)
  • risk_review → sent to manual review queue
  • risk_declined → blocked before authorization
💡

Goal: reduce issuer declines and chargebacks while preserving a frictionless checkout.


2) Quick Start — Collect the device_id

Add our SDK and extract a stable, session-bound device identifier. Send it in your charge payload under device_info.device_id.

HTML

<script src="https://cdn.jsdelivr.net/npm/a55pay-sdk"></script>
<script>
  // Returns a UUID like: 55d76ee6-faca-4e51-9f0d-5eba8b5f3da2
  const deviceId = A55Pay.getDeviceId();
  // Store it and include in your charge payload
  window.A55_DEVICE_ID = deviceId;
</script>

´´´´

1) Create a charge with device signals

{
  "merchant_id": "fc2226b9-cd39-4dbe-8314-c03279404049",
  "wallet_uuid": "d02995ef-3c17-4816-a81c-af234f840f57",
  "type_charge": "credit_card",
  "currency": "BRL",
  "description": "Order #A55-83921",
  "items": [
    {
      "sku": "CABXIN-HDMI-2M",
      "code": "HDMI-2025-001",
      "name": "HDMI Cable 2m 4K",
      "quantity": 1,
      "unit_amount": 129.90,
      "total_amount": 129.90
    }
  ],
  "payer_name": "John Souza",
  "payer_email": "[email protected]",
  "payer_cell_phone": "559999999999",
  "payer_address": {
    "street": "Av. Paulista",
    "address_number": "1578",
    "neighborhood": "Bela Vista",
    "city": "São Paulo",
    "state": "SP",
    "postal_code": "01311-000",
    "country": "BR"
  },
  "threeds_authentication": true,
  "webhook_url": "https://yourapp.com/webhooks/a55",
  "redirect_url": "https://yourapp.com/checkout/success",
  "device_info": {
    "ip_address": "177.92.34.56",
    "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ...",
    "http_accept_content": "text/html,application/xhtml+xml,application/xml;q=0.9...",
    "http_browser_language": "pt-BR",
    "http_browser_java_enabled": false,
    "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,applicatio..",
    "device_id": "55d76ee6-faca-4e51-9f0d-5eba8b5f3da2" // !IMPORTANT
  }
}

FAQ

Do I have to send device_id? Strongly recommended. It boosts approval and reduces false positives.

Can I use my own fingerprint script? Yes—send your identifier in device_info.device_id.