Data Fields That Taggun Extracts
Documented public fields Taggun extracts from receipts and invoices, with access paths, endpoint availability, and enablement.
Taggun turns receipts and invoices into structured JSON. This page is the documented public catalogue of extractable fields: what each field contains, where to find it in the response, which endpoints return it, and whether it is enabled by default.
These fields apply to the six data extraction endpoints:
- Upload File (verbose)
- Upload File (simple)
- Encoded File (verbose)
- Encoded File (simple)
- URL (verbose)
- URL (simple)
Unless explicitly required, response properties and nested data may be omitted. Some documented envelopes and values explicitly allow null; do not assume that every top-level or feature envelope does. Arrays may be omitted or empty unless a page documents a nullable array, and properties within returned items may be absent. Guard the object and usable value before use. Types below describe populated values, not a guarantee that a property is returned for every document.
Core Fields
| Field | Description | Type | Access Path | Endpoints | Access |
|---|---|---|---|---|---|
| Total Amount | The total value of the transaction | Number | totalAmount.data | Simple & Verbose | Auto-enabled |
| Tax Amount | The total amount of tax in the transaction | Number | taxAmount.data | Simple & Verbose | Auto-enabled |
| Date | The date of the transaction | Date | date.data | Simple & Verbose | Auto-enabled |
| Merchant Name | The name of the merchant who issued the receipt | String | merchantName.data | Simple & Verbose | All plans; Extract Merchant Details setting |
| Merchant Address | Merchant's full address details including city, state, country code, and postal code | Text | merchantAddress.data | Simple & Verbose | All plans; Extract Merchant Details setting |
| Paid Amount | The amount paid in the transaction | Number | paidAmount.data | Verbose only | Auto-enabled |
| Discount Amount | The total discount applied to the transaction | Number | discountAmount.data | Verbose only | Auto-enabled |
| Currency (Total Amount) | The currency of the total amount | String | totalAmount.currencyCode | Verbose only | Auto-enabled |
| Due Date | The due date on an invoice, if present | Date | dueDate.data | Verbose only | Auto-enabled |
| Invoice Number | The invoice number, if available | String | entities.invoiceNumber.data | Verbose only | All plans; Invoice Number setting |
| Receipt Number | The receipt number, if available. Also known as a slip number or check number on some receipts — Taggun treats all of these as the receipt number. Where a document shows both a receipt and an invoice number and both fields are enabled, the two often return the same value | String | entities.receiptNumber.data | Verbose only | All plans; Receipt Number setting |
| All Text | Raw OCR text from the file | String | text.text | Verbose only | Auto-enabled |
Product Line Item Fields
Product line items are returned as entities.productLineItems[]. Each entry represents one extracted line item. Repeated products or duplicate-looking lines may appear; entries are not guaranteed unique.
| Field | Type | Description | Access Path | Endpoints | Access |
|---|---|---|---|---|---|
| Product/Service Name | String | The name of the item | entities.productLineItems[].data.name.data | Verbose only | Auto-enabled |
| Quantity | Number | How many of the item were purchased | entities.productLineItems[].data.quantity.data | Verbose only | Auto-enabled |
| Unit Price | Number | The price of a single item | entities.productLineItems[].data.unitPrice.data | Verbose only | Auto-enabled |
| Total Price | Number | The total price for this line item | entities.productLineItems[].data.totalPrice.data | Verbose only | Auto-enabled |
| Line Item Index | Number | A numeric extraction index associated with the item; it is not the item's zero-based array position. Do not rely on it for sorting until its ordering semantics are documented | entities.productLineItems[].index | Verbose only | Auto-enabled |
| Product Identifier / SKU | String | A printed product identifier such as a SKU, UPC/barcode, PLU, item/model code, or similar identifier, when available | entities.productLineItems[].data.sku.data | Verbose only | Startup+; account capability |
| Item Number | String | An item number printed for the line item, when available | entities.productLineItems[].data.itemNumber.data | Verbose only | Startup+; account capability |
These are line-item fields; the public response schema does not contain a standalone serialNumber field. For the full set of line item fields—including per-item discount and category—and a worked example, see Line Item Extraction.
Detailed Merchant Location Fields
| Field | Type | Description | Access Path | Endpoints | Access |
|---|---|---|---|---|---|
| Merchant Country | String | The country code of the merchant's address | merchantCountryCode.data | Simple & Verbose | All plans; Extract Merchant Details setting |
| Merchant State | String | The state or region of the merchant's address | merchantState.data | Simple & Verbose | All plans; Extract Merchant Details setting |
| Merchant City | String | The city where the merchant is located | merchantCity.data | Simple & Verbose | All plans; Extract Merchant Details setting |
| Merchant Postal Code | String | The postal or ZIP code of the merchant's address | merchantPostalCode.data | Simple & Verbose | All plans; Extract Merchant Details setting |
| Merchant Types | Array | Merchant category/type hints when available | merchantTypes.data | Simple & Verbose | All plans; Extract Merchant Details setting |
For standardised merchant names and verified locations, see Merchant Intelligence.
Detailed Tax Fields
| Field | Type | Description | Access Path | Endpoints | Access |
|---|---|---|---|---|---|
| Currency (Tax Amount) | String | The currency of the tax amount | taxAmount.currencyCode | Verbose only | Auto-enabled |
| Merchant Tax ID | String | The tax ID of the merchant, where applicable | merchantTaxId.data | Verbose only | Regional → Merchant Tax ID |
| Multi-Tax Line Items | Array | Detailed information on multiple tax types and rates | entities.multiTaxLineItems | Verbose only | Regional → Multi-Tax |
| IBAN | String | Bank account information, when present on supported European receipts or invoices | entities.IBAN.data | Verbose only | General → IBAN |
Payment Fields
How the transaction was paid. General → Payment Type controls the documented payment-method field. Card last-four output remains account-configured; no separate public last4 control is documented.
| Field | Type | Description | Access Path | Endpoints | Access |
|---|---|---|---|---|---|
| Card Last 4 | String | The last four digits of the payment card, when printed on the receipt | entities.last4.data | Verbose only | Account-configured; no separate public control documented |
| Payment Type | String | The detected payment method, normalised to a canonical value from a fixed keyword table — values include visa, mastercard, american_express, eftpos, cash, credit_card, debit_card, alipay, wechat | paymentType.data | Verbose only | General → Payment Type |
Payment type is matched against a keyword table rather than free-form extraction, so values come back normalised. When the receipt shows a card network (a Visa or Mastercard sale, for example), the network is the paymentType value — there is no separate card-network field. The card's last four digits are the separate entities.last4.data field. The value list above is representative, not exhaustive.
Fraud Detection Fields
These fields are part of the Fraud Detection Suite (Advanced plan and above).
| Field | Type | Description | Access Path | Endpoints | Access |
|---|---|---|---|---|---|
| Tamper Detection | Boolean | Whether the receipt appears tampered with | entities.tamperDetection.data.isTampered | Verbose only | Advanced+; **Tamper Detection** |
| Tamper Score | Number | The likelihood that the receipt has been tampered | entities.tamperDetection.data.tamperedScore | Verbose only | Advanced+; **Tamper Detection** |
| Handwriting Detection | Boolean | Whether the receipt contains handwritten elements | entities.handwritingDetection.data.isHandwritten | Verbose only | Advanced+ account setting |
| Handwriting Score | Number | The likelihood that the receipt contains handwriting | entities.handwritingDetection.data.handwrittenScore | Verbose only | Advanced+ account setting |
| Digital Receipt Detection | Boolean | Whether the receipt appears digitally created rather than photographed | entities.digitalDetection.data.isDigital | Verbose only | Advanced+ account setting |
| Digital Score | Number | Confidence that the receipt is digitally created | entities.digitalDetection.data.digitalScore | Verbose only | Advanced+ account setting |
| Similar Receipts | Array | Potential duplicate receipts matched from previous scans | entities.similarReceipts | Verbose only | Advanced+ account setting |
Extraction and Validation Response Paths
| Result | Verbose extraction | Receipt validation |
|---|---|---|
| Similarity | entities.similarReceipts | similarReceipts (array or null) |
| Tamper flag/score | entities.tamperDetection.data.isTampered / entities.tamperDetection.data.tamperedScore | tamperDetection.isTampered / tamperDetection.tamperedScore |
| Digital flag/score | entities.digitalDetection.data.isDigital / entities.digitalDetection.data.digitalScore | digitalDetection.data.isDigital / digitalDetection.data.digitalScore |
| Handwriting | entities.handwritingDetection.data.* | Not run |
Validation moves these result envelopes to the response root, but their inner shapes are not uniform: tamper values are flattened while digital values remain under digitalDetection.data. See Validating Receipts. Build decisions on the boolean flags and set your own thresholds on the scores — each check's page explains how.
Analysis Fields
| Field | Type | Description | Access Path | Endpoints | Access |
|---|---|---|---|---|---|
| Confidence Level | Number | Document- or field-level response property; see Understanding Your Results | confidenceLevel or <field>.confidenceLevel | Simple & Verbose | Auto-enabled |
| Per-field Text | String | The raw OCR text associated with an extracted field | <field>.text | Verbose only | Auto-enabled |
| Per-field Data | Varies | The cleaned and standardised value from the file, ready for direct use in applications or further processing | <field>.data | Simple & Verbose | Auto-enabled |
| Per-field Regions | Array | The coordinates of the area of the receipt where the field was found | <field>.regions | Verbose only | Auto-enabled |
| Per-field Index | Number | Numeric index metadata returned with some extracted fields. Ordering semantics are not part of the current public contract | <field>.index | Verbose only | Auto-enabled |
| Target Rotation | Number | Numeric image-rotation value returned by processing. Units, direction, and normalisation are not currently documented | targetRotation | Verbose only | Auto-enabled |
| Elapsed Time | Number | The time taken to process the receipt (in milliseconds) | elapsed | Verbose only | Auto-enabled |
| Tracking ID | String | A unique ID to track the processed receipt | trackingId | Verbose only | Auto-enabled |
| Items Count | Number | The total quantity across extracted line items (the sum of productLineItems[].data.quantity), when line items are extracted. Distinct from entities.additionalReceiptProperties.numberOfItems; use entities.productLineItems[] for the actual line-item records. | itemsCount.data | Verbose only | Auto-enabled |
Simple named field objects can contain data and confidenceLevel. Verbose responses add raw text, location and index metadata, currency metadata where applicable, scan metadata, and feature envelopes. For how these properties fit together, see Understanding Your Results.
Verbose Helper Arrays
Verbose responses can include helper arrays that expose candidate values found during extraction. Use the named fields above (totalAmount, taxAmount, entities.productLineItems[], and so on) for production decisions; use these arrays when you need to inspect or debug all candidate amounts or numbers returned by the model.
| Field | Type | Description | Access Path | Endpoints | Access |
|---|---|---|---|---|---|
| All Amount Candidates | Array | Monetary values detected on the document, including totals, subtotals, taxes, line prices, discounts, and payment amounts | amounts[] | Verbose only | Auto-enabled |
| All Number Candidates | Array | Numeric values detected on the document, such as order numbers, terminal IDs, quantities, codes, and other numbers | numbers[] | Verbose only | Auto-enabled |
| Line Amount Candidates | Array | Line-level amount candidates when returned by the extraction model | lineAmounts[] | Verbose only | Auto-enabled |
Feature-Specific Response Envelopes
Some account settings add their own objects under entities. These properties remain optional even when a setting is enabled. Depending on the feature-specific schema, a returned envelope may contain confidenceLevel: 0, an empty array, omitted data, or an explicitly nullable value. Check the feature page and the nested usable value before use. Other settings can change processing behaviour without adding a dedicated response object.
| Feature / setting | Access Path | Access | Where to read more |
|---|---|---|---|
| Receipt-level categorisation / Product Categories | entities.category | Startup+; Product Categories | Purchase Categorisation |
| Merchant intelligence / Normalised Merchant Location | entities.normalisedMerchant | Startup+; Normalised Merchant Location; requires known-merchants list | Merchant Intelligence |
| Fraud detection | entities.similarReceipts, entities.tamperDetection, entities.digitalDetection, entities.handwritingDetection | Advanced+ account settings | Fraud Detection Overview |
| Regional receipt details | entities.brazilReceiptDetails, entities.chileReceiptDetails, entities.columbiaReceiptDetails, entities.spainReceiptDetails | Regional account settings | Supported Countries & Languages |
| Additional Receipt Properties | entities.additionalReceiptProperties | Startup+ account setting | Receipt-level metadata such as item count, till number, or served-by text when available |
| Customer Details | entities.customerDetails | Available on all plans as a self-service setting under Account Settings → Feature Settings → General. Enable or disable Email, Name, VAT Number, or the grouped Customer Details control using the checkboxes. entities.customerDetails and its child properties remain optional; returned child values can be null or otherwise unusable, so check the nested value before use. | Customer name, email, or VAT number when printed and detected |
| ABN | entities.ABN | Regional → ABN | Australia |
Customer and additional receipt properties
These fields are optional and available on verbose endpoints when the corresponding account setting is enabled:
| Field | Type | Access Path | Access |
|---|---|---|---|
| Customer Email | String | null | entities.customerDetails.email.data |
| Customer Name | String | null | entities.customerDetails.name.data |
| Customer VAT Number | String | null | entities.customerDetails.vatNumber.data |
| Number of Items | Number | null | entities.additionalReceiptProperties.numberOfItems.data |
| Till Number | String | null | entities.additionalReceiptProperties.tillNumber.data |
| Served By | String | null | entities.additionalReceiptProperties.servedBy.data |
Region-Specific Fields
Taggun extracts additional data fields depending on the receipt's country of origin — tax ID validation, document type classification, country-specific QR formats or workflows, and more. These are documented on the country pages:
For the full list of supported countries and languages, see Supported Countries & Languages.
Receipt validation returns different fieldsThe fields on this page apply to the data extraction endpoints. Receipt validation endpoints return validation results instead — see the Campaign Settings Reference and Validating Receipts.
Don't See What You Need?
If a specific data field is not available, we want to hear from you. Contact us at [email protected] to request support for additional fields — see Contacting Support.
Updated 14 days ago