feat: facturación primer pago, fixes SAT/MP, autocompletado RFCs/conceptos
Backend: - Notificación email al admin cuando llega primer pago aprobado (sin factura auto) - Endpoints GET /pagos-sin-factura y POST /emitir-factura-pago para admin global - Fix vinculación org Facturapi Horux 360 (69f23a5a242e0af47a41fa0d) - Fix webhook MP: validación defensiva de x-signature header - Fix autocompleto RFCs: eliminado filtro por contribuyenteId - Fix autocompleto conceptos: eliminado filtro por contribuyenteId - SAT fixes: anti-bot CSF scraper, request reuse, date range fix, stale job thresholds - SAT sync request reuse across jobs para evitar agotar cuota diaria - Typo fix MP_ACCESS_TOKEN en .env - Trial invitations system backend Frontend: - Nueva página /admin/facturas-pendientes con tabla y emisión manual - Métrica 'Facturas pendientes' en /clientes (clickable) - Navegación onboarding FIEL/CSD corregida - Sidebar themes sincronizados - Fix SAT portal migration scraper (NetIQ) - Trial invitation acceptance pages
This commit is contained in:
@@ -186,6 +186,23 @@ export interface ConceptoPrevio {
|
||||
fechaEmision: string;
|
||||
}
|
||||
|
||||
export const getPagosSinFactura = () =>
|
||||
apiClient.get<Array<{
|
||||
id: string;
|
||||
tenantId: string;
|
||||
amount: string;
|
||||
status: string;
|
||||
paymentMethod: string | null;
|
||||
paidAt: string | null;
|
||||
createdAt: string;
|
||||
kind: string;
|
||||
subscription: { plan: string; frequency: string } | null;
|
||||
tenant: { nombre: string; rfc: string | null };
|
||||
}>>('/facturacion/pagos-sin-factura').then(r => r.data);
|
||||
|
||||
export const emitirFacturaPago = (paymentId: string) =>
|
||||
apiClient.post<{ success: boolean; invoiceId: string; paymentId: string }>(`/facturacion/emitir-factura-pago/${paymentId}`).then(r => r.data);
|
||||
|
||||
export const searchConceptos = (q: string, tipo?: string, contribuyenteId?: string | null) => {
|
||||
const params = new URLSearchParams();
|
||||
if (q) params.set('q', q);
|
||||
|
||||
Reference in New Issue
Block a user