Начните с минимального запроса
Для расчёта нужны адреса отправления и получения, вес и размеры посылки. Используйте города в полном написании и шестизначные индексы: это снижает неоднозначность и позволяет запросить Почту России.
Сначала создайте аккаунт, подтвердите email и сохраните API-ключ на сервере. Полный секрет показывается только при создании; в исходном коде браузера его быть не должно.
Проверьте единицы измерения
Вес передаётся в граммах, а размеры — в сантиметрах. Посылка весом один килограмм имеет weight_grams: 1000. Заявленная стоимость и цены тарифов выражаются в копейках.
Почему деньги — целые числа
Если price_kopecks равен 48700, цена составляет 487 рублей. Делите на 100 только для отображения. При сортировке, сравнении и хранении оставляйте исходное целое число: это исключает ошибки представления дробей.
Читайте весь ответ
Массив rates содержит варианты услуг, а не просто один ответ на перевозчика. Одна служба может вернуть несколько тарифов. В unavailable указаны службы, которые не дали тариф по текущему запросу.
Срок не всегда известен
days_min и days_max могут отсутствовать как числовые значения и быть null. Не превращайте их в «0 дней». Вместо этого покажите, что срок нужно уточнить у перевозчика.
Подготовьтесь к первому сбою
Проверяйте HTTP-статус до чтения rates. Сохраняйте X-Request-ID и используйте один Idempotency-Key при повторе одной операции после потери соединения. Так повтор не создаст лишнее списание в пределах срока хранения ключа.
Рабочие примеры cURL, Python, PHP и JavaScript находятся в документации. После успешного первого расчёта из бесплатного баланса останется 99 запросов.