USPS offers the option to hold a package at a local post office. All of the steps can be completed using their website. There is a cost involved with holding any package with USPS. The cost varies from package to package. You will need to make an account on USPS.com in order to complete this task.
First thing you will want to do is see if your package is eligible for package intercept. You can see is your package is eligible here. Just copy your USPS tracking number into the search bar on the left hand side of the screen.
If your package is eligible for intercept USPS will ask you some basic information in regards to your parcel. Once you fill out the form correctly and the information in verified, the option to hold your package at a local post office will become available.
Once you pick the local post office to hold the parcel at, you will be taken to a screen to pay for the services. Although there is no flat rate, you will not be charged until the package is located a rerouted. Below is the USPS information that is on their website in regards to this matter.