POS SDK for Custom Forms/Pages

I’m working with a Square customer to develop a custom rewards and loyalty program for them.

As part of our integration we need the ability to add a screen to the checkout process on the POS, that will allow us to collect a users phone number, and allow us to update an orders discount based on our data.

Is there any way for us to build this? When reviewing the developer documentation, it was unclear to me whether this is something we can do. If it is possible, can you point me in the right direction?

Unfortunately interacting with the checkout flow in this way is not possible with our public APIs today.

Is this planned or ever expected to be a supported feature? Is there any other alternative you recommend?

There isn’t a native third-party loyalty framework today, but a number of partners have built a workable pattern by mirroring their program into Square Loyalty and syncing state via API + webhooks. At a high level:

  1. Program setup — The seller enables Square Loyalty and configures one loyalty program (accrual rules, reward tiers) in their Square Dashboard. Use RetrieveLoyaltyProgram (main) to read the program ID, accrual rules, and reward definitions your app should mirror.
  2. Accounts / enrollment — Create a Square loyalty account per customer with CreateLoyaltyAccount (mapped to a Customer profile / phone number), and store the Square loyalty_account_id alongside your own member ID so the two systems stay linked. SearchLoyaltyAccounts handles lookup by phone or customer ID.
  3. Earning — After an order is paid on your platform, call AccumulateLoyaltyPoints with the order_id to let Square calculate points from the seller’s accrual rules, or use AdjustLoyaltyPoints when your platform is the source of truth and you just need to push a balance change into Square.
  4. Redemption — CreateLoyaltyReward locks points and returns a reward you can apply as a discount to an open order via the Orders API, then RedeemLoyaltyReward completes it at checkout. SearchLoyaltyEvents gives you the audit trail for reconciliation.
  5. Keeping in sync — Subscribe to the loyalty.account.created, loyalty.account.updated, loyalty.event.created, and loyalty.program.updated webhooks so activity that originates in Square POS (in-person earns and redemptions) flows back into your system.

Known limitations to plan around: a seller can have only one Square loyalty program, accrual is tied to Square Orders, the buyer-facing POS experience reflects Square Loyalty’s UI and rules rather than your own, and this requires the seller to have a Square Loyalty subscription. So it’s a mirror-and-sync approach, not a true swap-in of your program.

On the bigger question: we are actively exploring third-party loyalty frameworks that allow external programs to plug into the Square ecosystem more directly. It’s early, and we don’t have timelines to share on if or when something like that would become generally available. Feedback like yours genuinely helps shape prioritization, so please keep the use cases coming — the more detail on what your program needs (enrollment flow, accrual logic, redemption at POS, etc.), the better.