diff --git a/includes/class-wc-stripe-link-payment-token.php b/includes/class-wc-stripe-link-payment-token.php
new file mode 100644
index 0000000..e22f620
--- /dev/null
+++ b/includes/class-wc-stripe-link-payment-token.php
@@ -0,0 +1,95 @@
+<?php
+
+if ( ! defined( 'ABSPATH' ) ) {
+	exit; // Exit if accessed directly
+}
+
+// phpcs:disable WordPress.Files.FileName
+
+/**
+ * WooCommerce Stripe Link Payment Token.
+ *
+ * Representation of a payment token for Link.
+ *
+ * @class    WC_Payment_Token_Link
+ */
+class WC_Payment_Token_Link extends WC_Payment_Token {
+
+	/**
+	 * Stores payment type.
+	 *
+	 * @var string
+	 */
+	protected $type = 'link';
+
+	/**
+	 * Stores Link payment token data.
+	 *
+	 * @var array
+	 */
+	protected $extra_data = [
+		'email'  => '',
+	];
+
+	/**
+	 * Get type to display to user.
+	 *
+	 * @param  string $deprecated Deprecated since WooCommerce 3.0
+	 * @return string
+	 */
+	public function get_display_name( $deprecated = '' ) {
+		$display = sprintf(
+			/* translators: customer email */
+			__( 'Stripe Link email %s', 'woocommerce-gateway-stripe' ),
+			$this->get_email()
+		);
+
+		return $display;
+	}
+
+	/**
+	 * Hook prefix
+	 */
+	protected function get_hook_prefix() {
+		return 'woocommerce_payment_token_link_get_';
+	}
+
+	/**
+	 * Set Stripe payment method type.
+	 *
+	 * @param string $type Payment method type.
+	 */
+	public function set_payment_method_type( $type ) {
+		$this->set_prop( 'payment_method_type', $type );
+	}
+
+	/**
+	 * Returns Stripe payment method type.
+	 *
+	 * @param string $context What the value is for. Valid values are view and edit.
+	 * @return string $payment_method_type
+	 */
+	public function get_payment_method_type( $context = 'view' ) {
+		return $this->get_prop( 'payment_method_type', $context );
+	}
+
+	/**
+	 * Returns the customer email.
+	 *
+	 * @param string $context What the value is for. Valid values are view and edit.
+	 *
+	 * @return string Customer email.
+	 */
+	public function get_email( $context = 'view' ) {
+		return $this->get_prop( 'email', $context );
+	}
+
+	/**
+	 * Set the customer email.
+	 *
+	 * @param string $email Customer email.
+	 */
+	public function set_email( $email ) {
+		$this->set_prop( 'email', $email );
+	}
+}
