← Back to Documentation
Tally logo

Tally Integration with UAE FTA E-Invoicing via TrustBill

Connect Tally.ERP 9 and TallyPrime (all editions) to TrustBill for FTA PINT-AE e-invoicing · Version 1.0 · September 2026

Overview

This guide describes how Tally.ERP 9 and TallyPrime (all editions, including Server, Developer and Tally on Cloud) connect to TrustBill, a UAE FTA-accredited service provider (ASP), so Tally users can issue PINT-AE compliant e-invoices without leaving the Tally interface.

Tally is the most widely-used ERP among UAE SMEs — but it does not ship with native Peppol / FTA e-invoicing. TrustBill sits between Tally and the FTA: voucher data is pulled from Tally through the connector, translated to PINT-AE XML, validated in real time, delivered over the Peppol network via a certified ASP (Tron-Stride or Storecove), and the FTA acknowledgement is returned as a status update that can be written back into the Tally voucher.

What this integration delivers

  • Push-based (TDL) or pull-based (XML gateway / ODBC) — pick what fits your Tally deployment
  • Sales, Purchase, Credit Note and Debit Note vouchers all mapped to PINT-AE document types
  • UAE VAT ledgers auto-detected and mapped to FTA tax categories (Standard 5%, Zero-rated, Exempt, Reverse Charge, Out-of-scope)
  • Live FTA status (delivered / acknowledged / rejected) written back into a custom Tally field via the TrustBill TDL
  • Bulk migration path for historical Tally vouchers via XML export or CSV
  • Free-zone, designated-zone and margin-scheme flags mapped end to end
  • Works offline — the connector queues vouchers when the internet drops

Supported Tally Versions

TrustBill's Tally connector is tested and certified against the following editions. Older Tally 7.x / 8.x builds are not supported (they predate Tally's XML gateway).

Tally editionReleaseDeploymentSupport level
Tally.ERP 9Release 6.6.xOn-premise / LANFull — legacy path via XML gateway + UAE VAT localisation
TallyPrime1.xOn-premise (Silver / Gold)Full
TallyPrime2.xOn-premise (Silver / Gold)Full
TallyPrime3.xOn-premise + Multi-companyFull — recommended for multi-branch SMEs
TallyPrime4.x / 4.1On-premise + WhatsApp integrationFull
TallyPrime5.xOn-premise + Connected servicesFull — native Connected-Services hook available
TallyPrime Server3.x+Multi-user data serverFull — recommended for 5+ concurrent Tally users
TallyPrime DeveloperAnyTDL customisation editionFull — includes ODBC + Custom TDL push
TallyPrime Edit Log3.x+Audit-compliant editionFull — TrustBill acknowledgement writes are logged
TallyPrime on AWS / Tally CloudAny TSP-hostedCloud / RDPFull via TrustBill Cloud Bridge (VPN tunnel)

UAE localisation required. Your Tally company must have "VAT (UAE)" enabled under F11 → Statutory & Taxation → Enable Value Added Tax → United Arab Emirates. TRN, VAT registration date and VAT filing period must be populated on the company master.

Prerequisites

On the Tally side

  • Tally.ERP 9 Release 6.6+ or TallyPrime 1.x–5.x with UAE VAT localisation enabled
  • Valid 15-digit UAE TRN on the company master (Gateway → F3 Company Info → TRN)
  • Party Ledgers populated with buyer name, TRN (for B2B), country and address
  • Tax Ledgers (Output VAT 5%, Zero-Rated, Exempt, etc.) linked to the correct Nature of Transaction
  • XML gateway enabled: F1 → Configure → Advanced Configuration → Client/Server → Server, port 9000 open on the LAN
  • Optional: TallyPrime Developer edition if you want to load the TrustBill TDL for push-mode + write-back

On the TrustBill side

  • A TrustBill SME account (one account = one TRN = one Tally company)
  • Completed KYB (business verification) — trade licence + TRN certificate uploaded
  • Submission mode set to test or sandbox during onboarding, live for production
  • Per-tenant API credential issued by TrustBill support for headless calls

Integration Architecture

The Tally ↔ TrustBill integration uses request/response outbound and polling inbound today. An outbound webhook is on the roadmap.

