O uso de um campo "metadados" seria tão necessário assim?
na ausência dessa funcionalidade, a referência externa já não seria suficiente?
que todos os gateways permitem que você informe uma referência daquela cobrança...
quando o webhook chegar, ele tras a referência e, com ela, você sabe qual o registro no seu sistema que a gerou e tem todas as informações que precisa. Não querendo utilizar banco de dados para persistência dessas informações, até cache pode ser utilizado.
Poderia dar mais detalhes sobre a forma de uso que terá?