message: accept null as an InvoiceId
diff: @@ -582,7 +582,10 @@ impl<'de> serde::Deserialize<'de> for InvoiceId {
  where
  D: serde::de::Deserializer<'de>,
  {
  - let s: String = serde::Deserialize::deserialize(deserializer)?;
  + let s: Option<String> = serde::Deserialize::deserialize(deserializer)?;
  + match s {
  + None => Ok(InvoiceId::none()),
  + Some(s) => {
  if s.is_empty() {
  Ok(InvoiceId::none())
  } else {
  @@ -590,6 +593,8 @@ impl<'de> serde::Deserialize<'de> for InvoiceId {
  }
  }
  }
  + }
  +}
  #[cfg(test)]
  mod tests {
  