code: public StripeObject deserializeUnsafe() throws EventDataObjectDeserializationException {
      try {
        return EventDataDeserializer.deserializeStripeObject(rawJsonObject);
      } catch (JsonParseException e) {
        String errorMessage;
        if (!apiVersionMatch()) {
          errorMessage = String.format(
              "Current `stripe-java` integration has Stripe API version %s, but the event data "
                  + "object has %s. The JSON data might have schema not compatible with the "
                  + "current model classes; such incompatibility can be the cause of "
                  + "deserialization failure. "
                  + "If you are deserializing webhoook events, consider creating a different webhook "
                  + "endpoint with `api_version` at %s. See Stripe API reference for more details. "
                  + "If you are deserializing old events from `Event#retrieve`, "
                  + "consider transforming the raw JSON data object to be compatible with this "
                  + "current model class schemas using `deserializeUnsafeWith`. "
                  + "Original error message: %s",
              getIntegrationApiVersion(), this.apiVersion, getIntegrationApiVersion(), e.getMessage()
          );
        } else {
          errorMessage = String.format("Unable to deserialize event data object to respective Stripe "
              + "object. Please see the raw JSON, and contact support@stripe.com for "
              + "assistance. Original error message: %s", e.getMessage());
        }
        throw new EventDataObjectDeserializationException(errorMessage, rawJsonObject.toString());
      }
    }
docs: Force deserialize raw JSON to {@code StripeObject}. The deserialized data is not guaranteed
  to fully represent the JSON. For example, events of new API version having fields that are not
  captured by current model class will be lost. Similarly, events of old API version
  having fields that should be translated into the new fields, like field rename, will be lost.
  
  <p>Upon deserialization failure, consider making the JSON compatible to the current model
  classes and recover from failure with
  {@link EventDataObjectDeserializer#deserializeUnsafeWith(CompatibilityTransformer)}.
  
  @return Object with no guarantee on full representation of its original raw JSON response.
  @throws EventDataObjectDeserializationException exception that contains the message error
  and the raw JSON response of the {@code StripeObject} to be deserialized.