diff --git a/scripts/apply-fh-deposit.ts b/scripts/apply-fh-deposit.ts index a21ca0f..7b21faf 100644 --- a/scripts/apply-fh-deposit.ts +++ b/scripts/apply-fh-deposit.ts @@ -307,7 +307,12 @@ async function main() { console.log(`[fh-deposit] Deposit account "${mapping.deposit_account_name}" -> ${depositAccountId}`); // 3. Build + post payments - const client = getQboClient(); + // Defer QBO client construction until first live write — dry-run needs no QBO credentials. + let client: ReturnType | null = null; + const getClient = () => { + if (!client) client = getQboClient(); + return client; + }; const paymentResults: Array<{ seq: number; amount: number; paymentId: string }> = []; for (const check of mapping.checks) { @@ -327,7 +332,7 @@ async function main() { continue; } try { - const created = await client.createPayment(payload); + const created = await getClient().createPayment(payload); console.log(` -> Payment ${created.Id} created`); applied.payments[seqKey] = { qbo_payment_id: created.Id, applied_at: new Date().toISOString() }; saveApplied(appliedPath, applied); @@ -350,7 +355,7 @@ async function main() { console.log(` PAYLOAD: ${JSON.stringify(depositPayload)}`); } else { try { - const created = await client.createDeposit(depositPayload); + const created = await getClient().createDeposit(depositPayload); console.log(` -> Deposit ${created.Id} created`); applied.deposit = { qbo_deposit_id: created.Id, applied_at: new Date().toISOString() }; saveApplied(appliedPath, applied);