Allowing users to subscribe to my service

Yes, Square supports this functionality through the Subscription Plan Checkout feature of the Checkout API. You can create a checkout link for a Square subscription plan. When a user clicks on the “Subscribe” button, you can generate a Square-hosted checkout page for them to pay and subscribe to the plan.

You will need to provide the initial phase price as defined in the subscription plan and the ID of the subscription plan in a CreatePaymentLink request. After the buyer pays the specified amount, Square creates a customer if one doesn’t exist in the seller’s Customer Directory, adds a card on file to the customer profile, and charges the card on file for the first priced subscription phase. The card is then automatically charged for recurring payments as defined by the subscription plan.

You can then verify all the objects (customer, card on file order, order, and subscription) created. You can use the SearchSubscriptions endpoint (Subscriptions API) and provide the customer ID to retrieve the subscription. This way, you can check if a user has a subscription based on their customer ID.

This answer was reviewed by @Bryan-Square.