Bancontact Бельгия: карты и A2A
1) Экосистема: Bancontact и Payconiq
Bancontact — национальная белгийская схема безналичных платежей с сильной картовой компонентой (дебетовые карты, часто co-badge с Maestro/Debit Mastercard) и поддержкой e-commerce/POS/NFC.
Payconiq by Bancontact — слой A2A/мобильных платежей (QR/App2App/P2P «на телефон»), широко используемый в онлайне и офлайне.
- Два рельса: карточный (card rails) и банковский A2A (Payconiq).
- Единый бренд на кассе: логотип Bancontact/Payconiq узнаваем и привычен пользователю.
- SCA/PSD2: подтверждение в банке/приложении, низкий фрод.
- Мгновенные подтверждения в онлайне и быстрые расчеты (см. ниже).
2) Роли и участники
Схема Bancontact/Payconiq: правила, сертификация, роутинг.
Issuer (банк плательщика): эмитент карты и/или аккаунта Payconiq, лимиты и антифрод.
Acquirer/PSP: подключает мерчанта (карта/A2A), дает API/SDK, отчеты и расчеты.
Мерчант: инициирует платеж, обрабатывает статусы/возвраты, ведет сверку.
3) Каналы и флоу
3.1 Карта Bancontact (POS/e-commerce/NFC)
POS/NFC: классический дебетовый платеж по терминалу; офлайн/онлайн авторизация по настройкам эмитента.
E-commerce (CNP): хостед-страница/виджет PSP, подтверждение по SCA (3DS-подобный флоу).
Co-badge: при наличии международного приложения (Maestro/Debit MC) терминал/PSP выбирает маршрут.
3.2 Payconiq (A2A: QR/App2App/Link)
QR per-order: мерчант генерирует динамический QR (сумма + orderId); пользователь сканирует приложением Payconiq/банка → подтверждает → мерчант получает онлайн-статус.
App2App/Deeplink: из веб/приложения мерчанта открывается банковское приложение сразу на платеже.
Pay-by-Link: инвойс/ссылка в email/SMS/мессенджере.
P2P «на телефон»: переводы между пользователями по номеру контакта.
3.3 Офлайн-сценарии
Статический QR (редко для мерчантов) — сумма вручную, удобен для донатов/микроплатежей.
SoftPOS: прием карт/Payconiq на смартфонах (где поддержано).
4) Лимиты и поведение банков
Лимиты задают эмитенты (банк/приложение) и PSP (для payout/риска):- Per-transaction / per-day/week для карты и отдельно для Payconiq.
- Новый получатель/новый мерчант — сниженные пороги/выдержка.
- Канальные/velocity-правила: мобильный vs веб, гео/девайс, частота операций.
- P2P/QR/NFC могут иметь отдельные микролимиты.
5) Статусы и расчеты
Карты (Bancontact card)
Онлайн-статус: `authorized/approved`, `declined`, `referred`, `timeout`.
Settlement: обычно T+1/T+2 банковских дней через эквайера; возможны корректировки/реверсалы.
Chargeback: доступен по карточным правилам (сроки/коды, доказательства).
Payconiq (A2A)
Онлайн-статус: `success`, `pending`, `failed`, `canceled`, `expired`.
Settlement: быстрый банковский кредит (часто T+0/T+1, зависит от банка/PSP).
Chargeback отсутствует: возврат — новая кредитовая операция мерчанта плательщику (поддерживаются partial refunds).
6) Тарифы и экономика
Картовый рельс: фикс/процент MDR эквайеру + 3DS/SCA-расходы у PSP.
Payconiq (A2A): обычно ниже картовых MDR; возможны сборы за QR/виджеты/отчетность.
Заложите стоимость поддержки/ODR, работу с `pending/expired` и recon.
7) Возвраты и диспуты
Карта: chargeback-процедуры по картовым правилам; храните proof-of-delivery/услуги, журналы SCA.
A2A: чарджбэка нет, делайте refund (full/partial) как отдельную операцию; сроки T+0/T+1/T+2 в зависимости от банка.
8) Безопасность и комплаенс
PSD2/SCA в банке/приложении; device binding и антифрод эмитента.
PII-минимизация, шифрование веб-хуков, HMAC/nonce, защита от replay, журнал аудита.
GDPR: прозрачность хранения и удаление данных по запросу (DSAR).
9) UX-паттерны
Smart-routing: по умолчанию предлагайте Payconiq (A2A) для низкой комиссии; fallback — карта.
Mobile-first: при мобильном трафике — App2App; на десктопе — QR/redirect.
Чеки: сумма, дата/время, `transactionId`, канал (Card/Payconiq), UTR/референция, контакты саппорта.
Идемпотентность: `orderId` + ключ, безопасные повторы при таймаутах.
Recovery: при `pending/expired` — одна кнопка повтора, альтернатива метода.
10) Интеграция мерчанта
Варианты
1. Hosted/Embedded от PSP (карта + Payconiq): быстрый старт, готовые виджеты, статусы и ошибки.
2. Server-to-Server + Redirect/App2App/QR: полный контроль UX, собственный выбор канала, динамический QR per-order.
3. Pay-by-Link/Invoice: счет по email/SMS/мессенджеру (особенно для B2B/сервисов).
4. POS/SoftPOS: прием карт/NFC и Payconiq-QR в рознице.
- API: `createPayment`, `refund`, `webhook`, `queryStatus`, `reconcile`.
- Webhooks (HMAC, ретраи, дедуп), таблица идемпотентности.
- Recon: daily auto-recon + периодический full-recon; хранение UTR/фин-референций.
- Дашборды SLA: конверсия по каналам, `pending→success/expired`, латентность до settlement.
11) Рекуррент и мандаты
Карта: классический токенизированный дебет (network tokens/COF) с SCA на первом платеже + MIT.
A2A: через e-mandate/SEPA DD/open-banking мандаты: первый платеж → мандат на последующие списания (лимит/периодичность/уведомления).
12) Высокорисковые вертикали (включая iGaming)
В Бельгии строгая регуляция: доступность каналов и лимиты зависят от PSP/банка и локального права.
Ожидайте пониженные лимиты, расширенный KYC/мониторинг, возможные hold’ы.
Планируйте альтернативные рельсы (карта, SEPA, другие PIS) и маршрутизацию по рисковому профилю.
13) Архитектура «Bancontact/Payconiq Gateway»
API-слой (REST/GraphQL) для кассы и back-office.
Очереди событий: статус-ивенты → биллинг/CRM/аналитика.
Security: vault для секретов, IP-allowlist PSP, строгая валидация redirect-URI, анти-replay.
Надежность: экспоненциальные ретраи, DLQ для нестабильных статусов, идемпотентность.
Данные: каталоги банков/лимитов/кодов ошибок; журнал ODR и карта мандатов.
14) Чек-лист вывода в прод
1. Выберите PSP с поддержкой карта + Payconiq; согласуйте тарифы/SLA.
2. Реализуйте `createPayment` с выбором канала, App2App/QR для мобайла/офлайна.
3. Подключите webhooks, таймауты, повторы и идемпотентность.
4. Настройте recon (daily + full), хранение UTR/фин-референций.
5. Поддержите partial/full refunds, ODR-процедуры в саппорте.
6. Включите smart-routing (A2A приоритетно, карта — fallback), алерты по конверсии/латентности.
7. Покройте e2e-тестами банки/мобильные платформы/POS.
Карточка ориентиров
Статусы карта: `authorized/approved`, `declined`, `timeout`.
Статусы A2A: `success`, `pending`, `failed`, `canceled`, `expired`.
Settlement: карта T+1/T+2, A2A часто T+0/T+1.
Лимиты: per-txn/day/week; для новых получателей — пониженные пороги.
Рекуррент: карта (COF/MIT) или A2A через e-mandate/SEPA DD.
Резюме
Движок кассы строим на двух рельсах: Payconiq-A2A для низкой стоимости и карта Bancontact как универсальный fallback.
Разделяем онлайн-подтверждение и settlement в бизнес-логике, включаем partial refunds и четкий ODR.
Не фиксируем суммы: поддерживаем конфиги лимитов по банкам/каналам и регулярную актуализацию.
Для мобайла — App2App/QR, для розницы — NFC + динамический QR, для подписок — первый платеж → мандат.