def METHOD_NAME(
    _response: lib.Deserializable[lib.Element],
    settings: provider_utils.Settings,
) -> typing.Tuple[models.ShipmentDetails, typing.List[models.Message]]:
    response = _response.deserialize()
    shipment = lib.to_object(
        Shipment,
        lib.find_element("shipment", response, first=True),
    )
    success = shipment is not None and shipment.id is not None
    shipment_details = _extract_details(response, settings) if success else None
    return shipment_details, provider_error.parse_error_response(response, settings)