Skip to main content

I'm experiencing an issue with the Payments API for my Kanban Board widget where users who've already paid are being asked to pay again on each new board.

Current Behavior

Users who have already paid for my widget are still seeing figma.payments?.status.type === 'UNPAID':

const checkPaymentStatus = (): Promise<boolean> => {
const totalTasks = getTotalTasks();

if (figma.payments?.status.type === 'UNPAID' && totalTasks >= 5) {
// This condition is TRUE even for users who already paid!
figma.payments.initiateCheckoutAsync();
}
}

The issue:

  • User pays on Board A
  • User opens Board B
  • figma.payments?.status.type still returns 'UNPAID' (should be 'PAID')
  • User gets payment prompt again at 5 tasks

What I Need

A true per-user license where:

  • Free: 5 tasks per board
  • Paid: Unlimited tasks on ALL boards (one payment)

Questions

  1. How do I implement "pay once, use everywhere" for widgets?
  2. Is there a way to track if a user has already used their free tier on a specific board without clientStorage?

Currently causing customer confusion as they think they need to pay per board. Any guidance appreciated.

Be the first to reply!

Reply