HTTP статус-коди та їх опрацювання
На цій сторінці ви знайдете інформацію про помилки, що можуть бути отримані при направленні запиту до API Tranzzo.
Загальний перелік HTTP статус-кодів з помилками:
Код помилки | Опис помилки | Результат | Рекомендації |
---|---|---|---|
400 | Bad Request | ❌ Final – failure | Цей тип помилки свідчить про недопустимість запиту. Для її усунення перегляньте параметри запиту, щоб пересвідчитися у їх правильності та повноті. |
401 | Unauthorized | ❌ Final – failure | Ця помилка вказує на те, що один або кілька параметрів автентифікації (POS_ID , API_KEY , API_SECRET , ENDPOINTS_KEY ) мають невірне або недопустиме значення. Для усунення помилки перевірте значення, що використовуються для автентифікації та використайте актуальні. |
404 | Not Found | ❌ Final – failure | Помилка вказує на неможливість знайти ендпоїнт або запис про платіж. Для її усунення перевірте правильність URL-адреси, на яку відправляється запит. Можливо, в ній містяться одруки чи пропущено частину адреси. |
405 | Method Not Allowed | ❌ Final – failure | Ця помилка свідчить про використання недопустимого HTTP-методу у запиті. Перевірте вимоги документації для відповідного типу запитів, а також HTTP-метод, що ви використовуєте. |
406 | Not Acceptable | ❌ Final – failure | Помилка вказує на необхідність включення до запиту за HTTP-методом POST контенту типу application/json . Включіть до відповідного запиту контент необхідного формату. |
429 | Too Many Requests | 🔁 Retryable | Ця помилка вказує на завелику кількість запитів протягом короткого проміжку часу. Спробуйте повторити свій запит після невеликої паузи. |
500 | Internal Server Error | ⏳ Unknown – check status | Цей тип помилок відноситься до внутрішніх помилок на стороні Tranzzo. Зв’яжіться зі Службою підтримки Tranzzo для отримання додаткової інформації щодо вирішення цієї проблеми. Надішліть запит на переопит статусу транзакції, використовуючи значення параметру order_id , що встановлювалося в запиті на створення платежу. |
503 | Service Unavailable | ⏳ Unknown – check status | Ця помилка також відноситься до внутрішніх помилок на стороні Tranzzo і вказує на неможливість зв’язатися із сервером. Спробуйте повторити свій запит після невеликої паузи, а якщо це не допомогло, то зв’яжіться зі Службою підтримки Tranzzo для отримання додаткової інформації щодо вирішення цієї проблеми. Надішліть запит на переопит статусу транзакції, використовуючи значення параметру order_id , що встановлювалося в запиті на створення платежу. |
Отримання у відповідь на запит помилки з 4ХХ
статус-кодом вказує на те, що платіж не було створено або створено одразу з неуспішним статусом. При отриманні статус-коду 404 ви можете зробити повторний запит.
При отриманні статус-коду 500
або 503
транзакцію може бути успішно проведено. Рекомендуємо відправити запит на переопит статусу транзакції через 1 хвилину після отримання помилки.
Field | Type | Required |
---|---|---|
message | String(512) | ✅ |
args | JSON | ✅ |
args.code | String(16) |
Приклад такої відповіді:
{
"message": "Invalid pos_id field or credentials",
"args": {
"code": "S-403"
}
}
Відповідь з інформацією про помилку на стороні сервера (5ХХ
статус-коди) має таку структуру:
Field | Type | Required |
---|---|---|
message | String(512) | ✅ |
args | Object | ✅ |
args.error_id | String(16) |
Приклад такої відповіді:
{
"message": "Internal error occurred",
"args": {
"error_id": "NYdKYdA4Zv3iOJSw"
}
}
Параметр args
також може містити поле Obj
, що є масивом даних.
Приклад відповіді:
{
"message": "Invalid values provided",
"args": {
"obj": [
{
"msg": [
"The card is expired: expiry month and year must be numbers that are gte than today"
],
"args": []
}
]
}
}
У окремих випадках параметр args
також може передаватися як масив.
Приклад відповіді:
{
"message":"Invalid amount provided",
"args":[
{
"field_name":"amount",
"violation":"Invalid value for 'amount': must be a Number in range of [500 - 100000] INR, actual - 300"
}
]
}
Ще один тип помилки може бути отримано у випадку відправки запиту до неіснуючого ендпоїнту.
Приклад відповіді:
{
"code": 5,
"details": [
{
"@type": "type.googleapis.com/google.rpc.DebugInfo",
"detail": "service_control",
"stackEntries": []
}
],
"message": "Method does not exist."
}
При отриманні такої помилки рекомендуємо перевірити правильність адреси ендпоїнту, до якого відправляються запити.
При неправильному формуванні запитів, можуть бути отримані такі помилки:
Повідомлення про помилку | Рекомендації |
---|---|
API key not valid. Please pass a valid API key. | Перевірте значення параметру ENDPOINTS_KEY |
Method doesn't allow unregistered callers (callers without established identity). Please use API Key or other form of API consumer identity to call this API. | Перевірте, чи передається хедер X-API-KEY |
Invalid pos_id field or credentials | Перевірте коректність X-API-Auth та POS_ID |