diff --git a/jsonapi_file.module b/jsonapi_file.module
new file mode 100644
index 0000000..fae1956
--- /dev/null
+++ b/jsonapi_file.module
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ * @file
+ * Contains hook implementations and common functions for jsonapi_file.
+ */
+
+use Drupal\Core\Entity\EntityTypeInterface;
+use Drupal\Core\Field\BaseFieldDefinition;
+
+/**
+ * Implements hook_entity_base_field_info().
+ */
+function jsonapi_file_entity_base_field_info(EntityTypeInterface $entity_type) {
+
+  // Provide custom base field definition for file entity type,
+  // to allow jsonapi_file denormalize incoming data.
+  // Use string_long type to avoid problems with max length validation.
+  // @see \Drupal\Core\Field\Plugin\Field\FieldType\StringLongItem
+  if ($entity_type->id() == 'file') {
+    $fields = [];
+    $fields['data'] = BaseFieldDefinition::create('string_long')
+      ->setLabel(t('Data'))
+      ->setComputed(TRUE)
+      ->setRequired(FALSE)
+      ->setTranslatable(FALSE)
+      ->setRevisionable(FALSE)
+      ->setSetting('case_sensitive', TRUE);
+
+    return $fields;
+  }
+}
diff --git a/jsonapi_file.services.yml b/jsonapi_file.services.yml
index 9bce284..e5caee2 100644
--- a/jsonapi_file.services.yml
+++ b/jsonapi_file.services.yml
@@ -7,4 +7,4 @@ services:
       # serializer.normalizer.entity.jsonapi which is 21.
       # The priority was increased to 23 due to
       # https://www.drupal.org/node/2892341.
-      - { name: normalizer, priority: 23 }
+      - { name: jsonapi_normalizer_do_not_use_removal_imminent, priority: 23 }
diff --git a/src/Normalizer/FileEntityNormalizer.php b/src/Normalizer/FileEntityNormalizer.php
index b09721f..188cf2b 100644
--- a/src/Normalizer/FileEntityNormalizer.php
+++ b/src/Normalizer/FileEntityNormalizer.php
@@ -7,7 +7,7 @@ use Drupal\Core\Config\ConfigFactoryInterface;
 use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\File\FileSystemInterface;
 use Drupal\Core\Session\AccountInterface;
-use Drupal\file\FileInterface;
+use Drupal\file_entity\Entity\FileEntity;
 use Drupal\file_entity\UploadValidatorsTrait;
 use Drupal\jsonapi\LinkManager\LinkManager;
 use Drupal\jsonapi\Normalizer\EntityNormalizer;
@@ -26,7 +26,7 @@ class FileEntityNormalizer extends EntityNormalizer {
   /**
    * {@inheritdoc}
    */
-  protected $supportedInterfaceOrClass = FileInterface::class;
+  protected $supportedInterfaceOrClass = FileEntity::class;
 
   /**
    * File System service.
@@ -77,7 +77,7 @@ class FileEntityNormalizer extends EntityNormalizer {
    */
   public function denormalize($data, $class, $format = NULL, array $context = []) {
 
-    /* @var \Drupal\file\FileInterface $file */
+    /* @var \Drupal\file_entity\Entity\FileEntity $file */
     $file = parent::denormalize($data, $class, $format, $context);
 
     // If the request does not contain base64 file data, then there are no tasks
@@ -135,20 +135,16 @@ class FileEntityNormalizer extends EntityNormalizer {
     $filename = $this->fileSystem->basename($uri);
     $file->setFilename($filename);
 
-    // Initialize the URL field with default value so that entity validation
-    // does not throw error.
-    $file->url->value = '';
-
     return $file;
   }
 
   /**
    * Validates the current file.
    *
-   * @param \Drupal\file\FileInterface $file
+   * @param \Drupal\file_entity\Entity\FileEntity $file
    *   File Entity object.
    */
-  protected function validateFile(FileInterface $file) {
+  protected function validateFile(FileEntity $file) {
 
     // Get list of allowed file extensions.
     $allowed_extensions = $this->configFactory->get('file_entity.settings')
