← На главную

Интеграция Antifrod.pro с A-pay

Инструкция для проектов на A-pay (Индия, Пакистан, Эфиопия)

1. Маппинг payment_system → payment_method

A-pay payment_systemAntifrod payment_methodРегион
upi_fast, upi_fast_v, upi_p2pupiИндия (INR)
easypaisa_fast, easypaisa_*easypaisaПакистан (PKR)
jazzcash_fast, jazzcash_*jazzcashПакистан (PKR)
telebirr_*, telebir_*telebirЭфиопия (ETB)

2. Два сценария

Payment Gateway (редирект на A-pay)

Когда: до запроса к A-pay на создание payment link, перед редиректом.

Важно: UPI ID и телефон пользователь вводит на странице A-pay. В момент проверки этих данных у вас нет.

Доступно: label (custom_user_id), payment_method, device_id (fingerprint), ip

API (форма на вашем сайте)

Когда: после ввода UPI/телефона пользователем, перед запросом к A-pay API.

Доступно: всё — upi_id, phone, label, device_id, ip, payment_method

3. Код (Payment Gateway)

Подключите скрипты на странице, где пользователь нажимает «Пополнить»:

<script src="https://antifrod.pro/static/fingerprint.js"></script>
<script src="https://antifrod.pro/static/integration.js"></script>

Проверка перед запросом к A-pay:

function apayToAntifrodMethod(paymentSystem) {
  const s = (paymentSystem || '').toLowerCase();
  if (s.includes('upi')) return 'upi';
  if (s.includes('easypaisa')) return 'easypaisa';
  if (s.includes('jazzcash')) return 'jazzcash';
  if (s.includes('telebir')) return 'telebir';
  return 'upi';
}

async function createDepositAndRedirect() {
  const customUserId = 'user_123';
  const paymentSystem = 'upi_fast';
  const paymentMethod = apayToAntifrodMethod(paymentSystem);

  const result = await PaykassmaCheck.check({
    label: customUserId,
    payment_method: paymentMethod,
  });

  if (result.action === 'block') {
    alert('Платёж заблокирован.');
    return;
  }

  // Запрос к A-pay...
  const data = await fetchApayLink({ custom_user_id: customUserId, payment_system: [paymentSystem] });
  if (data.url) window.location.href = data.url;
}

4. Код (API — форма на сайте)

const result = await PaykassmaCheck.check({
  upi_id: document.getElementById('upi').value,
  phone: document.getElementById('phone').value,
  label: customUserId,
  payment_method: 'upi',
});
if (result.action === 'block') return;
// Отправка в A-pay API...

5. Параметры API

POST https://antifrod.pro/api/v1/check

Минимум для Payment Gateway: label + payment_method. Fingerprint добавляется автоматически.

6. Ответ

{"action": "approve", "latency_ms": 45.2}

block — заблокировать, approve — разрешить. При ошибке — fail-open (approve).

7. Ссылки