ClearTax Docs
Subscribe for Updates
  • Introduction to ClearTax APIs
  • ☁️Clear Finance Cloud
    • Introduction to Clear Finance Cloud
    • Learn Clear Finance Cloud Basics
      • API client
      • Access token
      • FTP client
      • How to get Custom Upload Template ID?
    • CFC API Reference
      • Resources and Masters
        • Sale Document Line Object
        • Purchase Document Line Object
      • Generate Access Token API
      • Ingestion API
        • Ingest Documents via File
          • Get Pre-signed URL
          • Upload File to Storage
          • Trigger File Ingestion
          • Get File Ingestion Status
        • (Deprecated) Ingest Documents via JSON
    • Notifications
  • 🇮🇳GLS API
    • GLS API Reference
      • Resources and Masters
      • Advanced Ingestion API Reference
        • Get Pre-signed URL
        • Upload File to Storage
        • Create Ingestion Activity
        • Get Ingestion Activity Status
  • 🇮🇳GST API
    • Introduction to GST API
    • GST 2.0 API Reference
      • Upload Documents
    • GST FTP Magnet
  • 🇮🇳Max ITC API
    • Introduction to Max ITC API
    • Getting Started with Max ITC API
    • Max ITC API Reference
      • Resources and Masters
        • Input and output templates
        • Error Code Master
        • Learn Max ITC API Architecture
      • Max ITC APIs
        • Fetch Max ITC Configuration
        • Upload Purchase Documents
          • Ingest PR via File
          • (Deprecated) Ingest PR via JSON
        • Trigger Max ITC Workflow
        • Get Max ITC Results
        • Postman Collection
    • Max ITC FTP Magnet
  • 🇮🇳TDS API
    • Introduction to TDS API
    • TDS API Reference
      • Resources and Masters
        • Deduction Document Line Objects
        • Output Template(Error)
      • TDS APIs
        • Upload Deductions
          • Ingest Deductions via File
            • Get Pre-signed URL
            • Upload File to Storage
            • Trigger File Ingestion
            • Get File Ingestion Status
          • (Deprecated) Ingest Deductions via JSON
  • 🇮🇳E-Invoicing API
    • Introduction to E-Invoicing API
    • Learn E-Invoicing API Basics
      • How to get E-Invoicing User Auth Token?
      • How to scan the E-Invoice QR code?
      • How to add GSTIN to E-Invoicing?
        • Clear IRP API Credentials
    • Learn E-waybill API Basics
    • E-Invoicing API Reference
      • Setting up your account
      • Clear Schema
        • Generate IRN
        • Cancel IRN
        • Get E-Invoice PDF
        • Get E-Invoice by IRN
        • Generate E-Waybill by IRN
        • Generate E-Waybill for Non-IRN documents
        • Bulk Generate E-Waybill for Non-IRN documents
        • Cancel E-Waybill
        • Get E-Waybill PDF
        • Update E-Waybill Transporter ID
        • Update E-Waybill Part-B
        • Extend E-Waybill Validity
        • Generate/Regenerate Consolidated EWB
        • Get Consolidated EWB PDF
        • Initiate Multi-Vehicle E-Waybills
        • Update EWB Status from NIC
        • Download E-waybills by Others
        • Get E-Waybill Download Status
        • Get E-Waybills
        • Get latest E-Waybill status from Government
        • Generate B2C Payment QR Code
          • Generate B2C Payment QR Code (Lite)
        • Get Signed PDF
        • Sign PDF API Base 64 Encoded
        • Send an E-Invoice via Email
        • Get Invoice Details
      • Government Schema
        • Generate IRN
        • Cancel IRN
        • Get Invoice by IRN
        • Generate E-Waybill by IRN
      • Resources and Masters
        • E-Invoice Object
        • Country Code Master
        • State Code Master
        • Pincode Master
        • Pincode State Mapping Pattern
        • Port Code Master
        • Currency Code Master
        • UQC Master
        • Tax Rates
        • Error Codes
    • E-Invoicing FTP Magnet
  • 🇮🇳Invoicing API
    • Invoicing API Reference
      • Create an Invoice
      • Create Document (Non-Sale)
      • Download PDF of a Document
      • Get Document details
      • Resources and Master
        • Country Master
        • State Master
        • Pincode Master
        • Port Master
        • Currency Master
        • Unit Master
        • Document Types
        • Supply Types
  • 🇲🇾E-INVOICING MALAYSIA API
    • E-Invoicing Malaysia API Reference
      • Resources and Masters
        • Error resolution guide
        • Frequently asked questions (FAQs)
        • E-Invoice Object
      • Generate Access Token API
      • Malaysia E-Invoicing APIs
        • Generate E-Invoice for a Document
        • Status Check for Submitted E-Invoice
        • Cancel E-Invoice
        • Upload E-Invoice
        • Get Documents
        • Get E-Invoice PDF
        • Get Document via UUID
        • Delete Invoice
        • Send Bulk Email
        • Search Taxpayer Tin API
  • E-Invoicing FTP Magnet (XML)
  • E-Invoicing FTP Magnet (Excel)
  • 🇸🇦E-Invoicing KSA API
    • Introduction to E-Invoicing KSA API
    • Learn E-Invoicing KSA API Basics
      • How to get E-Invoicing KSA Auth Token?
      • How to add a VAT number to KSA E-Invoicing Account?
      • How to add Branch for existing Vat to KSA E-Invoicing Account ?
      • How to register a device for a VAT?
      • How to generate OTP on ERAD Portal?
      • How to get Print Template ID?
      • KSA E-Invoicing Integration Architecture
    • E-Invoicing KSA API Reference
      • Resources and Masters
        • E-Invoice Object
        • Error Details Object
        • Data Types
        • Code Lists
        • Common Errors and Resolution
      • Authentication
      • Generate Access Token API
      • KSA E-Invoicing APIs
        • Generate E-Invoice
          • Additional Standard (B2B) E-Invoice Examples
          • Additional Simplified (B2C) E-Invoice Examples
        • Generate E-Invoice Async
        • Generate E-Invoice via XML
        • Send Signed E-Invoice XML To ZATCA
        • Get Bulk Invoice Lite
        • Get Invoice
        • Get E-Invoice PDF
        • Get E-Invoice PDF/A-3 with PDF API
        • Register Device
        • Get PCSID Generation Status
        • Renew PCSID
        • Generate E-Invoice (Phase I)
        • Generate QR Code (Phase I)
        • Generate Device ID
        • Generate CSID and PCSID
        • Send E-Invoice via Email
        • Add Business units API
    • E-Invoicing KSA FTP Magnet
    • E-Invoicing KSA XML reporting FTP Magnet
  • 🧩Add-ons and Extensions
    • SAP Add-on
      • SAP Connectivity Checklist
        • Steps to import SSL/TLS certificates in SAP
        • Steps to check ICM settings in SAP
        • Steps to test connectivity in SAP
        • Steps to troubleshoot connectivity issues in SAP
    • Tally Add-on
  • Microsoft Dynamics 365(F&O)
  • General
    • Go-Live Cutover Activity Checklist
    • How to check DNS resolution?
    • How to check hostname reachability?
    • How to check if hostname is trusted?
    • How to get the SSL certificate of a host?
  • ⭐GST GSP API
    • Introduction to GST GSP API
    • Getting Started with GST GSP API
    • GST GSP API Reference
      • Sample API
    • Migrating from Karvy GST GSP
  • ⭐E-Waybill GSP API
    • Introduction to E-Waybill GSP API
    • Getting Started with EWB GSP API
      • How to register EWB GSP on NIC?
      • Sandbox GSTIN for EWB GSP
    • E-Waybill GSP API Reference
      • Sample API
    • Migrating from Karvy EWB GSP
  • ⭐E-Invoicing GSP API
    • Introduction to E-Invoicing GSP API
    • Getting Started with EINV GSP API
      • How to register EINV GSP on IRP?
      • Sandbox GSTIN for EINV GSP
    • E-Invoicing GSP API Reference
      • Sample API
  • Subscribe for Updates
  • 🚫(Deprecated) GST 1.0 API
    • (Deprecated) Introduction to GST API
    • (Deprecated) Learn GST API Basics
    • (Deprecated) Getting Started with GST API
      • (Deprecated) How to set up ClearTax account?
      • (Deprecated) How to authenticate API requests?
      • (Deprecated) How to upload an invoice from File?
      • (Deprecated) How to create custom import template?
    • (Deprecated) GST 1.0 API Reference
      • Taxpayer Information
      • (Deprecated) Invoices
      • (Deprecated) Bills of Supply
      • (Deprecated) Credit Debit Notes (CDN)
      • (Deprecated) Advances
      • (Deprecated) Resources and Masters
        • (Deprecated) How to read GST error response
        • (Deprecated) Unit of Measurement master
        • (Deprecated) State master
        • (Deprecated) Document Classification/Section Name master
      • (Deprecated) Items
      • (Deprecated) Contacts
      • (Deprecated) GST File Upload API Reference
  • 🚫Deprecated E-Waybill API
    • (Deprecated) Introduction to E-Waybill API
    • (Deprecated) Learn E-Waybill API Basics
    • (Deprecated) Getting Started with E-Waybill API
    • (Deprecated) E-Waybill API Reference
      • (Deprecated) Resources and Masters
        • (Deprecated) Unit Master
        • (Deprecated) State Master
        • (Deprecated) Error Master
      • (Deprecated) E-Waybill JSON API Reference
        • (Deprecated) Generating E-Waybill
        • (Deprecated) Getting E-Waybill
        • (Deprecated) Updating E-Waybill
        • (Deprecated) Extending Validity of E-Waybill
        • (Deprecated) Multi-vehicle E-Waybill
        • (Deprecated) Printing E-Waybill
        • (Deprecated) Cancelling E-Waybill
        • (Deprecated) Generating Consolidated E-Waybill
        • (Deprecated) Getting Consolidated E-Waybill
        • (Deprecated) Regenerating Consolidated E-Waybill
        • (Deprecated) Printing Consolidated E-Waybill
      • (Deprecated) E-Waybill File Upload API Reference
        • (Deprecated) Creating or Updating Documents
        • (Deprecated) Getting Upload Status
        • (Deprecated) Getting Upload Validation
        • (Deprecated) Getting Upload History
        • (Deprecated) Rate Limiting & Best Practices
    • (Deprecated) E-Waybill FTP Magnet
