Запити надсилаються за допомогою методу POST у форматі JSON. Кодування запитів і відповідей UTF-8. Для передачі запитів встановлюється SSL сесія з використанням сертифікатів отриманих в кабінеті мерчанту.
{
"payload": "JVBERi0xLjYNCjBBEFEiE ... lJUVPRg0K"
"signature": "AQAAAAEAACcQAAAAELRJ...2lZX0ypXbrFrKis1DzUUwRCFg=="
}
{
"payload": "JVBERi0xLjYNCjBBEFEiE ... lJUVPRg0K"
}
Оплата може здійснюватися як з 3ds аутентифікацією картки платника, так і без неї. Для виконання платежу без 3ds аутентифікації, заявка на покупку містить параметр No3ds. Для виконання операцій без 3ds, Точка продажу повинна мати відповідний дозвіл від Постачальника.
3ds сервер може проходити аутентифікацію з проханням до Власника Картки підтвердити платіж або без нього (Challenge flow).
Нижче представлені всі три варіанти взаємодії.



Оплата покупки з використанням PAN картки. Використовується для виконання оплати карткою та декриптованими даними APay/GPay.
<BASE URL>/ts/purchase
| Параметр | Тип | Обов’язково | Опис |
| merchantTransactionId | string (64) | Y | ID транзакції в базі даних Мерчанта |
| pan | string (16/19) | Y | Номер картки покупця. Тільки цифри, без пробілів. |
| expiryMonth | string (2) | Y | Місяць закінчення терміну дії картки платника. Формат "nn". |
| expiryYear | string (2) | Y | Рік – це закінчення терміну дії картки платника. Формат "nn". |
| cvv | String (3) | Y | CVV2 код картки платника. Формат "nnn". |
| amount | number (10) | Y | Сума оплати вказана в копійках. |
| surcharge | number (10) | N | Розмір комісії торговця (додається до суми) в копійках. |
| currency | number (3) | Y | Цифровий код валюти платежу за стандартом ISO 4217 (для P2P тільки 980). |
| no3ds | boolean | N | Не виконуйте аутентифікацію 3DS. Типове значення: false. |
| callbackUrl | string (256) | Y | URL, на який буде надіслано результат платежу. Його використовують, коли необхідно виконати 3ds-челендж. |
| merchantName | string | N |
Назва мерчанта, від імені якого фасилітатор проводить платіж (тільки латиниця та uppercase) |
| mit | boolean | N | Ознака MIT операції |
| originalTid | string |
Y if mit= true N if mit = false |
Ідентифікатор CIT операції при ініціалізації MIT операції |
| browser.acceptHeader | string | Y | Вміст HTTP-заголовків accept, відправлених з браузера Власника картки. |
| browser.useragentHeader | string | Y | Вміст HTTP-заголовка user-agent відправляється з браузера Власника картки. |
| browser.IP | string | Y | IP адреса cardholder Підтримується формати IPv4/IPv6 |
| browser.language | string () | Y | Мова інтерфейсу браузера власника картки |
| browser.javascriptEnabled | boolean | Y | Підтримка JavaScript у браузері Mapholder |
| browser.colorDepth | number | Y | Глибина кольору екрану браузера. Допустимі значення: 1, 4, 8, 15, 16, 24, 32, 48. |
| browser.screenHeight | number | Y | Висота екрану браузера власника картки в пікселях. |
| browser.screenWidth | number | Y | Ширина екрану браузера власника картки в пікселях. |
| browser.TZ | number | Y | Різниця в часі між часом UTC і місцевим часом браузера власника картки в хвилинах. |
| token.isToken | number (1) | N/Y | ознака того, що операція виконана за токеном (значення = 1 якщо використовуємо детокенізовані дані APay/GPay, обов’язковий при використанні детокенізованих даних.) |
| token.operator | string | N/Y | Ім'я гаманця (apple, google і т.п., обов’язковий при використанні детокенізованих даних) |
| token.authMethod | String | N/Y | Отримане значення з гаманця може набувати такого значення: '3DSecure', 'CRYPTOGRAM_3DS', 'PAN_ONLY' (обов’язковий при використанні детокенізованих даних) |
| token.сryptogram | string | N/Y | Значення, отримане з гаманця, для Google-подібних гаманців залежить від значення поля 'authMethod'. Для значення поля 'authMethod' = 'PAN_ONLY', значення 'tokenCryptogram' = null (обов’язковий при використанні детокенізованих даних) |
| token.eciIndicator | number (2) | N/Y | Значення, отримане з гаманця, залежить від значення поля 'authMethod'. У деяких випадках може набувати значення null (обов’язковий при використанні детокенізованих даних) |
{
"merchantTransactionId": 98765,
"cardHolder": "Ivanov Ivan",
"pan": "1111222233334444",
"expiryMonth": "05",
"expiryYear": "29",
"cvv": "038",
"amount": 12345,
"surcharge": 123,
"currency": 980,
"callbackUrl": "https://merchant.com/purchase_result",
"browser": {
"acceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"useragentHeader": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Firefox/47.0",
"javascriptEnabled": true,
"language": "ua",
"colorDepth": 48,
"screenHeight": 1080,
"screenWidth": 1920,
"TZ": 120
}
}
{
"merchantTransactionId": 98765,
"cardHolder": "Ivanov Ivan",
"pan": "1111222233334444",
"expiryMonth": "05",
"expiryYear": "29",
"cvv": "038",
"amount": 12345,
"surcharge": 123,
"currency": 980,
"callbackUrl": "https://merchant.com/purchase_result",
"browser": {
"acceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"useragentHeader": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Firefox/47.0",
"javascriptEnabled": true,
"language": "ua",
"colorDepth": 48,
"screenHeight": 1080,
"screenWidth": 1920,
"TZ": 120
}
"token": {
"isToken": 1,
"operator": "google",
"authMethod": "CRYPTOGRAM_3DS",
"cryptogram": "ALnt+yWSJdXBACMLLWMNGgADFA==",
"eciIndicator": 05
}
}
| Параметр | Тип | Опис |
| status | string | Статус результату запиту. Якщо запит виконано успішно, значення "OK" |
| data.operationId | number | Id транзакції купівлі, створеної в Сервісі e-com |
| data.pan | string | Номер картки платника в масці |
| data.status | string |
Статус операції
CREATED - операція створена 3DS_CHALLENGE - операція на етапі 3DS верифікації |
| data.amount | number | Сума платежу в копійках |
| data.surcharge | number | Розмір комісії купця в копійках |
| data.currency | number | ISO 4217 Числовий код валюти платежу |
| data.merchantTransactionId | string | ID транзакції в базі даних Мерчанта |
| data.operation | string |
Тип операції Для операції покупки параметр необов'язковий та може бути відсутнім |
| data.authorization.rrn | number | Ідентифікатор транзакції в МПС (RRN) |
| data.authorization.approvalCode | string | Код авторизації |
| data.authorization.stan | string | Системний код авторизації |
| data.authorization.tid | string |
Для карток VISA Transaction Identifier (TID). Для карток Mastercard в якості TID виступає Transaction Link Identifier (TLID) Ідентифікатор авторизації, призначений платіжною системою |
| data.authorization.rtid | string | Trace ID для операцій картами Mastercard |
| data.createdUTC | string | Дата і час створення операції в UTC |
| data.updatedUTC | string | Дата й час останньої зміни операції в UTC |
{
"status": "OK",
"data": {
"operationId": 850,
"pan": "4123********0000",
"amount": 99900,
"surcharge": 500,
"currency": 980,
"status": "3DS_CHALLENGE",
"authorization": {
"rrn": 504317967020,
"approvalCode": "045167",
"stan": "967020"
},
"createdUTC": "2025-02-12 15:26:02",
"updatedUTC": "2025-02-12 16:51:22"
}
}
| Параметр | Тип | Опис |
| status | string | Статус результату запиту. Якщо запит виконано успішно, значення OK. |
| data.operationId | number | Ідентифікатор транзакції покупки, створений в сервісі e-comm. |
| data.creq | object | Зміст челенджу |
{
"status": "OK",
"data": {
"operationId": 123456,
"creq": {
"threeDSServerTransID": "f3ab2a21-c5db-42da-b30a-271b24ea15a9",
"acsTransID": "c83afa81-faba-432e-8c9e-2eb8ee11a716",
"dsTransID": "1b0256de-ab33-4265-8c1f-dc1925fc57b8",
"transStatus": "C",
"eci": "00",
"xid": "VGnMqa+1jNBTSnCnoh3K8PuiVZQ=",
"protocolVersion": "2.1.0",
"authenticationType": "02",
"acsChallengeMandated": "Y",
"acsURL": "https://acs.com/v2.1.0/acs/",
"html": "<html><form action=https://acs.com/v2.1.0/acs/ method=post>\n<inputname=creq\nvalue=eyJhY3N..."
}
}
}
|
Параметр |
Тип |
Опис |
| status | string | Статус результату запиту. Якщо запит виконано з помилкою, значення "FAILED". |
| error.code | number | Код помилки. |
| error.message | string | Текст помилки. |
| error.details.operationId | number | Id транзакції купівлі, створеної в Сервісі e-com |
| error.details.ebppError | number | Код відмови процесування |
| error.details.rrn | number | Ідентифікатор транзакції в МПС (RRN) |
| error.details.approvalCode | string | Код авторизації |
| error.details.stan | string | Системний код авторизації |
{
"status": "FAILED",
"error": {
"code": 142,
"message": "Error EBPP 911. The timeout for a response from the receiving bank has expired. Contact the receiving bank",
"details": {
"operationId": 40997,
"ebppError": 911,
"rrn": 532914491673,
"approvalCode": "308496",
"stan": "491673"
}
}
}
Декриптація токену виконується на стороні сервісу E-com
Для запиту токену використовувати:
gateway: amofintech
gatewayMerchantId: The unique identifier of the merchant, which is provided to each partner when connecting to AMOFINTECH payment gateway.
Підтримуються платіжні системи VISA та MASTERCARD
<BASE URL>/ts/googlePurchase
| Параметр | Тип | Опис |
| merchantTransactionId | string (64) | ID транзакції в базі даних Мерчанта |
| amount | number (10) | Сума оплати вказана в копійках. |
| surcharge | number (10) | Розмір комісії торговця (додається до суми) в копійках. |
| currency | number (3) | Цифровий код валюти платежу за стандартом ISO 4217 (для P2P тільки 980). |
| no3ds | boolean | Не виконуйте аутентифікацію 3DS. Типове значення: false. |
| callbackUrl | string (256) | URL, на який буде надіслано результат платежу. Його використовують, коли необхідно виконати 3ds-челендж. |
| merchantName | string |
Назва мерчанта, від імені якого фасилітатор проводить платіж (тільки латиниця та uppercase) |
| browser.acceptHeader | string | Вміст HTTP-заголовків accept, відправлених з браузера Власника картки. |
| browser.useragentHeader | string | Вміст HTTP-заголовка user-agent відправляється з браузера Власника картки. |
| browser.language | string () | Мова інтерфейсу браузера власника картки |
| browser.javascriptEnabled | boolean | Підтримка JavaScript у браузері Mapholder |
| browser.IP | string | IP адреса cardholder Підтримується формати IPv4/IPv6 |
| browser.colorDepth | number | Глибина кольору екрану браузера. Допустимі значення: 1, 4, 8, 15, 16, 24, 32, 48. |
| browser.screenHeight | number | Висота екрану браузера власника картки в пікселях. |
| browser.screenWidth | number | Ширина екрану браузера власника картки в пікселях. |
| browser.TZ | number | Різниця в часі між часом UTC і місцевим часом браузера власника картки в хвилинах. |
| googletoken. protocolVersion | string | |
| googletoken. signature | string | |
| googletoken. intermediateSigningKey. signedKey | String | |
| googletoken. intermediateSigningKey. signatures | string | |
| googletoken.signedMessage | number (2) |
{
"merchantTransactionId": 125461,
"amount": 505,
"surcharge": 50,
"currency": 980,
"callbackUrl": "https://merchant.com/api/callback",
"browser": {
"acceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"useragentHeader": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Firefox/47.0",
"javascriptEnabled": true,
"language": "ua",
"colorDepth": 48,
"screenHeight": 1080,
"screenWidth": 1920,
"TZ": 120
},
"googletoken":{
"signature":"****",
"intermediateSigningKey":{
"signedKey":"{\"******\"}",
"signatures":["*****"]
},
"protocolVersion":"ECv2",
"signedMessage":"***"
}
}
аналогічно з методом purchase
Декриптація токену виконується на стороні сервісу E-com
Для запиту токену використовувати:
gateway: amofintech
merchantIdentifier: *реєструється окремо для кожного торговця *
Підтримуються платіжні системи VISA та MASTERCARD
Для запиту токену у випадку оплати на Web ресурсах необхідно надати csr для випуску Apple Pay Merchant Identity Certificate. Офіційна документація Apple для створення csr: https://developer.apple.com/help/account/certificates/create-a-certificate-signing-request
Також необхідно пройти верифікацію домену з якого будуть виконуватися запити токену.
<BASE URL>/ts/applePurchase
| Параметр | Тип | Опис |
| merchantTransactionId | string (64) | ID транзакції в базі даних Мерчанта |
| amount | number (10) | Сума оплати вказана в копійках. |
| surcharge | number (10) | Розмір комісії торговця (додається до суми) в копійках. |
| currency | number (3) | Цифровий код валюти платежу за стандартом ISO 4217 (для P2P тільки 980). |
| no3ds | boolean | Не виконуйте аутентифікацію 3DS. Типове значення: false. |
| callbackUrl | string (256) | URL, на який буде надіслано результат платежу. Його використовують, коли необхідно виконати 3ds-челендж. |
| merchantName | string |
Назва мерчанта, від імені якого фасилітатор проводить платіж (тільки латиниця та uppercase) |
| browser.acceptHeader | string | Вміст HTTP-заголовків accept, відправлених з браузера Власника картки. |
| browser.useragentHeader | string | Вміст HTTP-заголовка user-agent відправляється з браузера Власника картки. |
| browser.language | string () | Мова інтерфейсу браузера власника картки |
| browser.javascriptEnabled | boolean | Підтримка JavaScript у браузері Mapholder |
| browser.IP | string | IP адреса cardholder Підтримується формати IPv4/IPv6 |
| browser.colorDepth | number | Глибина кольору екрану браузера. Допустимі значення: 1, 4, 8, 15, 16, 24, 32, 48. |
| browser.screenHeight | number | Висота екрану браузера власника картки в пікселях. |
| browser.screenWidth | number | Ширина екрану браузера власника картки в пікселях. |
| browser.TZ | number | Різниця в часі між часом UTC і місцевим часом браузера власника картки в хвилинах. |
| appletoken.data | string | |
| appletoken.signature | string | |
| appletoken.header.publicKeyHash | String | |
| appletoken.header.ephemeralPublicKey | string | |
| appletoken.header.transactionId | string | |
| appletoken.version | string |
{
"merchantTransactionId": 125498,
"amount": 505,
"surcharge": 50,
"currency": 980,
"callbackUrl": "https://merchant.com/api/callback",
"browser": {
"acceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"useragentHeader": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Firefox/47.0",
"javascriptEnabled": true,
"language": "ua",
"colorDepth": 48,
"screenHeight": 1080,
"screenWidth": 1920,
"TZ": 120
},
"appletoken":{
"data":"***",
"signature":"****",
"header":{
"publicKeyHash":"****",
"ephemeralPublicKey":"***",
"transactionId":"****"
},
"version":"EC_v1"
},
}
аналогічно з методом purchase
<BASE URL>/ts/purchase-status
| Параметр | Тип |
Обов'язковою |
Опис |
| operationId |
number |
Y if merchantTransactionId =null |
ID операції покупки в сервісі e-comm. |
| merchantTransactionId | string | Y if operationId=null | ID транзакції в базі даних Мерчанта |
Важливо! У вхідних параметрах необхідно передавати або operationId або merchantTransactionId. Якщо передати обидва параметри в одному запиті буде помилка!
{
"operationId": 123456
}
{
"merchantTransactionId": "987654"
}
| Параметр | Тип | Опис |
| status | string | Статус результату запиту. Якщо запит виконано успішно, значення "OK" |
| data.operationId | number | Id операції, створеної в Сервісі e-com |
| data.pan | string | Маскований номер картки |
| data.merchantTransactionId | string | ID транзакції в базі даних Мерчанта |
| data.amount | number | Сума платежу в копійках |
| data.currency | number | ISO 4217 Числовий код валюти платежу |
| data.status | string |
статус операції
CREATED - операція створена 3DS_CHALLENGE - операція на етапі 3DS верифікації 3DS_SUCCESS - операція пройшла успішно 3DS верифікацію PROCESSING - операція відправлена на обробку ПЦ SUCCESS - операція успішна виконана (фінальний) FAILED - в процесі виконання операції виникла помилка (фінальний) COMPLETED – завершена операція фіналізації (тільки для operation = COMPLETION, фінальний) CANCELED – завершена операція фіналізації на суму 0 фіналізації (тільки для operation = COMPLETION, фінальний) |
| data.operation | string |
Тип операції PRE_AUTH INCREMENTAL COMPLETION Null (PURCHASE) |
| data.authorization.rrn | number | Ідентифікатор транзакції в МПС (RRN) |
| data.authorization.approvalCode | string | Код авторизації |
| data.authorization.stan | string | Системний код авторизації |
| data.authorization.tid | string |
Transaction Identifier (TID). Для карток Mastercard в якості TID виступає Transaction Link Identifier (TLID) Ідентифікатор авторизації, призначений платіжною системою |
| data.authorization.rtid | string | Trace_id для операцій картами Mastercard |
| data.createdUTC | string | Дата і час створення операції в UTC |
| data.updatedUTC | string | Дата й час останньої зміни операції в UTC |
{
"status": "OK",
"data": {
"operationId": 123456,
"pan": "1234 **** **** 9876",
"merchantTransactionId":"11111",
"amount": 10000,
"currency": 980,
"status": "SUCCESS",
"operation":"PRE_AUTH",
"authorization": {
"rrn": 52010006176,
"approvalCode": "015182",
"stan": "006176",
"tid":"009990427140647",
"rtid":"00999043726544"
},
"createdUTC": "2025-02-12 15:26:02",
"updatedUTC": "2025-02-12 16:51:22"
}
}
Повернення коштів за здійснену оплату
<BASE URL>/ts/purchase-return
|
Параметр |
Тип |
Обов'язковою |
Опис |
| merchantTransactionId | string (64) |
Y |
ID транзакції в базі даних Мерчанта |
| purchaseId | number |
Y |
ID первинної операції покупки у сервісі e-comm |
| pan | string (16,19) |
N |
Номер картки покупця. Тільки цифри, без пробілів. необов'язковий якщо немає параметрів expiryMonth, expiryYear |
| expiryMonth | string (2) |
Y/ N (if pan empty) |
Місяць закінчення терміну дії картки платника. Формат "nn". |
| expiryYear | string (2) |
Y/ N (if pan empty) |
Рік – це закінчення терміну дії картки платника. Формат "nn". |
| amount | number (10) |
Y |
Сума повернення в копійках. |
| currency | number (3) |
Y |
Цифровий код валюти платежу за стандартом ISO 4217 (для P2P тільки 980). |
| merchantName | string |
N |
Назва мерчанта, від імені якого фасилітатор проводить платіж (тільки латиниця та uppercase) |
| isToken | number(1) |
N |
Ідентифікатор token PAN. Значення по замовченню = 0. Якщо операція виконується по token PAN передавати значення = 1
|
| authMethod | string |
N / Y if isToken = 1 |
Значення, яке отримали від гаманця. Можливі варіанти: '3DSecure', 'CRYPTOGRAM_3DS', 'PAN_ONLY' |
| cryptogram | string |
N / Y if isToken = 1 |
Значення, яке отримали від гаманця. Залежить від значення параметру authMethod. Якщо ‘authMethod’= 'PAN_ONLY', значення ‘cryptogram’ = null |
| operator | string |
N / Y if isToken = 1 |
Назва гаманця (apple, google) |
{
"merchantTransactionId": 98765,
"purchaseId": 12345,
"pan": "1122334455228899",
"expiryMonth": "05",
"expiryYear": "29",
"amount": 10000,
"currency": 980
}
ідентично відповіді без 3ds-challenge
|
Параметр |
Тип |
Опис |
| status | string | Статус результату запиту. Якщо запит виконано з помилкою, значення "FAILED". |
| error.code | number | Код помилки. |
| error.message | string | Текст помилки. |
| error.details.operationId | number | Id транзакції повернення, створеної в Сервісі e-com |
| error.details.ebppError | number | Код відмови процесування |
| error.details.rrn | number | Ідентифікатор транзакції в МПС (RRN) |
| error.details.approvalCode | string | Код авторизації |
| error.details.stan | string | Системний код авторизації |
{
"status": "FAILED",
"error": {
"code": 142,
"message": "Error EBPP. 907",
"details": {
"operationId": 220346,
"ebppError": 907,
"rrn": 532915245151,
"approvalCode": "151451",
"stan": "245151"
}
}
}
<BASE URL>/ts/return-status
| Параметр | Тип | Обов'язковість | Опис |
| operationId | number | Y | id операції повернення |
{
"operationId": 12299
}
{
"status": "OK",
"data": {
"operationId": 12299,
"purchaseId": 12175,
"merchantTransactionId": "83012d7a-613d-4d68-968f-6f8a354ae620",
"pan": "412364******1110",
"amount": 100,
"currency": 980,
"status": "SUCCESS",
"merchantName":"merchantName",
"authorization": {
"rrn": 517509799443,
"approvalCode": 093411,
"stan": 799443
},
"createdUTC": "24.06.2025 6:34:12",
"updatedUTC": "24.06.2025 6:34:12"
}
}