# Приклад А2С колекції

1\. Authorize by virtual device  —`{{url}}/api-gateway/authorize_virtual_device` \
Для запиту потрібен serviceCode, котрий ми передаємо Вам перед інтеграцією на проді.\
У відповідь повернеться зашифрований серверний ключ - serverPublicKey у форматі jwe, котрий буде потрібен для виконання кроку 2. \
На тесті, він вже присутній в даних колекції.

2\. Decrypt auth response — `{{url}}/cipher/decrypt_by_jwk?message={{responseJwe}}`\
Запит декриптує відповідь банку на своїй стороні за допомогою приватного ключа - userPrivateKey (котрий Мерчант генерує за інтрукцією [Процес генерації комунікаційних JWK ключів клієнта](https://docs.merchant.alb.ua/autentifikaciya#proces-generaciyi-komunikaciinikh-jwk-klyuchiv-kliyenta) ) , щоб отримати серверний ключ - serverPublicKey у відкритому вигляді, котрий буде потрібен для виконання крок 4.\
На Продакшн середовищі, Мерчант самостійно повинен виконувати декриптування на своїй стороні.

3\. A2C card number encrypt — `{{url}}/cipher/encrypt_by_jwk?message={{card_number}}`\
За допомогою платіжного ключа - paymentPublicKey, котрий Банк надає Мерчанту, відбувається криптування номеру картки клієнта.\
Для тестування можна скористатися допоміжним методом "/ecom/help/encrypt\_by\_jwk". \
На Продакшн середовищі, Мерчант самостійно повинен виконувати криптування на своїй стороні.

4\. A2C encrypt body — `{{url}}/cipher/encrypt_by_jwk?message={{body_request}}`\
{{body\_request}} - повинно відповідати обов'язковим вхідним параметрам [A2C](https://docs.merchant.alb.ua/platizhni-metodi-h2h/a2c)\
За допомогою серверного ключа - serverPublicKey, котрий отриманий на кроках 1 і 2, відбувається криптування тіла запиту на проведення платежу на стороні Мерчанта.\
У відповіді отримуємо зашифроване тіло запиту - {{encryptJweT}}, котре буде потрібне для виконання кроку 5.\
Для тестів допускається використання допоміжного методу "/ecom/help/encrypt\_ru\_jwk"

5\. A2C v3 — `{{url}}/ecom/execute_request/payments/v3/account_to_card`\
Запит відправляє зашифроване тіло - {{encryptJweT}}, згенероване на кроці 4. \
У відповіді отримуємо зашифровану відповідь - {{responseJwe}}, котра буде потрібна для виконання кроку 6.

6\. A2C v3 decrypt result — `{{url}}/cipher/decrypt_by_jwk?message={{responseJwe}}`\
Запит декриптує відповідь від банку за допомогою приватного ключа - userPrivateKey, (котрий Мерчант генерує за інструкцією [Процес генерації комунікаційних JWK ключів клієнта](https://docs.merchant.alb.ua/autentifikaciya#proces-generaciyi-komunikaciinikh-jwk-klyuchiv-kliyenta)).\
У відповідь отримуємо розшифровану тіло відповіді на запит у кроці 5.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.merchant.alb.ua/opis-roboti-z-klyuchami/priklad-a2s-kolekciyi.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
