diff --git a/src/Plugin/Field/FieldType/SerialItem.php b/src/Plugin/Field/FieldType/SerialItem.php
index aacb661..cc94892 100644
--- a/src/Plugin/Field/FieldType/SerialItem.php
+++ b/src/Plugin/Field/FieldType/SerialItem.php
@@ -4,6 +4,7 @@ namespace Drupal\serial\Plugin\Field\FieldType;
 
 use Drupal\Core\Field\FieldItemBase;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
+use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\TypedData\DataDefinition;
 use Drupal\Core\TypedData\TranslatableInterface;
 
@@ -25,6 +26,15 @@ class SerialItem extends FieldItemBase {
   /**
    * {@inheritdoc}
    */
+  public static function defaultFieldSettings() {
+    return array(
+        'start_value' => 1,
+      ) + parent::defaultFieldSettings();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public static function schema(FieldStorageDefinitionInterface $field) {
     return array(
       'columns' => array(
@@ -80,7 +90,6 @@ class SerialItem extends FieldItemBase {
    *   serial id
    */
   private function getSerial() {
-    // @todo review, it should make sense to define a starting autoincrement (e.g. history from an invoice system)
     $serial = NULL;
     $entity = $this->getEntity();
     $newSerial = FALSE;
@@ -106,9 +115,37 @@ class SerialItem extends FieldItemBase {
       /** @var \Drupal\serial\SerialStorageInterface $serialStorage */
       $serialStorage = \Drupal::getContainer()->get('serial.sql_storage');
       $serial = $serialStorage->generateValue($this->getFieldDefinition(), $this->getEntity());
+
+      // Get the starting value from settings.
+      $settings = $this->getSettings();
+      $start_value = isset($settings['start_value']) ? $settings['start_value'] : 1;
+
+      // Subtract one as it is already added in code above.
+      $serial = $serial + $start_value - 1;
     }
 
     return $serial;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
+    // Get base form.
+    $element = parent::fieldSettingsForm($form, $form_state);
+
+    $settings = $this->getSettings();
+
+    // Add field to allow setting of starting value.
+    $element['start_value'] = array(
+      '#type' => 'number',
+      '#title' => t('Starting value'),
+      '#default_value' => isset($settings['start_value']) ? $settings['start_value'] : 1,
+      '#min' => 1,
+      '#required' => TRUE,
+    );
+
+    return $element;
+  }
+
 }
