Configuration

PAAY API key + secret в localStorage. Не коммить файл. На landing-странице ключ виден в HTML — это нормально для PAAY (он только для аутентификации, не для платежа).
Как работает PAAY
PAAY = EMV 3DS authenticator. Это не платёжка — он не списывает деньги. Он проверяет, что карта пройдена 3DS-челлендж, и возвращает cavv / xid / eci. Эти параметры дальше передаются в платёжный gateway (или Konnektive Import Order) для liability shift.

Поток:
1) Get JWT — обмениваешь apiKey+secret на JWT
2) Authenticate browser — посылаешь карданные + amount → получаешь либо сразу authentication result, либо URL для challenge
3) Если challenge — пользователь проходит OTP/банк, после redirect получаешь итог
4) Authenticate status — финальный cavv/xid/eci

Для server-side флоу (recurring) используется 3RI — без браузера пользователя.

Authentication

LOCAL

Generate JWT (HS256, client-signed)

client-side
JWT генерируется локально в браузере через HMAC-SHA256 (apiKey → iss, secret → ключ). У PAAY нет endpoint'а для обмена secret на JWT — клиент подписывает токен сам.
// JWT will appear here and auto-save to config

Browser 3DS flow

Этот эндпоинт принимает карданные. PCI scope. Тестовые карты с PAAY sandbox.
POST

Authenticate browser

POST /{ver}/authenticate/browser
Старт 3DS-аутентификации для checkout-флоу. Возвращает либо frictionless success, либо URL для challenge-iframe.

  
// response
POST

Authenticate 3RI (server-initiated)

POST /{ver}/authenticate/3ri
3DS Requestor Initiated — для recurring/MIT без браузера клиента. Возвращает auth-result без challenge.

  
// response
GET

Get authentication status

GET /{ver}/authenticate/{transactionId}
Финальный статус аутентификации (после challenge или сразу для frictionless). Тут берёшь cavv / xid / eci / authValue для платежа.

  
// response

Tools

UTIL

Decode JWT

Раскодировать payload JWT (header + claims).

CUSTOM

Raw request

Любой path PAAY API. JWT и X-3DS-API-KEY подставятся.

  
// response