opencode-knowledge-work 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +212 -0
- package/README.md +124 -2
- package/content/bio-research/.mcp.json +48 -0
- package/content/bio-research/CONNECTORS.md +23 -0
- package/content/bio-research/LICENSE +202 -0
- package/content/bio-research/README.md +83 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/LICENSE.txt +201 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/SKILL.md +280 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/asm_schema_overview.md +226 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/field_classification_guide.md +503 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/flattening_guide.md +254 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/supported_instruments.md +151 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/requirements.txt +26 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/convert_to_asm.py +543 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/export_parser.py +481 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/flatten_asm.py +254 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/validate_asm.py +1102 -0
- package/content/bio-research/skills/bio-research-nextflow-development/LICENSE.txt +201 -0
- package/content/bio-research/skills/bio-research-nextflow-development/SKILL.md +290 -0
- package/content/bio-research/skills/bio-research-nextflow-development/references/geo-sra-acquisition.md +416 -0
- package/content/bio-research/skills/bio-research-nextflow-development/references/installation.md +96 -0
- package/content/bio-research/skills/bio-research-nextflow-development/references/pipelines/atacseq.md +138 -0
- package/content/bio-research/skills/bio-research-nextflow-development/references/pipelines/rnaseq.md +118 -0
- package/content/bio-research/skills/bio-research-nextflow-development/references/pipelines/sarek.md +145 -0
- package/content/bio-research/skills/bio-research-nextflow-development/references/troubleshooting.md +137 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/check_environment.py +452 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/genomes.yaml +148 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/pipelines/atacseq.yaml +187 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/pipelines/rnaseq.yaml +147 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/pipelines/sarek.yaml +233 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/detect_data_type.py +300 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/generate_samplesheet.py +455 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/manage_genomes.py +521 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/sra_geo_fetch.py +732 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/__init__.py +69 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/file_discovery.py +189 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/ncbi_utils.py +808 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/sample_inference.py +290 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/validators.py +256 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/LICENSE.txt +201 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/SKILL.md +269 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/01-intuition-pumps.md +264 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/02-risk-assessment.md +323 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/03-optimization-function.md +481 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/04-parameter-strategy.md +396 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/05-decision-tree.md +85 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/06-adversity-planning.md +123 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/07-problem-inversion.md +152 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/08-integration-synthesis.md +173 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/09-meta-framework.md +504 -0
- package/content/bio-research/skills/bio-research-scvi-tools/LICENSE.txt +201 -0
- package/content/bio-research/skills/bio-research-scvi-tools/SKILL.md +155 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/atac_peakvi.md +398 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/batch_correction_sysvi.md +417 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/citeseq_totalvi.md +420 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/data_preparation.md +286 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/environment_setup.md +254 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/label_transfer.md +373 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/multiome_multivi.md +384 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/rna_velocity_velovi.md +410 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/scarches_mapping.md +401 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/scrna_integration.md +429 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/spatial_deconvolution.md +438 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/troubleshooting.md +420 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/cluster_embed.py +212 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/differential_expression.py +220 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/integrate_datasets.py +237 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/model_utils.py +634 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/prepare_data.py +169 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/train_model.py +370 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/transfer_labels.py +224 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/validate_adata.py +397 -0
- package/content/bio-research/skills/bio-research-single-cell-rna-qc/LICENSE.txt +201 -0
- package/content/bio-research/skills/bio-research-single-cell-rna-qc/SKILL.md +175 -0
- package/content/bio-research/skills/bio-research-single-cell-rna-qc/references/scverse_qc_guidelines.md +186 -0
- package/content/bio-research/skills/bio-research-single-cell-rna-qc/scripts/qc_analysis.py +232 -0
- package/content/bio-research/skills/bio-research-single-cell-rna-qc/scripts/qc_core.py +233 -0
- package/content/bio-research/skills/bio-research-single-cell-rna-qc/scripts/qc_plotting.py +235 -0
- package/content/bio-research/skills/bio-research-start/SKILL.md +79 -0
- package/content/customer-support/.mcp.json +40 -0
- package/content/customer-support/CONNECTORS.md +19 -0
- package/content/customer-support/LICENSE +202 -0
- package/content/customer-support/README.md +140 -0
- package/content/customer-support/skills/customer-support-customer-escalation/SKILL.md +248 -0
- package/content/customer-support/skills/customer-support-customer-research/SKILL.md +252 -0
- package/content/customer-support/skills/customer-support-draft-response/SKILL.md +418 -0
- package/content/customer-support/skills/customer-support-kb-article/SKILL.md +351 -0
- package/content/customer-support/skills/customer-support-ticket-triage/SKILL.md +275 -0
- package/content/data/.mcp.json +36 -0
- package/content/data/CONNECTORS.md +18 -0
- package/content/data/LICENSE +202 -0
- package/content/data/README.md +121 -0
- package/content/data/skills/data-analyze/SKILL.md +119 -0
- package/content/data/skills/data-build-dashboard/SKILL.md +924 -0
- package/content/data/skills/data-create-viz/SKILL.md +154 -0
- package/content/data/skills/data-data-context-extractor/SKILL.md +227 -0
- package/content/data/skills/data-data-context-extractor/references/domain-template.md +147 -0
- package/content/data/skills/data-data-context-extractor/references/example-output.md +198 -0
- package/content/data/skills/data-data-context-extractor/references/skill-template.md +148 -0
- package/content/data/skills/data-data-context-extractor/references/sql-dialects.md +121 -0
- package/content/data/skills/data-data-context-extractor/scripts/package_data_skill.py +126 -0
- package/content/data/skills/data-data-visualization/SKILL.md +305 -0
- package/content/data/skills/data-explore-data/SKILL.md +325 -0
- package/content/data/skills/data-sql-queries/SKILL.md +428 -0
- package/content/data/skills/data-statistical-analysis/SKILL.md +245 -0
- package/content/data/skills/data-validate-data/SKILL.md +383 -0
- package/content/data/skills/data-write-query/SKILL.md +122 -0
- package/content/design/.mcp.json +44 -0
- package/content/design/CONNECTORS.md +18 -0
- package/content/design/README.md +117 -0
- package/content/design/skills/design-accessibility-review/SKILL.md +128 -0
- package/content/design/skills/design-design-critique/SKILL.md +118 -0
- package/content/design/skills/design-design-handoff/SKILL.md +131 -0
- package/content/design/skills/design-design-system/SKILL.md +190 -0
- package/content/design/skills/design-research-synthesis/SKILL.md +92 -0
- package/content/design/skills/design-user-research/SKILL.md +41 -0
- package/content/design/skills/design-ux-copy/SKILL.md +107 -0
- package/content/engineering/.mcp.json +48 -0
- package/content/engineering/CONNECTORS.md +19 -0
- package/content/engineering/README.md +136 -0
- package/content/engineering/skills/engineering-architecture/SKILL.md +85 -0
- package/content/engineering/skills/engineering-code-review/SKILL.md +118 -0
- package/content/engineering/skills/engineering-debug/SKILL.md +95 -0
- package/content/engineering/skills/engineering-deploy-checklist/SKILL.md +78 -0
- package/content/engineering/skills/engineering-documentation/SKILL.md +49 -0
- package/content/engineering/skills/engineering-incident-response/SKILL.md +158 -0
- package/content/engineering/skills/engineering-standup/SKILL.md +75 -0
- package/content/engineering/skills/engineering-system-design/SKILL.md +42 -0
- package/content/engineering/skills/engineering-tech-debt/SKILL.md +32 -0
- package/content/engineering/skills/engineering-testing-strategy/SKILL.md +33 -0
- package/content/enterprise-search/.mcp.json +36 -0
- package/content/enterprise-search/CONNECTORS.md +21 -0
- package/content/enterprise-search/LICENSE +202 -0
- package/content/enterprise-search/README.md +157 -0
- package/content/enterprise-search/skills/enterprise-search-digest/SKILL.md +173 -0
- package/content/enterprise-search/skills/enterprise-search-knowledge-synthesis/SKILL.md +258 -0
- package/content/enterprise-search/skills/enterprise-search-search/SKILL.md +178 -0
- package/content/enterprise-search/skills/enterprise-search-search-strategy/SKILL.md +222 -0
- package/content/enterprise-search/skills/enterprise-search-source-management/SKILL.md +173 -0
- package/content/finance/.mcp.json +32 -0
- package/content/finance/CONNECTORS.md +20 -0
- package/content/finance/LICENSE +202 -0
- package/content/finance/README.md +92 -0
- package/content/finance/skills/finance-audit-support/SKILL.md +374 -0
- package/content/finance/skills/finance-close-management/SKILL.md +221 -0
- package/content/finance/skills/finance-financial-statements/SKILL.md +335 -0
- package/content/finance/skills/finance-journal-entry/SKILL.md +131 -0
- package/content/finance/skills/finance-journal-entry-prep/SKILL.md +186 -0
- package/content/finance/skills/finance-reconciliation/SKILL.md +175 -0
- package/content/finance/skills/finance-sox-testing/SKILL.md +218 -0
- package/content/finance/skills/finance-variance-analysis/SKILL.md +266 -0
- package/content/human-resources/.mcp.json +28 -0
- package/content/human-resources/CONNECTORS.md +19 -0
- package/content/human-resources/README.md +138 -0
- package/content/human-resources/skills/human-resources-comp-analysis/SKILL.md +92 -0
- package/content/human-resources/skills/human-resources-draft-offer/SKILL.md +82 -0
- package/content/human-resources/skills/human-resources-interview-prep/SKILL.md +37 -0
- package/content/human-resources/skills/human-resources-onboarding/SKILL.md +104 -0
- package/content/human-resources/skills/human-resources-org-planning/SKILL.md +28 -0
- package/content/human-resources/skills/human-resources-people-report/SKILL.md +99 -0
- package/content/human-resources/skills/human-resources-performance-review/SKILL.md +149 -0
- package/content/human-resources/skills/human-resources-policy-lookup/SKILL.md +94 -0
- package/content/human-resources/skills/human-resources-recruiting-pipeline/SKILL.md +31 -0
- package/content/legal/.mcp.json +36 -0
- package/content/legal/CONNECTORS.md +21 -0
- package/content/legal/LICENSE +202 -0
- package/content/legal/README.md +234 -0
- package/content/legal/skills/legal-brief/SKILL.md +208 -0
- package/content/legal/skills/legal-compliance-check/SKILL.md +274 -0
- package/content/legal/skills/legal-legal-response/SKILL.md +457 -0
- package/content/legal/skills/legal-legal-risk-assessment/SKILL.md +265 -0
- package/content/legal/skills/legal-meeting-briefing/SKILL.md +220 -0
- package/content/legal/skills/legal-review-contract/SKILL.md +358 -0
- package/content/legal/skills/legal-signature-request/SKILL.md +104 -0
- package/content/legal/skills/legal-triage-nda/SKILL.md +262 -0
- package/content/legal/skills/legal-vendor-check/SKILL.md +159 -0
- package/content/manifest.json +86 -0
- package/content/marketing/.mcp.json +60 -0
- package/content/marketing/CONNECTORS.md +20 -0
- package/content/marketing/LICENSE +202 -0
- package/content/marketing/README.md +90 -0
- package/content/marketing/skills/marketing-brand-review/SKILL.md +276 -0
- package/content/marketing/skills/marketing-campaign-plan/SKILL.md +308 -0
- package/content/marketing/skills/marketing-competitive-brief/SKILL.md +331 -0
- package/content/marketing/skills/marketing-content-creation/SKILL.md +157 -0
- package/content/marketing/skills/marketing-draft-content/SKILL.md +117 -0
- package/content/marketing/skills/marketing-email-sequence/SKILL.md +220 -0
- package/content/marketing/skills/marketing-performance-report/SKILL.md +392 -0
- package/content/marketing/skills/marketing-seo-audit/SKILL.md +190 -0
- package/content/operations/.mcp.json +32 -0
- package/content/operations/CONNECTORS.md +20 -0
- package/content/operations/README.md +135 -0
- package/content/operations/skills/operations-capacity-plan/SKILL.md +113 -0
- package/content/operations/skills/operations-change-request/SKILL.md +121 -0
- package/content/operations/skills/operations-compliance-tracking/SKILL.md +44 -0
- package/content/operations/skills/operations-process-doc/SKILL.md +82 -0
- package/content/operations/skills/operations-process-optimization/SKILL.md +39 -0
- package/content/operations/skills/operations-risk-assessment/SKILL.md +40 -0
- package/content/operations/skills/operations-runbook/SKILL.md +87 -0
- package/content/operations/skills/operations-status-report/SKILL.md +77 -0
- package/content/operations/skills/operations-vendor-review/SKILL.md +104 -0
- package/content/pdf-viewer/.mcp.json +8 -0
- package/content/pdf-viewer/CONNECTORS.md +15 -0
- package/content/pdf-viewer/LICENSE +202 -0
- package/content/pdf-viewer/README.md +57 -0
- package/content/pdf-viewer/commands/annotate.md +51 -0
- package/content/pdf-viewer/commands/fill-form.md +73 -0
- package/content/pdf-viewer/commands/open.md +34 -0
- package/content/pdf-viewer/commands/sign.md +54 -0
- package/content/pdf-viewer/skills/pdf-viewer-view-pdf/SKILL.md +147 -0
- package/content/product-management/.mcp.json +72 -0
- package/content/product-management/CONNECTORS.md +22 -0
- package/content/product-management/LICENSE +202 -0
- package/content/product-management/README.md +118 -0
- package/content/product-management/commands/brainstorm.md +120 -0
- package/content/product-management/skills/product-management-competitive-brief/SKILL.md +302 -0
- package/content/product-management/skills/product-management-metrics-review/SKILL.md +388 -0
- package/content/product-management/skills/product-management-product-brainstorming/SKILL.md +273 -0
- package/content/product-management/skills/product-management-roadmap-update/SKILL.md +266 -0
- package/content/product-management/skills/product-management-sprint-planning/SKILL.md +94 -0
- package/content/product-management/skills/product-management-stakeholder-update/SKILL.md +352 -0
- package/content/product-management/skills/product-management-synthesize-research/SKILL.md +312 -0
- package/content/product-management/skills/product-management-write-spec/SKILL.md +250 -0
- package/content/productivity/.mcp.json +44 -0
- package/content/productivity/CONNECTORS.md +18 -0
- package/content/productivity/LICENSE +202 -0
- package/content/productivity/README.md +97 -0
- package/content/productivity/skills/dashboard.html +3111 -0
- package/content/productivity/skills/productivity-memory-management/SKILL.md +323 -0
- package/content/productivity/skills/productivity-start/SKILL.md +158 -0
- package/content/productivity/skills/productivity-task-management/SKILL.md +91 -0
- package/content/productivity/skills/productivity-update/SKILL.md +168 -0
- package/content/sales/.mcp.json +100 -0
- package/content/sales/CONNECTORS.md +36 -0
- package/content/sales/LICENSE +202 -0
- package/content/sales/README.md +148 -0
- package/content/sales/skills/sales-account-context/SKILL.md +94 -0
- package/content/sales/skills/sales-account-plan/SKILL.md +95 -0
- package/content/sales/skills/sales-account-research/SKILL.md +99 -0
- package/content/sales/skills/sales-account-tiering/SKILL.md +101 -0
- package/content/sales/skills/sales-call-prep/SKILL.md +111 -0
- package/content/sales/skills/sales-call-summary/SKILL.md +111 -0
- package/content/sales/skills/sales-close-plan/SKILL.md +106 -0
- package/content/sales/skills/sales-competitive-intelligence/SKILL.md +102 -0
- package/content/sales/skills/sales-create-an-asset/SKILL.md +105 -0
- package/content/sales/skills/sales-crm-hygiene-check/SKILL.md +103 -0
- package/content/sales/skills/sales-customer-health/SKILL.md +108 -0
- package/content/sales/skills/sales-customer-voice/SKILL.md +94 -0
- package/content/sales/skills/sales-daily-briefing/SKILL.md +61 -0
- package/content/sales/skills/sales-deal-advance-gap/SKILL.md +102 -0
- package/content/sales/skills/sales-deal-review/SKILL.md +105 -0
- package/content/sales/skills/sales-deal-signals/SKILL.md +96 -0
- package/content/sales/skills/sales-deal-slip-scenario/SKILL.md +101 -0
- package/content/sales/skills/sales-draft-outreach/SKILL.md +116 -0
- package/content/sales/skills/sales-end-of-day/SKILL.md +114 -0
- package/content/sales/skills/sales-expansion-whitespace/SKILL.md +97 -0
- package/content/sales/skills/sales-forecast/SKILL.md +100 -0
- package/content/sales/skills/sales-handle-objection/SKILL.md +93 -0
- package/content/sales/skills/sales-inbox-sweep/SKILL.md +114 -0
- package/content/sales/skills/sales-lead-triage/SKILL.md +105 -0
- package/content/sales/skills/sales-log-activity/SKILL.md +111 -0
- package/content/sales/skills/sales-pipeline-review/SKILL.md +97 -0
- package/content/sales/skills/sales-renewal-radar/SKILL.md +95 -0
- package/content/sales/skills/sales-rep-context/SKILL.md +90 -0
- package/content/sales/skills/sales-route-lead/SKILL.md +111 -0
- package/content/sales/skills/sales-schedule-meeting/SKILL.md +99 -0
- package/content/sales/skills/sales-setup/SKILL.md +195 -0
- package/content/sales/skills/sales-stakeholder-map/SKILL.md +107 -0
- package/content/sales/skills/sales-team-pipeline/SKILL.md +105 -0
- package/content/sales/skills/sales-update-opportunity/SKILL.md +111 -0
- package/content/sales/skills/sales-weekly-wrap/SKILL.md +90 -0
- package/content/sales/skills/sales-win-loss-review/SKILL.md +88 -0
- package/content/small-business/.mcp.json +148 -0
- package/content/small-business/README.md +117 -0
- package/content/small-business/skills/small-business-ad-manager/SKILL.md +128 -0
- package/content/small-business/skills/small-business-ad-manager/reference/ad_copy.md +112 -0
- package/content/small-business/skills/small-business-ad-manager/reference/change_playbook.md +127 -0
- package/content/small-business/skills/small-business-ad-manager/reference/data_sources.md +100 -0
- package/content/small-business/skills/small-business-ad-manager/reference/diagnostics.md +89 -0
- package/content/small-business/skills/small-business-ad-manager/reference/gotchas.md +181 -0
- package/content/small-business/skills/small-business-ap-processor/SKILL.md +158 -0
- package/content/small-business/skills/small-business-ap-processor/reference/coding_rules.md +70 -0
- package/content/small-business/skills/small-business-ap-processor/reference/gotchas.md +131 -0
- package/content/small-business/skills/small-business-ap-processor/reference/intake_and_extraction.md +82 -0
- package/content/small-business/skills/small-business-ap-processor/reference/matching_and_exceptions.md +80 -0
- package/content/small-business/skills/small-business-ap-processor/reference/payment_run.md +77 -0
- package/content/small-business/skills/small-business-brand-style/SKILL.md +106 -0
- package/content/small-business/skills/small-business-build-agent/SKILL.md +105 -0
- package/content/small-business/skills/small-business-build-agent/reference/capture.md +133 -0
- package/content/small-business/skills/small-business-build-agent/reference/gotchas.md +204 -0
- package/content/small-business/skills/small-business-build-agent/reference/skill_authoring.md +165 -0
- package/content/small-business/skills/small-business-build-connector/SKILL.md +102 -0
- package/content/small-business/skills/small-business-build-connector/reference/discovery.md +120 -0
- package/content/small-business/skills/small-business-build-connector/reference/gotchas.md +237 -0
- package/content/small-business/skills/small-business-build-connector/reference/paths.md +106 -0
- package/content/small-business/skills/small-business-build-connector/reference/use-zapier.md +128 -0
- package/content/small-business/skills/small-business-business-pulse/SKILL.md +181 -0
- package/content/small-business/skills/small-business-business-pulse/reference/data_sources.md +173 -0
- package/content/small-business/skills/small-business-business-pulse/reference/gotchas.md +103 -0
- package/content/small-business/skills/small-business-business-pulse/reference/output_template.md +109 -0
- package/content/small-business/skills/small-business-business-pulse/reference/thresholds.md +71 -0
- package/content/small-business/skills/small-business-business-pulse/reference/v2_sources.md +63 -0
- package/content/small-business/skills/small-business-call-list/SKILL.md +82 -0
- package/content/small-business/skills/small-business-canva-creator/SKILL.md +448 -0
- package/content/small-business/skills/small-business-canva-creator/reference/canva-api.md +208 -0
- package/content/small-business/skills/small-business-canva-creator/reference/examples/boutique-brief-campaign.md +181 -0
- package/content/small-business/skills/small-business-canva-creator/reference/gotchas.md +380 -0
- package/content/small-business/skills/small-business-canva-creator/reference/hubspot-staging.md +137 -0
- package/content/small-business/skills/small-business-cash-flow-snapshot/SKILL.md +251 -0
- package/content/small-business/skills/small-business-cash-flow-snapshot/reference/examples/worked-example.md +92 -0
- package/content/small-business/skills/small-business-cash-flow-snapshot/reference/gotchas.md +62 -0
- package/content/small-business/skills/small-business-cash-flow-snapshot/reference/v2_sources.md +84 -0
- package/content/small-business/skills/small-business-close-month/SKILL.md +86 -0
- package/content/small-business/skills/small-business-content-strategy/SKILL.md +152 -0
- package/content/small-business/skills/small-business-content-strategy/reference/examples/retail-boutique-example.md +71 -0
- package/content/small-business/skills/small-business-content-strategy/reference/gotchas.md +104 -0
- package/content/small-business/skills/small-business-content-strategy/reference/v2_sources.md +40 -0
- package/content/small-business/skills/small-business-contract-review/SKILL.md +158 -0
- package/content/small-business/skills/small-business-contract-review/reference/docusign-fetch.md +32 -0
- package/content/small-business/skills/small-business-contract-review/reference/examples/flagged-summary-saas.md +97 -0
- package/content/small-business/skills/small-business-contract-review/reference/gmail-fetch.md +30 -0
- package/content/small-business/skills/small-business-contract-review/reference/gotchas.md +105 -0
- package/content/small-business/skills/small-business-contract-review/reference/m365-fetch.md +60 -0
- package/content/small-business/skills/small-business-crm-autopilot/SKILL.md +162 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/cleanup-checklist.md +82 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/examples/cleanup-deal.md +83 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/examples/log-call-happy-path.md +68 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/examples/log-email-happy-path.md +50 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/gotchas.md +110 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/hubspot-fields.md +62 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/lightweight_crm.md +125 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/salesforce-fields.md +122 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/standing_mode.md +144 -0
- package/content/small-business/skills/small-business-grant-rfp-writer/SKILL.md +162 -0
- package/content/small-business/skills/small-business-grant-rfp-writer/reference/drafting.md +129 -0
- package/content/small-business/skills/small-business-grant-rfp-writer/reference/go_no_go.md +125 -0
- package/content/small-business/skills/small-business-grant-rfp-writer/reference/gotchas.md +180 -0
- package/content/small-business/skills/small-business-grant-rfp-writer/reference/opportunity_sources.md +90 -0
- package/content/small-business/skills/small-business-grant-rfp-writer/reference/org_profile.md +81 -0
- package/content/small-business/skills/small-business-grow-pipeline/SKILL.md +92 -0
- package/content/small-business/skills/small-business-growth-pulse/SKILL.md +143 -0
- package/content/small-business/skills/small-business-growth-pulse/reference/data_sources.md +113 -0
- package/content/small-business/skills/small-business-growth-pulse/reference/gotchas.md +175 -0
- package/content/small-business/skills/small-business-growth-pulse/reference/output_template.md +122 -0
- package/content/small-business/skills/small-business-growth-pulse/reference/thresholds.md +110 -0
- package/content/small-business/skills/small-business-hiring-screener/SKILL.md +137 -0
- package/content/small-business/skills/small-business-hiring-screener/reference/candidate_comms.md +132 -0
- package/content/small-business/skills/small-business-hiring-screener/reference/fair_screening.md +103 -0
- package/content/small-business/skills/small-business-hiring-screener/reference/gotchas.md +183 -0
- package/content/small-business/skills/small-business-hiring-screener/reference/onboarding.md +82 -0
- package/content/small-business/skills/small-business-hiring-screener/reference/rubric.md +122 -0
- package/content/small-business/skills/small-business-inbox-manager/SKILL.md +130 -0
- package/content/small-business/skills/small-business-inbox-manager/reference/digest_format.md +110 -0
- package/content/small-business/skills/small-business-inbox-manager/reference/gotchas.md +220 -0
- package/content/small-business/skills/small-business-inbox-manager/reference/handoffs.md +77 -0
- package/content/small-business/skills/small-business-inbox-manager/reference/reply_drafting.md +116 -0
- package/content/small-business/skills/small-business-inbox-manager/reference/triage_rules.md +72 -0
- package/content/small-business/skills/small-business-inventory-planner/SKILL.md +126 -0
- package/content/small-business/skills/small-business-inventory-planner/reference/data_sources.md +94 -0
- package/content/small-business/skills/small-business-inventory-planner/reference/gotchas.md +153 -0
- package/content/small-business/skills/small-business-inventory-planner/reference/po_drafting.md +92 -0
- package/content/small-business/skills/small-business-inventory-planner/reference/seasonality.md +112 -0
- package/content/small-business/skills/small-business-inventory-planner/reference/velocity_and_reorder.md +154 -0
- package/content/small-business/skills/small-business-invoice-chase/SKILL.md +131 -0
- package/content/small-business/skills/small-business-invoice-chase/reference/examples/firm-reminder.md +28 -0
- package/content/small-business/skills/small-business-invoice-chase/reference/examples/gentle-reminder.md +27 -0
- package/content/small-business/skills/small-business-invoice-chase/reference/gotchas.md +75 -0
- package/content/small-business/skills/small-business-invoice-chase/reference/tone-matching.md +44 -0
- package/content/small-business/skills/small-business-invoice-chase/reference/v2_sources.md +78 -0
- package/content/small-business/skills/small-business-job-post-builder/SKILL.md +204 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/docusign-routing.md +63 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/examples/worked-example.md +110 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/existing-document-merge.md +58 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/gotchas.md +68 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/interview-guide-structure.md +93 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/job-post-structure.md +62 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/offer-letter-template.md +145 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/role-intake.md +73 -0
- package/content/small-business/skills/small-business-lead-finder/SKILL.md +119 -0
- package/content/small-business/skills/small-business-lead-finder/reference/gotchas.md +152 -0
- package/content/small-business/skills/small-business-lead-finder/reference/icp_method.md +97 -0
- package/content/small-business/skills/small-business-lead-finder/reference/output_template.md +124 -0
- package/content/small-business/skills/small-business-lead-finder/reference/scoring.md +92 -0
- package/content/small-business/skills/small-business-lead-finder/reference/sourcing.md +78 -0
- package/content/small-business/skills/small-business-lead-triage/SKILL.md +81 -0
- package/content/small-business/skills/small-business-lead-triage/reference/examples/happy-path-triage.md +68 -0
- package/content/small-business/skills/small-business-lead-triage/reference/gotchas.md +76 -0
- package/content/small-business/skills/small-business-lead-triage/reference/hubspot-scoring.md +169 -0
- package/content/small-business/skills/small-business-marketing-monday/SKILL.md +108 -0
- package/content/small-business/skills/small-business-monday-brief/SKILL.md +97 -0
- package/content/small-business/skills/small-business-month-end-prep/SKILL.md +331 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/close-packet-format.md +127 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/examples/pl-narrative.md +52 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/gotchas.md +113 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/paypal-settlements.md +110 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/quickbooks-reconcile.md +71 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/v2_sources.md +125 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/xero-reconcile.md +175 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/zoho-books-reconcile.md +168 -0
- package/content/small-business/skills/small-business-outreach-composer/SKILL.md +144 -0
- package/content/small-business/skills/small-business-outreach-composer/reference/gotchas.md +213 -0
- package/content/small-business/skills/small-business-outreach-composer/reference/output_template.md +147 -0
- package/content/small-business/skills/small-business-outreach-composer/reference/sequence_patterns.md +99 -0
- package/content/small-business/skills/small-business-outreach-composer/reference/slop_test.md +164 -0
- package/content/small-business/skills/small-business-pay-the-bills/SKILL.md +101 -0
- package/content/small-business/skills/small-business-payroll-prep/SKILL.md +139 -0
- package/content/small-business/skills/small-business-payroll-prep/reference/anomaly_rules.md +99 -0
- package/content/small-business/skills/small-business-payroll-prep/reference/books_sync.md +72 -0
- package/content/small-business/skills/small-business-payroll-prep/reference/gotchas.md +153 -0
- package/content/small-business/skills/small-business-payroll-prep/reference/run_sheet_format.md +90 -0
- package/content/small-business/skills/small-business-payroll-prep/reference/timesheet_intake.md +118 -0
- package/content/small-business/skills/small-business-plan-payroll/SKILL.md +88 -0
- package/content/small-business/skills/small-business-proposal-builder/SKILL.md +168 -0
- package/content/small-business/skills/small-business-proposal-builder/reference/discovery_extraction.md +138 -0
- package/content/small-business/skills/small-business-proposal-builder/reference/gotchas.md +184 -0
- package/content/small-business/skills/small-business-proposal-builder/reference/output_template.md +128 -0
- package/content/small-business/skills/small-business-proposal-builder/reference/pricing_method.md +125 -0
- package/content/small-business/skills/small-business-proposal-builder/reference/proposal_structure.md +120 -0
- package/content/small-business/skills/small-business-reactivate/SKILL.md +109 -0
- package/content/small-business/skills/small-business-report-builder/SKILL.md +142 -0
- package/content/small-business/skills/small-business-report-builder/reference/data_sources.md +168 -0
- package/content/small-business/skills/small-business-report-builder/reference/gotchas.md +155 -0
- package/content/small-business/skills/small-business-report-builder/reference/output_template.md +109 -0
- package/content/small-business/skills/small-business-report-builder/reference/report_spec.md +109 -0
- package/content/small-business/skills/small-business-report-builder/reference/saved_reports.md +50 -0
- package/content/small-business/skills/small-business-report-pack/SKILL.md +83 -0
- package/content/small-business/skills/small-business-restock/SKILL.md +88 -0
- package/content/small-business/skills/small-business-review-reputation/SKILL.md +130 -0
- package/content/small-business/skills/small-business-review-reputation/reference/churn-signals.md +110 -0
- package/content/small-business/skills/small-business-review-reputation/reference/examples/example-report.md +150 -0
- package/content/small-business/skills/small-business-review-reputation/reference/gotchas.md +164 -0
- package/content/small-business/skills/small-business-review-reputation/reference/response-patterns.md +123 -0
- package/content/small-business/skills/small-business-review-reputation/reference/sources.md +116 -0
- package/content/small-business/skills/small-business-seo-ai-visibility/SKILL.md +143 -0
- package/content/small-business/skills/small-business-seo-ai-visibility/reference/ai_visibility.md +173 -0
- package/content/small-business/skills/small-business-seo-ai-visibility/reference/audit_checklist.md +134 -0
- package/content/small-business/skills/small-business-seo-ai-visibility/reference/catalog_refresh.md +126 -0
- package/content/small-business/skills/small-business-seo-ai-visibility/reference/content_rewrite.md +113 -0
- package/content/small-business/skills/small-business-seo-ai-visibility/reference/gotchas.md +211 -0
- package/content/small-business/skills/small-business-smb-onboard/SKILL.md +82 -0
- package/content/small-business/skills/small-business-smb-onboard/reference/examples/happy-path.md +190 -0
- package/content/small-business/skills/small-business-smb-onboard/reference/gotchas.md +111 -0
- package/content/small-business/skills/small-business-smb-onboard/reference/onboard-checklist.md +99 -0
- package/content/small-business/skills/small-business-smb-onboard/reference/website-research.md +82 -0
- package/content/small-business/skills/small-business-smb-router/SKILL.md +216 -0
- package/content/small-business/skills/small-business-smb-router/reference/connector-map.md +96 -0
- package/content/small-business/skills/small-business-social-content-engine/SKILL.md +162 -0
- package/content/small-business/skills/small-business-social-content-engine/reference/calendar.md +116 -0
- package/content/small-business/skills/small-business-social-content-engine/reference/canva-api.md +208 -0
- package/content/small-business/skills/small-business-social-content-engine/reference/examples/okonkwo-campaign.md +190 -0
- package/content/small-business/skills/small-business-social-content-engine/reference/gotchas.md +447 -0
- package/content/small-business/skills/small-business-social-content-engine/reference/publishing.md +166 -0
- package/content/small-business/skills/small-business-social-content-engine/reference/shopify-assets.md +77 -0
- package/content/small-business/skills/small-business-speed-to-lead/SKILL.md +172 -0
- package/content/small-business/skills/small-business-speed-to-lead/reference/approval.md +61 -0
- package/content/small-business/skills/small-business-speed-to-lead/reference/gotchas.md +167 -0
- package/content/small-business/skills/small-business-speed-to-lead/reference/qualification.md +153 -0
- package/content/small-business/skills/small-business-speed-to-lead/reference/response_patterns.md +184 -0
- package/content/small-business/skills/small-business-tax-prep/SKILL.md +85 -0
- package/content/small-business/skills/small-business-tax-season-organizer/SKILL.md +210 -0
- package/content/small-business/skills/small-business-tax-season-organizer/reference/calculation-assumptions.md +177 -0
- package/content/small-business/skills/small-business-tax-season-organizer/reference/connector-queries.md +267 -0
- package/content/small-business/skills/small-business-tax-season-organizer/reference/examples/quarterly-estimate.md +92 -0
- package/content/small-business/skills/small-business-tax-season-organizer/reference/examples/year-end-1099.md +102 -0
- package/content/small-business/skills/small-business-tax-season-organizer/reference/gotchas.md +104 -0
- package/content/small-business/skills/small-business-tax-season-organizer/reference/output-formats.md +68 -0
- package/content/small-business/skills/small-business-ticket-deflector/SKILL.md +164 -0
- package/content/small-business/skills/small-business-ticket-deflector/reference/examples/deny-refund-request.md +98 -0
- package/content/small-business/skills/small-business-ticket-deflector/reference/examples/respond-refund-request.md +77 -0
- package/content/small-business/skills/small-business-ticket-deflector/reference/gotchas.md +57 -0
- package/index.ts +83 -0
- package/package.json +28 -3
package/content/small-business/skills/small-business-month-end-prep/reference/paypal-settlements.md
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Payment Processor Settlements Reference
|
|
2
|
+
|
|
3
|
+
## Contents
|
|
4
|
+
|
|
5
|
+
- [PayPal](#paypal)
|
|
6
|
+
- [Square](#square)
|
|
7
|
+
- [Stripe](#stripe)
|
|
8
|
+
- [Reconciliation logic (all processors)](#reconciliation-logic-all-processors)
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## PayPal
|
|
13
|
+
|
|
14
|
+
### Settlement report structure
|
|
15
|
+
|
|
16
|
+
The PayPal connector returns a **Transaction History** or **Settlement** report.
|
|
17
|
+
Key fields:
|
|
18
|
+
|
|
19
|
+
| Field | Notes |
|
|
20
|
+
|---|---|
|
|
21
|
+
| `transaction_info.transaction_id` | PayPal transaction ID |
|
|
22
|
+
| `transaction_info.transaction_initiation_date` | When the transaction occurred |
|
|
23
|
+
| `transaction_info.transaction_amount.value` | Gross amount (positive = money in) |
|
|
24
|
+
| `transaction_info.fee_amount.value` | PayPal fee (negative) |
|
|
25
|
+
| `transaction_info.transaction_status` | Use only `S` (Success) and `P` (Pending) |
|
|
26
|
+
| `payer_info.email_address` | Customer email — useful for matching |
|
|
27
|
+
|
|
28
|
+
**Deposit date vs. transaction date:** PayPal batches payouts. A sale on April 28
|
|
29
|
+
may not deposit until May 2. Match by **deposit date** when reconciling against QB
|
|
30
|
+
bank entries, not transaction date.
|
|
31
|
+
|
|
32
|
+
**Refunds:** Appear as negative amounts with `transaction_type` = `T1107` or
|
|
33
|
+
`T1114`. They should offset the original sale — don't flag a refund as a
|
|
34
|
+
discrepancy against the QB register unless there's no corresponding QB credit.
|
|
35
|
+
|
|
36
|
+
**Holds:** Transactions in status `F` (Funds on Hold) have not been deposited yet.
|
|
37
|
+
Note them separately — they'll appear in next month's settlement.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Square
|
|
42
|
+
|
|
43
|
+
### Settlement report structure
|
|
44
|
+
|
|
45
|
+
Square calls these **Payouts**. Each payout covers 1–2 business days of sales.
|
|
46
|
+
|
|
47
|
+
Key fields from the Square Payouts API:
|
|
48
|
+
|
|
49
|
+
| Field | Notes |
|
|
50
|
+
|---|---|
|
|
51
|
+
| `id` | Payout ID |
|
|
52
|
+
| `arrived_at` | Date the funds landed in the bank account |
|
|
53
|
+
| `amount_money.amount` | Net payout in cents (already minus Square fees) |
|
|
54
|
+
| `status` | Use only `PAID` status for reconciliation |
|
|
55
|
+
|
|
56
|
+
**Fees:** Square deducts fees before the payout — so `amount_money.amount` is net.
|
|
57
|
+
When matching against QB, compare to the net bank deposit, not the gross sale total.
|
|
58
|
+
|
|
59
|
+
**Same-day payouts:** If the user has Square Instant Transfer, funds may arrive on
|
|
60
|
+
the transaction date. The default is next business day.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Stripe
|
|
65
|
+
|
|
66
|
+
### Settlement report structure
|
|
67
|
+
|
|
68
|
+
Stripe calls these **Payouts**. The Stripe connector returns payout objects plus
|
|
69
|
+
the balance transactions within each payout.
|
|
70
|
+
|
|
71
|
+
Key fields:
|
|
72
|
+
|
|
73
|
+
| Field | Notes |
|
|
74
|
+
|---|---|
|
|
75
|
+
| `id` | Payout ID |
|
|
76
|
+
| `arrival_date` | Unix timestamp of bank arrival date |
|
|
77
|
+
| `amount` | Net payout in cents (fees already deducted) |
|
|
78
|
+
| `status` | Use only `paid` for reconciliation |
|
|
79
|
+
|
|
80
|
+
**Stripe fees:** Like Square, fees are deducted before payout. Compare net amounts.
|
|
81
|
+
|
|
82
|
+
**Stripe Connect / platform accounts:** If the user runs a platform on Stripe
|
|
83
|
+
Connect, individual transfer payouts may look unusual. Ask the user to confirm
|
|
84
|
+
their Stripe account type if payout patterns don't match expectations.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Reconciliation logic (all processors)
|
|
89
|
+
|
|
90
|
+
Use this logic to match processor deposits against QuickBooks bank deposits:
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
for each processor deposit in target month:
|
|
94
|
+
find QB deposit where:
|
|
95
|
+
abs(QB.amount - processor.net_amount) < USD 0.50
|
|
96
|
+
AND abs(QB.date - processor.arrival_date) <= 2 days
|
|
97
|
+
|
|
98
|
+
if match found:
|
|
99
|
+
mark as RECONCILED
|
|
100
|
+
elif abs(QB.amount - processor.net_amount) < USD 0.50 (date mismatch only):
|
|
101
|
+
flag as DATE_MISMATCH (usually a timing difference — low priority)
|
|
102
|
+
elif processor deposit not matched at all:
|
|
103
|
+
flag as MISSING_IN_QB
|
|
104
|
+
elif QB deposit not matched to any processor record:
|
|
105
|
+
flag as UNMATCHED_DEPOSIT (may be ACH, check, or other income)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Multi-processor businesses:** Run this logic independently per processor, then
|
|
109
|
+
aggregate flags. A QB deposit that doesn't match PayPal may legitimately be a
|
|
110
|
+
Square payout — don't flag it until you've checked all connected processors.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# QuickBooks — Reconciliation Reference
|
|
2
|
+
|
|
3
|
+
## Reports to pull
|
|
4
|
+
|
|
5
|
+
### Profit & Loss (P&L)
|
|
6
|
+
|
|
7
|
+
Use the **Profit and Loss** report via the QuickBooks connector:
|
|
8
|
+
- Date range: first day to last day of target month
|
|
9
|
+
- Accounting method: **Accrual** unless the user has told you they run cash-basis
|
|
10
|
+
- Include all accounts
|
|
11
|
+
|
|
12
|
+
Key fields used downstream:
|
|
13
|
+
| Field | Notes |
|
|
14
|
+
|---|---|
|
|
15
|
+
| `TotalRevenue` | Top-line revenue |
|
|
16
|
+
| `GrossProfit` | Revenue minus COGS |
|
|
17
|
+
| `GrossProfitMargin` | Compute as GrossProfit / TotalRevenue |
|
|
18
|
+
| `NetIncome` | Bottom line |
|
|
19
|
+
| `TotalExpenses` | Operating expenses subtotal |
|
|
20
|
+
|
|
21
|
+
### Transaction Register
|
|
22
|
+
|
|
23
|
+
Pull the **Transaction List by Date** report or equivalent for the target month.
|
|
24
|
+
This is the line-item detail used for uncategorized flagging and duplicate detection.
|
|
25
|
+
|
|
26
|
+
Key fields:
|
|
27
|
+
| Field | Notes |
|
|
28
|
+
|---|---|
|
|
29
|
+
| `TxnDate` | Transaction date (not posting date) |
|
|
30
|
+
| `TxnType` | Invoice, Payment, Expense, Deposit, etc. |
|
|
31
|
+
| `Amount` | Positive = income, negative = expense in most QB exports |
|
|
32
|
+
| `AccountRef.name` | The GL account category |
|
|
33
|
+
| `EntityRef.name` | Vendor or customer name |
|
|
34
|
+
| `Memo` | Free-text description |
|
|
35
|
+
| `AttachmentCount` | > 0 means a receipt is attached in QB |
|
|
36
|
+
|
|
37
|
+
## Identifying uncategorized transactions
|
|
38
|
+
|
|
39
|
+
Flag a transaction as uncategorized if `AccountRef.name` is any of:
|
|
40
|
+
- "Uncategorized Income"
|
|
41
|
+
- "Uncategorized Expense"
|
|
42
|
+
- "Uncategorized Asset"
|
|
43
|
+
- blank / null
|
|
44
|
+
- "Ask My Accountant" (QB's built-in "I don't know" category)
|
|
45
|
+
|
|
46
|
+
## Pagination
|
|
47
|
+
|
|
48
|
+
The QB API returns a maximum of 1,000 rows per request. For businesses with high
|
|
49
|
+
transaction volumes, paginate using `startPosition` and `maxResults` parameters.
|
|
50
|
+
Request in 500-row batches to stay safely under the limit.
|
|
51
|
+
|
|
52
|
+
## Common data issues
|
|
53
|
+
|
|
54
|
+
**Split transactions** — a single purchase split across multiple categories appears as
|
|
55
|
+
multiple rows with the same date and vendor but different amounts. These are NOT
|
|
56
|
+
duplicates. Before flagging duplicates, group rows by `TxnID` — rows sharing an ID
|
|
57
|
+
are splits of one transaction.
|
|
58
|
+
|
|
59
|
+
**Bank feeds vs. manual entries** — bank-feed transactions have `PrivateNote` set to
|
|
60
|
+
"bank feed" or similar. Manual entries often lack a memo. Neither is a signal of a
|
|
61
|
+
problem on its own, but it helps explain why a transaction might lack a receipt.
|
|
62
|
+
|
|
63
|
+
**PayPal transactions already in QB** — if the user has the PayPal-QB auto-sync
|
|
64
|
+
enabled, PayPal transactions will already appear in the register. Don't double-count
|
|
65
|
+
them during reconciliation (Step 3). Check whether the QB deposit lines have
|
|
66
|
+
"PayPal" in the account or memo before matching.
|
|
67
|
+
|
|
68
|
+
**Retainer / deposit transactions** — a customer deposit is not revenue until the
|
|
69
|
+
work is delivered. If the user is on cash-basis accounting this distinction matters
|
|
70
|
+
less, but flag any large Deposit-type transactions without a matching Invoice for
|
|
71
|
+
their awareness.
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# More sources
|
|
2
|
+
|
|
3
|
+
More systems reconciled. Same close sequence, same packet.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Ledger — whichever is connected
|
|
8
|
+
|
|
9
|
+
Ledgers are peers (`../../../shared/connector-neutrality.md`). Whichever is connected runs the close.
|
|
10
|
+
|
|
11
|
+
| Source | What it supplies |
|
|
12
|
+
|---|---|
|
|
13
|
+
| MYOB | P&L, AR and AP balances, sales totals. No bank balances: the bank side comes from a statement upload |
|
|
14
|
+
| NetSuite | P&L and register via reports and SuiteQL. Common at the larger end of the segment |
|
|
15
|
+
| QuickBooks | P&L and transaction list; mapped in [quickbooks-reconcile.md](quickbooks-reconcile.md) |
|
|
16
|
+
| Xero | P&L, bills, invoices, bank-transaction queue; mapped in [xero-reconcile.md](xero-reconcile.md) |
|
|
17
|
+
| Zoho Books | Invoices, expenses, purchase orders, customer payments, bank and cash balances with an uncategorised count per account. No bill object, no bank-transaction feed, no report endpoints: the P&L and the bank statement come as exports; mapped in [zoho-books-reconcile.md](zoho-books-reconcile.md) |
|
|
18
|
+
|
|
19
|
+
**Two ledgers connected: read both, total from one.** Ask which holds the books being closed and name it in the packet as the source of record. Read the other for anything it uniquely holds (a bank feed the first one lacks, a bill register), but every total, and the reconciliation itself, runs against the named ledger. Never reconcile against both, and never sum a figure across two — that double-counts.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Shopify settlement reconciliation
|
|
24
|
+
|
|
25
|
+
A first-class leg, and a common source of unexplained gaps.
|
|
26
|
+
|
|
27
|
+
The trap: an order, its payout, and its fees all land on different dates and in different amounts. Reconciling gross order value against a net payout will never tie, and the difference is not an error.
|
|
28
|
+
|
|
29
|
+
Pull three things separately:
|
|
30
|
+
|
|
31
|
+
- **Orders** — gross, by date
|
|
32
|
+
- **Payouts** — net, by settlement date
|
|
33
|
+
- **Fees and refunds** — the difference between the two
|
|
34
|
+
|
|
35
|
+
Then reconcile payout to bank, and orders to revenue. Those are two different reconciliations and conflating them produces a phantom discrepancy every month.
|
|
36
|
+
|
|
37
|
+
If the payout read fails (the connector's scopes exclude Shopify Payments), the orders-to-revenue leg still runs; the payout-to-bank leg takes the payout report the owner exports from Shopify, or is listed as not reconciled this month. Say which.
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
Shopify: USD 38,400 in orders, USD 36,910 paid out, USD 1,490 in fees and refunds.
|
|
41
|
+
Payouts tie to the bank. Fees are coded to merchant fees.
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Ramp and Expensify
|
|
47
|
+
|
|
48
|
+
Card spend and expense detail. These close the gap between what was actually spent and what has been coded.
|
|
49
|
+
|
|
50
|
+
Pull outstanding transactions and unsubmitted expenses, and flag anything uncoded as an open item in the close packet rather than letting it disappear:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
Open items:
|
|
54
|
+
USD 4,180 in Ramp card spend, 23 transactions, not yet coded
|
|
55
|
+
USD 610 in Expensify reports submitted but not approved
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
An owner who closes the month without seeing those closes on a number that is wrong.
|
|
59
|
+
|
|
60
|
+
Two things to hold on to while pulling them:
|
|
61
|
+
|
|
62
|
+
- **Expensify is read-only search.** It reports expenses, reports, receipts, and approval states; it changes nothing. The has-receipt filter is what surfaces the substantiation gap — "USD 2,140 across 17 expenses with no receipt attached" is a close-packet line an accountant will actually use.
|
|
63
|
+
- **Ramp can write, and the close is not where it writes.** Approving a bill or marking it ready to sync belongs to `ap-processor` behind its own payment gate. Here, Ramp is read only: card spend, bill status, and account balances. Reimbursements overlap Expensify — count them once.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Payroll — whichever is connected
|
|
68
|
+
|
|
69
|
+
Gusto and QuickBooks Payroll are peers. Step 5a reads the month's totals from
|
|
70
|
+
whichever is connected and checks them against the ledger's payroll expense.
|
|
71
|
+
|
|
72
|
+
**Gusto.** Two reads:
|
|
73
|
+
|
|
74
|
+
| Read | Parameters | Fields used |
|
|
75
|
+
|---|---|---|
|
|
76
|
+
| `list_payrolls` | `include=totals`; filter on `check_date` within the month (the list may also carry `pay_period.start_date` / `end_date`) | `totals.gross_pay`, `totals.employer_taxes`, `totals.employee_taxes`, `totals.net_pay`, `check_date` |
|
|
77
|
+
| `list_contractor_payments` | `start_date`, `end_date` = first and last day of the month; `group_by_date=true` | `total.wages`, `total.reimbursements` |
|
|
78
|
+
|
|
79
|
+
Keep only processed payrolls; an unprocessed run in the list is a plan, not a
|
|
80
|
+
payment, and belongs to `payroll-prep`. Contractor payments cover US
|
|
81
|
+
contractors only — say so in the footnote when the row is non-zero, and say it
|
|
82
|
+
is absent when the business pays international contractors.
|
|
83
|
+
|
|
84
|
+
**QuickBooks Payroll.** `qbo_payroll_get_company_last_payroll_run` returns the
|
|
85
|
+
most recent run with its totals; runs earlier in the month are in the payroll
|
|
86
|
+
summary export. Confirm the field names before the first close.
|
|
87
|
+
|
|
88
|
+
**The cross-check.** Net pay + employer taxes + contractor wages, compared to
|
|
89
|
+
the ledger's payroll expense lines for the month:
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
Payroll (Gusto): 2 runs, GBP 18,420 gross, GBP 1,660 employer taxes,
|
|
93
|
+
GBP 14,210 net. Contractors: GBP 2,400.
|
|
94
|
+
Ledger payroll expense: GBP 18,270. Delta GBP 150 — the 28 Mar run posted to April.
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**What never enters the packet:** employee names, rates, hours, deductions,
|
|
98
|
+
home addresses, or any per-person amount. The connector returns them; the
|
|
99
|
+
close does not need them and does not reproduce them.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## What doesn't change
|
|
104
|
+
|
|
105
|
+
- The reconcile sequence, the P&L narrative, and the close packet format
|
|
106
|
+
- Duplicate detection and split-transaction handling
|
|
107
|
+
- The CSV and statement-upload path, which still produces a full close
|
|
108
|
+
- Never invent a number. An unavailable source is named as unavailable, and the packet says so
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Naming the sources in the packet
|
|
113
|
+
|
|
114
|
+
The close packet gets forwarded to accountants and lenders. It has to say what it was built from and what wasn't available:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
Reconciled: Xero (ledger: bills, invoices, and bank transactions), Shopify
|
|
118
|
+
(settlements), PayPal, Ramp (cards).
|
|
119
|
+
Not available: Stripe — auth expired Jul 24. Stripe activity is not included
|
|
120
|
+
in this close.
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Name the ledger and, where its register was assembled from parts, say which parts.
|
|
124
|
+
|
|
125
|
+
The second line protects the owner. A close packet that silently omits a processor is worse than one that says it did.
|
package/content/small-business/skills/small-business-month-end-prep/reference/xero-reconcile.md
ADDED
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# Xero — Reconciliation Reference
|
|
2
|
+
|
|
3
|
+
Sibling of [quickbooks-reconcile.md](quickbooks-reconcile.md). Same close
|
|
4
|
+
sequence, same packet; the reads and the "needs attention" signal differ
|
|
5
|
+
because Xero's data model does.
|
|
6
|
+
|
|
7
|
+
**Tool names below come from the Xero connector's published surface.
|
|
8
|
+
Confirm each against the connected server before the first live close.**
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Reports to pull
|
|
13
|
+
|
|
14
|
+
### Profit & Loss
|
|
15
|
+
|
|
16
|
+
`get_profit_and_loss` for the target month, first to last day. Accrual basis
|
|
17
|
+
unless the owner runs cash. Same downstream fields as the QuickBooks path:
|
|
18
|
+
total revenue, gross profit, net income, total operating expenses.
|
|
19
|
+
|
|
20
|
+
### The register — what "every line item" means in Xero
|
|
21
|
+
|
|
22
|
+
Xero has no single monthly transaction-register read. The register for the
|
|
23
|
+
close is three things, pulled separately:
|
|
24
|
+
|
|
25
|
+
| Part | Tool | What it holds |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| Bills | `get_bills` with `include_line_items=true` | Supplier invoices, paid and unpaid |
|
|
28
|
+
| Invoices | `get_invoices` with `include_line_items=true` | Customer invoices, paid and unpaid |
|
|
29
|
+
| Bank queue | `get_bank_account_transactions` | Bank-feed lines, reconciled and unreconciled |
|
|
30
|
+
|
|
31
|
+
`get_bank_account_transactions` is not the monthly register on its own; its
|
|
32
|
+
own description says not to treat it that way. Bills and invoices carry the
|
|
33
|
+
coded detail; the bank queue carries what has and has not been matched.
|
|
34
|
+
|
|
35
|
+
**State the scope in the packet.** The "Reconciled" line reads: *"Xero
|
|
36
|
+
(ledger: bills, invoices, and bank transactions for the month)."* An
|
|
37
|
+
accountant reading the packet needs to know the register was assembled from
|
|
38
|
+
documents plus bank lines, not exported as one report.
|
|
39
|
+
|
|
40
|
+
Key fields:
|
|
41
|
+
|
|
42
|
+
| Field | Notes |
|
|
43
|
+
|---|---|
|
|
44
|
+
| `date` | Document or bank line date |
|
|
45
|
+
| `status` | `AUTHORISED` (approved, unpaid), `PAID`, `DRAFT`, `VOIDED`. Drafts are excluded from the close |
|
|
46
|
+
| `contact.name` | Supplier or customer |
|
|
47
|
+
| `total` | Document total; compare to bank line amount when matching |
|
|
48
|
+
| `account_code` | GL account on each line item |
|
|
49
|
+
| `line_item_cardinality` | Number of lines on the document. Above 1 means a split |
|
|
50
|
+
| `has_attachments` | Present only when `include_line_items=true` |
|
|
51
|
+
| `is_reconciled` (bank line) | Whether the bank-feed line has been matched to a document |
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## The "needs attention" signal: unreconciled bank lines, not uncategorized
|
|
56
|
+
|
|
57
|
+
Xero requires an account code when a bank line is reconciled, so the
|
|
58
|
+
QuickBooks categories ("Uncategorized Expense," "Ask My Accountant") do not
|
|
59
|
+
arise. The equivalent signal is **bank lines still unreconciled at month end**:
|
|
60
|
+
money that moved but has not been matched to a bill, invoice, or spend/receive
|
|
61
|
+
transaction.
|
|
62
|
+
|
|
63
|
+
Step 2 for a Xero ledger reports:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Unreconciled bank lines: 14 lines, AUD 6,240 across 2 accounts
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
and lists them for the owner to reconcile in Xero before the close advances.
|
|
70
|
+
The Step 6 summary block's "Needs attention" row carries this count.
|
|
71
|
+
|
|
72
|
+
Do not present an unreconciled line as an error. It is work not yet done,
|
|
73
|
+
and the owner may have a reason (a payout not yet split, a supplier bill not
|
|
74
|
+
yet entered). Name it, count it, and let them decide.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Duplicate detection: scan documents, not bank lines
|
|
79
|
+
|
|
80
|
+
A bill entered twice in Xero sits as two `AUTHORISED` documents and produces
|
|
81
|
+
**no bank line until one of them is paid**. A bank-side duplicate scan cannot
|
|
82
|
+
see it. For a Xero ledger, Step 4 scans bills and invoices:
|
|
83
|
+
|
|
84
|
+
Flag a pair as a suspected duplicate when all four hold:
|
|
85
|
+
|
|
86
|
+
- Same `contact.name`
|
|
87
|
+
- Same `total` (within 0.01 in the business currency)
|
|
88
|
+
- Dated within 5 calendar days of each other
|
|
89
|
+
- Both unpaid (`AUTHORISED`), or one unpaid and one paid within the window
|
|
90
|
+
|
|
91
|
+
Present pairs to the owner exactly as the QuickBooks path does. Recurring
|
|
92
|
+
weekly bills from the same supplier are the usual false positive.
|
|
93
|
+
|
|
94
|
+
**Splits are one document.** A bill with several line items is one document
|
|
95
|
+
with `line_item_cardinality` above 1. The QuickBooks rule "group by `TxnID`
|
|
96
|
+
before comparing" maps to "compare documents, never lines" here. Two lines on
|
|
97
|
+
one bill are never a duplicate pair.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Receipts: check the document first, then the folder
|
|
102
|
+
|
|
103
|
+
Xero stores attachments on the bill or invoice. Before scanning a receipts
|
|
104
|
+
folder (Step 5), read `has_attachments` on each expense document above the
|
|
105
|
+
attention threshold. It is returned only when `include_line_items=true` is
|
|
106
|
+
passed to `get_bills` and `get_invoices`; without that parameter the field is
|
|
107
|
+
absent and every document looks receipt-less.
|
|
108
|
+
|
|
109
|
+
- `has_attachments = true` → "receipt on file (Xero)"
|
|
110
|
+
- `false` → fall back to the folder scan, then to asking the owner
|
|
111
|
+
|
|
112
|
+
Payments made straight from the bank feed with no bill behind them (a
|
|
113
|
+
spend-money transaction) have no document to attach to. Treat those like a
|
|
114
|
+
QuickBooks expense with no attachment.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Processor settlements: the payout is already a ledger line
|
|
119
|
+
|
|
120
|
+
Xero customers commonly receive Square, Stripe, and PayPal payouts through a
|
|
121
|
+
bank feed. The payout is therefore already in the ledger as a bank line, and
|
|
122
|
+
the reconciliation question is whether that line has been matched, not
|
|
123
|
+
whether a ledger line exists.
|
|
124
|
+
|
|
125
|
+
Step 3 for a Xero ledger:
|
|
126
|
+
|
|
127
|
+
1. Among the unreconciled bank transactions, find lines whose payee or
|
|
128
|
+
reference names a processor (Square, Stripe, PayPal, Shopify Payments).
|
|
129
|
+
2. List them per processor as the action items: *"Stripe: 4 payouts,
|
|
130
|
+
AUD 3,180, unreconciled."*
|
|
131
|
+
3. Match reconciled processor lines to the processor's settlement report
|
|
132
|
+
net-to-net as usual, for fee verification. Keep the settlement CSV path
|
|
133
|
+
for a processor with no bank feed or when the owner wants fees checked.
|
|
134
|
+
|
|
135
|
+
A processor payout with no bank line at all (feed not set up, or a manual
|
|
136
|
+
bank) falls back to the CSV match in
|
|
137
|
+
[paypal-settlements.md](paypal-settlements.md).
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Country, currency, and financial year
|
|
142
|
+
|
|
143
|
+
`get_organisation_info` returns the organisation's base currency and country;
|
|
144
|
+
`get_organisation_financial_year` returns the year end. Read them once at
|
|
145
|
+
the start of the close if the business context does not already carry them,
|
|
146
|
+
and use them for:
|
|
147
|
+
|
|
148
|
+
- Every amount in the packet (`AUD 12,400`, never `$`)
|
|
149
|
+
- The 0.50 / 0.01 / 25 thresholds, which are in the base currency
|
|
150
|
+
- Whether Step 9 offers `/tax-prep` at all (US only)
|
|
151
|
+
|
|
152
|
+
The rule is `../../../shared/currency-and-locale.md`.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Graceful degradation — Xero not connected or not authorised
|
|
157
|
+
|
|
158
|
+
Take this path only when no Xero entry works. An unauthorized `small-business:xero`
|
|
159
|
+
beside the owner's own live Xero is connected — call the owner's entry instead
|
|
160
|
+
(`../../../shared/connector-neutrality.md`, "One connector, two registrations").
|
|
161
|
+
|
|
162
|
+
Ask for **two exports** from Xero: the **Profit and Loss** report for the
|
|
163
|
+
month, and the **Account Transactions** report with all accounts selected for
|
|
164
|
+
the same period. One does not contain the other. The Account Transactions
|
|
165
|
+
report is the register; unreconciled lines do not appear in it, so ask the
|
|
166
|
+
owner for the unreconciled count from the bank reconciliation screen as a
|
|
167
|
+
third item, or say in the packet that it was not available.
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Pagination and limits
|
|
172
|
+
|
|
173
|
+
Each read returns a page. Request the month in one call per bank account and
|
|
174
|
+
one per document type, and page until the response says there is no more.
|
|
175
|
+
Do not stop at the first page and call the register complete.
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# Zoho Books — Reconciliation Reference
|
|
2
|
+
|
|
3
|
+
Sibling of [quickbooks-reconcile.md](quickbooks-reconcile.md) and
|
|
4
|
+
[xero-reconcile.md](xero-reconcile.md). Same close sequence, same packet;
|
|
5
|
+
the reads and the "needs attention" signal differ because the connector's
|
|
6
|
+
surface does.
|
|
7
|
+
|
|
8
|
+
Every call takes `organization_id`; get it once from
|
|
9
|
+
`list_organizations` (or `get_organization`, which also returns the locale
|
|
10
|
+
fields) and reuse it.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## What the connector holds, and what it does not
|
|
15
|
+
|
|
16
|
+
| Holds | Does not hold |
|
|
17
|
+
|---|---|
|
|
18
|
+
| Invoices, estimates, sales orders, customer payments | Bills, vendor payments |
|
|
19
|
+
| Expenses, purchase orders | Bank transactions or a bank feed |
|
|
20
|
+
| Bank and cash accounts with balances and an uncategorised count | Journals |
|
|
21
|
+
| Contacts (customers and vendors, with a 1099 flag) | Any report: P&L, cash flow, aging |
|
|
22
|
+
| Chart of accounts with balances (`list_chart_of_accounts` with `showbalance`) | |
|
|
23
|
+
| Organisation record: country, currency, fiscal year start | |
|
|
24
|
+
|
|
25
|
+
State this in the packet: an accountant needs to know which parts came from
|
|
26
|
+
the connector and which from an export.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Reports to pull
|
|
31
|
+
|
|
32
|
+
### Profit & Loss — from an export
|
|
33
|
+
|
|
34
|
+
There is no P&L endpoint. Ask for the **Profit and Loss** export (Reports →
|
|
35
|
+
Profit and Loss → Export, target month) before Step 2 runs, even when the
|
|
36
|
+
connector is connected. Say why in one line: *"Zoho Books doesn't expose
|
|
37
|
+
reports through the connector, so I need the P&L export; everything else I
|
|
38
|
+
can read directly."*
|
|
39
|
+
|
|
40
|
+
A stand-in when the owner cannot export: invoiced revenue from
|
|
41
|
+
`list_invoices` (`date_start`/`date_end`, `response_option=3` for the summed
|
|
42
|
+
`total`) minus recorded expenses from `list_expenses` for the same range.
|
|
43
|
+
Label it *"invoiced minus recorded, not a P&L"* everywhere it appears.
|
|
44
|
+
|
|
45
|
+
### The register — three document lists
|
|
46
|
+
|
|
47
|
+
| Part | Tool | What it holds |
|
|
48
|
+
|---|---|---|
|
|
49
|
+
| Invoices | `list_invoices` with `date_start` / `date_end`, `per_page` up to 200 | Customer invoices, all statuses; `status` filter for `paid`, `unpaid`, `overdue`, `draft`, `void` |
|
|
50
|
+
| Expenses | `list_expenses` with `date_start` / `date_end` | Money spent, coded to an `account_name`, with `vendor_name` and `status` |
|
|
51
|
+
| Purchase orders | `list_purchase_orders` for the month | Open commitments to vendors |
|
|
52
|
+
|
|
53
|
+
Exclude `draft` and `void` documents from the close. Page until
|
|
54
|
+
`page_context.has_more_page` is false; a single page is not the month.
|
|
55
|
+
|
|
56
|
+
Key fields:
|
|
57
|
+
|
|
58
|
+
| Field | Notes |
|
|
59
|
+
|---|---|
|
|
60
|
+
| `date`, `due_date` | Document dates |
|
|
61
|
+
| `status`, `current_sub_status` | `overdue` carries `due_days` as text ("Overdue by 323 days") |
|
|
62
|
+
| `customer_name` / `vendor_name` | Counterparty |
|
|
63
|
+
| `total`, `balance` | Document total and what is still unpaid |
|
|
64
|
+
| `has_attachment` | Receipt or document attached |
|
|
65
|
+
| `reminders_sent`, `last_reminder_sent_date` | Invoice chase history |
|
|
66
|
+
| `currency_code`, `exchange_rate` | Per document; `bcy_*` fields are base currency |
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## The "needs attention" signal: uncategorised transactions per account
|
|
71
|
+
|
|
72
|
+
`list_bank_accounts` (`filter_by=Status.Active`) returns each bank and cash
|
|
73
|
+
account with `current_balance`, `bank_balance`, and
|
|
74
|
+
`uncategorized_transactions`. That count is the attention signal — bank-feed
|
|
75
|
+
lines the owner has not yet coded.
|
|
76
|
+
|
|
77
|
+
Step 2 for a Zoho Books ledger reports:
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
Uncategorised bank transactions: 9 across 2 accounts (Operating 7, Savings 2)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
The lines themselves cannot be listed through the connector. Tell the owner
|
|
84
|
+
the count and the account, and that they are categorised in Zoho Books
|
|
85
|
+
(Banking → account → Uncategorized) before the close advances. The Step 6
|
|
86
|
+
summary block's "Needs attention" row carries this count.
|
|
87
|
+
|
|
88
|
+
`Undeposited Funds` is a cash account in this list, not a bank. A large
|
|
89
|
+
balance there at month end means customer payments received and not yet
|
|
90
|
+
deposited — name it as an open item, not as cash on hand.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Duplicate detection: scan documents
|
|
95
|
+
|
|
96
|
+
Same rule as Xero — a document keyed twice is two documents. Step 4 scans
|
|
97
|
+
invoices and expenses separately:
|
|
98
|
+
|
|
99
|
+
- Same `customer_name` (invoices) or `vendor_name` (expenses)
|
|
100
|
+
- Same `total` (within 0.01 in the base currency)
|
|
101
|
+
- Dated within 5 calendar days of each other
|
|
102
|
+
- Both unpaid, or one paid inside the window
|
|
103
|
+
|
|
104
|
+
Recurring expenses (`recurring_expense_id` set) and invoices created from a
|
|
105
|
+
recurring invoice (`recurring_invoice_id` set) are the usual false positive;
|
|
106
|
+
show the id so the owner sees why.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Receipts: check the document, then the folder
|
|
111
|
+
|
|
112
|
+
`has_attachment` on invoices and expenses says whether a file is attached.
|
|
113
|
+
Above the attention threshold, read it first:
|
|
114
|
+
|
|
115
|
+
- `true` → "receipt on file (Zoho Books)"
|
|
116
|
+
- `false` → fall back to the folder scan, then to asking the owner
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Processor settlements: no bank feed, so the CSV match runs
|
|
121
|
+
|
|
122
|
+
The connector has no bank-transaction list, so a payout cannot be found as a
|
|
123
|
+
ledger line. Step 3 for a Zoho Books ledger goes straight to the CSV match in
|
|
124
|
+
[paypal-settlements.md](paypal-settlements.md): the processor's settlement
|
|
125
|
+
report against the **bank statement** the owner uploads. Ask for the
|
|
126
|
+
statement in the same breath as the P&L export.
|
|
127
|
+
|
|
128
|
+
Two things the connector does supply for this leg:
|
|
129
|
+
|
|
130
|
+
- `list_customer_payments` for the month — payments recorded against
|
|
131
|
+
invoices, with `payment_mode` and `reference_number`. A processor payout
|
|
132
|
+
that was recorded as a customer payment shows here.
|
|
133
|
+
- Invoices carry `payment_options.payment_gateways` — which gateways (Stripe,
|
|
134
|
+
PayPal) the invoice was set up to accept. That tells you which processor's
|
|
135
|
+
settlement to expect for it.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Country, currency, and financial year
|
|
140
|
+
|
|
141
|
+
`get_organization` returns `country_code`, `currency_code`, and
|
|
142
|
+
`fiscal_year_start_month` as a zero-based month index (`0` = January, so the
|
|
143
|
+
year end is the last day of the month before the index). Read them at the
|
|
144
|
+
start of the close if the business context does not carry them, and use them
|
|
145
|
+
for every amount, the thresholds, and whether Step 9 offers `/tax-prep`. The
|
|
146
|
+
rule is `../../../shared/currency-and-locale.md`.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Graceful degradation — Zoho Books not connected
|
|
151
|
+
|
|
152
|
+
Take this path only when no Zoho Books entry works. An unauthorized
|
|
153
|
+
`small-business:zoho-books` beside the owner's own live Zoho Books is connected —
|
|
154
|
+
call the owner's entry instead (`../../../shared/connector-neutrality.md`, "One
|
|
155
|
+
connector, two registrations").
|
|
156
|
+
|
|
157
|
+
Ask for **three exports**: the **Profit and Loss** report, the **Account
|
|
158
|
+
Transactions** report (all accounts, the month), and the **bank statement**.
|
|
159
|
+
The uncategorised count comes from the Banking screen; ask for it as a fourth
|
|
160
|
+
item or say in the packet that it was not available.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Pagination and limits
|
|
165
|
+
|
|
166
|
+
`per_page` goes to 200 on invoices; the default is 10. Set it, and page on
|
|
167
|
+
`has_more_page`. Sums come cheaper from `response_option=3` (count and
|
|
168
|
+
totals only) than from listing every document.
|