- umkm
- engineering
- e-commerce
Website Sales Data for Coretax Annual Filing (Indonesian SMEs)
Prepare website sales data for Coretax annual SPT filing: monthly gross turnover, QRIS reconciliation, checkout exports, and fewer DJP audit mismatches.

Coretax annual filing in 2026 is the first tax season many Indonesian micro and small businesses enter monthly gross turnover without downloading legacy PDF e-Forms. Coretax itself ranked among Indonesia's top Google searches in 2025 — not because owners enjoy tax week, but because the unified portal at coretaxdjp.pajak.go.id wires billing, 0.5% final income tax payments, and annual SPT drafts into one browser workflow. What usually breaks is not the login screen; it is website sales data (and WhatsApp orders) never summarized by month, so the L-3B attachment gets filled from memory.
This article explains how to build monthly gross turnover from checkout and payment gateways in line with reporting — not a full accounting course, but the engineering-first flow we use for SMBs in Nganjuk, East Java, and nationwide omnichannel sellers.
1. What Coretax Changes for Individual Business Owners
DJP positions Coretax as a unified tax administration system: browser login, SPT drafts, electronic signing, no desktop installer. Under the 0.5% final income tax scheme (Government Regulation 55/2022), monthly payments created through billing can prepopulate your annual draft — less typing, more visibility when internal records do not match.
For online sellers, the practical shifts are:
- Turnover is entered per calendar month (January–December) in the business attachment, not as one annual guess.
- Data sources mix: marketplace dashboards, QRIS settlements, virtual account transfers, and owned-website orders.
- Turnover tax exemptions for individuals (thresholds defined by DJP, often discussed as a Rp500 million annual facility) are calculated by the system — the numbers you type must be consistent, not hopeful.
If you are a VAT-registered taxpayer (PKP) issuing e-Faktur, read PPN 11% and Coretax on business websites. This piece targets SMBs reporting business turnover from digital channels without routine VAT invoices.
2. L-3B Attachment and the Turnover Definition You Must Collect
For many SMBs in Coretax, the critical section is Attachment L-3B (monthly gross turnover recap). The figure is gross sales turnover, not net profit and not always equal to cash in the bank on the same day.
| Concept | Typically included | Typically excluded |
|---|---|---|
| Website gross turnover | Product/service amounts customers pay before final tax calculation | VAT if you are PKP (separate reporting) |
| Full refund | Reduces the month when processed | Bank admin fees |
| Store discount | Still part of gross; net tracked separately | Marketplace subsidies you never book as sales |
| Shipping charged to buyer | Part of gross if you invoice it | Pass-through shipping with no markup |
A classic mistake: summing QRIS settlement batches as turnover when transaction dates span month-end. The fix is not avoiding QRIS — see QRIS MDR changes for website checkout — but separating transaction date from settlement date.
3. Why an Owned Website Helps Filing (When Data Is Structured)
Marketplaces provide turnover reports, but definitions of "earnings" do not always match DJP's monthly recap. A website you control can be the system of record for:
- Order timestamps (WIB timezone)
- Channel (
website,whatsapp,offline) - Payment method (QRIS, GoPay, BCA VA, COD)
- Refund and cancellation status
Without a website, many SMBs rely on WhatsApp screenshots — that does not scale at annual filing time. The same foundation supports financing readiness; see digital bookkeeping for Indonesian SMBs.
4. Minimum Order Schema (Monthly Export Ready)
Design the orders table so one SQL query or pivot produces 12 monthly rows:
order_id: "ORD-2026-09304"
ordered_at: "2026-03-15T10:22:00+07:00"
channel: "website"
gross_amount: 350000
discount_amount: 25000
refund_amount: 0
payment_method: "qris"
payment_status: "paid"
settlement_at: "2026-03-16T08:00:00+07:00"
is_cancelled: false
Calendar-month aggregation logic:
SELECT
DATE_TRUNC('month', ordered_at AT TIME ZONE 'Asia/Jakarta') AS month,
SUM(gross_amount - refund_amount) AS gross_turnover
FROM orders
WHERE is_cancelled = false
AND payment_status = 'paid'
GROUP BY 1
ORDER BY 1;
If you also sell on Tokopedia or Shopee, keep marketplace turnover on a separate sheet, then add months in a master workbook — do not import twice into Coretax.
5. Reconciling Gateways, QRIS, and Bank Statements
A lightweight finance rhythm for SMBs without a full accounting team:
- Transaction day — gross turnover from the website database (or WooCommerce export).
- Weekly — match Midtrans, Xendit, or Doku dashboards (gross vs fees vs net settlement).
- Monthly — compare database totals with prepopulated final tax payments in Coretax; document gaps (refunds, unpaid COD, month-end pending orders).
| Signal | Use for | Do not use directly as gross turnover |
|---|---|---|
| Gateway dashboard | Fees, settlement, disputes | — |
| Bank statement | Cash verification | Gross turnover (lagging / mixed personal) |
| Order database | L-3B monthly lines | — |
| Marketplace report | Separate channel | Duplicated with website rows |
If channel margin is still unclear, run net margin: marketplace vs website first — SPT turnover stays gross, but margin clarity prevents misclassified discounts or platform subsidies.
6. Export Patterns from Common SMB Stacks
Spreadsheet + manual WhatsApp — 12 month columns plus channel rows; fine under ~30 orders/month. Risk: copy-paste errors.
WordPress + WooCommerce — order export plugins; align date_created and total; treat refunds as separate rows or meta.
Custom Next.js / Laravel — admin endpoint GET /reports/monthly-gross?year=2025 returning JSON/CSV; archive CSV per tax year in cloud storage, not only on the owner's laptop.
POS + website — distinct order_id prefixes (POS-, WEB-) so POS–website integration does not double-count when merged.
For any pattern, validate one sample month: compare export totals with a manual sum of five random orders. If the delta is not zero, fix timezone or pending status handling.
7. Pre-Submit Checklist in Coretax
- January–December turnover summed across all business channels
- Refunds reduce the correct month
- Monthly 0.5% payments match Coretax prepopulation
- Operating bank account separated from personal use
- Website export CSV/PDF archived for at least five years
- Accountant review if you have employment income plus business income
8. Comparison: Manual Entry vs Website Pipeline
| Aspect | Memory-based entry | Website-backed pipeline |
|---|---|---|
| SPT prep time | 2–5 stressful days | 2–4 hours of review |
| Audit mismatch risk | High | Low with monthly reconciliation |
| Upfront cost | Rp0 | Database/export setup |
| Scalability beyond ~100 orders/month | Poor | Good |
| Bank / KUR readiness | Weak | Strong with 12 consistent months |
Conclusion
Website sales data for Coretax annual filing is not a March sprint — it is a monthly habit: calendar gross turnover, refunds applied correctly, and gateway reconciliation before you submit in Coretax DJP. The new portal removes paperwork friction, but it cannot replace clean checkout records on channels you own.
Zero Args Technology builds checkout flows, payment webhooks, and simple monthly turnover exports without over-engineering. Start a conversation if you want L-3B-ready exports from an existing site or one you are planning.
Frequently asked questions
Must website turnover match my bank statement exactly for Coretax?
Reported turnover is gross sales from your business, not always equal to bank balance on the same dates because of QRIS settlement timing, refunds, and COD. You need monthly reconciliation notes that explain any gap.
What if I sell on marketplaces and on my own website?
Combine gross turnover per month from every channel you report in one return without double-counting. Keep marketplace and website totals separate in internal records, then sum by month for the L-3B attachment.
Does this article replace a tax advisor?
No. This focuses on data structure and engineering flow from website to monthly totals. Tax status, SPT model, and turnover exemptions must be confirmed with an accountant or Indonesia's Directorate General of Taxes (DJP).
Which order fields are required for SPT-ready reporting?
At minimum: order_id, transaction date, gross_amount, refund_amount, channel, payment_method, and settlement status. Without refunds and consistent dates, monthly turnover drifts away from prepopulated final income tax payments in Coretax.


