diff --git a/server.ts b/server.ts index 542f48e..923234f 100644 --- a/server.ts +++ b/server.ts @@ -1035,13 +1035,14 @@ app.post('/api/webhooks/asaas', (req: Request, res: Response) => { if (userPaymentIdx >= 0) { db.payments[userPaymentIdx].status = event === 'PAYMENT_RECEIVED' || event === 'PAYMENT_CONFIRMED' ? 'CONFIRMED' : - event === 'PAYMENT_OVERDUE' ? 'OVERDUE' : db.payments[userPaymentIdx].status; + event === 'PAYMENT_OVERDUE' ? 'OVERDUE' : + event === 'PAYMENT_DELETED' ? 'DELETED' : db.payments[userPaymentIdx].status; if (event === 'PAYMENT_RECEIVED' || event === 'PAYMENT_CONFIRMED') { db.payments[userPaymentIdx].paidAt = new Date().toISOString(); } - } else { - // Register a new payment log + } else if (event !== 'PAYMENT_DELETED') { + // Register a new payment log (unless it's a deletion of an unknown payment) db.payments.push({ id: payment.id || `pay_wh_${Math.random().toString(36).substring(2, 9)}`, userId: user.id, diff --git a/src/types.ts b/src/types.ts index c690990..14aa671 100644 --- a/src/types.ts +++ b/src/types.ts @@ -85,7 +85,7 @@ export interface SubscriptionPayment { id: string; userId: string; value: number; - status: 'PENDING' | 'RECEIVED' | 'CONFIRMED' | 'OVERDUE' | 'REFUNDED'; + status: 'PENDING' | 'RECEIVED' | 'CONFIRMED' | 'OVERDUE' | 'REFUNDED' | 'DELETED' | 'CANCELED'; billingType: 'PIX' | 'CREDIT_CARD' | 'BOLETO'; invoiceUrl: string; dueDate: string;