Интеграция может успешно получить доступ к UPS API, а спустя некоторое время начать возвращать ошибки авторизации. Одна из возможных причин — истёкший токен. Сам факт получения токена не делает его бессрочным.
Где указан срок действия?
В официальной спецификации UPS OAuth Client Credentials ответ содержит поле expires_in. Оно описывает срок действия запрошенного токена в секундах. Значение нужно обрабатывать из ответа сервера, а не подменять однажды выбранной константой.
Что проверить в интеграции?
В спецификации expires_in имеет тип строки. При вычислении времени окончания доступа преобразуйте значение в число и учитывайте секунды. Сохраняйте срок вместе с токеном.
Практический подход — получать новый токен до истечения срока с небольшим запасом на выполнение запроса. Это рекомендация по устройству интеграции, а не отдельный срок, установленный UPS. Если одновременно работают несколько процессов, проверьте, не запрашивает ли каждый новый токен без необходимости.
При ошибке авторизации сначала установите причину: истечение срока — не единственный возможный вариант. Не запускайте бесконечный повтор одинаковых запросов и не записывайте токены или секреты клиента в обычные журналы.
Кому полезна эта проверка?
Разработчикам магазинов, служб доставки и других систем, которые напрямую используют UPS API. Обычному отправителю, оформляющему посылку через готовую платформу, не требуется самостоятельно получать OAuth-токен.
Проверять поведение лучше на тестовой интеграции: получение токена, его повторное использование и обработку окончания срока. Пример из документации не следует считать обещанием постоянной продолжительности доступа.
Вопросы и ответы
Можно ли установить один постоянный срок для всех токенов?
Не следует подменять ответ сервера постоянным значением. Используйте срок из expires_in для полученного токена.
В каких единицах приходит expires_in?
В секундах. В спецификации UPS поле имеет тип строки, поэтому для расчётов его нужно преобразовать в число.
Обычному отправителю нужно самому получать токен?
Нет, если он пользуется готовой платформой доставки. Эта настройка нужна разработчикам систем, напрямую работающих с UPS API.






