Take your first real return
Everything outside the tax folder a real return depends on, from the e-file transmitter and the Treasury to the brand's credentials, the verifiers, the two doors and each client's ledger, each with the contract a real one meets.
tax's wordsreturn is a jobtaxpayer is a subjectreview is a taskpreparer is a member
The tax folder runs whole on localhost because every outside system it reads is a sandbox at example.test, and the e-file system is your own simulated code in lib/tax.ts. A real return needs a real one behind each. Most are the brand's own, connected once. These are all of them, as the folder reads them, each with what stands in for it on localhost:
npx services.dev check --connections # every outside system the tax folder reads, and what stands in for it on localhostservices/annual-return.ts:44 file.submit efile the e-file transmitter, under the brand's efin lib/tax.ts: efile, simulated, answering as a test environment
services/annual-return.ts:50 extend.submit extension the same transmitter, for each state's extension lib/tax.ts: extension, simulated
services/annual-return.ts:49 pay.submit the Treasury's payment system, and each state's https://treasury.example.test/payments
services/estimate.ts:22 pay.submit the Treasury's payment system, and each state's https://treasury.example.test/payments
services/notice-response.ts:28 send.submit the IRS's correspondence channel https://correspondence.example.test/replies
services/notice-response.ts:29 pay.submit the Treasury's payment system https://treasury.example.test/payments
services/information-returns.ts:20 match.submit TIN matching, under the brand's tin_matching https://tin-matching.example.test/match
services/information-returns.ts:22 file.submit the information returns system, under its iris https://iris.example.test/submit
services/transcript.ts:25 order.submit transcripts, through the participant program https://transcripts.example.test/order
brand.ts:12 credentials.efin the e-file application's verifier https://verify.example.test/efin
brand.ts:13 credentials.iris the transmitter control code's verifier https://verify.example.test/iris
brand.ts:14 credentials.tin_matching the TIN matching program's verifier https://verify.example.test/tin-matching
brand.ts:15 credentials.ives the participant program's verifier https://verify.example.test/ives
pools/preparers.ts:24 verify the preparers' credential verifier https://verify.example.test/preparers
pools/preparers.ts:11 door gigs.tax, operated by your account https://gigs.tax/door.json
services/year-end-close.ts:17 roles.accountant.pool gigs.accountants, another operator's Pool https://gigs.accountants/pools/accountants.json
services/annual-return.ts:42 authorize.how id-verified identity verification for the officer's Form 8879 https://id.example.test/verify
services/notice-response.ts:27 poa.how esign e-signature for the Form 2848 https://sign.example.test/envelopes
services/annual-return.ts:21 input.books the client's ledger, read-only https://books.example/{client}
19 connections · 16 the brand's own, made once · 2 the doors' · 1 each client's, at the order| Dependency | The contract a real one meets |
|---|---|
The e-file transmitter, behind efile and extension | your code calls it: one submission per jurisdiction, the federal return first and each state linked to it, answered job.accepted(ref, { fee_usd }) or job.rejected(...codes) with the IRS's and each state's own codes, which rejected routes; an extension a state grants without a filing is answered accepted, with nothing sent |
The brand's e-file number, credentials.efin | the verifier re-checks it every 30 days; a stale one refuses every filing and extension, lists the dates at risk on the console, and the guarantee answers for a date it costs |
| The Treasury's and each state's payment systems | take a payment for a taxpayer and its period, and return its receipt; a payment over the single-payment cap is the client's to make |
| The IRS's correspondence channel | takes a signed response under a live authorization, and returns its receipt |
The transcript program, and credentials.ives | orders under the brand's participant status, on the taxpayer's signed Form 4506-C, received within 120 days of the signature |
TIN matching and the information returns system, credentials.tin_matching and credentials.iris | match each payee's name and TIN, and take the 1099s under the brand's transmitter code, each with its receipt |
| The preparers' verifier | writes each member's PTIN, fresh to 31 December, CTEC registration, CPA licence, enrolled agent's card or bar admission, with where it counts, through its own token |
| gigs.tax | your door, with its terms pinned at their version; members join once for every Pool on it |
| gigs.accountants | the operator's terms, pinned at a version, its minimum pay per role and its placement line, with 30 days' notice of a change |
Identity verification, behind authorize | proves the officer is who signs her Form 8879, to the remote-signing identity check, and writes how onto the record |
E-signature, behind poa | returns the signed Form 2848, naming the representative, hashed on the record |
Each client's ledger, input.books | a read-only link the client gives at the order, or the books the year-end close kept |
| Live keys | sk_live_ keys, which take real orders and charge real money |
| Payouts | apis.tax's payout account, which receives each charge and pays every member and the placement; a live order answers payouts_unconfigured until it is connected |
Run check, then the year on a test clock, and one return on a test key end to end, from the order to the payout. Connect the transmitter and the brand's credentials, point the Pool at its verifier, then take live keys and connect payouts. Each client's ledger arrives with their first order. Deploy takes the folder live, and Operate is what running it looks like.