Общие правила обработки ответов
При обработке ответа необходимо анализировать код ответа HTTP и статус объекта (при наличии).
  1. HTTP 200 со статусом объекта
    succeeded
    , с аналогичным финальным статусом или с объектом без статуса — операция успешна.
  2. HTTP 200 со статусом объекта
    pending
     — результат выполнения операции пока неизвестен. Дожидайтесь входящего уведомления об изменении статуса. Если у этого объекта нет уведомлений, повторите запрос с теми же данными и с тем же ключом идемпотентности или запросите информацию об объекте методом GET. Если статус объекта не изменится, повторяйте запрос с возрастающим разумным интервалом (например, можно использовать последовательность Фибоначчи).
  3. HTTP 200 со статусом объекта
    canceled
    или аналогичным финальным статусом — операция неуспешна. Проанализируйте причину, из-за которой операция не прошла. При необходимости запросите у пользователя новые данные, повторите запрос с новым ключом идемпотентности и новыми данными.
  4. HTTP 200 со статусом, отличным от 
    succeeded
    ,
    canceled
    ,
    pending
     — запрос успешно обработан. Ваши действия зависят от значения полученного статуса.
  5. HTTP 4XX — операция неуспешна. Проанализируйте причину, из-за которой операция не прошла. При необходимости повторите запрос с новым ключом идемпотентности и новыми данными.
  6. HTTP 500 — результат обработки запроса пока не известен. Повторите запрос с теми же данными и с тем же ключом идемпотентности или запросите информацию об объекте методом GET. Если статус объекта не изменится, повторяйте запрос с возрастающим разумным интервалом (например, можно использовать последовательность Фибоначчи).
Что почитать еще
Неуспешные платежиВходящие уведомления