Powered by GitBook
On this page
  • 1.1 Request Method
  • 1.2 Request URL
  • 1.3 Request Headers
  • 1.4 Request Path Params
  • 1.5 Request Query Params
  • 1.6 Request Body
  • 1.6.1 Requirement of Critical Fields
  • 1.7 Sample Request
  • 1.8 Response Status Codes
  • 1.9 Response Schema
  • 1.9.1 Validation Results Object
  • 1.9.2 infoMessages/warningMessages/errorMessages Object
  • 1.10 Sample Response (Success with warning)
  • 1.11 Sample Response (Client Error)
  • 1.12 Sample Response (Server Error) - status code 500
  • 1.13 API Validations
  • 1.14 API Constraints

Was this helpful?

  1. E-Invoicing KSA API
  2. E-Invoicing KSA API Reference
  3. KSA E-Invoicing APIs

Send Signed E-Invoice XML To ZATCA

PreviousGenerate E-Invoice via XMLNextGet Bulk Invoice Lite

Last updated 7 months ago

Was this helpful?

Send a valid signed E-Invoice XML file to ZATCA for clearance or reporting.

1.1 Request Method

POST

1.2 Request URL

{{BASE_URL}}/v2/einvoices/generate-with-file-offline

Replace the {{BASE_URL}} with the one mentioned based on whether you are using sandbox or production.

