Reconcilly — marketplace settlement journal entry generator

{% if error %}
{{ error }}
{% endif %} {% if success %}
Generated {{ success.settlements|length }} settlement journal {{ 'entry' if success.settlements|length == 1 else 'entries' }} (debits {{ success.total_debits }} = credits {{ success.total_credits }}). {% if success.flagged_count %} {{ success.flagged_count }} settlement(s) have unclassified rows — see the close memo. {% endif %}
Download {{ success.zip_filename }} (contains {{ success.csv_filename }} + {{ success.memo_filename }}{% if success.recon %} + {{ success.recon.filename }}{% endif %}) {% if internal_qa_mode and success.recon %}

Reconciliation vs Amazon Monthly Summary PDF

{% if success.recon.status == 'PASS' %}

PASS — every bucket ties within tolerance and no unknown PDF lines. Reserve Δ: {{ success.recon.reserve_delta }} (informational; confirm against the Date Range Report).

{% elif success.recon.status == 'REVIEW' %}

REVIEW — {{ success.recon.variance_count }} bucket(s) out of tolerance, {{ success.recon.unknown_count }} unknown PDF line(s) (likely Amazon layout drift). Reserve Δ: {{ success.recon.reserve_delta }}. See {{ success.recon.filename }} in the zip for details.

{% if success.recon.tz_warning %}
Timezone/period window mismatch: {{ success.recon.tz_warning }}
{% endif %} {% else %}

PARSE ERROR — the Amazon PDF could not be parsed. JE CSV is unaffected. Error: {{ success.recon.error }}

{% endif %} {% endif %}

Per-settlement summary

{% for s in success.settlements %} {% endfor %}
Settlement Rows JE lines Cash deposit Reserve Δ Unclassified
{{ s.settlement_id }} {{ s.rows }} {{ s.lines }} {{ s.cash_deposit }} {{ s.reserve_delta }} {{ s.unclassified }}
{% endif %}
Type the name of your business. This will appear in your close memo PDF and the downloaded file names. Type the name exactly as it appears in QuickBooks. It's the bank account where this channel's payouts land. Type the name exactly as it appears in QuickBooks. It's the credit card account Amazon charges when a settlement goes negative. {% if internal_qa_mode %} {% endif %}

The dropdown lists every entity flagged amazon-enabled in your config.yaml. One file produces one journal entry per settlement id, plus a close memo flagging any rows that didn't map cleanly. Review every JE against the source document before booking — Reconcilly does not post to QuickBooks Online; you import the CSV.

Shopify monthly reconciliation

{% if shopify_error %}
{{ shopify_error }}
{% endif %} {% if shopify_success %}
Generated Shopify monthly JE for {{ shopify_success.entity }} / {{ shopify_success.period }} (debits = credits = {{ shopify_success.total_debits }}; reserve Δ {{ shopify_success.reserve_delta }}). {% if shopify_success.force_applied %} OVERRIDE applied — {{ shopify_success.overridden }} FAIL(s) downgraded; see Override audit in the report. {% endif %} {% if shopify_success.warns %} {{ shopify_success.warns }} WARN(s) surfaced — review the report. {% endif %}
Download {{ shopify_success.zip_filename }} (contains {{ shopify_success.je_filename }} + {{ shopify_success.report_filename }})
{% endif %}
Type the name exactly as it appears in QuickBooks. It's the bank account where this channel's payouts land.

Three CSV uploads, one balanced JE plus a markdown reconciliation report. The validation gate refuses to emit the JE if any FAIL check fails (JE balance, MPF cross-check, channel subtotals, chargeback bucketing) — tick Force to override and document why. WARN-severity findings (blank Source rows, unmatched adjustments, stale Manual Payment Receivable, alt gateways, reserve sign anomaly) ride on the report and never block.