Outbound flow (Tally → TrustBill → FTA)

  1. A voucher (Sales / Purchase / Credit Note / Debit Note) is saved in Tally.
  2. Either the TDL plug-in triggers on Post-Save, or the connector polls the XML gateway every N seconds for new vouchers.
  3. The connector reads the voucher as Tally XML (TALLYREQUEST/EXPORT DATA) and translates it into TrustBill's InvoiceCreateInput shape.
  4. Connector calls POST /v1/invoices — invoice stored as draft. Nothing has reached the FTA yet.
  5. Connector calls POST /v1/invoices/submit — status flips to queued.
  6. TrustBill runs: queued → transformed → validated → delivered (PINT-AE XML built, Schematron-validated, handed to the ASP).
  7. ASP forwards the XML to the FTA over Peppol.

Inbound flow (FTA → TrustBill → Tally)

  1. The ASP posts an inbound webhook to TrustBill when the FTA acknowledges or rejects the invoice.
  2. TrustBill verifies the ASP's HMAC signature and updates the status to acknowledged or rejected.
  3. The Tally connector polls GET /v1/invoices/{id} every 2–5 minutes for non-terminal invoices.
  4. On acknowledged, the TDL plug-in writes the FTA acknowledgement reference into the custom UDF TrustBillAckRef on the Tally voucher; on rejected, it writes the rejection reason.

Connection Methods

Six paths are supported. Pick the one that matches your Tally deployment and IT constraints.

1. TrustBill TDL Plug-in (recommended for TallyPrime Silver / Gold / Developer)

A signed .tdl file loaded into Tally that hooks the Post-Save event on Sales / Purchase / Credit / Debit Note vouchers and POSTs the voucher XML to TrustBill.

  • Real-time — no polling delay
  • Writes the FTA ack ref back into a custom Tally field
  • Shows the TrustBill status directly in the Tally voucher screen
  • Configured via a small TrustBill Configuration menu inside Tally

2. TrustBill Windows Connector (XML Gateway pull)