Rate Limit : 1000 API requests per minute

1.3 Request Headers

Parameter
Data Type
Field Validations
Description

x-cleartax-auth-token

String

Cannot be empty

Mandatory. User auth token.

vat

String

Cannot be empty

Mandatory. VAT or Group VAT of the entity.

device-id

String

MaxLength: 36

Mandatory. The Device ID registered with ClearTax.

1.4 Request Path Params

Parameter
Data Type
Field Validations
Description

1.5 Request Query Params

Parameter
Data Type
Field Validations
Description

1.6 Request Body

Parameter
Data Type
Field Validations
Description

file

form-data

NA

1.6.1 Requirement of Critical Fields

Fields
Comments

UUID

Mandatory. A Universal Unique Identifier is a 128-bit value used to uniquely identify an object or entity on the internet.

ICV

Mandatory. This is an atomically increasing counter.

PIH

Mandatory. Previous Invoice Hash. Hash code of the previous invoice has to be sent.

InvoiceHash

Mandatory. Hash value of current invoice xml by removing tags <ext:UBLExtensions>,

<cac:AdditionalDocumentReference:QRCode>

1.7 Sample Request

Request Body

1.8 Response Status Codes

HTTP Status Code
Description

200

For any complete operation - pass / warning / error

400

-

401

If the user is not authenticated for the operation

403

If the user is not authorized for the operation

429

Too Many Requests

5xx

Unhandled exception

1.9 Response Schema

Parameter
Data Type
Field Validations
Description

