Jaz Accounting
Built for accountants, finance teams, and the businesses they serve. IFRS-first, multi-currency, multi-user by default. The 358 operations listed here are all reachable, but this extension does not load them all at once: it lists 3 meta-tools and loads the operations you need on demand, so it costs about 600 tokens of context instead of 78KB. Ask the agent "what can you do?" for the full map.
- Integration type
- Connector
- Verification status
Verified connectorVerified connectors are published by Anthropic or an approved partner and are eligible for organic discovery in Claude.- Platform
- Claude
- Primary Subcategory
- Pending
- Secondary Subcategories
- None listed
- Brand
- Jaz
- Access
- Unknown
- First tracked
- 2026-08-11
- Tool count
- 358
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is visible.
Claude Discoverability Score
Your public score is being prepared
Jaz Accounting is tracked in the public registry. Its Discoverability Score will appear as soon as the public benchmark is ready - never as an estimate.
Competitive lineup
How the Discoverability Score works
The Claude Discoverability Score will be the percentage of contested conversations where Jaz Accounting appears in the connector picker or Claude invokes it directly. Found and Positioned will be shown as diagnostics, not score inputs.
Organic discovery scoring is pending. Your Connector score will appear on this scale when measurement goes live.
FoundDiagnostic
Whether Claude found your Connector in connector search. It must be Found before it can reach the picker, but the score counts picker appearances—not search results.
PickedMain score
How often your Connector appeared in the picker, or Claude invoked it directly, across contested conversations. This percentage is the Discoverability Score; the headline number is rounded.
PositionedDiagnostic
What position your Connector appeared in when it was shown in the picker. This shows prominence, but it does not affect the score.
358 tools agents can invoke
Add an attachment to a business transaction. Provide sourceUrl (downloads and uploads as file) or attachmentId (links existing); a file provided by the host conversation is used when neither is given. Order documents (sale-quotes, sale-orders, purchase-requests, purchase-orders) support file/sourceUrl upload ONLY — attachmentId link-by-id is rejected for them. If this action involved a judgment call, record it (jot field or jot tool).
Create bank statement entries via JSON POST (1-100 records per call). For CSV/OFX file imports, use import_bank_statement instead. Fields per record: - amount (required): positive = cash-in, negative = cash-out - transactionDate (required): YYYY-MM-DD - description, payerOrPayee, reference: optional strings Returns {data: {errors: []}} on success. accountResourceId must be a bank-type CoA account (find via list_bank_accounts). If this action involved a judgment call, record it (jot field or jot tool).
Enable one or more currencies for the organization. If this action involved a judgment call, record it (jot field or jot tool).
Add or set an exchange rate for a currency. ALWAYS use this tool even when the user says "update rate" — it handles both new and existing rates. Rate direction is base→source (1 org-base unit = N of this currency); see the rate param before sending. Call list_currencies first to get valid currency codes. If this action involved a judgment call, record it (jot field or jot tool).
Create an employee (expense-claim member). The server requires userResourceId (a login user to bind — binding is PERMANENT) and claimProfileResourceId (REQUIRED — carries the employee balance account; the org default is NOT auto-applied). Dedups by email. If this action involved a judgment call, record it (jot field or jot tool).
Apply a pre-configured bank rule (action shortcut) to a batch of bank statement entries (max 500). Async — returns a jobId. Poll search_background_jobs filtered by resourceId. The rule executes its configured action (e.g. RECONCILE_WITH_DIRECT_CASH_ENTRY) on each entry. If this action involved a judgment call, record it (jot field or jot tool).
Apply supplier credit note(s) to a bill. IMPORTANT: The credit note must be FINALIZED first (status UNAPPLIED, not DRAFT). If it is still a draft, call finalize_supplier_credit_note first. Then search_supplier_credit_notes with status UNAPPLIED to find available credits for the contact, and pass creditNoteResourceId and amountApplied for each. If this action involved a judgment call, record it (jot field or jot tool).
Apply customer credit note(s) to an invoice. You MUST call this tool to actually apply credits — do not just describe the steps. Steps: 1) search_customer_credit_notes with status UNAPPLIED for the same contact. 2) If CN is still DRAFT, call finalize_customer_credit_note first. 3) Call this tool with creditNoteResourceId and amountApplied for each CN. If this action involved a judgment call, record it (jot field or jot tool).
Approve a SUBMITTED claim (SUBMITTED → APPROVED). Approved claims become convertible to journals. If this action involved a judgment call, record it (jot field or jot tool).
Bind a login user to an OFFLINE employee (one with no user bound yet — e.g. created via import without a binding email). ONE-WAY and PERMANENT: allowed only while unbound; rebind is blocked once set. If this action involved a judgment call, record it (jot field or jot tool).
Bulk-approve SUBMITTED claims (ASYNC). Returns a job handle; poll search_background_jobs by jobId. Max 500 ids. If this action involved a judgment call, record it (jot field or jot tool).
Bulk-cancel claims with one shared reason (ASYNC). Returns a job handle; poll search_background_jobs by jobId. Max 500 ids. If this action involved a judgment call, record it (jot field or jot tool).
Create multiple contacts in one call. Deduplicates against existing contacts (exact name match). Returns per-contact result: created, skipped (duplicate), or failed. If this action involved a judgment call, record it (jot field or jot tool).
Bulk-delete claims (ASYNC; only DRAFT/REJECTED/CANCELLED are deletable). Returns a job handle; poll search_background_jobs by jobId. Max 500 ids. If this action involved a judgment call, record it (jot field or jot tool).
Finalize multiple draft transactions in one call. Attempts finalization for each item and returns per-item pass/fail results. Supports invoices, bills, and credit notes. If this action involved a judgment call, record it (jot field or jot tool).
Invite multiple users to the organization in one call. Accepts an array of user objects. Each user follows the same contract as invite_org_user. Returns per-user pass/fail results. If this action involved a judgment call, record it (jot field or jot tool).
Bulk-reject claims with one shared reason (ASYNC). Returns a job handle; poll search_background_jobs by jobId. Max 500 ids. If this action involved a judgment call, record it (jot field or jot tool).
Bulk-submit DRAFT claims (ASYNC). Returns a job handle {jobId,...}; poll search_background_jobs by jobId for per-item results. Max 500 ids. Each claim must have a reference — referenceless claims fail per-item with CLAIM_REFERENCE_REQUIRED_AT_SUBMIT (check the job result). If this action involved a judgment call, record it (jot field or jot tool).
Bulk-update journals — most common use is bulk-finalize (saveAsDraft: false on each row). Sync; per-row sequential execution; max 500 per call (~1-2 min wall-clock for a full 500). bulk_finalize_drafts only handles invoices/bills/credit-notes — journals need this. Common monthly-close pattern: search_journals(filter:{capsuleResourceId:{eq:<id>}, status:{eq:'DRAFT'}}) → map to {resourceId, saveAsDraft: false} → bulk_update_journals. Each row carries the same fields as update_journal (resourceId required + any of reference, valueDate, notes, tags, saveAsDraft). Omitted fields preserve existing. Response: { updated: [{resourceId}], failed: [{resourceId, error, errorCode, status}], updatedCount, failedCount }. Per-row execution — partial results are normal; retry only failed[].resourceId. errorCode + status come from the underlying JazApiError when available. If this action involved a judgment call, record it (jot field or jot tool).
Nested line items per bill (max 500 bills per call). Each row carries lineItems[] under its parent bill (scoped by billReference). Async; returns jobId → poll search_background_jobs by resourceId; PARTIAL_SUCCESS data[0].errorDetails. If this action involved a judgment call, record it (jot field or jot tool).
Max 500 bills per call. FLAT shape: ONE line per bill via `itemDescription` + `totalAmount` + `billAccountResourceId` at row level. For multi-line bills use `bulk_upsert_bill_line_items` instead — that variant takes nested `lineItems[]`. Natural key: `billReference` (rows sharing one within a batch are MERGED — last wins). Async; returns jobId → poll search_background_jobs by resourceId; PARTIAL_SUCCESS data[0].errorDetails. Dates are ISO 8601 only — dateFormat field was removed. If this action involved a judgment call, record it (jot field or jot tool).
Bulk create/update CoA entries (max 500). SYNC: returns { resourceIds, failedRows: [{rowIndex, columnName, columnValue, errorCode, errorMessage}], failedCount } — no jobId polling. PARTIAL_SUCCESS: failed rows surface in failedRows[]; others still succeed. resourceId per row → update; omit → create. Note: dedup is by NAME (not code) — duplicate name surfaces ORGANIZATION_CHART_OF_ACCOUNT_DUPLICATED per row. Accepts classic 12 + 9 IFRS 18 accountType values; common variants normalized via normalizeAccountType. Use for CoA imports / IFRS 18 migration / template seeding. For one-off creates with dedup, use create_account. If this action involved a judgment call, record it (jot field or jot tool).
Bulk create/update contacts (max 500). resourceId per row → update (partial; omitted fields preserve existing). Omit resourceId → create. Async; returns jobId → poll search_background_jobs by resourceId; PARTIAL_SUCCESS data[0].errorDetails. Per-row failures in errorDetails (NOT failedRows — that's the sync pattern). On PARTIAL_SUCCESS: succeeded rows are committed; re-submit only failed rowIndex entries. Whole-batch 422 (validate before submit): (1) each contact must have at least one of customer:true OR supplier:true (after defaults + backfill); (2) emailList unique within a contact (case-insensitive after trim); (3) paymentTerms.value must be positive integer when paymentTerms.name != "CUSTOM"; (4) no duplicate names within batch (after whitespace+case normalize); (5) billingAddress / shippingAddress: addressLine1 required when address object provided. If this action involved a judgment call, record it (jot field or jot tool).
Max 500 exchange rates per call. Auto-enables currencies not yet enabled in the org — no need to call add_currency first. Requires rateDirection per rate. Response surfaces per-row failures: `failedRows[]` (each with rowIndex, columnName, columnValue, errorCode, errorMessage) + `failedCount` alongside `resourceIds[]` for successful inserts. Omitting `rateApplicableTo` defaults it to `rateApplicableFrom - 0.999ms` (no temporal gap). If this action involved a judgment call, record it (jot field or jot tool).
Max 500 customer credit notes per call. Natural key: creditNoteReference. Async; returns jobId → poll search_background_jobs by resourceId; PARTIAL_SUCCESS data[0].errorDetails. Dates are ISO 8601 only. If this action involved a judgment call, record it (jot field or jot tool).
Bulk create/update fixed assets (max 500). Natural key: reference. ⚠️ DATE FIELD MISMATCH: REQUEST uses valueDate (NOT purchaseDate); GET response uses purchaseDate. Sending purchaseDate → cryptic 400 "Invalid request body". Required per row: reference, registrationType (NEW | TRANSFER). Recommended: typeCode, typeName, category (TANGIBLE | INTANGIBLE), cost (synonym: purchaseAmount), valueDate, depreciationStartDate, effectiveLife (synonym: usefulLifeMonths), depreciationMethod, purchaseAssetAccountResourceId, depreciationExpenseAccountResourceId, accumulatedDepreciationAccountResourceId. Account fields = UUIDv4. ASYNC: returns jobId → poll search_background_jobs(filter:{resourceId:{eq:jobId}}); on PARTIAL_SUCCESS read data[0].errorDetails. Dates ISO 8601 (YYYY-MM-DD). If this action involved a judgment call, record it (jot field or jot tool).
Nested line items per invoice (max 500 invoices per call). Each row carries lineItems[] under its parent invoice (scoped by invoiceReference). Async; returns jobId → poll search_background_jobs by resourceId; PARTIAL_SUCCESS data[0].errorDetails. Dates are ISO 8601 only. If this action involved a judgment call, record it (jot field or jot tool).
Max 500 invoices per call. FLAT shape — ONE line per invoice via itemDescription + totalAmount + invoiceAccountResourceId at row level. For multi-line, use bulk_upsert_invoice_line_items (nested lineItems[]). Natural key: invoiceReference (rows sharing one within a batch are MERGED — last wins). resourceId per row → update by UUID; omit → upsert by invoiceReference. ASYNC: returns jobId → poll search_background_jobs(filter:{resourceId:{eq:jobId}}); PARTIAL_SUCCESS → data[0].errorDetails. Dates ISO 8601 (YYYY-MM-DD); dateFormat field removed. If this action involved a judgment call, record it (jot field or jot tool).
Max 500 items per call. Provide resourceId per item to update (partial — only changed fields needed, server preserves existing values). Omit resourceId to create (defaults: status=ACTIVE, itemCategory=NON_INVENTORY). If this action involved a judgment call, record it (jot field or jot tool).
Max 500 manual journals per call. NATURAL KEY: `journalReference` (NOT `reference` — every other bulk-upsert uses entityReference, this one is asymmetric). LEGS field: `journalEntries[]` (NOT `entries[]` — different from `clio journals create` which uses entries). A leg is `organizationAccountResourceId` + EXACTLY ONE of `debitAmount` / `creditAmount` — omit the unused side, do not send 0, and do NOT use the `accountResourceId`+`amount`+`type` shape `create_journal` takes. Debits must equal credits per journal. Async; returns jobId → poll search_background_jobs by resourceId; PARTIAL_SUCCESS data[0].errorDetails. Dates are ISO 8601 (YYYY-MM-DD) only — dateFormat field was removed. If this action involved a judgment call, record it (jot field or jot tool).
Max 500 supplier credit notes per call. Natural key: creditNoteReference. Async; returns jobId → poll search_background_jobs by resourceId; PARTIAL_SUCCESS data[0].errorDetails. Dates are ISO 8601 only. If this action involved a judgment call, record it (jot field or jot tool).
Cancel a DRAFT/SUBMITTED claim with a reason (→ CANCELLED). If this action involved a judgment call, record it (jot field or jot tool).
Cancel an active subscription. Prorates remaining period and stops future billing. Safe to call — subscriptions can be reactivated after cancellation. Always use this tool when the user asks to cancel a subscription. Must cancel before delete. If this action involved a judgment call, record it (jot field or jot tool).
Use this when the user points at a FOLDER, a .zip, a Dropbox / Google Drive / OneDrive folder share link, or a pile/batch of mixed documents ("create docs from this Dropbox folder link", "here is a folder of invoices and bills"). Sort a ZIP or share link of MIXED accounting documents: classifies each file into invoice / bill / customer credit note / supplier credit note / bank statement by its FOLDER NAME within the source (e.g. files under an "invoices/" folder become invoices), WITHOUT creating anything. Files in unrecognized folders come back as needs-review. Returns a manifest (per-file type + confidence + counts) plus a collectionId; review it, then call extract_documents with that collectionId to create the drafts. Source must be an https URL: a direct .zip/file link (e.g. an uploaded attachment) or a Dropbox / Google Drive / OneDrive share link. (Local folder paths are CLI-only.) If this action involved a judgment call, record it (jot field or jot tool).
Convert an APPROVED claim batch into journals (atomic write). valueDate (YYYY-MM-DD) required. Preview first and confirm erroredClaims is empty. idempotencyKey is auto-generated for safe retries (pass your own to dedup across calls). includeReimbursementPayout adds a books-only reimbursement DCE — real-money disburse is intentionally not exposed. If this action involved a judgment call, record it (jot field or jot tool).
BULK promote — finalize up to 500 draft business transactions to ACTIVE in ONE call, mixing any combination of invoices, bills, and credit notes (no per-type tools needed). Async; returns jobId → poll search_background_jobs by resourceId; PARTIAL_SUCCESS data[0].errorDetails. NOT idempotent: a second call on already-promoted drafts returns 422. Filter the draft list by status: DRAFT before submitting. Pair with validate_drafts for a pre-flight check on large batches. If this action involved a judgment call, record it (jot field or jot tool).
Convert a Purchase Request or Purchase Order (pick via documentType) into a Bill. Creates a NEW bill — NON-IDEMPOTENT: each call makes another bill. On a timeout or uncertain result, do NOT blind-retry — search bills for one already linked to this order (purchaseOrderResourceId / purchaseRequestResourceId) first. `reference` is required by the API; if omitted a unique placeholder is generated — pass your own to follow your org's numbering. `saveAsDraft` defaults true (lands as a DRAFT). The source must not be VOID. If this action involved a judgment call, record it (jot field or jot tool).
Convert a Sale Quote or Sale Order (pick via documentType) into an Invoice. Creates a NEW invoice — NON-IDEMPOTENT: each call makes another invoice. On a timeout or uncertain result, do NOT blind-retry — search invoices for one already linked to this order (saleOrderResourceId / saleQuoteResourceId) first. `reference` is required by the API; if omitted a unique placeholder is generated — pass your own to follow your org's numbering. `saveAsDraft` defaults true (lands as a DRAFT). The source must not be VOID. If this action involved a judgment call, record it (jot field or jot tool).
Create a new chart of accounts entry. Auto-checks for duplicates by name — returns existing account if found. Code must be unique. Account class is inferred from accountType. If this action involved a judgment call, record it (jot field or jot tool).
Bank reconciliation rule — auto-matches bank records. Use directly on request; don't just list existing. Required: name, appliesToReconciliationAccount (bank account UUID, no "ResourceId" suffix), configuration. configuration MUST nest under reconcileWithDirectCashEntry: reference (REQUIRED), amountAllocationType ("PERCENTAGE" | "FIXED" — don't send "FIXED_AND_PERCENTAGE"), percentageAllocation[] / fixedAllocation[] of { organizationAccountResourceId, amount }. Advanced: column-value mapping — amountSourceColumnKey + the *Map fields drive amount/account/tax/classifier/contact/tags from a bank column (amount XOR amountSourceColumnKey). Optional fields, the minimum payload, and the mapping shape: jaz-api skill (bank rules). Dynamic strings: {{bankReference}}, {{bankPayee}}, {{bankDescription}}. If this action involved a judgment call, record it (jot field or jot tool).
Create a new bill. Same rules as create_invoice: name not description, saveAsDraft defaults true, accountResourceId REQUIRED on lineItems for finalized bills (search accounts first, e.g. Operating Expense). When selecting a tax profile, use search_tax_profiles with appliesTo "purchase" — sales-only profiles cause 422. reference MUST be unique — use the SUPPLIER'S OWN invoice number; if the document has none, ask. Never invent one. A duplicate guard (supplier + date + currency + amount) returns `_guard: duplicate_suspected` with the existing bill instead of creating — show it, retry with allowDuplicate only once the user confirms it is separate. Optional capsuleRecipe (PURCHASE base only — PREPAID_AMORTIZATION). Other recipes silently null here; pre-flight with preview_capsule_recipe. Mutex with capsuleResourceId. Rule 143. If this action involved a judgment call, record it (jot field or jot tool).
Create one or more bookmarks. categoryCode must be one of: AUDIT_AND_ASSURANCE, BANKING_AND_FINANCE, BUDGETS_AND_CONTROLS, EMPLOYEES_AND_PAYROLL, EXTERNAL_DOCUMENTS, GENERAL_INFORMATION, OWNERS_AND_DIRECTORS, TAXATION_AND_COMPLIANCE, WORKFLOWS_AND_PROCESSES. If this action involved a judgment call, record it (jot field or jot tool).
Create a business transaction (invoice/bill/credit note) from a SINGLE file, a URL, or raw HTML (e.g. an email body) using AI extraction. Processing is async. When the host conversation provides a file with the call, omit all source arguments — the file is used automatically. For a FOLDER, a .zip, a Dropbox/Drive/OneDrive folder share link, or several/mixed documents at once, use classify_documents (then extract_documents) instead — do not call this per-file. If this action involved a judgment call, record it (jot field or jot tool).
Create a new (legacy) capsule. List capsule types first to get the capsuleTypeResourceId. `title` is required and must be non-empty (blank/empty rejected with 422). For IFRS recipe-driven capsules (PREPAID_AMORTIZATION, LOAN_AMORTIZATION, etc.), use `preview_capsule_recipe` + `capsuleRecipe` payload on a trigger mutation instead — those create the capsule + scheduler atoms in one shot. This tool is for manually-grouped legacy capsules. If this action involved a judgment call, record it (jot field or jot tool).
Record money received INTO a bank account from an EXTERNAL source (customer payment, refund received, deposit). For inter-account moves use create_cash_transfer. accountResourceId MUST be a Bank/Cash account (from list_bank_accounts) — any other type fails. Cannot appear in lines (API enforces separation). lines = offsetting entries: { accountResourceId, type (DEBIT/CREDIT), amount }. Offset accounts must be regular P&L or balance-sheet accounts (revenue, expense, asset, liability) — NOT bank/cash and NOT controlled accounts (AR/AP). Optional capsuleRecipe (JOURNAL_DIRECT_CASH_IN base — LOAN_AMORTIZATION: cash-in = loan disbursement, recipe builds repayment schedule). Other recipes silently null here; pre-flight with preview_capsule_recipe. Mutex with capsuleResourceId. Rule 143. If this action involved a judgment call, record it (jot field or jot tool).
Record money paid OUT FROM a bank account to an EXTERNAL party (expense, supplier payment, reimbursement, withdrawal). For inter-account moves use create_cash_transfer. accountResourceId MUST be a Bank/Cash account (from list_bank_accounts). Cannot appear in lines (API enforces separation; error: "CashOut journal account cannot be in CashIn Entries"). lines = offsetting entries: { accountResourceId, type: 'DEBIT' (typical for the expense leg), amount > 0 }. Offset accounts must be regular P&L or balance-sheet accounts — NOT bank/cash and NOT controlled accounts (AR/AP). Example: { accountResourceId: "<expense-acct>", type: "DEBIT", amount: 100 }. Optional capsuleRecipe — no v1 recipe lists JOURNAL_DIRECT_CASH_OUT; passing capsuleRecipe here silently nulls. Use create_cash_in or create_journal for LOAN_AMORTIZATION. Mutex with capsuleResourceId. Rule 143. If this action involved a judgment call, record it (jot field or jot tool).
Move money between TWO OF YOUR OWN bank/cash accounts (petty-cash top-up, inter-account, FX between own accounts). NOT for external parties — use create_cash_in (receiving) / create_cash_out (paying). cashOut = source, cashIn = destination. Each side needs accountResourceId + amount. reference auto-generated if omitted. Do NOT send currency/exchangeRate (derived server-side). If this action involved a judgment call, record it (jot field or jot tool).
Create a catalog. status defaults to INACTIVE. items[] are catalog-item rows; contactGroupResourceIds[] scopes it to contact groups. If this action involved a judgment call, record it (jot field or jot tool).
Create an employee-expense claim directly (bare create, no attachment). Vendor is EITHER contactResourceId OR vendorName, never both. saveAsDraft defaults to true (lands DRAFT with relaxed line validation); set false to validate + submit in one call (lands SUBMITTED). reference is REQUIRED when submitting (saveAsDraft=false) — omitting it returns 422 CLAIM_REFERENCE_REQUIRED_AT_SUBMIT; a DRAFT saves without one. If this action involved a judgment call, record it (jot field or jot tool).
Create an employee-expense claim DRAFT from a receipt via AI extraction — from a SINGLE file, a URL (sourceURL), or raw HTML (e.g. an email body). When the host conversation provides a file with the call, omit all source arguments — the file is used automatically. On the email channel, pass attachmentId "email-body" to use the inbound email body. The draft is born BOUND to the uploader's own employee automatically; to file for someone else pass employeeResourceId (server requires a claims Manager/Admin). Optional contact, claim profile, currency, value date. Returns a workflow handle; the claim appears in Drafts asynchronously (no manual bind step). If this action involved a judgment call, record it (jot field or jot tool).
How do I improve a Verified connector's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.