06-08-2025 03:35 PM
I am listing single sports trading cards via Inventory API, and successfully get to the point where I'm publishing an offer. I continuously get the error 25009 - 'The eBay listing associated with the inventory item, or the unpublished offer has invalid data in the associated Return policy. A return option is missing or not valid. Update your return options.'
I'm using a return policy that exists already in my seller account, and has been successfully used for multiple listings already. Creating a new policy also fails because of the existing return policies in the seller account with the same properties. Has anyone experienced this issue with return policies in the Inventory API before?
06-08-2025 09:33 PM
As a minor update to this in case anyone else finds this in the future, I currently found an annoying but functional workaround:
- If you have created return policies as a seller on the eBay website, they likely do not have all the required fields to use the same return policy via Inventory API.
- Notably, when returnsAccepted is false, all the conditional fields that would normally only be needed if returnsAccepted is set to true MUST ALSO BE SET for a returnsAccepted = false policy to work via API
- The API call to update an existing return policy unfortunately has the opposite behavior - if returnsAccepted is false the API will throw an error if you try to modify/add fields that are conditional on returnsAccepted being true. This is a very unfortunate behavior mismatch.
Until that API behavior is made consistent, there are a couple workarounds depending on your existing profiles:
- If you don't already have a returns accepted profile set up, you can change your returnsAccepted = false profile to true and add all the conditional fields in a single edit to the profile, then make a separate edit changing returnsAccepted back to false while keeping the conditional fields.
- If you do have a returns accepted profile set up, the only real workaround is to delete the existing return policies and use the API to create new ones that have all the conditional fields set even with returnsAccepted = false. This unfortunately requires ending all active listings that use those profiles and relisting them once the new API-compliant profiles are set up.