To determine the acceptable shippingCarrierCode and shippingServiceCode values you can use for any given marketplace, call GeteBayDetails (in the Trading API) and set DetailName to ShippingServiceDetails. Be sure to target the appropriate marketplace when you call GeteBayDetails.

The response to GeteBayDetails contains a set of ShippingServiceDetails objects, with each object describing a specific shipping service that's applicable to the target marketplace. To select any of the returned shipping services, use the value from the ShippingCarrier field in the fulfillment policy's shippingCarrierCode field, and use the associated value in the ShippingService field for the value that you set in the policy's shippingServiceCode field. Ensure that the costType that you set in the fulfillment policy is supported by your selected shipping service, and that the value for ValidForSellingFlow in the service is set to true.

Here is an example that uses the USPS Priority Flat Rate Box service, which takes 1 to 3 days to ship, depending on the destination:

"shippingServices": [
  {
    "shippingCarrierCode": "USPS",
    "shippingServiceCode": "USPSPriorityFlatRateBox"
  }
]

The above fulfillment policy targets the EBAY_US marketplace, so the policy specifies a shipping service that delivers domestically to US addresses. Of course, if your policy targets a different marketplace, the shippingServiceCode value must be a shipping service that delivers domestically to that marketplace region.

Tip: To review the list of metadata values available for your site, issue a GeteBayDetails call with no DetailName field supplied. The top-level fields that are returned list the set of possible values that can be used with DetailName.