Evenbead docs

Estimated taxes

4 operations. All areas

GET/v1/estimated-taxes

A planning estimate of the year's federal estimated tax (not tax advice; the accountant confirms): the plan's inputs, the income from the books, every worksheet line with its math (Form 1040-ES for an owner, Publication 542 for a C corporation), the safe harbors, the four due dates (moved for weekends and legal holidays), the amounts per quarter, what is paid and what is left, and the saved schedule the reminders use

  • Operation getEstimatedTaxes
  • Scope: read
  • Read
Parameters
  • year query, integer
Responses
  • 200 Estimate (object)
  • Errors 400, 401, 403, 429, 500 (Error: error.type, message)

POST/v1/estimated-taxes/plan

Set the year's estimate inputs (people only: the firm or the owner) and save the schedule the worksheet gives (what reminders and the firm console use). dry_run computes without saving. Audited.

  • Operation setEstimatedTaxPlan
  • Scope: approve
  • Write: sets a value, no Idempotency-Key needed
Request body
  • year integer, required
  • return_type "SCHC" | "1065" | "1120S" | "1120" Schedule C, partnership (the owner's K-1 share), S corporation (the shareholder's K-1 share) or C corporation (Form 1120). Default: the company's tax profile.
  • income_method "annualized" | "ytd" | "manual" annualized: the books' net income for the year to date × days in the year ÷ days elapsed; ytd: the year to date as it is; manual: manual_income_cents
  • manual_income_cents integer | null Integer cents, signed.
  • adjustments_cents integer Book-to-tax adjustments to the business income (signed), e.g. the standard mileage deduction in place of vehicle costs
  • owner_share_ppm integer 1065/1120-S: the owner's share, parts per million (500000 = 50%)
  • se_tax boolean Schedule C and a general partner: self-employment tax applies (never to an S corporation share)
  • filing_status "single" | "mfj" | "mfs" | "hoh"
  • other_income_cents integer Integer cents, signed.
  • wages_ss_cents integer Integer cents (100 = $1.00).
  • deductions_cents integer | null Itemized deductions; null: the standard deduction for the filing status
  • qbi_deduction_cents integer Integer cents (100 = $1.00).
  • credits_cents integer Integer cents (100 = $1.00).
  • withholding_cents integer Integer cents (100 = $1.00).
  • prior_year_tax_cents integer | null Last year's total tax (entered by the firm): the prior-year safe harbor
  • prior_year_high_agi boolean Last year's AGI was over $150,000 ($75,000 married filing separately): 110%
  • prior_year_full boolean Last year's return covered 12 months
  • large_corporation boolean 1120: $1 million or more taxable income in any of the 3 prior years
  • safe_harbor "lower" | "current_year" | "prior_year" lower: the smaller of 90% of this year's and 100%/110% of last year's
  • payment_account string | null Where payments post: the owner's draw (an owner's estimate) or a tax account (a corporation)
  • pay_from_account string | null The bank account that pays
  • reminders boolean Email the owner and CPA before a due date with something left to pay
  • reminder_days integer
  • dry_run boolean Check and preview; nothing is written
Responses
  • 200 Saved (object)
  • Errors 400, 401, 403, 409, 422, 429, 500 (Error: error.type, message)

POST/v1/estimated-taxes/payments

Record a payment for a quarter: posted as an entry (the plan's payment account, from pay_from_account) through the normal path, or `outside_books` when it was paid from a personal account. A person's posts; an agent's becomes a proposal. dry_run previews. Audited.

  • Operation recordEstimatedTaxPayment
  • Scope: propose
  • Write: needs Idempotency-Key (or dry_run)
Request body
  • year integer, required
  • quarter integer, required
  • paid_on string, required Calendar date, YYYY-MM-DD.
  • amount_cents integer, required
  • method "eftps" | "direct_pay" | "irs_account" | "card" | "check" | "other", required
  • confirmation string
  • note string
  • payment_account string Account code
  • pay_from_account string Account code
  • outside_books boolean Paid outside these books (a personal account): recorded, nothing posts. People only.
  • dry_run boolean Check and preview; nothing is written
  • rationale string
Responses
  • 200 Dry run (object)
  • 201 Recorded (object)
  • 202 An agent's request: a proposal a person approves (object)
  • Errors 400, 401, 403, 409, 422, 429, 500 (Error: error.type, message)

POST/v1/estimated-taxes/payments/{id}/void

Void a payment record with a reason (reverse its entry too). People only; audited.

  • Operation voidEstimatedTaxPayment
  • Scope: approve
  • Write: needs Idempotency-Key (or dry_run)
Parameters
  • id path, string, required
Request body
  • reason string, required
Responses
  • 200 Voided (object)
  • Errors 400, 401, 403, 404, 409, 422, 429, 500 (Error: error.type, message)