EasyPost won't charge for duplicate trackers so you aren't charged twice
EasyPost only charges for each new tracker that is created, and we deduplicate create requests for each user. Specifically, if a user submits two Tracker create requests with the same tracking_code/carrier combination, the second request will simply return the first tracker that was created so as to prevent you from getting charged twice.
We do not deduplicate trackers in test mode, but this behavior will occur in production mode as long as less than 3 months have passed since the original tracker was created; after 3 months, we will created a new tracker since at that point it could refer to a totally different shipment.
There is no charge to retrieve a tracker object using a retrieve request. Using webhooks is encouraged since it is a significantly more efficient workflow and reduces overhead (which in theory could also save money in the long run), but EasyPost will not charge you anything for using retrieve requests to poll for trackers. .