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
- How do I implement "pay once, use everywhere" for widgets?
- 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.