---
title: "Issue invoices"
method: POST
path: "/zatca/simplified-invoices/bulk-issue/"
tags: ["Simplified Invoice"]
---

# Issue invoices

`POST /zatca/simplified-invoices/bulk-issue/`

## Request

- Base URL: `https://api.wafeq.com/v1`
- URL: `https://api.wafeq.com/v1/zatca/simplified-invoices/bulk-issue/`
- Auth: API key in header `Authorization`

Issues multiple simplified invoices and automatically queues reporting for each document.

Accepts the same array payload as `bulk-report`. Validates the whole payload before allocating document counters. Returns `202 Accepted` with document details and QR codes in request order, after saving signed XML. XML is not embedded in the JSON response. Use each document ID with the existing `download` endpoint (`type=xml` or `type=pdf`); PDFs render on demand or in the background.

The response confirms local validation and issuance, not acceptance by ZATCA. Follow each document through retrieval or webhooks. Downloads and reporting retries use the original signed XML and QR code, including during ZATCA outages. Sending through `channels` is queued after issuance and does not wait for successful reporting. Delivery retries preserve completed channels.

Available only for simplified documents. The existing `bulk-report` endpoint retains its asynchronous reporting contract and response shape.

## Headers

- `X-ZATCA-Branch` string
- `X-ZATCA-Connected-Account-Id` string
- `X-ZATCA-Environment` string

## Request body

