If you are looking for things like "CM22" try "Postcode3" and "Postcode4" would be all of "CM".
Now, if you are looking for things like "CM22", these are known as postal "districts" in the UK. This data is actually available as open data in the UK. If you need to visualize a lot of this regularly, it would be much more efficient and cheaper to self-host a copy of that data. Here is a good link where someone has converted the data into GeoJSON (and KML if you prefer): https://github.com/missinglink/uk-postcode-polygons/tree/master
Now if the above doesn't work, here is some good background to understand how the Bing Maps service works. The way the Bing Maps boundary service works is that it retrieves the specified boundary type that intersects a specified coordinate. This is the cause of nearly all issues I've seen reported with this service. If you provide a text input, like the name of a postal code, it gets geocoded and the coordinate of the first result is used to do the intersection test. Unfortunately, the geocoder implementation used by the boundary service doesn't expose all the geocoding service options to fine tune your request. As such, it is better to geocode your data ahead of time to ensure you have the right results/coordinates, then use those coordinates to retrieve the boundaries.
Azure Maps has two boundary services. The latest one is basically the same as the Bing Maps one but with a different API interface and a response format that uses an open data format (GeoJson). The older boundary service in Azure Maps (v1) I actually prefer as you retrieve boundaries by providing unique IDs, and there is a batch service to get those boundaries. However, to get those unique IDs you have to first geocode your data (v1 search service) and the geocode service will return the unique ID for each result. So this is basically the same thing as I suggested in the first paragraph.