Welcome to Zuora Product Documentation

Explore our rich library of product information

XPath syntax for e-invoicing response field mapping

An overview of using XPath syntax for mapping fields in e-invoicing responses, including examples and supported service providers.

The XML Path Language (XPath) syntax is used in the Field Path field in e-invoicing response field mappings. An XPath string indicates an XML node in the XML-formatted response payload from the service provider or the XML file extracted from the tax authority.

E-invoicing service providers that support XPath syntax are as follows:

  • Avalara

  • Sovos

For more information about e-invoicing response field mapping, see the following articles:

The later sections of this article use the following snippet as an example to help you understand the XPath syntax. This snippet is extracted from the Sovos’ response payload sample.

<ApplicationResponse>
    <ext:UBLExtensions>
        <ext:UBLExtension>
            <ext:ExtensionContent>
                <ad:AdditionalData>
                    <ad:Field name="SdiId" type="FormalIdentifier">a2c73…10b31
                    </ad:Field>
                    …
                </ad:AdditionalData>
            </ext:ExtensionContent>
        </ext:UBLExtension>
    </ext:UBLExtensions>
    …
    <cac:DocumentResponse>
        …
        <cac:DocumentReference>
            <cbc:ID>JqYyq…cKje</cbc:ID>
            <cbc:DocumentTypeCode>LegalCleared</cbc:DocumentTypeCode>
            <cac:Attachment>
                <cbc:EmbeddedDocumentBinaryObject>ZXlKaGJH…nN3c=
                </cbc:EmbeddedDocumentBinaryObject>
            </cac:Attachment>
        </cac:DocumentReference>
        <cac:DocumentReference>
            <cbc:ID>JqYyq…CUcs</cbc:ID>
            <cbc:DocumentTypeCode>Legal</cbc:DocumentTypeCode>
            <cac:Attachment>
                <cbc:EmbeddedDocumentBinaryObject>ZXlKaGJH…kQQ==
                </cbc:EmbeddedDocumentBinaryObject>
            </cac:Attachment>
        </cac:DocumentReference>
    </cac:DocumentResponse>
</ApplicationResponse>

Commonly used expressions

The following table lists some commonly used expressions in XPath:

Expression

Description

Example

Result

/

Selects from the root node

/ApplicationResponse

Selects the root node ApplicationResponse

/ApplicationResponse/cac:DocumentResponse

Selects all cac:DocumentResponse nodes that are children of ApplicationResponse

//

Selects nodes from the current node that match the selection no matter where they are

//cac:DocumentReference

Selects all cac:DocumentReference nodes in the document

/ApplicationResponse//cac:DocumentReference

Selects all cac:DocumentReference nodes that are descendants of the root node ApplicationResponse

@

Selects attributes

@type

Selects all attributes that are named type

[]

Applies a filter to the current node

//cac:DocumentReference[cbc:DocumentTypeCode=DocumentTypeCode]

Selects all cac:DocumentReference nodes that have a cbc:DocumentTypeCode child node with the value of DocumentTypeCode

//ad:Field[@name=’SdiId’]

Selects all ad:Field nodes that have a name attribute with the value of SdiId

*

Matches any element node

//cac:DocumentReference/*

Selects all the children of cac:DocumentReference

text()

Selects the text of the current node

//ad:Field/text()

Selects the text of each ad:Field node

Note: For more information about XPath syntax, see XPath Tutorial.

Field path examples

The following table lists the field path examples for some commonly used fields:

Field name

Field path

Selected content

EInvoiceFile

//cac:DocumentReference[cbc:DocumentTypeCode='LegalCleared']/cac:Attachment/cbc:EmbeddedDocumentBinaryObject/text()

ZXlKaGJH…nN3c=

ReferenceNumber

//ad:Field[@name='SdiId']/text()

a2c73…10b31

See the following articles for more examples of each e-invoicing service provider: