Callback

Callback - це повідомлення клієнта про те, що сталась якась подія за допомогою HTTP запиту. Система UAPAY робить HTTP запит з методом POST на вказаний клієнтом URL. Формат переданих даних - JSON. Запит підписується за допомогою JWT-токена, докладніше про це тут.

Обов'язково! Для отримання callback з продуктового середовища необхідно передати вашому персональному менеджеру UAPAY URL, на який ви хочете їх отримувати, і після підтверждення, ваш URL буде внесено в список дозволених для отримання callback.

Також є гарантований механізм доставки callback - крім першої спроби доставки, є ще 5 спроб протягом наступної доби з інтервалами між запитами - 5 с, 5 хв, 1 год, 2 год, 24 год.

Callback вважається доставленим, якщо у відповідь на запит прийшов HTTP status code 200.

Приклад підписаного тіла запиту callback у вигляді JWT-токена:

1 2 3 { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXltZW50SWQiOiI2MWI5YTVkNS1kNDI5LTQ4ZmEtYjAxYy0yZjhkYzc1ZjIwMjMiLCJpbnZvaWNlSWQiOiIxY2ZkZWE0My0xMGYwLTQwYzgtOWZlOC01NWQzOGY0OGI5YmMiLCJleHRlcm5hbElkIjoiMGY5MWJiOTAtODhlZS00ZjJhLThiNzUtOTNiZGNiNjE0NGVjIiwicGF5bWVudE51bWJlciI6MjQ5NTAzLCJjYXJkRnJvbU1hc2tlZCI6IjQxMTExMTExMTEiLCJjYXJkVG9NYXNrZWQiOm51bGwsImFtb3VudCI6MTAwMDAwLCJzdGF0dXMiOiJGSU5JU0hFRCIsInR5cGUiOiJQQVkiLCJzeXN0ZW1UeXBlIjoiRUNPTSIsInBheW1lbnRTdGF0dXMiOiJGSU5JU0hFRCIsInJlY2VpcHRQYXRoIjoiaHR0cHM6Ly9hcGkuc3RhZ2UudWFwYXkudWEvYXBpL2FjcXVpcmluZy9yZWNlaXB0cy92Mi82MWI5YTVkNS1kNDI5LTQ4ZmEtYjAxYy0yZjhkYzc1ZjIwMjMucGRmIiwiZXh0cmFJbmZvIjoie1wiZG9jSWRcIjpcIjA5OTQ3ODA0MDJcIixcInNwcm90b2NvbFwiOlwi0KLQldCh0KJcIixcIm5wcm90b2NvbFwiOlwiMjQyMzg1MlwiLFwibGljZW5zZVBsYXRlXCI6XCJmaW5lU2VyaWVzXCJ9IiwiY3JlYXRlRGF0ZSI6IjIwMjEtMDQtMTJUMTA6MDM6MTAuMDAwWiIsInBheURhdGUiOiIyMDIxLTA0LTEyVDEwOjAzOjMxLjg3NFoiLCJpYXQiOjE2MTgyMjE4MTF9.qfbEOHLPka3YW6z0J0FygRx4Sw5R5g6jyjFF6bFhU2g" }

Callback зміни статусу платежу інвойсу

Для отримання callback з інформацією про зміни статусу платежу інвойсу потрібно передати URL в поле callbackUrl на створення інвойсу.

Поля тіла callback:

Ключ

Тип

Опис

Ключ

Тип

Опис

paymentId

uuid

ID платежу

invoiceId

uuid

ID інвойсу

externalId

string

зовнішній ID інвойсу

paymentNumber

integer

номер платежу

cardFromMasked

string

маскований номер картки списання

cardToMasked

string

маскований номер картки зарахування

amount

integer

сума платежу

reversalAmount

integer

сума повернення платежу

status

string

статус платежу

type

string

тип інвойсу

systemType

string

тип платіжного сервісу

paymentStatus

string

детальний статус платежу в платіжному сервісі

receiptPath

string

посилання на квитанцію

extraInfo

string

додаткова інформація інвойсу

createDate

string

дата створення платежу

payDate

string

дата успішного завершення платежу

holdDate

string

дата холда платежу

Приклад:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 { "paymentId": "61b9a5d5-d429-48fa-b01c-2f8dc75f2023", "invoiceId": "1cfdea43-10f0-40c8-9fe8-55d38f48b9bc", "externalId": "0f91bb90-88ee-4f2a-8b75-93bdcb6144ec", "paymentNumber": 249503, "cardFromMasked": "4111111111", "cardToMasked": null, "amount": 100000, "reversalAmount": 0, "status": "FINISHED", "type": "PAY", "systemType": "ECOM", "paymentStatus": "FINISHED", "receiptPath": "https://api.stage.uapay.ua/api/acquiring/receipts/v2/61b9a5d5-d429-48fa-b01c-2f8dc75f2023.pdf", "extraInfo": "{\"docId\":\"0994780402\",\"sprotocol\":\"ТЕСТ\",\"nprotocol\":\"2423852\",\"licensePlate\":\"fineSeries\"}", "createDate": "2021-04-12T10:03:10.000Z", "payDate": "2021-04-12T10:03:31.874Z", "iat": 1618221811 }

Callback зміни статусу P2P платежу

Для отримання callback з інформацією про зміни статусу P2P платежу потрібно передати URL в поле callbackUrl на створення P2P платежу.

Поля тіла callback:

Ключ

Тип

Опис

Ключ

Тип

Опис

paymentSystem

string

тип платіжного сервісу

paymentId

uuid

ID платежу

operationId

uuid

ID операції

operationType

string

тип операції

operationStatus

string

статус операції

paymentType

string

тип платежу

paymentNumber

string

номер платежу

paymentAmount

integer

сума платежу

paymentCommission

integer

сума комісії

paymentStatus

string

статус платежу

postbackTime

string

час формування запиту

cardFromMasked

string

маскований номер картки списання

cardFromId

uuid

ID картки списання

cardToMasked

string

маскований номер картки зарахування

cardToId

uuid

ID картки зарахування

operationExternalId

string

зовнішній ID платежу

reason

object

об'єкт з деталями помилки

confirmation

object

об'єкт з деталями підтвердження

lookupAttempts

integer

кількість спроб на підтвердження платежу з типом LOOKUP

key

string

ключ, який потрібен для підтвердження платежу

Приклад:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 { "paymentSystem": "p2p", "paymentId": "e6edab68-da39-4a99-8fcb-e6974f6d3078", "operationId": "47106586-63ef-45ef-8560-038f646fc709", "operationType": "SEND", "operationStatus": "FINISHED", "paymentType": "BUCKET", "paymentNumber": "17639513", "paymentAmount": 1000, "paymentPendingAmount": 1000, "paymentCommission": 200, "paymentStatus": "PAYED", "postbackTime": 1618311873588, "cardFromMasked": "4111111111", "cardFromId": "f68484b7-9f85-4c94-8b91-c364cd5b6d0b", "cardToMasked": null, "cardToId": null, "operationExternalId": "985293a9-4b8b-411d-9e61-d82e8e8bb239", "iat": 1614370565 }