validationResults

Object

Cannot be null

Refer below

clearedInvoice

String

-

For clearance, this field will have a base64 encoded cleared XML as string

For reported, this will be null

clearanceStatus

String

REPORTED / NOT_REPORTED / ACCEPTED_WITH_WARNING / CLEARED / NOT_CLEARED, PENDING

For clearance: CLEARED, NOT_CLEARED, ACCEPTED_WITH_WARNING, PENDING

For reported: REPORTED, NOT_REPORTED, ACCEPTED_WITH_WARNING, PENDING

1.9.1 Validation Results Object

Parameter
Data Type
Field Validations
Description

infoMessages

Array of Object

Cannot be null or empty

Will always have some info. Refer below for the structure.

warningMessages

Array of Object

Cannot be null or empty

This array is not empty in case of any warning at the time of reporting/clearance. Refer below for the structure.

errorMessages

Array of Object

Cannot be null or empty

This array is not empty in case of any error at the time of reporting/clearance. Refer below for the structure.

status

String

PASS / WARNING / ERROR

Indicates the response status of the complete API.

1.9.2 infoMessages/warningMessages/errorMessages Object

Parameter
Data Type
Field Validations
Description

type

String

INFO / WARNING / ERROR are the possible values

Indicates the type of the message object

code

String

Cannot be null

ZATCA specific code to identify the message object

category

String

Cannot be null

ZATCA specific category to identify the message object

message

String

Cannot be null

ZATCA specific message

status

String

PASS / WARNING / ERROR

PASS - infoMessages WARNING - warningMessages ERROR - errorMessages

1.10 Sample Response (Success with warning)

{
    "validationResults": {
        "infoMessages": [
            {
                "type": "INFO",
                "code": "XSD_ZATCA_VALID",
                "category": "XSD validation",
                "message": "Complied with UBL 2.1 standards in line with ZATCA specifications",
                "status": "PASS"
            }
        ],
        "warningMessages": [
            {
                "type": "WARNING",
                "code": "BR-KSA-37",
                "category": "KSA",
                "message": "The seller address building number must contain 4 digits.",
                "status": "WARNING"
            },
            {
                "type": "WARNING",
                "code": "BR-KSA-64",
                "category": "KSA",
                "message": "Seller Address Additional number (KSA-23) must be 4 digits.",
                "status": "WARNING"
            }
        ],
        "errorMessages": [],
        "status": "WARNING"
    },
    "clearedInvoice": null,
    "clearanceStatus": "REPORTED"
}

1.11 Sample Response (Client Error)

{
    "validationResults": {
        "infoMessages": [
            {
                "type": "INFO",
                "code": "XSD_ZATCA_VALID",
                "category": "XSD validation",
                "message": "Complied with UBL 2.1 standards in line with ZATCA specifications",
                "status": "PASS"
            }
        ],
        "warningMessages": [],
        "errorMessages": [
            {
                "type": "ERROR",
                "code": "BR-KSA-64",
                "category": "KSA",
                "message": "Seller Address Additional number (KSA-23) must be 4 digits.",
                "status": "ERROR"
            },
            {
                "type": "ERROR",
                "code": "invoiceHash_QRCODE_INVALID",
                "category": "QRCODE_VALIDATION",
                "message": "Invoice xml hash does not match with qr code invoice xml hash",
                "status": "ERROR"
            }
        ],
        "status": "ERROR"
    },
    "clearedInvoice": null,
    "clearanceStatus": "NOT_REPORTED"
}

1.12 Sample Response (Server Error) - status code 500

{
    "ErrorList": [
        {
            "ErrorCode": "30040102",
            "ErrorMessage": "Was not able to report the invoice. Please try again later",
            "ErrorSource": "CLEARTAX"
        }
    ]
}

1.13 API Validations

There are no validations from Clear for this API.

1.14 API Constraints

  1. This API needs to be authenticated with a valid user authentication token. If the Authentication token is not present or is invalid, the API will return HTTP Status Code 401.

  2. Each customer is allowed to send a limited number of requests per minute to prevent server overload. If the limit is exceeded, the server will respond with a 429 Too Many Requests status code.

  3. If the Authentication token is valid, but the user does not have the authorization to generate device ID, then the API will return HTTP Status Code 403. The user, whose Authentication token is used, should have an “Admin” role for the particular VAT used in the request.

Mandatory. The XML file as per ZATCA specification. Example:

🇸🇦
here
Reporting Signed XML
Reporting Signed XML