Short answer:
Yes, if you use a "hybrid service" like FedEx SmartPost or UPS SurePost.
Otherwise, no, if the address has the words "PO BOX" in it. If you want to use FedEx or UPS, ask the customer for a physical street address, like "123 Main St" instead of "PO BOX 500".
Long answer:
No, except maybe if the customer has signed up for something called "Street-Style Addressing" and writes the address in a different format.
First, let's talk about the hybrid services: these are services like UPS SurePost and FedEx SmartPost, where UPS or FedEx takes the package most of the way, and then hands it to the USPS for the final delivery. It's totally fine to ship to PO boxes with these services, but that's probably not why you're looking at this page.
FedEx and UPS can't deliver to PO boxes because the USPS won't let them.
It's as simple as that, or at least, it was that simple for many years.
There is an obscure feature of the USPS offered for
some PO boxes called
Street-Style Addressing that will allow the customer to receive UPS and FedEx packages at their PO box. The customer has to have filled out
a special agreement with the USPS, only some post offices are eligible, and the customer has to use a different address format (such as "123 Main St Ste 500" instead of "PO BOX 500). Confusingly, the special agreement form says the customer should use a "# 500" format, but the USPS address database will convert it to "Ste 500", and a different division of USPS says that's fine. The odds of your customer being signed up for this service and still providing you with a PO box-style address are very small, but we include this scenario here for completeness.
There is another feature of the USPS called
GoPost. It's similar to Amazon lockers, except it's by the USPS. It's still in a testing phase and are only available in a very select few locations. But it's fine to use FedEx or UPS to these addresses. They're
like PO boxes, but they
aren't PO boxes, and they have a different addressing format (for example, "123 GoPost #500").