- ApiV1ZatcaSimplifiedInvoiceReportWrite[]
  - `channels` ApiChannel[]: The channels to send the document
    - `data` ApiChannelEmail, required: An email to send, with its subject, message, and recipients.
      - `message` string, required: The body of the email.
      - `recipients` ApiChannelEmailRecipients, required: The recipients of an email.
        - `bcc` string[]: The email addresses to blind copy on the email.
        - `cc` string[]: The email addresses to copy on the email.
        - `to` string[], required: The email addresses to send the email to.
      - `subject` string, required: The subject of the email.
    - `medium` 'email', required: Communication medium used to send a document. [View the enum reference](mediumenum)
  - `document` ApiV1ZatcaSimplifiedInvoiceReportDocumentWrite, required: The content of a simplified tax invoice to report to ZATCA.
    - `charges` ApiV1ZatcaDocumentReportChargeWrite[]: Charges applied to the document
      - `amount` number, double: The amount of the discount or charge
      - `base_amount` number, double: The amount on which the charge percentage is applied
      - `percent` number, double: The percent of the charge
      - `reason` 'AA' | 'AAA' | 'AAC' | 'AAD' | 'AAE' | 'AAF' | 'AAH' | 'AAI' | 'AAS' | 'AAT' | 'AAV' | 'AAY' | 'AAZ' | 'ABA' | 'ABB' | 'ABC' | 'ABD' | 'ABF' | 'ABK' | 'ABL' | 'ABN' | 'ABR' | 'ABS' | 'ABT' | 'ABU' | 'ACF' | 'ACG' | 'ACH' | 'ACI' | 'ACJ' | 'ACK' | 'ACL' | 'ACM' | 'ACS' | 'ADC' | 'ADE' | 'ADJ' | 'ADK' | 'ADL' | 'ADM' | 'ADN' | 'ADO' | 'ADP' | 'ADQ' | 'ADR' | 'ADT' | 'ADW' | 'ADY' | 'ADZ' | 'AEA' | 'AEB' | 'AEC' | 'AED' | 'AEF' | 'AEH' | 'AEI' | 'AEJ' | 'AEK' | 'AEL' | 'AEM' | 'AEN' | 'AEO' | 'AEP' | 'AES' | 'AET' | 'AEU' | 'AEV' | 'AEW' | 'AEX' | 'AEY' | 'AEZ' | 'AJ' | 'AU' | 'CA' | 'CAB' | 'CAD' | 'CAE' | 'CAF' | 'CAI' | 'CAJ' | 'CAK' | 'CAL' | 'CAM' | 'CAN' | 'CAO' | 'CAP' | 'CAQ' | 'CAR' | 'CAS' | 'CAT' | 'CAU' | 'CAV' | 'CAW' | 'CD' | 'CG' | 'CS' | 'CT' | 'DAB' | 'DAD' | 'DL' | 'EG' | 'EP' | 'ER' | 'FAA' | 'FAB' | 'FAC' | 'FC' | 'FH' | 'FI' | 'GAA' | 'HAA' | 'HD' | 'HH' | 'IAA' | 'IAB' | 'ID' | 'IF' | 'IR' | 'IS' | 'KO' | 'L1' | 'LA' | 'LAA' | 'LAB' | 'LF' | 'MAE' | 'MI' | 'ML' | 'NAA' | 'OA' | 'PA' | 'PAA' | 'PC' | 'PL' | 'RAB' | 'RAC' | 'RAD' | 'RAF' | 'RE' | 'RF' | 'RH' | 'RV' | 'SA' | 'SAA' | 'SAD' | 'SAE' | 'SAI' | 'SG' | 'SH' | 'SM' | 'SU' | 'TAB' | 'TAC' | 'TT' | 'TV' | 'V1' | 'V2' | 'WH' | 'XAA' | 'YY', required: The UNTDID 7161 code identifying the reason for a charge. [View the enum reference](chargereasoncodeenum)
      - `reason_text` string: Free-text description of the charge. Defaults to the description of the reason code.
      - `tax` ApiV1ZatcaDocumentReportTaxWrite, required: The tax category, rate, and exemption reason applied to an amount of a ZATCA document.
        - `exemption_reason` 'VATEX-SA-29' | 'VATEX-SA-29-7' | 'VATEX-SA-30' | 'VATEX-SA-32' | 'VATEX-SA-32(bis)' | 'VATEX-SA-33' | 'VATEX-SA-34-1' | 'VATEX-SA-34-2' | 'VATEX-SA-34-3' | 'VATEX-SA-34-4' | 'VATEX-SA-34-5' | 'VATEX-SA-35' | 'VATEX-SA-36' | 'VATEX-SA-DIPLOMAT' | 'VATEX-SA-DUTYFREE' | 'VATEX-SA-EDU' | 'VATEX-SA-HEA' | 'VATEX-SA-MLTRY' | 'VATEX-SA-OOS' | 'VATEX-SA-ROYALDECREE': ZATCA tax exemption reason code. [View the enum reference](exemptionreasonenum)
        - `exemption_reason_text` string: The reason an out-of-scope (`O`) amount is outside the scope of VAT, sent as written with the code `VATEX-SA-OOS`. Without it, the reason sent is `exemption_reason`, or else "Supply outside the scope of VAT" in both languages, the document language first.
        - `percent` number, double, required: The percent of the tax (e.g. 15)
        - `type` 'E' | 'O' | 'S' | 'Z', required: The UNTDID 5305 VAT category code applied to a tax amount. [View the enum reference](taxcategorycodeenum)
    - `created_ts` string, date-time: The UTC creation time of the source document. Determines its payable-rounding policy; omitted values use the submission time.
    - `currency` 'AED' | 'SAR' | 'USD' | 'EUR' | 'CAD' | 'AFN' | 'ALL' | 'AMD' | 'ARS' | 'AUD' | 'AZN' | 'BAM' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BND' | 'BOB' | 'BRL' | 'BWP' | 'BYN' | 'BZD' | 'CDF' | 'CHF' | 'CLP' | 'CNY' | 'COP' | 'CRC' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'GBP' | 'GEL' | 'GHS' | 'GNF' | 'GTQ' | 'HKD' | 'HNL' | 'HRK' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KHR' | 'KMF' | 'KRW' | 'KWD' | 'KZT' | 'LBP' | 'LKR' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MOP' | 'MUR' | 'MXN' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SDG' | 'SEK' | 'SGD' | 'SOS' | 'SYP' | 'THB' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'UYU' | 'UZS' | 'VES' | 'VND' | 'XAF' | 'XOF' | 'YER' | 'ZAR' | 'ZMW', required: An ISO 4217 currency code. [View the enum reference](currencyenum)
    - `customer` ApiV1ZatcaDocumentReportCustomerSimplifiedWrite, required: The customer of a simplified ZATCA document.
      - `address` ApiV1ZatcaDocumentReportSimplifiedCustomerAddressWrite: An optional customer address on a simplified ZATCA document. Only the country is required when an address is supplied.
        - `additional_street` string: The second line of the customer address, if supplied
        - `building` string: The customer building number, if supplied
        - `city` string: The customer city, if supplied
        - `country` 'AD' | 'AE' | 'AF' | 'AG' | 'AI' | 'AL' | 'AM' | 'AO' | 'AQ' | 'AR' | 'AS' | 'AT' | 'AU' | 'AW' | 'AX' | 'AZ' | 'BA' | 'BB' | 'BD' | 'BE' | 'BF' | 'BG' | 'BH' | 'BI' | 'BJ' | 'BL' | 'BM' | 'BN' | 'BO' | 'BQ' | 'BR' | 'BS' | 'BT' | 'BV' | 'BW' | 'BY' | 'BZ' | 'CA' | 'CC' | 'CD' | 'CF' | 'CG' | 'CH' | 'CI' | 'CK' | 'CL' | 'CM' | 'CN' | 'CO' | 'CR' | 'CU' | 'CV' | 'CW' | 'CX' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DK' | 'DM' | 'DO' | 'DZ' | 'EC' | 'EE' | 'EG' | 'EH' | 'ER' | 'ES' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FM' | 'FO' | 'FR' | 'GA' | 'GB' | 'GD' | 'GE' | 'GF' | 'GG' | 'GH' | 'GI' | 'GL' | 'GM' | 'GN' | 'GP' | 'GQ' | 'GR' | 'GS' | 'GT' | 'GU' | 'GW' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IE' | 'IL' | 'IM' | 'IN' | 'IO' | 'IQ' | 'IR' | 'IS' | 'IT' | 'JE' | 'JM' | 'JO' | 'JP' | 'KE' | 'KG' | 'KH' | 'KI' | 'KM' | 'KN' | 'KP' | 'KR' | 'KW' | 'KY' | 'KZ' | 'LA' | 'LB' | 'LC' | 'LI' | 'LK' | 'LR' | 'LS' | 'LT' | 'LU' | 'LV' | 'LY' | 'MA' | 'MC' | 'MD' | 'ME' | 'MF' | 'MG' | 'MH' | 'MK' | 'ML' | 'MM' | 'MN' | 'MO' | 'MP' | 'MQ' | 'MR' | 'MS' | 'MT' | 'MU' | 'MV' | 'MW' | 'MX' | 'MY' | 'MZ' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NL' | 'NO' | 'NP' | 'NR' | 'NU' | 'NZ' | 'OM' | 'PA' | 'PE' | 'PF' | 'PG' | 'PH' | 'PK' | 'PL' | 'PM' | 'PN' | 'PR' | 'PS' | 'PT' | 'PW' | 'PY' | 'QA' | 'RE' | 'RO' | 'RS' | 'RU' | 'RW' | 'SA' | 'SB' | 'SC' | 'SD' | 'SE' | 'SG' | 'SH' | 'SI' | 'SJ' | 'SK' | 'SL' | 'SM' | 'SN' | 'SO' | 'SR' | 'SS' | 'ST' | 'SV' | 'SX' | 'SY' | 'SZ' | 'TC' | 'TD' | 'TF' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TL' | 'TM' | 'TN' | 'TO' | 'TR' | 'TT' | 'TV' | 'TW' | 'TZ' | 'UA' | 'UG' | 'UM' | 'US' | 'UY' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'YE' | 'YT' | 'ZA' | 'ZM' | 'ZW' | '1A' | 'XI', required: A country or territory code accepted by ZATCA for a document party address. [View the enum reference](countrycodeenum)
        - `district` string: The customer district, if supplied
        - `postal_code` string: The customer postal code, if supplied
        - `province` string: The customer province or state, if supplied
        - `street` string: The customer street, if supplied
      - `identification` ApiV1ZatcaDocumentReportCustomerIdentificationWrite: An identification of the customer of a ZATCA document, such as a national ID or commercial registration.
        - `type` 'CRN' | 'GCC' | 'IQA' | 'MLS' | 'SAG' | 'MOM' | 'NAT' | '700' | 'OTH' | 'PAS' | 'TIN', required: The identifier type used for the customer party in an e-invoice. [View the enum reference](customerpartyidentificationenum)
        - `value` string, required: Value of the identification method
      - `name` string: The customer name, required for simplified summaries and VATEX-SA-EDU (education) or VATEX-SA-HEA (healthcare) exemptions
      - `tax_registration_number` string: The tax registration number of the customer
    - `discounts` ApiV1ZatcaDocumentReportDiscountWrite[]: Discounts applied to the document
      - `amount` number, double: The total discount amount, including tax when the document uses tax-inclusive prices.
      - `base_amount` number, double: The amount on which the discount percentage is applied
      - `percent` number, double: The percent of the discount
      - `reason` '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13' | '14' | '15' | '16' | '17' | '18' | '19' | '20' | '21' | '22' | '23' | '24' | '25' | '26' | '27' | '28' | '29' | '30' | '31' | '32' | '33' | '34' | '35' | '36' | '37' | '38' | '39' | '40' | '41' | '42' | '44' | '45' | '46' | '47' | '48' | '49' | '50' | '51' | '52' | '53' | '54' | '55' | '56' | '57' | '58' | '59' | '60' | '61' | '62' | '63' | '64' | '65' | '66' | '67' | '68' | '69' | '70' | '71' | '72' | '73' | '74' | '75' | '76' | '77' | '78' | '79' | '80' | '81' | '82' | '83' | '84' | '85' | '86' | '87' | '88' | '89' | '90' | '91' | '92' | '93' | '94' | '95' | '96' | '97' | '98' | '99' | '100' | '101' | '102' | '103' | '104' | '105', required: The UNTDID 5189 code identifying the reason for a discount or allowance. [View the enum reference](discountreasoncodeenum)
      - `tax` ApiV1ZatcaDocumentReportTaxWrite, required: The tax category, rate, and exemption reason applied to an amount of a ZATCA document.
        - `exemption_reason` 'VATEX-SA-29' | 'VATEX-SA-29-7' | 'VATEX-SA-30' | 'VATEX-SA-32' | 'VATEX-SA-32(bis)' | 'VATEX-SA-33' | 'VATEX-SA-34-1' | 'VATEX-SA-34-2' | 'VATEX-SA-34-3' | 'VATEX-SA-34-4' | 'VATEX-SA-34-5' | 'VATEX-SA-35' | 'VATEX-SA-36' | 'VATEX-SA-DIPLOMAT' | 'VATEX-SA-DUTYFREE' | 'VATEX-SA-EDU' | 'VATEX-SA-HEA' | 'VATEX-SA-MLTRY' | 'VATEX-SA-OOS' | 'VATEX-SA-ROYALDECREE': ZATCA tax exemption reason code. [View the enum reference](exemptionreasonenum)
        - `exemption_reason_text` string: The reason an out-of-scope (`O`) amount is outside the scope of VAT, sent as written with the code `VATEX-SA-OOS`. Without it, the reason sent is `exemption_reason`, or else "Supply outside the scope of VAT" in both languages, the document language first.
        - `percent` number, double, required: The percent of the tax (e.g. 15)
        - `type` 'E' | 'O' | 'S' | 'Z', required: The UNTDID 5305 VAT category code applied to a tax amount. [View the enum reference](taxcategorycodeenum)
    - `document_number` string, required: The document number
    - `indicators` IndicatorsEnum[]: Special properties of the document. SELF_BILLING requires a VAT-registered customer, is only available for standard documents, and cannot be combined with EXPORT. [View the enum reference](indicatorsenum)
    - `line_items` ApiV1ZatcaDocumentLineWrite[], required: Line items of the document
      - `charges` ApiV1ZatcaDocumentReportLineChargeWrite[]: Charges applied to the line item
        - `amount` number, double: The amount of the discount or charge
        - `base_amount` number, double: The amount on which the charge percentage is applied
        - `percent` number, double: The percent of the charge
        - `reason` 'AA' | 'AAA' | 'AAC' | 'AAD' | 'AAE' | 'AAF' | 'AAH' | 'AAI' | 'AAS' | 'AAT' | 'AAV' | 'AAY' | 'AAZ' | 'ABA' | 'ABB' | 'ABC' | 'ABD' | 'ABF' | 'ABK' | 'ABL' | 'ABN' | 'ABR' | 'ABS' | 'ABT' | 'ABU' | 'ACF' | 'ACG' | 'ACH' | 'ACI' | 'ACJ' | 'ACK' | 'ACL' | 'ACM' | 'ACS' | 'ADC' | 'ADE' | 'ADJ' | 'ADK' | 'ADL' | 'ADM' | 'ADN' | 'ADO' | 'ADP' | 'ADQ' | 'ADR' | 'ADT' | 'ADW' | 'ADY' | 'ADZ' | 'AEA' | 'AEB' | 'AEC' | 'AED' | 'AEF' | 'AEH' | 'AEI' | 'AEJ' | 'AEK' | 'AEL' | 'AEM' | 'AEN' | 'AEO' | 'AEP' | 'AES' | 'AET' | 'AEU' | 'AEV' | 'AEW' | 'AEX' | 'AEY' | 'AEZ' | 'AJ' | 'AU' | 'CA' | 'CAB' | 'CAD' | 'CAE' | 'CAF' | 'CAI' | 'CAJ' | 'CAK' | 'CAL' | 'CAM' | 'CAN' | 'CAO' | 'CAP' | 'CAQ' | 'CAR' | 'CAS' | 'CAT' | 'CAU' | 'CAV' | 'CAW' | 'CD' | 'CG' | 'CS' | 'CT' | 'DAB' | 'DAD' | 'DL' | 'EG' | 'EP' | 'ER' | 'FAA' | 'FAB' | 'FAC' | 'FC' | 'FH' | 'FI' | 'GAA' | 'HAA' | 'HD' | 'HH' | 'IAA' | 'IAB' | 'ID' | 'IF' | 'IR' | 'IS' | 'KO' | 'L1' | 'LA' | 'LAA' | 'LAB' | 'LF' | 'MAE' | 'MI' | 'ML' | 'NAA' | 'OA' | 'PA' | 'PAA' | 'PC' | 'PL' | 'RAB' | 'RAC' | 'RAD' | 'RAF' | 'RE' | 'RF' | 'RH' | 'RV' | 'SA' | 'SAA' | 'SAD' | 'SAE' | 'SAI' | 'SG' | 'SH' | 'SM' | 'SU' | 'TAB' | 'TAC' | 'TT' | 'TV' | 'V1' | 'V2' | 'WH' | 'XAA' | 'YY', required: The UNTDID 7161 code identifying the reason for a charge. [View the enum reference](chargereasoncodeenum)
        - `reason_text` string: Free-text description of the charge. Defaults to the description of the reason code.
      - `description` string, required: The description of the line item
      - `discounts` ApiV1ZatcaDocumentReportLineDiscountWrite[]: Discounts applied to the line item
        - `amount` number, double: The total discount amount, including tax when the document uses tax-inclusive prices.
        - `base_amount` number, double: The amount on which the discount percentage is applied
        - `percent` number, double: The percent of the discount
        - `reason` '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13' | '14' | '15' | '16' | '17' | '18' | '19' | '20' | '21' | '22' | '23' | '24' | '25' | '26' | '27' | '28' | '29' | '30' | '31' | '32' | '33' | '34' | '35' | '36' | '37' | '38' | '39' | '40' | '41' | '42' | '44' | '45' | '46' | '47' | '48' | '49' | '50' | '51' | '52' | '53' | '54' | '55' | '56' | '57' | '58' | '59' | '60' | '61' | '62' | '63' | '64' | '65' | '66' | '67' | '68' | '69' | '70' | '71' | '72' | '73' | '74' | '75' | '76' | '77' | '78' | '79' | '80' | '81' | '82' | '83' | '84' | '85' | '86' | '87' | '88' | '89' | '90' | '91' | '92' | '93' | '94' | '95' | '96' | '97' | '98' | '99' | '100' | '101' | '102' | '103' | '104' | '105', required: The UNTDID 5189 code identifying the reason for a discount or allowance. [View the enum reference](discountreasoncodeenum)
      - `identifiers` ApiV1ZatcaDocumentLineIdentifiersWrite: Optional customer, supplier, and standard identifiers for a ZATCA line item.
        - `customer_id` string: The customer-assigned item code, if supplied
        - `standard_id` ApiV1ZatcaDocumentLineStandardItemIdentifierWrite: A registered item code and the scheme used to identify its code system.
          - `scheme` string, required: The code system for the standard item identifier, for example GTIN
          - `value` string, required: The non-empty standard item code
        - `supplier_id` string: The supplier-assigned item code, if supplied
      - `item` string, required: The name of the line item
      - `quantity` number, double, required: The quantity of the line item
      - `tax` ApiV1ZatcaDocumentReportTaxWrite, required: The tax category, rate, and exemption reason applied to an amount of a ZATCA document.
        - `exemption_reason` 'VATEX-SA-29' | 'VATEX-SA-29-7' | 'VATEX-SA-30' | 'VATEX-SA-32' | 'VATEX-SA-32(bis)' | 'VATEX-SA-33' | 'VATEX-SA-34-1' | 'VATEX-SA-34-2' | 'VATEX-SA-34-3' | 'VATEX-SA-34-4' | 'VATEX-SA-34-5' | 'VATEX-SA-35' | 'VATEX-SA-36' | 'VATEX-SA-DIPLOMAT' | 'VATEX-SA-DUTYFREE' | 'VATEX-SA-EDU' | 'VATEX-SA-HEA' | 'VATEX-SA-MLTRY' | 'VATEX-SA-OOS' | 'VATEX-SA-ROYALDECREE': ZATCA tax exemption reason code. [View the enum reference](exemptionreasonenum)
        - `exemption_reason_text` string: The reason an out-of-scope (`O`) amount is outside the scope of VAT, sent as written with the code `VATEX-SA-OOS`. Without it, the reason sent is `exemption_reason`, or else "Supply outside the scope of VAT" in both languages, the document language first.
        - `percent` number, double, required: The percent of the tax (e.g. 15)
        - `type` 'E' | 'O' | 'S' | 'Z', required: The UNTDID 5305 VAT category code applied to a tax amount. [View the enum reference](taxcategorycodeenum)
      - `unit_of_measure` string: The unit of measure of the line item
      - `unit_price` number, double, required: The price of the line item per unit amount
    - `note` string: Additional information about the document
    - `payment_means` ApiV1ZatcaDocumentReportPaymentMeansOptionalWrite: The payment means of a ZATCA document, such as bank transfer or cash. A code is required when account ID or payment terms are provided.
      - `account_id` string: The account number, IBAN, to which the transfer should be made. In the case of factoring this account is owned by the factor.
      - `code` '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13' | '14' | '15' | '16' | '17' | '18' | '19' | '20' | '21' | '22' | '23' | '24' | '25' | '26' | '27' | '28' | '29' | '30' | '31' | '32' | '33' | '34' | '35' | '36' | '37' | '38' | '39' | '40' | '41' | '42' | '43' | '44' | '45' | '46' | '47' | '48' | '49' | '50' | '51' | '52' | '53' | '54' | '55' | '56' | '57' | '58' | '59' | '60' | '61' | '62' | '63' | '64' | '65' | '66' | '67' | '68' | '70' | '74' | '75' | '76' | '77' | '78' | '91' | '92' | '93' | '94' | '95' | '96' | '97': The UNTDID 4461 code identifying the payment method. [View the enum reference](paymentmeanscodeenum)
      - `payment_terms` string: The payment terms, if mode of payment is credit. Free text
    - `prepayments` ApiV1ZatcaDocumentPrepaymentLineWrite[]: Pre-payments used to partially pay this document
      - `amount` number, double, required: The amount from prepayment used at this tax rate
      - `issue_datetime` string, date-time, required: The issue datetime in UTC of the prepayment. Acts as a fallback for prepayments that were not reported.
      - `reference` string, required: The prepayment invoice number
      - `tax` ApiV1ZatcaDocumentReportTaxWrite, required: The tax category, rate, and exemption reason applied to an amount of a ZATCA document.
        - `exemption_reason` 'VATEX-SA-29' | 'VATEX-SA-29-7' | 'VATEX-SA-30' | 'VATEX-SA-32' | 'VATEX-SA-32(bis)' | 'VATEX-SA-33' | 'VATEX-SA-34-1' | 'VATEX-SA-34-2' | 'VATEX-SA-34-3' | 'VATEX-SA-34-4' | 'VATEX-SA-34-5' | 'VATEX-SA-35' | 'VATEX-SA-36' | 'VATEX-SA-DIPLOMAT' | 'VATEX-SA-DUTYFREE' | 'VATEX-SA-EDU' | 'VATEX-SA-HEA' | 'VATEX-SA-MLTRY' | 'VATEX-SA-OOS' | 'VATEX-SA-ROYALDECREE': ZATCA tax exemption reason code. [View the enum reference](exemptionreasonenum)
        - `exemption_reason_text` string: The reason an out-of-scope (`O`) amount is outside the scope of VAT, sent as written with the code `VATEX-SA-OOS`. Without it, the reason sent is `exemption_reason`, or else "Supply outside the scope of VAT" in both languages, the document language first.
        - `percent` number, double, required: The percent of the tax (e.g. 15)
        - `type` 'E' | 'O' | 'S' | 'Z', required: The UNTDID 5305 VAT category code applied to a tax amount. [View the enum reference](taxcategorycodeenum)
    - `reference_contract_id` string: The referenced contract number, if supplied
    - `reference_purchase_order_id` string: The customer purchase order number, if supplied
    - `supplier` ApiV1ZatcaDocumentReportSupplierWrite, required: The supplier of a ZATCA document.
      - `address` ApiV1ZatcaDocumentReportSupplierAddressWrite, required: The supplier address on a ZATCA document. Street, building number, postal code, city, district, and country are required.
        - `additional_street` string: The second line of the supplier address
        - `building` string, required: The supplier building number; must be four digits
        - `city` string, required: The supplier city
        - `country` 'AD' | 'AE' | 'AF' | 'AG' | 'AI' | 'AL' | 'AM' | 'AO' | 'AQ' | 'AR' | 'AS' | 'AT' | 'AU' | 'AW' | 'AX' | 'AZ' | 'BA' | 'BB' | 'BD' | 'BE' | 'BF' | 'BG' | 'BH' | 'BI' | 'BJ' | 'BL' | 'BM' | 'BN' | 'BO' | 'BQ' | 'BR' | 'BS' | 'BT' | 'BV' | 'BW' | 'BY' | 'BZ' | 'CA' | 'CC' | 'CD' | 'CF' | 'CG' | 'CH' | 'CI' | 'CK' | 'CL' | 'CM' | 'CN' | 'CO' | 'CR' | 'CU' | 'CV' | 'CW' | 'CX' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DK' | 'DM' | 'DO' | 'DZ' | 'EC' | 'EE' | 'EG' | 'EH' | 'ER' | 'ES' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FM' | 'FO' | 'FR' | 'GA' | 'GB' | 'GD' | 'GE' | 'GF' | 'GG' | 'GH' | 'GI' | 'GL' | 'GM' | 'GN' | 'GP' | 'GQ' | 'GR' | 'GS' | 'GT' | 'GU' | 'GW' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IE' | 'IL' | 'IM' | 'IN' | 'IO' | 'IQ' | 'IR' | 'IS' | 'IT' | 'JE' | 'JM' | 'JO' | 'JP' | 'KE' | 'KG' | 'KH' | 'KI' | 'KM' | 'KN' | 'KP' | 'KR' | 'KW' | 'KY' | 'KZ' | 'LA' | 'LB' | 'LC' | 'LI' | 'LK' | 'LR' | 'LS' | 'LT' | 'LU' | 'LV' | 'LY' | 'MA' | 'MC' | 'MD' | 'ME' | 'MF' | 'MG' | 'MH' | 'MK' | 'ML' | 'MM' | 'MN' | 'MO' | 'MP' | 'MQ' | 'MR' | 'MS' | 'MT' | 'MU' | 'MV' | 'MW' | 'MX' | 'MY' | 'MZ' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NL' | 'NO' | 'NP' | 'NR' | 'NU' | 'NZ' | 'OM' | 'PA' | 'PE' | 'PF' | 'PG' | 'PH' | 'PK' | 'PL' | 'PM' | 'PN' | 'PR' | 'PS' | 'PT' | 'PW' | 'PY' | 'QA' | 'RE' | 'RO' | 'RS' | 'RU' | 'RW' | 'SA' | 'SB' | 'SC' | 'SD' | 'SE' | 'SG' | 'SH' | 'SI' | 'SJ' | 'SK' | 'SL' | 'SM' | 'SN' | 'SO' | 'SR' | 'SS' | 'ST' | 'SV' | 'SX' | 'SY' | 'SZ' | 'TC' | 'TD' | 'TF' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TL' | 'TM' | 'TN' | 'TO' | 'TR' | 'TT' | 'TV' | 'TW' | 'TZ' | 'UA' | 'UG' | 'UM' | 'US' | 'UY' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'YE' | 'YT' | 'ZA' | 'ZM' | 'ZW' | '1A' | 'XI', required: A country or territory code accepted by ZATCA for a document party address. [View the enum reference](countrycodeenum)
        - `district` string, required: The supplier district
        - `postal_code` string, required: The supplier postal code; must be five digits
        - `province` string: The supplier province or state
        - `street` string, required: The supplier street
      - `identification` ApiV1ZatcaDocumentReportSupplierIdentificationWrite, required: An identification of the supplier of a ZATCA document, such as its commercial registration.
        - `type` 'CRN' | 'MLS' | 'SAG' | 'MOM' | '700' | 'OTH', required: The identifier type used for the supplier party in an e-invoice. [View the enum reference](supplierpartyidentificationenum)
        - `value` string, required: Value of the identification method
      - `name` string, required: The name of the supplier
    - `supply_date` string, date, required: The date of the product or service was supplied
    - `supply_end_date` string, date: The end date of the supply period. Required when a simplified document has the SUMMARY indicator.
    - `tax_amount_type` 'E' | 'I': Whether amounts include or exclude tax. [View the enum reference](taxamounttypeenum)
    - `tax_total` number, double: The tax total amount in SAR currency
  - `language` 'ar' | 'en': The language of a document or response. [View the enum reference](languageenum)
  - `metadata` object: The metadata of the document. Keys cannot contain `.` or start with `$`.
  - `reference` string: The reference of the document
  - `template` ApiV1ZatcaDocumentSendTemplateWrite: The custom template used to generate the document PDF.
    - `config` ApiV1ZatcaDocumentSendTemplateConfigWrite: The configuration of the custom template used to generate the document PDF.
      - `charges` ApiV1ZatcaDocumentSendTemplateConfigAllowancesWrite[]: Configuration for charges provided
        - `labels` ApiV1ZatcaDocumentSendTemplateConfigAllowancesLabelsWrite, required: A label in English and Arabic.
          - `ar` string, required: The label in Arabic.
          - `en` string, required: The label in English.
        - `reasons` string[], required: The reason codes of the discounts or charges shown in the group.
      - `discounts` ApiV1ZatcaDocumentSendTemplateConfigAllowancesWrite[]: Configuration for discounts provided
        - `labels` ApiV1ZatcaDocumentSendTemplateConfigAllowancesLabelsWrite, required: A label in English and Arabic.
          - `ar` string, required: The label in Arabic.
          - `en` string, required: The label in English.
        - `reasons` string[], required: The reason codes of the discounts or charges shown in the group.
    - `context` unknown
    - `id` string: The id of the custom template to be used for PDF generation

