Well, talking to UPS takes 1 day for each answer. It's been 1 week that I have the same error message returned by the UPS API for no apparent reason. And we got back and forth for that whole week without finding the solution yet.
If you want the details, I'm sending this data to UPS:
{"RateRequest":{"Request":{"TransactionReference":{"CustomerContext":"Verify Success response","TransactionIdentifier":"923156514878192726723253768547"}},"Shipment":{"Shipper":{"Name":"Nicolas Claverie","ShipperNumber":"C543B4","Address":{"AddressLine":["110 avenue barth\u00e9l\u00e9my buyer"],"City":"lyon","StateProvinceCode":"","PostalCode":"69009","CountryCode":"FR"}},"ShipTo":{"Name":"Ritsuko Fujii","Address":{"AddressLine":["145 avenue barth\u00e9l\u00e9my buyer"],"City":"LYON 05","StateProvinceCode":"69","PostalCode":"69005","CountryCode":"FR"}},"ShipFrom":{"Name":"Nicolas Claverie","Address":{"AddressLine":["110 avenue barth\u00e9l\u00e9my buyer"],"City":"lyon","StateProvinceCode":"","PostalCode":"69009","CountryCode":"FR"}},"PaymentDetails":{"ShipmentCharge":{"Type":"01","BillShipper":{"AccountNumber":"C543B4"}}},"DeliveryTimeInformation":{"PackageBillType":"03","Pickup":{"Date":"20230705"}},"Package":[{"PackagingType":{"Code":"02","Description":"Packaging"},"PackageWeight":{"UnitOfMeasurement":{"Code":"KGS","Description":"Kilograms"},"Weight":"2"},"Dimensions":{"UnitOfMeasurement":{"Code":"CM","Description":"Centimeters"},"Length":"10","Width":"20","Height":"10"}}]}}}
and UPS returns
{"response":{"errors":[{"code":"111546","message":"Invalid Weight."}]}}
That returned error message is wrong. It says "Invalid weight" but the weight is provided by the plugin and it is valid as you can see above. So there is a problem but not sure what yet. And without knowing the real problem, I can't fix it.
I don't know how many problems like that I might have after this one. Maybe it will be smooth sailing for there, and I'll be able to provide a first working plugin in a few days. But it might take 2 months.
So I could say something random like "it will be in 2 weeks". But the reality is that I don't know.