A Windows service installed on the Tally server that polls the Tally XML gateway (http://localhost:9000) at a configurable interval, batches new vouchers, and calls the TrustBill API.

  • Zero changes required inside Tally
  • Best when you can't modify Tally (e.g. locked-down Silver install)
  • Automatic retry + offline queue + tamper-evident audit log

3. ODBC (Tally Developer editions)

Tally's ODBC server exposes voucher tables that can be queried with SQL. The connector uses this as a fallback when XML export is disabled.

  • Requires TallyPrime Developer or a licensed ODBC seat
  • Read-only — no write-back to Tally
  • Useful for one-off historical extracts

4. CSV / Excel drop folder

Tally's built-in Export → Day Book / Sales Register → Excel or CSV is scheduled to dump vouchers to a shared folder. TrustBill's watcher picks up the file and calls POST /v1/invoices/bulk.

  • Zero technical setup — the accountant runs a Tally shortcut once a day
  • Best for very small SMEs with < 20 invoices / day
  • Uses the standard TrustBill CSV schema (see Bulk Migration)

5. TallyPrime Connected Services (TallyPrime 5.x)

TallyPrime 5 introduced a Connected Services layer that lets certified partners register a webhook and receive voucher payloads directly. TrustBill is a registered partner — enable us from Connect → Manage Services → TrustBill E-Invoicing.

  • Native to TallyPrime 5 — no TDL, no Windows service
  • Real-time push, TLS end-to-end
  • Configuration and OAuth handshake done inside Tally

6. TrustBill Cloud Bridge (for Tally on AWS / Tally Cloud)

For customers running Tally on a hosted VPS or Tally-on-AWS from a Tally Solutions Partner (TSP), TrustBill provides a Cloud Bridge that opens a reverse VPN tunnel and either polls the XML gateway or loads the TDL plug-in.

  • No open inbound ports on your VPS
  • Traffic pinned to me-central-1 (UAE) for data residency
  • TSP handles Tally licensing; TrustBill handles the e-invoicing layer

Which method should I use?

If you're on TallyPrime 5, use Connected Services. If you're on TallyPrime 3/4 Silver/Gold, use the TDL Plug-in. If Tally is on a hosted VPS, use the Cloud Bridge. If you're on legacy Tally.ERP 9 without customisation rights, use the Windows Connector (XML pull).

Authentication

TrustBill's API uses Bearer JWT authentication. The Tally connector (any method above) authenticates once per tenant with a per-tenant API credential and refreshes the token on expiry.

Required request headers

Authorization: Bearer {jwt_token} Content-Type: application/json Idempotency-Key: {unique_key_per_request} X-TrustBill-Source: tally-connector/1.0

Idempotency-Key derivation for Tally

Every write endpoint requires a unique Idempotency-Key header. For Tally, derive it from the Tally VOUCHERGUID (a stable UUID assigned to every voucher, unchanged across sync/export):

Idempotency-Key: tally::{COMPANYGUID}::{VOUCHERGUID}

Re-sending the same key + body returns the cached response — a Tally XML pull retry cannot create a duplicate FTA submission.

Tally → PINT-AE Field Mapping

The connector translates Tally's XML voucher shape into TrustBill's InvoiceCreateInput, which TrustBill then renders into PINT-AE XML.

Header-level mapping

Tally XML tagTrustBill fieldNotes
VOUCHERNUMBERnumber1–64 chars, unique per tenant + mode
DATEissueDateTally uses YYYYMMDD → converted to ISO YYYY-MM-DD
BILLTODATE / DUEDATEdueDateOptional
VOUCHERTYPENAMEinvoiceTypeSales → sale, Purchase → purchase, Credit Note → credit_note, Debit Note → debit_note
CURRENCYcurrencyMust be AED; multi-currency Tally vouchers are converted at Tally's posting rate
Company.TRNseller.trn15-digit UAE TRN (from company master)
PARTYLEDGERNAMEbuyer.nameLegal name of the party ledger
PARTYGSTIN / PARTYTRNbuyer.trnIn UAE localisation this holds the TRN; leave empty for B2C
COUNTRYOFRESIDENCEbuyer.countryISO 3166-1 alpha-2 (connector normalises Tally's full country name)
BASICBUYERADDRESS.LISTbuyer.address.{line1,line2,city}Multi-line address collapsed into line1/line2
REFERENCEreferencedInvoiceNumberRequired for Credit / Debit Notes — original invoice ref
NARRATIONnotesPreserved verbatim; visible in FTA-facing XML
VOUCHERGUIDsellerInvoiceReferenceStored for traceability + used as the idempotency key

Line-level mapping (INVENTORYENTRIES.LIST + ALLLEDGERENTRIES.LIST)

Tally XML tagTrustBill fieldNotes
STOCKITEMNAMElines[].descriptionSupports Arabic; if empty, uses LEDGERNAME from ALLLEDGERENTRIES
ACTUALQTYlines[].quantityMust be > 0; negative Qty in Tally signals a return (auto-mapped to credit note)
RATElines[].unitPriceVAT-exclusive; connector strips VAT if voucher is inclusive-of-tax
UOM / BASEUNITSlines[].unitTally UOM mapped to UN/ECE Rec 20 (Nos → C62, Kg → KGM, Ltr → LTR)
DISCOUNTlines[].discountAmountPer-line discount, applied before VAT
STOCKITEMNAME.ALIASlines[].sellerItemIdPreserved for traceability
Ledger with ISDUTYLEDGER=YESlines[].vatRate + lines[].taxCategoryTally VAT ledger (e.g. "Output VAT @ 5%") mapped via the ledger → category table
NATUREOFTRANSACTIONlines[].taxCategory (hint)"Sales Taxable", "Sales Zero Rated", "Sales Exempt", "Sales to Designated Zone", etc.

Totals are computed server-side

Do not send subtotal, vat_amount or total. TrustBill re-computes totals from lines[] and returns them so Tally can reconcile. If Tally's total differs from TrustBill's by more than ±0.01 AED, the connector logs a variance and blocks submission until the voucher is corrected — this catches Tally rounding-mode mismatches early.

Create Invoice (draft)

Endpoint: POST /v1/invoices

A real Tally sales voucher mapped to the TrustBill payload. Tally voucher: SI/2026-27/00518 — Sale of consulting services to a Dubai buyer at 5% VAT.

Request body

{ "number": "SI/2026-27/00518", "issueDate": "2026-09-08", "dueDate": "2026-10-08", "currency": "AED", "invoiceType": "sale", "buyer": { "name": "Emirates Digital Solutions LLC", "trn": "100987654300005", "country": "AE", "email": "accounts@emiratesdigital.example", "address": { "line1": "Office 1204, Sheikh Zayed Road", "city": "Dubai", "country": "AE" } }, "seller": { "name": "Tally Trading LLC", "trn": "100100100100005", "country": "AE" }, "lines": [ { "description": "SAP Implementation Consulting", "sellerItemId": "SVC-SAP-IMPL", "quantity": 40, "unit": "HUR", "unitPrice": 750.00, "vatRate": 0.05, "taxCategory": "standard_5" } ], "sellerInvoiceReference": "Tally VoucherGUID 5f2c7e9a-...", "notes": "Milestone 2 of 3 — 30 days net" }

Response (201 Created) — abbreviated:

{ "id": "c8d2f1a4-....-uuid", "number": "SI/2026-27/00518", "status": "draft", "invoiceType": "sale", "totals": { "subtotal": 30000, "tax": 1500, "total": 31500, "currency": "AED" }, "pipeline": [], "errors": [], "submissionMode": "sandbox", "source": "tally-connector" }

Credit & Debit Notes

Tally posts Credit Notes (sales return / rate correction) and Debit Notes (purchase return / additional charge) as first-class voucher types. The connector maps them directly.

Tally voucherinvoiceTypeRequired extra fields
Credit Note (sales return / rate correction)credit_notereferencedInvoiceNumber = original Sales voucher number, reasonCode (e.g. ReturnOfGoods, PriceCorrection)
Debit Note (purchase return / debit memo)debit_notereferencedInvoiceNumber = original Purchase voucher number, reasonCode

Sign convention: Tally posts credit / debit notes with positive quantities and positive rates. Send the same — do not negate. The invoiceType tells TrustBill and the FTA that the document reverses the reference invoice; PINT-AE handles the sign in the XML.

Submit Invoice(s) for Delivery

Creating a draft does not deliver the invoice to the FTA. Submission is an explicit second call so the accountant can review before sending.

Endpoint: POST /v1/invoices/submit

{ "ids": ["c8d2f1a4-....-uuid"] }

Accepts 1–200 UUIDs per call. Non-draft invoices are silently skipped, so retry is safe.

Response (200):

{ "submitted": 1, "ids": ["c8d2f1a4-....-uuid"] }

Tally tip: most Tally users configure the TDL plug-in to auto-submit any draft older than N minutes (default: 10). This gives the accountant a window to alter or void the voucher in Tally before it reaches the FTA.

Status Tracking & Write-back

Statuses are forward-only. A retry starts a new pipeline run rather than rewinding.

StatusMeaningTally write-back
draftCreated, not submitted
queuedSubmitted, waiting for pipelineTrustBillStatus = Queued
transformedPINT-AE XML generated
validatedPassed schema + Schematron
blocked_no_creditInsufficient TrustBill creditTrustBillStatus = BlockedNoCredit
deliveredSent to FTA via ASPTrustBillStatus = Delivered
acknowledgedFTA confirmed receipt / validityTrustBillAckRef = <FTA ref>, TrustBillStatus = Acknowledged
rejectedFTA or ASP rejected the invoiceTrustBillStatus = Rejected, TrustBillRejectReason = <code>

Polling recommendation: the Tally connector polls GET /v1/invoices/{id} every 2 minutes for non-terminal invoices, then stops on a terminal status. Write-back happens via the TrustBill TDL on the same tick.

Bulk Migration from Tally

Historical Tally vouchers (up to 12 months back) can be imported either as "archive only" (marked historical, not submitted to the FTA) or as "submit to FTA" depending on your compliance requirement.

Endpoint: POST /v1/invoices/bulkmultipart/form-data, one CSV part, max 5 MB, Idempotency-Key header required.

CSV column headers (in order)

number,issueDate,dueDate,invoiceType,currency,sellerTrn,sellerName,buyerTrn,buyerName,buyerCountry,buyerAddressLine1,buyerCity,lineDescription,lineQty,lineUnit,lineUnitPrice,lineVatRate,lineTaxCategory,referencedInvoiceNumber,notes
LimitValue
Max rows per file1,000 invoices
Multiple lines per invoiceRepeat the number column — importer groups lines automatically
Partial successYes — bad rows are reported without rolling back the batch
Duplicate invoice numberDraft rows are upserted; already-submitted rows are rejected

Recommended workflow: in Tally, run Display → Day Book → Alt+E (Export) → Format: CSV → Range: from 01-Apr-2026 to today. Run the TrustBill tally-csv-normaliser script to remap Tally's column headers to the schema above. Upload in test mode first, review the summary, then repeat in sandbox and live.

Test / Sandbox / Live Modes

Every TrustBill tenant has one active submission mode. Invoices are hard-partitioned — a live invoice cannot be viewed from sandbox, and vice-versa.

ModePurposeReaches FTA?
testLocal integration testing — no ASP callNo
sandboxEnd-to-end dry run against the ASP sandboxFTA sandbox only
liveReal, legally binding e-invoicingYes — the FTA production network

Tally best practice: run the connector in sandbox for the full first VAT-return period. Reconcile TrustBill's "Delivered invoices" report against Tally's Display → Statutory Reports → VAT → VAT Computation before switching to live.

VAT Ledger Mapping

In Tally UAE, VAT is captured as a duty ledger (e.g. "Output VAT @ 5%") + a Nature-of-Transaction on the party/item. Map each Tally VAT ledger to a TrustBill taxCategory once, at connector setup:

Typical Tally VAT ledgerNature of TransactionvatRatetaxCategory
Output VAT @ 5%Sales Taxable0.05standard_5
Output VAT — Zero RatedSales Zero Rated (Exports)0zero_rated_export
Output VAT — Zero RatedSales Zero Rated (Healthcare)0zero_rated_healthcare
Output VAT — Zero RatedSales Zero Rated (Education)0zero_rated_education
(no VAT ledger)Sales Exempt (Financial)0exempt_financial
(no VAT ledger)Sales Exempt (Residential Rent)0exempt_residential_rent
Reverse Charge — Output VATSales to Designated Zone0reverse_charge_designated_zone
(no VAT ledger)Non-GCC / Out of Scope0out_of_scope

The Tally connector reads each voucher's ALLLEDGERENTRIES to find the tax-ledger amount and pairs it with the Nature of Transaction to pick the correct taxCategory. If a voucher uses a custom-named ledger that isn't in the mapping table, the connector flags it and blocks submission until you add the row.

UAE-Specific Scenarios

Free Zone / Designated Zone sellers

Set the Tally Company master flag VAT Registration → Type of Registration → Designated Zone. The connector propagates it as seller.designatedZone: true so PINT-AE emits the correct free-zone declaration.

Margin scheme (used cars, antiques, second-hand goods)

Configure the Tally stock item with Type of Supply = "Second-hand goods (Profit margin scheme)". The connector reads the flag and sends lines[].marginScheme: true. The margin, not the sale value, is used as the VAT base — matching FTA rules for margin-scheme traders.

Reverse charge on imports

Purchase vouchers from non-UAE suppliers with Nature of Transaction = "Purchase from Outside GCC — Reverse Charge" are mapped to invoiceType: "purchase" + taxCategory: "reverse_charge_designated_zone". TrustBill emits the required ReverseCharge markers.

B2C simplified tax invoices

Leave buyer.trn empty. Tally POS vouchers under 10,000 AED are simplified tax invoices under FTA rules; TrustBill emits the correct PINT-AE profile automatically based on the missing TRN + total < 10,000 AED.

Multi-company Tally installs

One Tally installation often holds many companies (one per legal entity). Each company = one TRN = one TrustBill tenant. Configure the connector with a companyMap section listing each Tally COMPANYGUID and its matching TrustBill API credential.

Error Handling

TrustBill errors follow the shape { code, humanMessage, meta? }. The Tally connector logs the code against the source voucher (via the TDL's TrustBillLog field) and either retries (transient) or surfaces the error in the Tally voucher screen (permanent).

HTTPTypical codeTally root causeAction
400invalid_bodyParty ledger missing TRN, or Nature of Transaction blank on a lineFix the ledger / voucher in Tally; connector auto-retries on next poll
400totals_mismatchTally rounding mode differs (e.g. voucher-level vs item-level rounding)Set Tally invoice rounding to "As per Invoice"
400unknown_tax_ledgerCustom-named VAT ledger not in the connector's mapping tableAdd the ledger name → taxCategory entry in the connector config
401missing_authorization_headerJWT expired between pollsAutomatic refresh — logged as INFO, no action needed
403kyb_requiredTenant not yet approved by TrustBill complianceContact TrustBill support
409invoice_mode_mismatchTally is posting live vouchers but tenant is still in sandboxSwitch mode in TrustBill dashboard
409invoice_number_duplicateTwo Tally companies share a voucher-numbering series that overlapsPrefix each company's voucher number (Tally: Voucher Types → Method of Numbering)
413bulk_payload_too_largeCSV export > 1,000 rows or > 5 MBSplit by date range and re-upload
422idempotency_requiredCustom middleware missed the headerAlways send Idempotency-Key derived from COMPANYGUID + VOUCHERGUID

Setup Checklist

  1. Enable UAE VAT localisation in Tally (F11 → Statutory & Taxation → United Arab Emirates)
  2. Fill in Company TRN and VAT registration date on the Tally company master
  3. Create your TrustBill SME account and complete KYB (upload trade licence + TRN certificate)
  4. Request a per-tenant API credential from TrustBill support
  5. Choose a connection method and install: TDL Plug-in (recommended), Windows Connector, or Connected Services (TallyPrime 5)
  6. Enable Tally XML gateway (F1 → Configure → Advanced → Client/Server → Server, port 9000) if using pull mode
  7. Map Tally VAT ledgers to TrustBill taxCategory values (one-time)
  8. Enable sandbox mode in the TrustBill dashboard
  9. Post a test Sales voucher in Tally — confirm it reaches acknowledged in TrustBill within 3 minutes
  10. Reconcile Tally's VAT Computation report against TrustBill's "Delivered invoices" report
  11. Switch to live mode when the FTA registration is complete
  12. Enable the TrustBill TDL write-back so acknowledgement refs appear inside the Tally voucher

Suggested test cases before go-live

  • B2B Sales voucher, single line, 5% VAT — expect acknowledged
  • POS Sales voucher under 10,000 AED with no buyer TRN — expect PINT-AE "simplified" profile
  • Credit Note referencing an earlier Sales voucher — expect matching pair
  • Export sale outside GCC, zero-rated — expect taxCategory: zero_rated_export
  • Sale to a designated-zone customer — expect reverse-charge markers
  • Multi-line voucher with mixed VAT rates (5% + 0%) — expect two taxCategory values
  • Duplicate voucher number across two Tally companies — expect invoice_number_duplicate
  • Bulk upload of 500 historical vouchers via CSV — expect partial success reported per row
  • Voucher alteration in Tally after submission — expect connector to raise a Credit Note automatically (if enabled)

Troubleshooting

SymptomLikely causeFix
Tally voucher never appears in TrustBillXML gateway not enabled, or company not loaded in TallyEnable the gateway (F1 → Configure → Server); load the target company
Windows Connector cannot reach TallyPort 9000 blocked by Windows firewall or Tally running as a different userAdd an inbound firewall rule; run Tally and the connector as the same Windows account
Invoice stuck in queuedInsufficient credit, or KYB rejectedCheck the TrustBill dashboard for a red banner; top up credit
Invoice reaches rejected with "buyer_trn_invalid"Party ledger TRN has spaces or is 14 digitsFix in Tally: Party Ledger → Statutory Info → TRN. Connector re-emits.
totals_mismatch on many vouchersTally rounding is item-level, TrustBill expects invoice-level (or vice-versa)In Tally: Voucher Type → Method of Rounding → "Round Off (Nearest)"
Arabic party names appear as ??? in PINT-AE XMLTally data path on a non-Unicode Windows installSet Windows system locale to Unicode (Control Panel → Region → Administrative)
TDL write-back not appearing on voucherTrustBill TDL not loaded, or user does not have "Alter voucher" permissionReload TDL from F1 → TDL Configuration → Load; grant permission in Security Control
Duplicate FTA submissions after a network blipIdempotency-Key not derived from VOUCHERGUIDConfirm the key formula is tally::COMPANYGUID::VOUCHERGUID
Connector picks up altered vouchers repeatedlyTally alters bump ALTERID but keep the same VOUCHERGUIDEnable the "Re-submit on alter" flag in the connector config (issues an automatic Credit Note + new Sales voucher pair)

Support & Contact

Technical Support

Escalation

For go-live escalations, include your TrustBill tenant ID, the Tally COMPANYGUID + VOUCHERGUID of the failing voucher, and the timestamp of the failed pipeline run. TrustBill support responds to Tally-tagged tickets within one business hour during UAE working days.