Taxually automatically pulls your WooCommerce order and refund data each month. This article explains how we identify, filter, and process your transactions to help with reconciliation.
How Orders Are Identified
What We Pull
We pull all orders that were modified during the reporting period. This ensures we capture:
- New orders placed in the period
- Orders that changed status (e.g., pending → paid → completed)
- Orders with any updates during the period
Tax Point Filtering
To determine which month a transaction belongs to, we use the payment date (date_paid) as the primary tax point:
- Order has payment date: We use
date_paid - Order has no payment date (e.g., BACS, manual payment): We use
date_createdas a fallback
Example: An order created Dec 28, paid Dec 30, and shipped Jan 2 would be reported in December (based on payment date). An order created Dec 28 with no payment date recorded would also be reported in December (based on creation date). This prevents the same order appearing in multiple months if it's modified after payment.
How Refunds Are Identified
Refunds are pulled for each order and filtered by the refund creation date (date_created on the refund).
- Refund ID: Unique refund identifier from WooCommerce
- Parent Order ID: Links the refund to the original order
- Refund Date:
date_createdof the refund
Refund amounts appear as negative values in the data. The billing and shipping details are inherited from the original order.
Line Types
Each row in your data represents one of these line types:
- Product: Individual product sold (e.g., "Endeavor Daytrip Backpack")
- Shipping: Shipping or delivery charge (e.g., "Flat Rate Shipping")
- Fee: Additional fees (e.g., "Gift Wrapping Fee")
- Summary: Order without itemised lines (rare) - total order value
For refunds, line types indicate what was refunded (product, or a summary if not itemised).
Data Fields Explained
Order and Transaction Fields
transaction_type– Sale or Refundline_type– Product, Shipping, Fee, or Summaryorder_id– WooCommerce order or refund IDparent_order_id– Original order ID (refunds only)order_status– Current order status (e.g., completed)
Date Fields
date_created– When the order was created (fallback tax point)date_modified– Last modification date (not used for tax point)date_paid– When payment was received (primary tax point)date_completed– When order was fulfilled (informational)
Address Fields
We capture both billing and shipping addresses:
- Billing:
billing_country,billing_state,billing_postcode,billing_city - Shipping:
shipping_country,shipping_state,shipping_postcode,shipping_city
Line Item Fields
line_item_id– Unique line item identifierline_item_sku– Product SKU or shipping method IDline_item_name– Product name or descriptionline_item_qty– Quantity (blank for shipping and fees)line_item_total– Net amount (excl. tax)line_item_tax– Tax amount
Timezones
How Dates Are Handled
- WooCommerce stores dates in your store's configured timezone
- We convert dates to UTC (Coordinated Universal Time) when filtering
- Output format: ISO 8601 format (e.g., 2025-12-30T14:30:00)
Reconciliation Tip
If you notice a transaction appearing in a different month than expected, check:
- Your WooCommerce store timezone setting (WooCommerce → Settings → General)
- The
date_paidfield in the data - Whether the payment was recorded close to midnight
Reconciliation Guide
Matching Orders
To match a Taxually transaction to your WooCommerce order:
- Use the
order_idfield - In WooCommerce admin, go to WooCommerce → Orders
- Search for the order number
Matching Refunds
To match a refund:
- Note the
order_id(refund ID) andparent_order_id(original order) - In WooCommerce admin, open the original order
- Scroll to the Refunds section
Verifying Totals
Each order may have multiple rows (one per product + shipping + fees). To calculate the order total, add together all line_item_total and line_item_tax values for rows with the same order_id.
Common Reconciliation Issues
- Order missing: Payment date may be outside the period. Check the
date_paidfield. - Order in wrong month: Timezone difference may be the cause. Check your store timezone settings.
- Total doesn't match: Shipping or fees may not be included. Ensure all line types are summed.
- Refund missing: Refund may have been issued in a different period. Check the refund
date_created.
Frequently Asked Questions
Why does my order appear in a different month than I expected?
We use date_paid (payment date) to determine the reporting month. If the payment was processed near month-end, timezone differences may affect which month it falls into.
Why are some quantity fields blank?
Shipping charges and fees don't have quantities—they're flat charges. Only product lines have quantities.
How do I identify a refund vs a sale?
Check the transaction_type field: "Sale" indicates an original order or transaction, while "Refund" indicates a refund transaction (amounts are negative).
What if my order has no payment date?
For orders without a recorded payment date (e.g., bank transfers or manual payments), we use the order creation date as the fallback.
Need Help?
If you're having trouble reconciling your WooCommerce data, please contact our support team with:
- The
order_idin question - Your WooCommerce store timezone setting
- Screenshots of the order in WooCommerce admin
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article