## Response `202`

Signed XML is saved, downloads are available, and reporting is queued.

- ApiV1ZatcaDetailRead[]
  - `created_ts` string, date-time, required: The datetime in UTC when the document was created.
  - `document` ApiV1ZatcaDocumentDetailRead, required: The details of the reported ZATCA document content.
    - `document_number` string, required: The document number.
    - `id` string, required: The id of the object.
    - `issue_datetime` string, date-time, required: The issue datetime.
    - `supply_date` string, date, required: The supply date.
  - `metadata` object, required: The metadata of the document.
  - `qr_code_data` string, required: Base64 encoded QR code data.
  - `reference` string, required: The reference of the document.
  - `reported_ts` string, date-time, nullable, required: The datetime in UTC when the document was reported/cleared.
  - `response` unknown, required
  - `sent_ts` string, date-time, nullable, required: The datetime in UTC when the document was sent.
  - `status` string, required: The status of the document.

## Other responses

- `400`: The payload is invalid or contains a duplicate document.
- `403`: Missing permission, subscription, active device, or valid environment.

## Changes

- **2026-11-03** `6b4a622bbb4f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/wafeq/apis/wafeq-zatca-api/changes/zatca/simplified-invoices/bulk-issue/post.md)

---

[API](https://skmtc.dev/wafeq/apis/wafeq-zatca-api.md) - [All operations](https://skmtc.dev/wafeq/apis/wafeq-zatca-api/llms.txt) - [OpenAPI document](https://skmtc.dev/wafeq/apis/wafeq-zatca-api/revisions/6b4a622bbb4f?raw)
