Common Errors
Use this page to quickly identify frequent UAE PINT AE validation failures and apply the recommended fix.
Quick Checklist
Before resubmitting an invoice, confirm these common points:
Use
0235+ 10-digit TIN for UAE participant identifiers.Use
YYYY-MM-DDdate format for all date fields.Keep
TaxPointDate <= InvoiceIssueDate.Ensure tax totals reconcile from line to document level with correct rounding.
Use 8-digit
ProfileExecutionID(00000000).
Validation Errors and Fixes
| Error Category | Type Code(s) | What Causes It | How to Fix It |
|---|---|---|---|
| Participant Identification | IBR-148-AE | Full 15-digit TRN is used in EndpointID instead of the required 10-digit TIN. | Use only the first 10 digits (TIN) when constructing EndpointID. |
| VAT Identifier | IBR-132-AE | TRN isn't following the correct rule | TRN should be 15 digit, start with 1 and end with 03 |
| Unit of Measure | IBR-CL-23 | Invalid unit_code code is used. | Use valid unit_code codes from /supporting-resources/codelists/get-unit-of-measure-codes. |
| Date Formatting | IBT-002 | Dates are sent in regional formats such as DD/MM/YYYY. | Send all dates in ISO 8601 format: YYYY-MM-DD. |
| Tax Point Logic | IBR-141-AE | TaxPointDate (date of supply) is later than invoice issue date. | Ensure the captured supply date is less than or equal to the invoice issue date. |
| Currency Conversion | IBR-159-AE, BTAE-04 | VAT amounts in AED are missing for invoices issued in foreign currency. | Convert and report mandatory VAT amounts in AED using the UAE Central Bank exchange rate. |
| Emirate Subdivision | IBR-078-AE | Free-text emirate names (for example Dubai) are used in CountrySubentity. | Use approved codes: AUH, DXB, SHJ, AJM, UAQ, RAK, FUJ. |
| Postal Code Gaps | IBR-143-AE, IBR-144-AE | Postal code is missing in systems that enforce ZIP/postal validation. | Use 00000 as a workaround, or supply the recipient P.O. Box when appropriate. |
| Invoice Classification | IBT-003, IBR-122-AE | Simplified tax invoice is issued for B2B transactions that require a full tax invoice. | Configure ERP rules to issue full tax invoices for B2B; keep simplified invoices for eligible B2C cases. |
| Transaction Flags | IBT-024, X1XXXXXX | 8-digit transaction type flag is set incorrectly for special scenarios (for example free zones or exports). | Populate transaction metadata according to supply type; for exports, use FTA endpoint 0235:9900000099 where required. |
| Mathematical Precision | IBR-146-AE, ALIGNED-IBRP-004 | Line and document totals do not reconcile due to rounding or calculation sequence. | Sum line totals first, then apply document allowances/charges, and round monetary totals to 2 decimal places. |
| Technical Metadata | IBR-154-AE | ProfileExecutionID is not 8 digits (for example a single 0). | Use exactly 8 digits: 00000000 |
| SBDH Envelope | 1360 / 1363 | Discrepancy between the Receiver/Identifier in the envelope and the EndpointID in the document. | Update the SBDH mapping to ensure the recipient identifiers are identical across all document layers. |
| Standards | ibr-cl-23 | Unit codes (ibt-130, ibt-150) must be coded according to UN/ECE Recommendation 20. | Map internal units to approved codes (e.g., H87 for pieces, LTR for liters). |
| Standards | ibr-cl-14 | Country codes must use ISO 3166-1 Alpha-2 list. | Use two-letter codes (e.g., AE for UAE, SA for Saudi Arabia) instead of full names. |
| Formatting | ibr-079 | Document must not contain empty elements. | Remove XML tags that do not contain data values. |
| Addressing | ibr-009 | Seller postal address (ibg-05) must contain a Seller country code (ibt-040). | Ensure the <cac:Country><cbc:IdentificationCode> is populated for the seller address. |
| Tax Logic | ibr-116-ae | Margin scheme flag requires tax category 'Standard rate additional VAT'. | If the Margin Scheme flag is set, ensure the tax category code is explicitly mapped to the additional VAT category. |
| Buyer Data | ibr-135-ae | Buyer identifier or Buyer VAT identifier must be present (except for Exports). | Provide the Buyer's TRN or Participant ID for domestic transactions. |
| Legal Details | ibr-172-ae | Authority name must be present when registration type is Commercial/Trade license. | Populate the AuthorityName field (BTAE-12) with the relevant licensing body (e.g., DED). |
| Calculation | ibr-147-ae | Line net amount must equal: (Quantity * Net Price) + Charges - Allowances. | Verify line-item arithmetic; ensure discounts and charges are correctly factored into the LineExtensionAmount. |
| Tax Rate | ibr-190-ae | Standard rated VAT must have a rate of 5.00. | Update the tax rate field to exactly 5.00 for all standard-rated categories. |
| Tax Logic | ibr-102-ae | VAT category taxable amount must equal the sum of line net amounts for 'Standard rate additional VAT'. | Ensure the breakdown taxable amount matches the aggregate of all lines using that specific tax category. |
| Tax Logic | ibr-108-ae | VAT category tax amount must be 0 for 'Standard rate additional VAT'. | Correct the breakdown so the tax amount for this specific category reflects the zero-reporting requirement. |
| Validation | ibr-151-ae | Commercial invoices/Credit notes should not only contain Exempt/Not subject to VAT items. | Ensure the document contains at least one taxable line or use the appropriate document type code. |
| Structural | XSD Error | Invalid content starting with CommodityClassification. Expected elements: ClassifiedTaxCategory, etc. | Correct the XML sequence; ClassifiedTaxCategory must appear before CommodityClassification in the Item block. |
| Tax Logic | ibr-114-ae | Document level charge cannot be 'Standard rate additional VAT'. | Reclassify document-level charges to a standard VAT category. |
| Tax Logic | ibr-122-ae | 'Out of scope' or 'Credit note' types must use Exempt, Not subject, or Zero rated categories. | Map the line-item VAT categories to match the restricted list allowed for these document types. |
| Identification | ibr-sr-57 | Company identifier must exist in the party tax scheme class. | Ensure the <cac:PartyTaxScheme><cbc:CompanyID> is populated for both parties. |
| Logic | ibr-105-ae | Exactly one VAT breakdown group for 'Standard rate additional VAT' is allowed. | Consolidate lines under a single breakdown group for this specific category. |
| Tax Rate | ibr-111-ae | VAT rate for 'Standard rate additional VAT' should not be zero. | Apply the correct non-zero rate for lines categorized as additional VAT. |
| Tax Logic | ibr-115-ae | Document level allowance cannot be 'Standard rate additional VAT'. | Reclassify allowances to standard tax categories. |
| Currency | ibr-126 | All currencyID attributes must match the Invoice currency code (except tax accounting currency). | Ensure attributes like currencyID="AED" match the document-level currency code. |
| Reverse Charge | ibr-166-ae | Type of goods or services (BTAE-09) must be present for Reverse Charge. | Provide the mandatory classification for reverse charge transactions. |
| Reverse Charge | ibr-174-ae | Item Standard Identifier (0160 scheme) must be present for Reverse Charge. | Include the GPC or relevant standard ID using scheme 0160. |
| Structural | XSD Error | Invalid content found starting with DespatchDocumentReference. | Adjust element order; reference elements must follow the strict UBL 2.1 sequence (e.g., after OrderReference). |
| Structural | XSD Error | Attribute 'schemeId' is not allowed in element cbc:CompanyID. | Remove the schemeId attribute from CompanyID; it is only permitted on EndpointID or PartyIdentification. |
| Reference | ibr-055-ae | Preceding invoice reference is mandatory for Credit Notes (except 'VD' reason). | Include the original invoice ID in <cac:BillingReference>. |
| Temporal | ibr-124-ae | VAT point date MUST NOT be present for Credit Notes. | Remove the <cbc:TaxPointDate> field from credit note documents. |
| Temporal | ibr-127-ae | Payment due date mandatory for non-zero amounts (except for Credit Notes or Deemed Supply). | Ensure <cbc:DueDate> is populated for all standard tax invoices. |
| Logic | ibr-157-ae | Transaction-type cannot be Summary, Deemed, or Margin for 'Out of scope' invoices. | Correct the 8-digit transaction flag to ensure it is compatible with the 'Out of scope' status. |
| Calculation | ibr-co-10 | Sum of Invoice line net amounts must equal total net amount. | Reconcile the LineExtensionAmount sum with the TaxableAmount in the legal monetary total. |
Shared PINT Rules
These checks apply to all PINT invoice implementations. If any rule fails, the invoice is not a valid PINT invoice.
| Category | Error code | Error Description | Recommended Fix |
|---|---|---|---|
| Mandatory Field | IBR-001 | An Invoice MUST have a Specification identifier (ibt-024). | What it is: the id that says which full PINT rule set (required fields, meanings, and business rules) this invoice follows. For you: Marmin fills this when the Peppol XML is built; it is not something you set on the create-invoice API. If you still see this error, contact Marmin support with the document id. |
| Mandatory Field | IBR-002 | An Invoice MUST have an Invoice number (ibt-001). | Please fill document_number while creating the sales invoice. |
| Mandatory Field | IBR-003 | An Invoice MUST have an Invoice issue date (ibt-002). | Please fill issue_date while creating the sales invoice. |
| Mandatory Field | IBR-004 | An Invoice MUST have an Invoice type code (ibt-003). | Please fill invoice_type_code while creating the sales invoice. |
| Mandatory Field | IBR-005 | An Invoice MUST have an Invoice currency code (ibt-005). | Please fill document_currency_code while creating the sales invoice. |
| Mandatory Field | IBR-006 | An Invoice MUST contain the Seller name (ibt-027). | Please fill accounting_supplier_party.name (and accounting_supplier_party.party_name) in the supplier party. |
| Mandatory Field | IBR-007 | An Invoice MUST contain the Buyer name (ibt-044). | Please fill accounting_customer_party.name (and accounting_customer_party.party_name) in the customer party. |
| Mandatory Field | IBR-008 | An Invoice MUST contain the Seller postal address (ibg-05). | Please fill accounting_supplier_party.postal_address (street/city/postal_zone/country_code as applicable). |
| Mandatory Field | IBR-009 | The Seller postal address (ibg-05) MUST contain a Seller country code (ibt-040). | Please fill accounting_supplier_party.postal_address.country_code (e.g. AE). |
| Mandatory Field | IBR-010 | An Invoice MUST contain the Buyer postal address (ibg-08). | Please fill accounting_customer_party.postal_address (street/city/postal_zone/country_code as applicable). |
| Mandatory Field | IBR-011 | The Buyer postal address (ibg-08) MUST contain a Buyer country code (ibt-055). | Please fill accounting_customer_party.postal_address.country_code (e.g. AE). |
| Mandatory Field | IBR-012 | An Invoice MUST have the Sum of Invoice line net amount (ibt-106). | Ensure each line has document_lines[].quantity and document_lines[].price.base_amount so line totals can be calculated. |
| Mandatory Field | IBR-013 | An Invoice MUST have the Invoice total amount without Tax (ibt-109). | Ensure document_lines[], charges[], and allowances[] are correct so the tax-exclusive total is calculated correctly. |
| Mandatory Field | IBR-014 | An Invoice MUST have the Invoice total amount with Tax (ibt-112). | Ensure line tax setup is correct in document_lines[].classified_tax_category so the tax-inclusive total is calculated correctly. |
| Mandatory Field | IBR-015 | An Invoice MUST have the Amount due for payment (ibt-115). | Review your payable inputs: document_lines[], charges[], allowances[], prepaid_amount, and payable_rounding_amount so the calculated payable amount is correct. |
| Mandatory Field | IBR-016 | An Invoice MUST have at least one Invoice line (ibg-25) | Please add at least one item in document_lines. |
| Mandatory Field | IBR-017 | The Payee name (ibt-059) MUST be provided in the Invoice, if the Payee (ibg-10) is different from the Seller (ibg-04). | If the payee differs from the seller, fill payee_party.party_name. |
| Mandatory Field | IBR-018 | The Seller tax representative name (ibt-062) MUST be provided in the Invoice, if the Seller (ibg-04) has a Seller tax representative party (ibg-11) | If you send tax_representative_party, fill tax_representative_party.party_name. |
| Mandatory Field | IBR-019 | The Seller tax representative postal address (ibg-12) MUST be provided in the Invoice, if the Seller (ibg-04) has a Seller tax representative party (ibg-11). | If you send tax_representative_party, fill tax_representative_party.postal_address. |
| Mandatory Field | IBR-020 | The Seller tax representative postal address (ibg-12) MUST contain a Tax representative country code (ibt-069), if the Seller (ibg-04) has a Seller tax representative party (ibg-11). | If you send tax_representative_party, fill tax_representative_party.postal_address.country_code. |
| Mandatory Field | IBR-021 | Each Invoice line (ibg-25) MUST have an Invoice line identifier (ibt-126). | For each line, set document_lines[].order_line_reference.line_id. |
| Mandatory Field | IBR-022 | Each Invoice line (ibg-25) MUST have an invoiced quantity (ibt-129).. | Please fill document_lines[].quantity for each line item. |
| Mandatory Field | IBR-023 | An Invoice line (ibg-25) MUST have an Invoiced quantity unit of measure code (ibt-130). | Please fill document_lines[].unit_code for each line item. |
| Mandatory Field | IBR-024 | Each Invoice line (ibg-25) MUST have an Invoice line net amount (ibt-131). | Ensure document_lines[].quantity and document_lines[].price.base_amount are present so line net amount can be calculated. |
| Mandatory Field | IBR-025 | Each Invoice line (ibg-25) MUST contain the Item name (ibt-153). | Please fill document_lines[].name for each line item. |
| Mandatory Field | IBR-026 | Each Invoice line (ibg-25) MUST contain the Item net price (ibt-146). | Please fill document_lines[].price.base_amount for each line item. |
| Rule Constraint | IBR-027 | The Item net price (ibt-146) MUST NOT be negative. | Ensure document_lines[].price.base_amount is not negative. |
| Rule Constraint | IBR-028 | The Item gross price (ibt-148) MUST NOT be negative. | Ensure document_lines[].price.base_amount is not negative. |
| Date/Time | IBR-029 | If both Invoicing period start date (ibt-073) and Invoicing period end date (ibt-074) are given then the Invoicing period end date (ibt-074) MUST be later or equal to the Invoicing period start date (ibt-073). | If you send invoice_period, ensure invoice_period.start_date is on/before invoice_period.end_date. |
| Date/Time | IBR-030 | If both Invoice line period start date (ibt-134) and Invoice line period end date (ibt-135) are given then the Invoice line period end date (ibt-135) MUST be later or equal to the Invoice line period start date (ibt-134). | If line periods are used, ensure document_lines[].invoice_period.start_date is on/before document_lines[].invoice_period.end_date. |
| Mandatory Field | IBR-031 | Allowance (ibg-20) MUST have an allowance amount (ibt-092). | For document-level allowances, fill allowances[].amount. |
| Mandatory Field | IBR-033 | Each Document level allowance (ibg-20) MUST have a Document level allowance reason (ibt-097) or a Document level allowance reason code (ibt-098). | For document-level allowances, fill allowances[].reason_code and/or allowances[].reason (at least one is required). |
| Mandatory Field | IBR-036 | Charge (ibg-21) MUST have a charge amount (ibt-099). | For document-level charges, fill charges[].amount. |
| Mandatory Field | IBR-038 | Each Document level charge (ibg-21) MUST have a Document level charge reason (ibt-104) or a Document level charge reason code (ibt-105). | For document-level charges, fill charges[].charge_reason_code (or provide a reason where supported). |
| Mandatory Field | IBR-041 | Each Invoice line allowance (ibg-27) MUST have an Invoice line allowance amount (ibt-136). | For each line-level allowance in document_lines[].allowances[], set amount. |
| Mandatory Field | IBR-042 | Each Invoice line allowance (ibg-27) MUST have an Invoice line allowance reason (ibt-139) or an Invoice line allowance reason code (ibt-140). | For each entry in document_lines[].allowances[], set reason_code (and reason when your integration sends it). |
| Mandatory Field | IBR-043 | Each Invoice line charge (ibg-28) MUST have an Invoice line charge amount (ibt-141). | For each line-level charge in document_lines[].charges[], set amount. |
| Mandatory Field | IBR-044 | Each Invoice line charge (ibg-28) MUST have an Invoice line charge reason (ibt-144) or an invoice line charge reason code (ibt-145). | For each entry in document_lines[].charges[], set reason_code (and reason when your integration sends it). |
| Validation Rule | IBR-049 | A Payment instruction (ibg-16) MUST specify the Payment means type code (ibt-081). | Set payment_means[].payment_means_code on each payment instruction you send. |
| Mandatory Field | IBR-052 | Each Additional supporting document (ibg-24) MUST contain a Supporting document reference (ibt-122). | If supporting documents are sent, include the required document reference id in each supporting document object. |
| Mandatory Field | IBR-053 | If the Tax accounting currency code (ibt-006) is present, then the Invoice total Tax amount in accounting currency (ibt-111) MUST be provided. | If tax currency is different, fill tax_currency_code and also provide tax_exchange_rate. |
| Mandatory Field | IBR-054 | Each Item attribute (ibg-32) MUST contain an Item attribute name (ibt-160) and an Item attribute value (ibt-161). | If item attributes are sent, provide both attribute name and value for each line attribute entry. |
| Mandatory Field | IBR-055 | Each Preceding Invoice reference (ibg-03) MUST contain a Preceding Invoice reference (ibt-025). | For previous invoice references, fill billing_reference[].id (and billing_reference[].issue_date when available). |
| Mandatory Field | IBR-056 | The Seller tax representative party (ibg-11) MUST have a Seller tax representative Tax identifier (ibt-063). | If you send tax_representative_party, fill its tax identifier (tax_representative_party.party_tax_scheme.company_id). |
| Mandatory Field | IBR-057 | Each Deliver to address (ibg-15) MUST contain a Deliver to country code (ibt-080). | If you send delivery, fill delivery.delivery_location.address.country_code. |
| Mandatory Field | IBR-062 | The Seller electronic address (ibt-034) MUST have a Scheme identifier. | Fill accounting_supplier_party.endpoint_id and accounting_supplier_party.endpoint_scheme_id. |
| Mandatory Field | IBR-063 | The Buyer electronic address (ibt-049) MUST have a Scheme identifier. | Fill accounting_customer_party.endpoint_id and accounting_customer_party.endpoint_scheme_id. |
| Mandatory Field | IBR-064 | The Item standard identifier (ibt-157) MUST have a Scheme identifier. | If standard item identification is sent, include its scheme id in document_lines[].standard_item_identification. |
| Mandatory Field | IBR-065 | The Item classification identifier (ibt-158) MUST have a Scheme identifier. | If item classification is sent, include a valid scheme id in document_lines[].commodity_classification. |
| Mandatory Field | IBR-066 | An Invoice MUST contain maximum one Payment Card account (ibg-18). | Use at most one card_account object across all payment_means[] entries. |
| Mandatory Field | IBR-067 | An Invoice MUST contain maximum one Payment Mandate (ibg-19). | Send at most one mandate reference across all payment_means[] entries (if mandates are supported in your integration). |
| Mandatory Field | IBR-068 | GLN MUST have a valid format according to GS1 rules for endpoints (ibt-034), (ibt-049), party identification (ibt-029), (ibt-046), (ibt-060), legal entities (ibt-030), (ibt-047), (ibt-061). | Use valid format for endpoint/identifier fields: accounting_supplier_party.endpoint_id, accounting_customer_party.endpoint_id, and party identification fields. |
| Format | IBR-069 | Norwegian organization number MUST be stated in the correct format for endpoints (ibt-034), (ibt-049), party identification (ibt-029), (ibt-046), (ibt-060), legal entities (ibt-030), (ibt-047), (ibt-061). | Validate organization numbers in party identifiers before submit: accounting_supplier_party.endpoint_id, accounting_customer_party.endpoint_id, accounting_supplier_party.company_id, and accounting_customer_party.company_id (example endpoint format depends on country registry rules). |
| Format | IBR-070 | Danish organization number (CVR) MUST be stated in the correct format for endpoints (ibt-034), (ibt-049), party identification (ibt-029), (ibt-046), (ibt-060), legal entities (ibt-030), (ibt-047), (ibt-061). | For Danish CVR entities, use valid CVR format in accounting_supplier_party.company_id / accounting_customer_party.company_id and related endpoint identifiers (example: 8-digit CVR). |
| Rule Constraint | IBR-071 | An invoice should not include an AdditonalDocumentReference (ibg-24) simultaneously referring an Invoice Object Identifier (ibt-018) and an Attachment (ibt-125). | In additional document references, do not send both Invoice Object Identifier (ibt-018) and Attachment (ibt-125) in the same entry. |
| Rule Constraint | IBR-072 | An invoice MUST not include an AdditionalDocumentReference (ibg-24) simultaneously referring an Invoice Object Identifier (ibt-018) and an Document Description (ibt-123). | In additional document references, do not send both Invoice Object Identifier (ibt-018) and Document Description (ibt-123) in the same entry. |
| Format | IBR-073 | A date MUST be formatted YYYY-MM-DD in (ibt-002), (ibt-007), (ibt-009), (ibt-026), (ibt-072), (ibt-073), (ibt-074), (ibt-134), (ibt-135). | Use ISO date format in request fields: issue_date, due_date, tax_point_date, invoice_period.start_date, invoice_period.end_date (example: 2026-05-07). |
| Mandatory Field | IBR-074 | Binary object elements (ibt-125) MUST contain the mime code attribute (ibt-125-1). | If attachment content is sent, include a valid MIME type on the binary object. |
| Mandatory Field | IBR-075 | Binary object elements (ibt-125) MUST contain the filename attribute (ibt-125-2). | If attachment content is sent, include a filename on the binary object. |
| Mandatory Field | IBR-076 | Business process (ibt-023) MUST be provided. | Set profile_execution_id as a valid 8-digit transaction flag string (for standard invoices use 00000000). |
| Validation Rule | IBR-077 | Tax accounting currency code (ibt-006) MUST be different from invoice currency code (ibt-005) when provided. | If tax_currency_code is provided, ensure it is different from document_currency_code. |
| Cardinality | IBR-078 | Only one invoiced object (ibt-018) is allowed on document level. | If document-level invoiced object is mapped in your payload, keep only one value. |
| Rule Constraint | IBR-079 | Document MUST not contain empty elements. | Do not send empty strings/objects/arrays; omit fields instead (review your request payload fields). |
| Mandatory Field | IBR-080 | The Buyer electronic address (ibt-049) MUST be provided. | Please fill accounting_customer_party.endpoint_id (and accounting_customer_party.endpoint_scheme_id). |
| Mandatory Field | IBR-081 | The Seller electronic address (ibt-049) MUST be provided. | Please fill accounting_supplier_party.endpoint_id (and accounting_supplier_party.endpoint_scheme_id). |
| Validation Rule | IBR-082 | Allowance/charge indicator value MUST equal 'true' or 'false'. | For allowance/charge indicators in your mapped payload, send only boolean values (true/false). |
| Rule Constraint | IBR-083 | Charge on price level (ibt-147) is NOT allowed. Only value 'false' allowed. | At price level, keep charge indicator as false (price-level charge is not allowed). |
| Mandatory Field | IBR-084 | Invoice total tax amount (ibt-110) and Invoice total tax amount in accounting currency (ibt-111) MUST have the same operational sign. | Keep sign consistency between tax totals by ensuring line/document taxable and tax amounts are not mixed positive/negative incorrectly. |
| Date/Time | IBR-085 | Start date of line period (ibt-134) MUST be within invoice period (ibg-14). | If line period start date is sent, keep it within invoice_period.start_date and invoice_period.end_date. |
| Date/Time | IBR-086 | End date of line period (ibt-135) MUST be within invoice period (ibg-14). | If line period end date is sent, keep it within invoice_period.start_date and invoice_period.end_date. |
| Validation Rule | IBR-087 | Base quantity (ibt-149) MUST be a positive number above zero. | Ensure price base quantity is greater than zero in document_lines[].price.base_quantity. |
| Validation Rule | IBR-088 | Unit code of price base quantity (ibt-150) MUST be same as invoiced quantity (ibt-130). | Use matching unit codes between line quantity and price base quantity (document_lines[].unit_code and the price base-quantity unit mapping). |
| Cardinality | IBR-089 | Only one invoiced object (ibt-128) is allowed per line (ibg-25). | If line object identifier is used, keep only one identifier per line. |
| Cardinality | IBR-090 | Only one project reference (ibt-011) is allowed on document level. | Keep only one project reference in project_reference.id. |
| Mandatory Field | IBR-091 | Invoice amount due for payment (ibt-115) MUST have no more than 2 decimals. | Review your payable inputs: document_lines[], charges[], allowances[], prepaid_amount, and payable_rounding_amount so the calculated payable amount is correct. |
| Rule Constraint | IBR-092 | If despatch advice reference exists on line (ibt-184) then there MUST not be despatch reference on document level (ibt-016). | Do not send both a line-level despatch advice reference and a document-level despatch advice reference together. |
| Calculation | IBR-093 | If there is a paid amount (ibt-180) then total paid amount (ibt-113) MUST exist. | If a paid amount is mapped, also provide the corresponding total paid amount in your payment totals mapping. |
| Cardinality | IBR-094 | Contract reference (ibt-012) MUST occur maximum once. | Keep only one contract reference in contract_document_reference.id. |
| Cardinality | IBR-095 | Receiving advice reference (ibt-015) MUST occur maximum once. | Keep only one receiving advice reference in receipt_document_reference.id. |
| Cardinality | IBR-096 | Despatch advice reference (ibt-016) MUST occur maximum once. | Keep only one despatch advice reference in despatch_document_reference.id. |
| Cardinality | IBR-097 | Invoicing period (ibg-14) MUST occur maximum once. | Keep only one invoicing period object in invoice_period. |
| Cardinality | IBR-098 | Seller name (ibt-027) MUST occur maximum once. | Keep only one seller name value in accounting_supplier_party.name (or accounting_supplier_party.party_name). |
| Cardinality | IBR-099 | Seller trader name (ibt-028) MUST occur maximum once. | Keep only one seller trader name in accounting_supplier_party.party_name. |
| Cardinality | IBR-100 | Seller legal registration identifier (ibt-030) MUST occur maximum once. | Keep only one seller legal registration identifier in accounting_supplier_party.company_id. |
| Cardinality | IBR-101 | Seller additional legal information (ibt-033) MUST occur maximum once. | If seller additional legal information is mapped, keep only one value. |
| Cardinality | IBR-102 | Buyer name (ibt-044) MUST occur maximum once. | Keep only one buyer name value in accounting_customer_party.name (or accounting_customer_party.party_name). |
| Cardinality | IBR-103 | Buyer legal registration identifier (ibt-047) MUST occur maximum once. | Keep only one buyer legal registration identifier in accounting_customer_party.company_id. |
| Cardinality | IBR-104 | Buyer tax identifier (ibt-048) MUST occur maximum once. | Keep only one buyer tax identifier in accounting_customer_party.party_tax_scheme.company_id. |
| Cardinality | IBR-105 | The Payee identifier (ibt-060) MUST occur maximum once in the Invoice, if the Payee (ibg-10) is different from the Seller (ibg-04). | If payee differs from seller, keep only one payee identifier in payee_party.party_identification. |
| Cardinality | IBR-106 | The Payee legal identifier (ibt-061) MUST occur maximum once in the Invoice, if the Payee (ibg-10) is different from the Seller (ibg-04). | If payee differs from seller, keep only one payee legal identifier in payee_party.party_identification. |
| Cardinality | IBR-107 | Deliver to information (ibg-13) MUST occur maximum once. | Keep only one delivery block in delivery. |
| Cardinality | IBR-108 | Deliver to party name (ibt-070) MUST occur maximum once. | If deliver-to party name is mapped, keep only one value in the delivery party block. |
| Cardinality | IBR-109 | Referenced purchase order line identifier (ibt-132) MUST occur maximum once. | Keep only one referenced purchase order line id per invoice line. |
| Cardinality | IBR-110 | Invoice line period (ibg-26) MUST occur maximum once. | If invoice line period is mapped, keep only one period object per line. |
| Cardinality | IBR-111 | Item price discount (ibt-147) MUST occur maximum once. | If item price discount is mapped, keep only one discount value per line price. |
| Cardinality | IBR-112 | Buyer trader name (ibt-045) MUST occur maximum once. | Keep only one buyer trader name in accounting_customer_party.party_name. |
| Format | IBR-113 | Belgian enterprise number MUST be stated in the correct format for endpoints (ibt-034), (ibt-049), party identification (ibt-029), (ibt-046), (ibt-060), legal entities (ibt-030), (ibt-047), (ibt-061). | For Belgian entities, format IDs correctly in accounting_supplier_party.company_id / accounting_customer_party.company_id and endpoint fields (example: Belgian enterprise number format). |
| Format | IBR-114 | IPA Code (Codice Univoco Unità Organizzativa) must be stated in the correct format for endpoints (ibt-034), (ibt-049), party identification (ibt-029), (ibt-046), (ibt-060), legal entities (ibt-030), (ibt-047), (ibt-061). | For IPA code scenarios, populate the applicable identifier field with a valid IPA format in party identification/endpoint mappings (example: official IPA code format from authority). |
| Format | IBR-115 | Tax Code (Codice Fiscale) must be stated in the correct format for endpoints (ibt-034), (ibt-049), party identification (ibt-029), (ibt-046), (ibt-060), legal entities (ibt-030), (ibt-047), (ibt-061). | For Codice Fiscale scenarios, set valid tax code format in the mapped party identifier field (example: Italian fiscal code format). |
| Format | IBR-116 | Italian VAT Code (Partita Iva) must be stated in the correct format for endpoints (ibt-034), (ibt-049), party identification (ibt-029), (ibt-046), (ibt-060), legal entities (ibt-030), (ibt-047), (ibt-061). | For Italian VAT scenarios, set valid VAT format in party tax/registration fields such as accounting_supplier_party.party_tax_scheme.company_id (example: Italian VAT format). |
| Format | IBR-119 | A time MUST be formatted hh:mm:ss with optional fractional seconds .sss and time zone expression (ibt-168). | Use HH:mm:ss for time fields (example: 10:30:00) in issue_time and other mapped time fields when sent. |
| Format | IBR-120 | Australian Business Number (ABN) must be stated in the correct format for for endpoints (ibt-034), (ibt-049), party identification (ibt-029), (ibt-046), (ibt-060), legal entities (ibt-030), (ibt-047), (ibt-061). | For Australian entities, use valid ABN format in party identifiers (accounting_supplier_party.company_id / accounting_customer_party.company_id) and mapped endpoint fields (example: 11-digit ABN). |
| Mandatory Field | IBR-121 | Document level allowance amount (ibt-107) MUST have no more than 2 decimals. | Round document allowance amounts to 2 decimals in allowances[].amount. |
| Mandatory Field | IBR-122 | Document level charge amount (ibt-108) MUST have no more than 2 decimals. | Round document charge amounts to 2 decimals in charges[].amount. |
| Mandatory Field | IBR-123 | Invoice total amount without TAX (ibt-109) MUST have no more than 2 decimals. | Ensure document_lines[], charges[], and allowances[] are correct so the tax-exclusive total is calculated correctly. |
| Mandatory Field | IBR-124 | Invoice total TAX amount (ibt-110) MUST have no more than 2 decimals. | Round tax totals to 2 decimals (align line taxes and document-level tax aggregation). |
| Mandatory Field | IBR-125 | Invoice total amount with TAX (ibt-112) MUST have no more than 2 decimals. | Ensure line tax setup is correct in document_lines[].classified_tax_category so the tax-inclusive total is calculated correctly. |
| Mandatory Field | IBR-126 | All currencyID attributes must have the same value as the Invoice currency code (ibt-005), except for amounts expected to be in Tax accounting currency (ibt-006). | Ensure money fields use document_currency_code; only tax-accounting amounts may use tax_currency_code. |
| Format | IBR-127 | Swedish organization number MUST be stated in the correct format for endpoints (ibt-034), (ibt-049), party identification (ibt-029), (ibt-046), (ibt-060), legal entities (ibt-030), (ibt-047), (ibt-061). | For Swedish entities, use valid organization number format in party identifiers and endpoint mappings (example: Swedish org number format). |
| Code List | IBR-CL-01 | The document type code (ibt-003) MUST be coded by the invoice and credit note related code lists of UNTDID 1001. | Please fill invoice_type_code while creating the sales invoice. |
| Code List | IBR-CL-03 | currencyID MUST be coded using ISO code list 4217 alpha-3. | Use ISO 4217 alpha-3 currency codes in currency fields like document_currency_code and tax_currency_code. |
| Code List | IBR-CL-04 | Invoice currency code (ibt-005) MUST be coded using ISO code list 4217 alpha-3 | Please fill document_currency_code while creating the sales invoice. |
| Code List | IBR-CL-05 | Tax currency code (ibt-006) MUST be coded using ISO code list 4217 alpha-3 | If tax currency is different, fill tax_currency_code and also provide tax_exchange_rate. |
| Code List | IBR-CL-07 | Object identifier identification scheme (ibt-018-1) (ibt-128-1) MUST be coded using a restriction of UNTDID 1153. | If object identifiers are used, set their scheme id to a valid UNTDID 1153 code in your mapping. |
| Code List | IBR-CL-10 | Any identifier identification scheme (ibt-046-1), (ibt-060-1) MUST be coded using one of the ISO 6523 ICD list. | Use a valid ISO 6523 ICD scheme code for party identifier scheme fields in your source mapping. |
| Code List | IBR-CL-11 | Any registration identifier identification scheme (ibt-030-1), (ibt-047-1), (ibt-061-1) MUST be coded using one of the ISO 6523 ICD list. | Use a valid ISO 6523 ICD scheme code for legal registration scheme fields in your source mapping. |
| Code List | IBR-CL-13 | Item classification identifier identification scheme (ibt-158-1) MUST be coded using one of the UNTDID 7143 list. | Use a valid UNTDID 7143 scheme for item classification identifiers in document_lines[] mapping. |
| Code List | IBR-CL-14 | Country codes in an invoice (ibt-040), (ibt-055), (ibt-069), (ibt-080), (ibt-175) MUST be coded using ISO code list 3166-1 | Use ISO 3166-1 alpha-2 country codes in *.postal_address.country_code and delivery country fields. |
| Code List | IBR-CL-15 | Origin country codes in an invoice (ibt-159) MUST be coded using ISO code list 3166-1 | Use ISO 3166-1 alpha-2 country code format for item origin country in line-item mapping. |
| Code List | IBR-CL-16 | Payment means in an invoice (ibt-081) MUST be coded using UNCL4461 code list | Use a valid UNCL4461 code in payment_means[].payment_means_code. |
| Code List | IBR-CL-19 | Coded allowance reasons (ibt-098), (ibt-140) MUST belong to the UNCL 5189 code list | Use valid UNCL 5189 codes for allowance reason codes (allowances[] and line-allowance mappings). |
| Code List | IBR-CL-20 | Coded charge reasons (ibt-105), (ibt-145) MUST belong to the UNCL 7161 code list | Use valid UNCL 7161 codes for charge reason codes (charges[] and line-charge mappings). |
| Code List | IBR-CL-21 | Item standard identifier scheme identifier (ibt-157) MUST belong to the ISO 6523 ICD list. | Use a valid ISO 6523 ICD scheme for item standard identifier scheme in document_lines[] mapping. |
| Code List | IBR-CL-23 | Unit code (ibt-130), (ibt-150) MUST be coded according to the UN/ECE Recommendation 20 with Rec 21 extension | Use valid UN/ECE Rec 20/21 unit codes in document_lines[].unit_code and price base-quantity unit mapping. |
| Code List | IBR-CL-24 | Mime code (ibt-125-1) MUST be according to subset of IANA code list. | If you send attachments, use a valid IANA MIME type in the attachment mime code field. |
| Code List | IBR-CL-25 | Endpoint identifier scheme identifier (ibt-034-1), (ibt-049-1) MUST belong to the CEF EAS code list | Use a valid CEF EAS scheme in accounting_supplier_party.endpoint_scheme_id and accounting_customer_party.endpoint_scheme_id. |
| Code List | IBR-CL-26 | Delivery location identifier scheme identifier (ibt-071-1) MUST belong to the ISO 6523 ICD code list | If delivery location identifier scheme is mapped, use a valid ISO 6523 ICD scheme code. |
| Calculation | IBR-CO-10 | Sum of Invoice line net amount (ibt-106) = Σ Invoice line net amount (ibt-131). | Ensure each line has document_lines[].quantity and document_lines[].price.base_amount so line totals can be calculated. |
| Calculation | IBR-CO-11 | Sum of allowances on document level (ibt-107) = Σ Document level allowance amount (ibt-092). | Ensure all allowances[].amount values are correct so document allowance total reconciles. |
| Calculation | IBR-CO-12 | Sum of charges on document level (ibt-108) = Σ Document level charge amount (ibt-099). | Ensure all charges[].amount values are correct so document charge total reconciles. |
| Calculation | IBR-CO-13 | Invoice total amount without Tax (ibt-109) = Σ Invoice line net amount (ibt-131) - Sum of allowances on document level (ibt-107) + Sum of charges on document level (ibt-108). | Ensure document_lines[], charges[], and allowances[] are correct so the tax-exclusive total is calculated correctly. |
| Calculation | IBR-CO-14 | Invoice total Tax amount (ibt-110) = Σ Tax category tax amount (ibt-117). | Ensure each document_lines[].classified_tax_category is correct so aggregated tax amount reconciles. |
| Calculation | IBR-CO-15 | Invoice total amount with Tax (ibt-112) = Invoice total amount without Tax (ibt-109) + Invoice total Tax amount (ibt-110). | Ensure tax-inclusive amount is consistent with calculated tax-exclusive amount and tax total. |
| Calculation | IBR-CO-16 | Amount due for payment (ibt-115) = Invoice total amount with Tax (ibt-112) - Paid amount (ibt-113) + Rounding amount (ibt-114). | Review your payable inputs: document_lines[], charges[], allowances[], prepaid_amount, and payable_rounding_amount so the calculated payable amount is correct. |
| Calculation | IBR-CO-19 | If Invoicing period (ibg-14) is used, the Invoicing period start date (ibt-073) or the Invoicing period end date (ibt-074) MUST be filled, or both. | If you send invoice_period, ensure invoice_period.start_date is on/before invoice_period.end_date. |
| Calculation | IBR-CO-20 | If Invoice line period (ibg-26) is used, the Invoice line period start date (ibt-134) or the Invoice line period end date (ibt-135) MUST be filled, or both. | If invoice line period is used, provide at least one of line period start date or end date (or both). |
| Calculation | IBR-CO-26 | In order for the buyer to automatically identify a supplier, the Seller identifier (ibt-029), the Seller legal registration identifier (ibt-030) and/or the Seller Tax identifier (ibt-031) MUST be present. | Provide at least one supplier identifier in accounting_supplier_party (party identifier, legal registration id, or tax id). |
| Cardinality | IBR-SR-05 | Payment terms (ibt-020) MUST occur maximum once. | Keep only one payment terms object in payment_terms. |
| Cardinality | IBR-SR-06 | Preceding invoice reference (ibt-025) MUST occur maximum once | Keep only one preceding invoice reference in billing_reference[].id. |
| Cardinality | IBR-SR-07 | If there is a preceding invoice reference (ibg-03) , the preceding invoice number (ibt-025) MUST be present | If preceding invoice reference is used, fill billing_reference[].id. |
| Cardinality | IBR-SR-16 | Buyer identifier (ibt-046) MUST occur maximum once | If buyer identifier is mapped, keep only one identifier entry. |
| Cardinality | IBR-SR-19 | Payee name (ibt-059) MUST occur maximum once, if the Payee is different from the Seller | If payee differs from seller, keep only one payee name in payee_party.party_name. |
| Cardinality | IBR-SR-22 | Seller tax representative name (ibt-062) MUST occur maximum once, if the Seller has a tax representative | If tax representative is used, keep only one name in tax_representative_party.party_name. |
| Cardinality | IBR-SR-23 | Seller tax representative tax identifier (ibt-063) MUST occur maximum once, if the Seller has a tax representative | If tax representative is used, keep only one tax identifier in tax_representative_party.party_tax_scheme.company_id. |
| Cardinality | IBR-SR-27 | Payment means text (ibt-081) MUST occur maximum once | If payment means text is mapped, keep only one value. |
| Cardinality | IBR-SR-28 | Mandate reference identifier (ibt-089) MUST occur maximum once | If mandate reference identifier is mapped, keep only one value. |
| Cardinality | IBR-SR-30 | Allowance reason (ibt-097) MUST occur maximum once | Keep only one allowance reason in each allowance (allowances[].reason). |
| Cardinality | IBR-SR-31 | Charge reason (ibt-104) MUST occur maximum once | Keep only one charge reason in each charge (charges[].charge_reason). |
| Cardinality | IBR-SR-32 | VAT exemption reason text (ibt-120) MUST occur maximum once. | If VAT exemption reason text is mapped, keep only one value for the relevant tax category. |
| Cardinality | IBR-SR-33 | Supporting document description (ibt-123) MUST occur maximum once | If supporting document description is mapped, keep only one description value. |
| Cardinality | IBR-SR-34 | Invoice line note (ibt-127) MUST occur maximum once | If invoice line note is mapped, keep only one note per line. |
| Cardinality | IBR-SR-38 | Invoiced item tax exemption reason text (ibt-185) MUST occur maximum once | If line tax-exemption reason text is mapped, keep only one value per line tax category. |
| Cardinality | IBR-SR-39 | Project reference (ibt-011) MUST occur maximum once. | Keep only one project reference in project_reference.id. |
| Cardinality | IBR-SR-42 | Party tax scheme MUST occur maximum twice in accounting supplier party | Keep party tax scheme occurrences within the allowed maximum for supplier party mapping. |
| Cardinality | IBR-SR-45 | Due Date (ibt-009) MUST occur maximum once | Keep only one due date value in due_date. |
| Cardinality | IBR-SR-46 | Payment means text (ibt-082) MUST occur maximum once | Keep only one payment means text (IBT-082 mapping) in payment_means.payment_means_text. |
| Cardinality | IBR-SR-49 | Value tax point date (ibt-007) MUST occur maximum once | Keep only one VAT point date in tax_point_date. |
| Cardinality | IBR-SR-50 | Item description (ibt-154) MUST occur maximum once | Keep only one item description per line in document_lines[].description. |
| Cardinality | IBR-SR-51 | Note (ibt-022) MUST occur maximum once | Keep only one note value in note. |
| Cardinality | IBR-SR-52 | Tender or lot reference (ibt-017) MUST occur maximum once | If tender/lot reference is mapped, keep only one value. |
| Cardinality | IBR-SR-53 | The Seller Postal Address Line (ibt-162) MUST occur maximum once | Keep only one seller postal address line in accounting_supplier_party.postal_address.street_name. |
| Cardinality | IBR-SR-54 | The Buyer Postal Address Line (ibt-163) MUST occur maximum once | Keep only one buyer postal address line in accounting_customer_party.postal_address.street_name. |
| Cardinality | IBR-SR-55 | The Tax Representative Postal Address Line (ibt-164) MUST occur maximum once | Keep only one tax representative postal address line in tax_representative_party.postal_address.street_name. |
| Cardinality | IBR-SR-56 | The Delivery Postal Address Line (ibt-165) MUST occur maximum once | Keep only one delivery postal address line in delivery.delivery_location.address.street_name. |
| Cardinality | IBR-SR-57 | Company identifier MUST exist in the party tax scheme class. | Ensure company identifier exists in accounting_supplier_party.party_tax_scheme.company_id (and customer equivalent when used). |
| Cardinality | IBR-SR-58 | The Invoiced item TAX category code (ibt-151) MUST be present. | Ensure each line has tax category code in document_lines[].classified_tax_category.id. |
| Cardinality | IBR-SR-59 | The Payee Postal Address Line (ibt-174) MUST occur maximum once | Keep only one payee postal address line in payee_party.postal_address.street_name (if mapped). |
| Cardinality | IBR-SR-60 | Payment Instruction ID (ibt-187) MUST occur maximum once. | Keep only one payment instruction id in payment_means[].payment_id (if mapped). |
| Cardinality | IBR-SR-61 | Allowance/charge tax exemption reason (ibt-197) (ibt-199) MUST occur maximum once. | If allowance/charge tax exemption reason is mapped, keep only one reason per allowance/charge tax category. |
| Cardinality | IBR-SR-62 | Despatch advice line reference (ibt-184) MUST occur maximum once. | If despatch advice line reference is mapped, keep only one value per line. |
| Cardinality | IBR-SR-63 | [ibr-sr-63] - A Specification identifier must not contain a wildcard character such as '*'. (ibt-024) | What it is: the PINT “which rules apply” id (UBL cbc:CustomizationID). For you: it must not contain *. That value is produced in the XML pipeline, not in your JSON payload. If this appears, contact Marmin support. |
AE Specific PINT Rules
These rules apply only to UAE (AE) invoices. UAE senders should follow them. Receivers should apply them only if they support AE invoice receiving; otherwise, they can apply shared PINT rules only.
| Category | Error code | Error Description | Recommended Fix |
|---|---|---|---|
| Validation Rule | ALIGNED-IBRP-001-AE | Specification identifier (ibt-024) MUST start with the value 'urn:peppol:pint:billing-1@ae-1' or 'urn:peppol:pint:selfbilling-1@ae-1'. | What it is: the rule-set id must be the UAE PINT billing or self-billing profile (those URN prefixes). For you: that choice follows from how the document is issued (standard supplier invoice vs self-billing); you do not type this into the API. Wrong product or flow gives the wrong profile. If you are on the right flow and still fail, contact Marmin support. |
| Format | ALIGNED-IBRP-002-AE | Business process (ibt-023) MUST be in the format 'urn:peppol:bis:billing' or 'urn:peppol:bis:selfbilling'. | Check the generated XML value of IBT-023 and ensure it is exactly urn:peppol:bis:billing (supplier invoice) or urn:peppol:bis:selfbilling (self-billing). If your source payload does not expose this field, verify you are using the correct document flow/profile. |
| Calculation | ALIGNED-IBRP-004 | Item net price (ibt-146) MUST equal (Gross price (ibt-148) - Price discount (ibt-147)) when gross price is provided. | When gross price is used, ensure line net price equals gross price minus line price discount in your line price mapping. |
| Tax Logic | ALIGNED-IBRP-032 | Each Document level allowance (ibg-20) MUST have a Document level allowance VAT category code (ibt-095). | Set allowances[].tax_category.id to the required VAT category code for each document-level allowance (and provide allowances[].tax_category.percent when the chosen category requires a rate). |
| Tax Logic | ALIGNED-IBRP-037 | Each Document level charge (ibg-21) MUST have a Document level charge VAT category code (ibt-102). | Set charges[].tax_category.id to the required VAT category code for each document-level charge (and provide charges[].tax_category.percent when the chosen category requires a rate). |
| Tax Logic | ALIGNED-IBRP-045 | Each VAT breakdown (ibg-23) MUST have a VAT category taxable amount (ibt-116). | Taxable amounts are computed from VAT category tagging. Ensure VAT category ids are set consistently on document_lines[].classified_tax_category.id (and matching allowances[].tax_category.id / charges[].tax_category.id when applicable) so each VAT category gets the correct taxable base. |
| Tax Logic | ALIGNED-IBRP-046 | Each VAT breakdown (ibg-23) MUST have a VAT category tax amount (ibt-117). | Tax amount depends on VAT category rates. Ensure document_lines[].classified_tax_category.percent and the matching allowances[].tax_category.percent / charges[].tax_category.percent are set consistently for the VAT categories you use. |
| Tax Logic | ALIGNED-IBRP-047 | Each VAT breakdown (ibg-23) MUST be defined through a VAT category code (ibt-118). | Make VAT breakdown category codes match your VAT category ids: set document_lines[].classified_tax_category.id and matching allowances[].tax_category.id / charges[].tax_category.id so the same VAT category set is used across the invoice. |
| Tax Logic | ALIGNED-IBRP-048 | Each VAT breakdown (ibg-23) MUST have a VAT category rate (ibt-119), except if the Invoice is not subject to VAT or Exempt from Tax. | Apply rates exactly from tax category codelist: S=5, Z=0, E=0, O=0, AE=0, N=0; set these in document_lines[].classified_tax_category.percent, allowances[].tax_category.percent, and charges[].tax_category.percent. |
| Mandatory Field | ALIGNED-IBRP-057 | Either both or neither Allowance base amount (ibt-093) and percentage (ibt-094) MUST be provided. | Provide both allowance base and percentage together in allowances[] (or omit both). |
| Mandatory Field | ALIGNED-IBRP-058 | Either both or neither Charge base amount (ibt-100) and percentage (ibt-101) MUST be provided. | Provide both charge base and percentage together in charges[] (or omit both). |
| Cardinality | ALIGNED-IBRP-AE-01-AE | An Invoice that contains an Invoice line (ibg-25), a Document level allowance (ibg-20) or a Document level charge (ibg-21) where the VAT category code (ibt-151, ibt-095 or ibt-102) is "Reverse charge" MUST contain in the VAT Breakdown (ibg-23) at least one VAT category code (ibt-118) equal with "VAT reverse charge". | If any line/allowance/charge uses reverse-charge VAT category, confirm the VAT breakdown also contains a reverse-charge group. Align document_lines[].classified_tax_category.id, allowances[].tax_category.id, and charges[].tax_category.id with the generated breakdown category code. |
| Mandatory Field | ALIGNED-IBRP-AE-05-AE | In an Invoice line (ibg-25) where the Invoiced item VAT category code (ibt-151) is "Reverse charge" the Invoiced item VAT rate (ibt-152) MUST be there. | For reverse-charge lines, use codelist rate 0: set document_lines[].classified_tax_category.id=AE and document_lines[].classified_tax_category.percent=0. |
| Tax Logic | ALIGNED-IBRP-AE-06 | In a Document level allowance (ibg-20) where the Document level allowance VAT category code (ibt-95) is "Reverse charge" the Document level allowance VAT rate (ibt-96) MUST be zero. | For reverse charge allowances, set allowances[].tax_category.id=Reverse charge and allowances[].tax_category.percent=0. |
| Tax Logic | ALIGNED-IBRP-AE-07 | In a Document level charge (ibg-21) where the Document level charge VAT category code (ibt-102) is "Reverse charge" the Document level charge VAT rate (ibt-103) MUST be zero. | For reverse charge charges, set charges[].tax_category.id=Reverse charge and charges[].tax_category.percent=0. |
| Calculation | ALIGNED-IBRP-AE-08-AE | In a VAT Breakdown (IBG-23) where the VAT category code (IBT-118) is 'Reverse Charge', for each different value of VAT category rate (IBT-119) the VAT category taxable amount (IBT-116) shall equal the sum of Invoice line net amounts (IBT-131) plus the sum of Document level charge amounts (IBT-99) minus the sum of Document level allowance amounts (IBT-92) where the VAT category code (IBT-151, IBT-102, IBT-095) is 'Reverse Charge' and the VAT rate (IBT-152, IBT-103, IBT-096) equals the VAT category rate (IBT-119). | Recompute reverse-charge taxable amount by rate bucket: sum(reverse-charge lines) + sum(reverse-charge charges) - sum(reverse-charge allowances). Ensure this equals the reverse-charge VAT breakdown taxable amount for the same rate. |
| Tax Logic | ALIGNED-IBRP-AE-09-AE | In a VAT breakdown (IBG-23) where the VAT category code (IBT-118) is 'Reverse charge', VAT category tax amount (IBT-117) MUST be equal to 0 (zero). | For reverse charge VAT tax amount = 0, ensure all Reverse charge items have percent=0: document_lines[].classified_tax_category.percent=0, allowances[].tax_category.percent=0, and charges[].tax_category.percent=0. |
| Cardinality | ALIGNED-IBRP-E-01 | An Invoice that contains an Invoice line (ibg-25), a Document level allowance (ibg-20) or a Document level charge (ibg-21) where the VAT category code (ibt-151, ibt-95 or ibt-102) is "Exempt from VAT" MUST contain exactly one VAT breakdown (ibg-23) with the VAT category code (ibt-118) equal to "Exempt from VAT". | If any component is Exempt from VAT, ensure the VAT breakdown has exactly one exempt group. Merge duplicate exempt breakdown entries and keep category ids consistent across lines/allowances/charges. |
| Rule Constraint | ALIGNED-IBRP-E-05 | In an Invoice line (ibg-25) where the Invoiced item VAT category code (ibt-151) is "Exempt from VAT", the Invoiced item VAT rate (ibt-152) shall not be there. | For Exempt lines, do not send VAT rate in document_lines[].classified_tax_category.percent. |
| Tax Logic | ALIGNED-IBRP-E-06 | In a Document level allowance (ibg-20) where the Document level allowance VAT category code (ibt-95) is "Exempt from VAT", the Document level allowance VAT rate (ibt-96) MUST be 0 (zero). | For exempt allowances, set allowances[].tax_category.id=Exempt from VAT and allowances[].tax_category.percent=0. |
| Tax Logic | ALIGNED-IBRP-E-07 | In a Document level charge (ibg-21) where the Document level charge VAT category code (ibt-102) is "Exempt from VAT", the Document level charge VAT rate (ibt-103) MUST be 0 (zero). | For exempt charges, set charges[].tax_category.id=Exempt from VAT and charges[].tax_category.percent=0. |
| Calculation | ALIGNED-IBRP-E-08 | In a VAT breakdown (ibg-23) where the VAT category code (ibt-118) is "Exempt from VAT" the VAT category taxable amount (ibt-116) MUST equal the sum of Invoice line net amounts (ibt-131) minus the sum of Document level allowance amounts (ibt-92) plus the sum of Document level charge amounts (ibt-99) where the VAT category codes (ibt-151, ibt-95, ibt-102) are "Exempt from VAT". | Recompute exempt taxable amount as sum(exempt lines) - sum(exempt allowances) + sum(exempt charges) and verify the exempt VAT breakdown taxable amount matches that value. |
| Calculation | ALIGNED-IBRP-E-09 | The VAT category tax amount (ibt-117) In a VAT breakdown (ibg-23) where the VAT category code (ibt-118) equals "Exempt from VAT" MUST equal 0 (zero). | Verify exempt VAT breakdown tax amount is exactly 0. If not, check that exempt items are not accidentally tagged/rated as taxable categories. |
| Cardinality | ALIGNED-IBRP-O-01 | An Invoice that contains an Invoice line (ibg-25), a Document level allowance (ibg-20) or a Document level charge (ibg-21) where the VAT category code (ibt-151, ibt-95 or ibt-102) is "Not subject to VAT" MUST contain exactly one VAT breakdown group (ibg-23) with the VAT category code (ibt-118) equal to "Not subject to VAT". | If any component uses Not subject to VAT, ensure there is exactly one matching VAT breakdown group and remove duplicates for this category. |
| Rule Constraint | ALIGNED-IBRP-O-05 | An Invoice line (ibg-25) where the VAT category code (ibt-151) is "Not subject to VAT" MUST not contain an Invoiced item VAT rate (ibt-152). | For Not-subject lines, do not send VAT rate in document_lines[].classified_tax_category.percent. |
| Rule Constraint | ALIGNED-IBRP-O-06 | A Document level allowance (ibg-20) where VAT category code (ibt-95) is "Not subject to VAT" MUST not contain a Document level allowance VAT rate (ibt-96). | For Not-subject allowances, do not send VAT rate in allowances[].tax_category.percent. |
| Rule Constraint | ALIGNED-IBRP-O-07 | A Document level charge (ibg-21) where the VAT category code (ibt-102) is "Not subject to VAT" MUST not contain a Document level charge VAT rate (ibt-103). | For Not-subject charges, do not send VAT rate in charges[].tax_category.percent. |
| Calculation | ALIGNED-IBRP-O-08 | In a VAT breakdown (ibg-23) where the VAT category code (ibt-118) is " Not subject to VAT" the VAT category taxable amount (ibt-116) MUST equal the sum of Invoice line net amounts (ibt-131) minus the sum of Document level allowance amounts (ibt-92) plus the sum of Document level charge amounts (ibt-99) where the VAT category codes (ibt-151, ibt-95, ibt-102) are "Not subject to VAT". | Recompute not-subject taxable amount as sum(not-subject lines) - sum(not-subject allowances) + sum(not-subject charges) and confirm it matches the not-subject VAT breakdown taxable amount. |
| Tax Logic | ALIGNED-IBRP-O-09 | The VAT category tax amount (ibt-117) in a VAT breakdown (ibg-23) where the VAT category code (ibt-118) is "Not subject to VAT" MUST be 0 (zero). | For Not subject to VAT, ensure tax amount becomes 0 by setting .percent=0 for that VAT category in document_lines[].classified_tax_category, allowances[].tax_category, and charges[].tax_category where id=Not subject to VAT. |
| Rule Constraint | ALIGNED-IBRP-O-11-AE | In a VAT breakdown (IBG-23) where VAT category code (IBT-118) is 'Not Subject to VAT', VAT category tax Rate (IBT-119) shall not be provided. | For Not subject to VAT breakdown entries, omit VAT rate in the generated breakdown. Check your mapping so this category does not emit a non-zero rate. |
| Cardinality | ALIGNED-IBRP-S-01 | An Invoice that contains an Invoice line (ibg-25), a Document level allowance (ibg-20) or a Document level charge (ibg-21) where the VAT category code (ibt-151, ibt-95 or ibt-102) is "Standard rated" MUST contain in the VAT breakdown (ibg-23) at least one VAT category code (ibt-118) equal with "Standard rated". | If any line/allowance/charge is standard-rated, ensure the VAT breakdown includes a Standard rated group and that category ids match across source fields. |
| Tax Logic | ALIGNED-IBRP-S-05 | In an Invoice line (ibg-25) where the Invoiced item VAT category code (ibt-151) is "Standard rated" the Invoiced item VAT rate (ibt-152) MUST be greater than zero. | For Standard rated lines, set document_lines[].classified_tax_category.id=S and document_lines[].classified_tax_category.percent=5. |
| Tax Logic | ALIGNED-IBRP-S-06 | In a Document level allowance (ibg-20) where the Document level allowance VAT category code (ibt-95) is "Standard rated" the Document level allowance VAT rate (ibt-96) MUST be greater than zero. | For Standard rated allowances, set allowances[].tax_category.id=S and allowances[].tax_category.percent=5. |
| Tax Logic | ALIGNED-IBRP-S-07 | In a Document level charge (ibg-21) where the Document level charge VAT category code (ibt-102) is "Standard rated" the Document level charge VAT rate (ibt-103) MUST be greater than zero. | For Standard rated charges, set charges[].tax_category.id=S and charges[].tax_category.percent=5. |
| Calculation | ALIGNED-IBRP-S-08 | For each different value of VAT category rate (ibt-119) where the VAT category code (ibt-118) is "Standard rated", the VAT category taxable amount (ibt-116) in a VAT breakdown (ibg-23) MUST equal the sum of Invoice line net amounts (ibt-131) plus the sum of document level charge amounts (ibt-99) minus the sum of document level allowance amounts (ibt-92) where the VAT category code (ibt-151, ibt-102, ibt-95) is "Standard rated" and the VAT rate (ibt-152, ibt-103, ibt-96) equals the VAT category rate (ibt-119). | Recompute taxable base per standard-rate bucket: sum(standard lines at rate R) + sum(standard charges at rate R) - sum(standard allowances at rate R) and match it to the VAT breakdown taxable amount for that same rate. |
| Calculation | ALIGNED-IBRP-S-09 | The VAT category tax amount (ibt-117) in a VAT breakdown (ibg-23) where VAT category code (ibt-118) is "Standard rated" MUST equal the VAT category taxable amount (ibt-116) multiplied by the VAT category rate (ibt-119). | Verify tax_amount = taxable_amount x rate / 100 for each standard-rated VAT breakdown line, using consistent rounding (2 decimals) at document level. |
| Rule Constraint | ALIGNED-IBRP-S-10 | A VAT breakdown (ibg-23) with VAT Category code (ibt-118) "Standard rate" MUST not have a VAT exemption reason code (ibt-121) or VAT exemption reason text (ibt-120). | Remove exemption reason code/text from any Standard rated VAT breakdown entry; those fields are only valid for non-taxable/exempt scenarios. |
| Cardinality | ALIGNED-IBRP-SR-12 | Seller tax identifier (ibt-031) MUST occur maximum once | Keep only one seller tax identifier in accounting_supplier_party.party_tax_scheme.company_id (IBT-031). |
| Cardinality | ALIGNED-IBRP-Z-01 | An Invoice that contains an Invoice line (ibg-25), a Document level allowance (ibg-20) or a Document level charge (ibg-21) where the VAT category code (ibt-151, ibt-95 or ibt-102) is "Zero rated" MUST contain in the VAT breakdown (ibg-23) exactly one VAT category code (ibt-118) equal with "Zero rated". | If any component is zero-rated, keep exactly one zero-rated VAT breakdown group and merge duplicates for this category. |
| Tax Logic | ALIGNED-IBRP-Z-05 | In an Invoice line (ibg-25) where the Invoiced item VAT category code (ibt-151) is "Zero rated" the Invoiced item VAT rate (ibt-152) MUST be 0 (zero). | For zero-rated lines, set document_lines[].classified_tax_category.id=Zero rated and document_lines[].classified_tax_category.percent=0. |
| Tax Logic | ALIGNED-IBRP-Z-06 | In a Document level allowance (ibg-20) where the Document level allowance VAT category code (ibt-95) is "Zero rated" the Document level allowance VAT rate (ibt-96) MUST be 0 (zero). | For zero-rated allowances, set allowances[].tax_category.id=Zero rated and allowances[].tax_category.percent=0. |
| Tax Logic | ALIGNED-IBRP-Z-07 | In a Document level charge (ibg-21) where the Document level charge VAT category code (ibt-102) is "Zero rated" the Document level charge VAT rate (ibt-103) MUST be 0 (zero). | For zero-rated charges, set charges[].tax_category.id=Zero rated and charges[].tax_category.percent=0. |
| Calculation | ALIGNED-IBRP-Z-08 | In a VAT breakdown (ibg-23) where VAT category code (ibt-118) is "Zero rated" the VAT category taxable amount (ibt-116) MUST equal the sum of Invoice line net amount (ibt-131) minus the sum of Document level allowance amounts (ibt-92) plus the sum of Document level charge amounts (ibt-99) where the VAT category codes (ibt-151, ibt-95, ibt-102) are "Zero rated". | Recompute zero-rated taxable amount as sum(zero-rated lines) - sum(zero-rated allowances) + sum(zero-rated charges) and ensure it matches the zero-rated VAT breakdown taxable amount. |
| Calculation | ALIGNED-IBRP-Z-09 | The VAT category tax amount (ibt-117) in a VAT breakdown (ibg-23) where VAT category code (ibt-118) is "Zero rated" MUST equal 0 (zero). | Verify zero-rated VAT breakdown tax amount is exactly 0; if non-zero, check for incorrect rate/category mapping on zero-rated entries. |
| Format | IBR-001-AE | Credit note reason code [BTAE-03] value should be from the Reasons for credit note code list. | Validate the credit note reason code against the UAE "Reasons for credit note" codelist configured in your integration; replace free-text/non-listed values with a valid code. |
| Tax Logic | IBR-002-AE | Currency exchange rate [BTAE-04] should contain the values till maximum of 6 decimal places. | Set tax_exchange_rate.calculation_rate with at most 6 decimal places. |
| Format | IBR-005-AE | Frequency of billing (BTAE-06) should be taken from the frequency of billing code list. | Check that BTAE-06 uses an allowed frequency code from the configured codelist (not free text). If unsupported in your payload, verify the value generated by your billing profile settings. |
| Format | IBR-006-AE | In Item Information (IBG-31) where Invoiced tax category code (ibt-151) is 'VAT Reverse charge', Type of goods or services (BTAE-09) MUST be selected from the Goods or services subject to RCM Code list. | For reverse-charge lines, set BTAE-09 using a valid code from the RCM goods/services codelist; do not send arbitrary text. |
| Mandatory Field | IBR-007-AE | When Invoice Transaction-type code (BTAE-02) has value 1XXXXXXX (Free trade zone), then providing value in Beneficiary ID (BTAE-01) MUST be provided. | If the first transaction-type flag indicates Free trade zone (1XXXXXXX), populate BTAE-01 (Beneficiary ID). If this scenario is not intended, correct profile_execution_id so the free-trade-zone flag is not set. |
| Mandatory Field | IBR-010-AE | Passport issuing country code (BTAE-19) MUST be there when Buyer legal registration identifier type (BTAE-16) is 'Passport' | If buyer legal registration type is Passport, ensure the related passport issuing country is populated in your legal-id mapping for buyer identity data before XML generation. |
| Format | IBR-011-AE | Passport issuing country code (BTAE-19) MUST be coded using ISO code list 3166-1. | Use ISO 3166-1 alpha-2 country code format (for example AE, IN, GB) for buyer passport issuing country in the mapped legal identifier data. |
| Mandatory Field | IBR-012-AE | Passport issuing country code (BTAE-18) MUST be there when Seller legal registration identifier type (BTAE-15) is 'Passport' | If seller legal registration type is Passport, ensure seller passport issuing country is populated in your supplier legal-id mapping/profile. |
| Format | IBR-013-AE | Passport issuing country code (BTAE-18) MUST be coded using ISO code list 3166-1. | Use ISO 3166-1 alpha-2 country code values for seller passport issuing country in your mapping/profile data. |
| Validation Rule | IBR-055-AE | Preceding invoice reference (IBG-03) is must when invoice type code (IBT-003) is 381 (Credit note) or 81 (Credit note related to goods or services) except when the [BTAE-03] Credit note reason code is 'VD'. | For credit notes that require a preceding invoice, fill billing_reference[].id (and billing_reference[].issue_date when available). If the credit note reason is VD, this reference may be omitted per rule. If you cannot set credit note reason or reference in your integration, contact Marmin support with your document id. |
| Mandatory Field | IBR-101-AE | Authority name (BTAE-11) MUST be there when Buyer legal registration identifier type (BTAE-16) is Commercial/Trade license. | When buyer legal registration type is Commercial/Trade license, provide the issuing authority name in the buyer legal registration mapping (for example DED authority name). |
| Calculation | IBR-102-AE | In a VAT Breakdown (IBG-23) where the VAT category code (IBT-118) is 'Standard rate additional VAT', for each different value of VAT category rate (IBT-119) the VAT category taxable amount (IBT-116) shall equal the sum of Invoice line net amounts (IBT-131) where the VAT category code (IBT-151) is 'Standard rate additional VAT' and the VAT rate (IBT-152) equals the VAT category rate (IBT-119). | Ensure the VAT breakdown taxable amount matches the aggregate of all lines using the Standard rate additional VAT category. |
| Mandatory Field | IBR-103-AE | When the Invoiced item VAT category code (ibt-151) is VAT reverse charge, then Buyer VAT identifier (ibt-048) MUST be provided. | For reverse-charge lines, set document_lines[].classified_tax_category as required, and ensure the buyer TRN is present in accounting_customer_party.party_tax_scheme.company_id. |
| Format | IBR-104-AE | An Invoice line (IBG-25), where Line VAT Information (IBG-30) is present then Invoice line amount in AED (BTAE-10) and VAT Line amount in AED (BTAE-08) must be provided. | If line VAT information is present, verify your PEPPOL/XML output includes both line amount in AED and VAT line amount in AED for each line. For foreign-currency invoices, also ensure tax_currency_code=AED and tax_exchange_rate are provided. |
| Cardinality | IBR-105-AE | An Invoice that contains an Invoice line (IBG-25), where the VAT category code (IBT-151) is 'Standard rate additional VAT' shall contain exactly one VAT breakdown group (IBG-23) with the VAT category code (IBT-118) equal to 'Standard rate additional VAT'. | Consolidate all Standard rate additional VAT lines under exactly one VAT breakdown group for this category. |
| Tax Logic | IBR-108-AE | In a VAT breakdown (IBG-23), where VAT category code (IBT-118) is 'Standard rate additional VAT', VAT category tax amount (IBT-117) MUST be equal to 0 (zero). | For VAT breakdown code Standard rate additional VAT (N), tax amount must be 0. Ensure all items tagged with this category use rate 0 (.percent=0) so the breakdown tax amount stays zero. |
| Tax Logic | IBR-111-AE | An Invoice line (IBG-25) where the VAT category code (IBT-151) is 'Standard rate additional VAT' the Invoiced item VAT rate (IBT-152) should not be zero. | Apply the correct non-zero VAT rate for lines categorized as Standard rate additional VAT. |
| Rule Constraint | IBR-114-AE | Document level charge VAT category code (IBT-102) cannot be 'Standard rate additional VAT'. | Reclassify document-level charges to a valid standard VAT category. |
| Rule Constraint | IBR-115-AE | Document level allowance tax category code (IBT-095) cannot be 'Standard rate additional VAT'. | Reclassify document-level allowances to valid standard tax categories. |
| Tax Logic | IBR-116-AE | When Invoice transaction-type code (BTAE-02) has value XX1XXXXX (Margin scheme), then the tax category code (IBT-151) should have 'Standard rate additional VAT '. | For margin scheme, set VAT category to Standard rate additional VAT (N) on affected lines and apply codelist rate 0 in document_lines[].classified_tax_category.percent. |
| Tax Logic | IBR-119-AE | Each VAT breakdown (IBG-23) shall have a VAT category rate (IBT-119), except if the Invoice is not subject to VAT and Exempt from Tax. | Set VAT rate using .percent in document_lines[].classified_tax_category.percent, allowances[].tax_category.percent, and charges[].tax_category.percent for all VAT categories except Exempt from VAT / Not subject to VAT (those must have percent=0 or be omitted if supported). |
| Calculation | IBR-120-AE | In a VAT breakdown (IBG-23) where VAT category code (IBT-118) is 'Zero Rated', VAT category Rate (IBT-119) shall equal to 0. | For zero-rated entries, use percent=0 in document_lines[].classified_tax_category.percent, allowances[].tax_category.percent, and charges[].tax_category.percent where applicable. |
| Rule Constraint | IBR-121-AE | In a VAT breakdown (IBG-23) where VAT category code (IBT-118) is 'Exempt from VAT', VAT category Rate (IBT-119) shall not be provided. | For exempt entries, do not send a non-zero VAT rate; keep percent=0 (or omit rate where your mapping supports omission) for exempt tax categories. |
| Tax Logic | IBR-122-AE | When Invoice type code (IBT-003) is 'Out of scope of VAT' or 'Credit note related to goods or services', then the Document level allowance VAT category code (IBT-095), Document level charge VAT category code (IBT-102), Invoiced item VAT category code (IBT-151) MUST be either 'Exempt from VAT' and/or 'Not subject to VAT' and/or 'Zero rated'. | For Out of scope of VAT / credit-note related types, restrict VAT categories to Exempt from VAT, Not subject to VAT, and/or Zero rated by updating document_lines[].classified_tax_category.id, allowances[].tax_category.id, and charges[].tax_category.id (set .percent=0 for non-taxable categories). |
| Cardinality | IBR-123-AE | Line VAT Information (IBG - 30) MUST be there and can occur maximum once except in case when invoice type code is 'Out of scope of VAT' or 'Credit note related to goods or services'. | For applicable invoice types, ensure each line has exactly one VAT info block by setting one valid document_lines[].classified_tax_category per line. For excluded types, do not force this block. |
| Rule Constraint | IBR-124-AE | VAT point date [IBT-007] MUST not be there when invoice type code (IBT-003) is 'credit note' or 'Credit note related to goods or services'. | For credit note types, omit tax_point_date from the request. Use the correct invoice_type_code for your document. |
| Format | IBR-125-AE | In Item Information(IBG-31), Item description (IBT-154) MUST be there. | Provide item description in document_lines[].description (example: "Consulting service - May 2026"). |
| Mandatory Field | IBR-126-AE | In Price Details (IBG-29), Item price base quantity (IBT-149) and Item Gross Price (IBT-148) MUST be there. | Ensure each line price includes document_lines[].price.base_quantity and a valid price amount in document_lines[].price.base_amount per your line-price mapping. |
| Mandatory Field | IBR-127-AE | Payment due date [IBT-009] MUST be present when the amount due for payment (IBT-115) greater than 0, except when invoice type code (IBT-003) is 'Credit note' or 'Credit note related to goods or services' or Invoice transaction-type code (BTAE-002) is X1XXXXXX (Deemed supply) . | When the payable amount is greater than zero and the rule applies, fill due_date (yyyy-MM-dd). Omit only for excluded credit note types or when deemed supply applies (Deemed supply is the second character of profile_execution_id; see the sale invoice object documentation for profile_execution_id). |
| Validation Rule | IBR-128-AE | When Country code (IBT-040, IBT-055, IBT-069, IBT-080) is AE, then country subdivision (IBT-039, IBT-054, IBT-068, IBT-079) should be one among one of these (AUH, DXB, SHJ, UAQ, FUJ, AJM, RAK). | Where the country is AE, set country_subentity on the relevant postal or delivery addresses to an approved emirate code (AUH, DXB, SHJ, AJM, UAQ, RAK, FUJ)—for example accounting_supplier_party.postal_address.country_subentity, accounting_customer_party.postal_address.country_subentity, tax_representative_party.postal_address.country_subentity, or delivery.delivery_location.address.country_subentity. |
| Calculation | IBR-131-AE | Allowance amount (IBT-092, IBT-136) must equal base amount (IBT-093, IBT-137) * percentage (IBT-094, IBT-138) /100 if base amount and percentage exists | Recalculate related amounts/fields so this formula holds exactly. |
| Validation Rule | IBR-132-AE | VAT identifier [IBT-031, IBT-048, IBT-063, BTAE-14] should be TRN [VAT registration number] and must be 15 alphanumeric digits, starting with 1, ending with 03 . | Ensure VAT identifiers you send (seller/buyer/tax representative TRN fields such as *.party_tax_scheme.company_id) follow UAE TRN format: 15 digits, starts with 1, ends with 03. |
| Validation Rule | IBR-133-AE | VAT scheme code, if provided in (IBT-095-01) or (IBT-031-1) or (IBT-048-1) or (IBT-063-1) or (IBT-102-1) or (IBT-118-1) shall be 'VAT' except when Seller tax registration identifier (IBT-032) is provided. | Where tax scheme code is mapped, set it to VAT on party and tax-category scheme fields used in your payload. |
| Mandatory Field | IBR-134-AE | Seller VAT Identifier (IBT-031) MUST be there, except when the Invoice type code (IBT-003) is 'Out of scope of VAT' or 'Credit note related to goods or services'. | Unless the invoice type is out-of-scope or the listed credit-note-related type, provide the seller TRN in accounting_supplier_party.party_tax_scheme.company_id (and ensure invoice_type_code matches your scenario). |
| Format | IBR-135-AE | Either Buyer identifier (IBT-046) or Buyer VAT identifier (IBT-048 ) MUST be present when the Invoice transaction type code [BTAE-02] is other than XXXXXXX1 (Exports) and scheme identifier (IBT-049-1) is '0235' and buyer electronic address (IBT-049) is not '1XXXXXXXXX' | When this rule applies, provide at least one buyer identifier field: either buyer party identifier mapping or VAT identifier in accounting_customer_party.party_tax_scheme.company_id (example TRN: 100000000000003). |
| Mandatory Field | IBR-136-AE | Buyer legal registration identifier (IBT-047) must be present when Invoice type code [IBT-003] is 'Out of scope of VAT' or 'Credit note related to goods or services' | For those document types, fill accounting_customer_party.company_id with the buyer legal registration identifier. |
| Validation Rule | IBR-137-AE | Principle ID (BTAE-14) is MUST, where Invoice transaction type code [BTAE-02] is XXXXX1XX (Disclosed Agent billing). | If Disclosed Agent Billing applies (profile_execution_id sixth flag = 1), populate Principle ID in your seller tax/legal mapping used for XML generation. If this scenario is not intended, correct profile_execution_id. |
| Validation Rule | IBR-138-AE | Invoicing period [IBG-14] is MUST, where Invoice transaction type code [BTAE-02] is XXX1XXXX (Summary invoice). | When Summary Invoice applies (profile_execution_id fourth flag = 1), provide invoice_period with start_date and/or end_date (format yyyy-MM-dd, with start <= end). |
| Validation Rule | IBR-139-AE | Document level allowance tax category code [IBT-095], Document level charge tax category code [IBT-102], Tax category code [IBT-118], Invoiced item tax category code [IBT-151] should be selected from the aligned tax category code. | Use only allowed aligned VAT category codes on document_lines[].classified_tax_category.id, allowances[].tax_category.id, and charges[].tax_category.id (see the tax category codelist in the docs). |
| Validation Rule | IBR-140-AE | When VAT accounting currency (IBT-006) is present, it shall be AED. | If you send tax_currency_code, set it to AED for UAE tax accounting. |
| Validation Rule | IBR-141-AE | When, VAT point date [IBT-007] is present, it should be before the Invoice issue date [IBT-002]. | If tax_point_date is set, ensure it is on or before issue_date (both yyyy-MM-dd). |
| Format | IBR-142-AE | In Delivery Information (ibg-13), Deliver to address line 1 (IBT-075), Deliver to city (IBT-077), Deliver to country subdivision (IBT-079) MUST be there, in case the Invoice transaction type code [BTAE-02] is XXXXXX1X (E-commerce supplies). | For e-commerce transaction type, fill delivery address fields under delivery.delivery_location.address: street_name, city_name, and country_subentity (example: street_name: "Al Rigga Rd", city_name: "Dubai", country_subentity: "DXB"). |
| Mandatory Field | IBR-143-AE | In Seller postal address (IBG-05), Seller address line 1 (IBT-035), Seller city (IBT-037) and Seller to country subdivision (IBT-039) must be provided. | Fill seller address fields under accounting_supplier_party.postal_address (line1/city/subdivision). |
| Mandatory Field | IBR-144-AE | In Buyer postal address (IBG-08), Address line 1 (IBT-050), Buyer city (IBT-052) and Buyer country subdivision (IBT-054) must be provided | Fill buyer address fields under accounting_customer_party.postal_address (line1/city/subdivision). |
| Tax Logic | IBR-145-AE | Each Invoice line (IBG-25) MUST be categorized with an Invoiced item VAT category code (IBT-151).. | For every document_lines[] item, set document_lines[].classified_tax_category.id (and the matching document_lines[].classified_tax_category.percent according to that VAT category). |
| Calculation | IBR-146-AE | Charge amount (IBT-099, IBT-141) must equal base amount (IBT-100, IBT-142) * percentage (IBT-101, IBT-143) /100 if base amount and percentage exists | Recalculate related amounts/fields so this formula holds exactly. |
| Calculation | IBR-147-AE | Invoice line net amount (IBT-131) MUST equal (Invoiced quantity (IBT-129) * (Item net price (IBT-146)/item price base quantity (IBT-149)) + Sum of invoice line charge amount (IBT-141) - sum of invoice line allowance amount (IBT-136). | Ensure each line’s net amount follows: quantity × (price.base_amount / price.base_quantity) plus the sum of document_lines[].charges[].amount minus the sum of document_lines[].allowances[].amount, matching PEPPOL rounding rules. |
| Format | IBR-148-AE | The Seller VAT registration identifier (IBT-032) should be TIN (tax identification number) and must be 10 numeric digits and should be of the format 1XXXXXXXXXX. | If seller TIN mapping is used, ensure it is 10 numeric digits in the required 1XXXXXXXXX format. |
| Format | IBR-149-AE | The buyer legal registration identifier (IBT-047) MUST be provided when the scheme identifier (IBT-049-1) is '0235' and buyer electronic address (IBT-049) is not '1XXXXXXXXX' or '9XXXXXXXXX' | When the condition applies, fill buyer legal registration id in accounting_customer_party.company_id (example: "1234567"). |
| Format | IBR-150-AE | The Seller legal registration identifier (IBT-030) MUST be provided when the scheme identifier (IBT-034-1) is '0235' | When seller endpoint scheme is 0235, fill seller legal registration id in accounting_supplier_party.company_id (example: "1234567111"). |
| Tax Logic | IBR-151-AE | When Invoice type code (IBT-003) is 'Commercial invoice' or 'Credit note', Invoiced item VAT category code (IBT-151) should not only contain 'Exempt from VAT' and/or 'Not subject to VAT'. | For Commercial invoice and Credit note, ensure you have at least one taxable line by setting document_lines[].classified_tax_category.id to a taxable VAT category (not only Exempt from VAT / Not subject to VAT). |
| Format | IBR-152-AE | In Delivery Information (IBG-13), Deliver to address line 1 (IBT-075), deliver to city (IBT-077), deliver to country subdivision (IBT-079) MUST be there, in case the Invoice transaction type code [BTAE-02] is XXXXXXX1 (Exports) and the deliver to country code [IBT-080] should not be 'AE'. | For export transaction type, fill delivery address in delivery.delivery_location.address (street_name, city_name, country_subentity) and keep country_code outside AE (example: country_code: "SA"). |
| Tax Logic | IBR-153-AE | When the Tax accounting currency (IBT-006) is set to AED and the invoice currency code (IBT-005) differs from AED, the source currency must be designated as the invoice currency code (IBT-005), and the target currency must be specified as the Tax accounting currency (IBT-006), provided that the currency exchange rate (BTAE-04) is available | When tax_currency_code=AED and document_currency_code differs from AED, set tax_exchange_rate.source_currency_code=document_currency_code, tax_exchange_rate.target_currency_code=AED, and provide tax_exchange_rate.calculation_rate. |
| Format | IBR-154-AE | Invoice Transaction-type code (BTAE-02) must be provided from the Invoice Transaction Type Code List. It should be a string consisting of no more than 8 characters, exclusively comprising of 0 and 1. The value in this field should be based on the sequence of transaction present in the invoice (as per list order), If applicable '1', and if not applicable '0' . | Set profile_execution_id as 8 binary digits only (example: 00000000, 10000000, 00000001 based on transaction flags). |
| Rule Constraint | IBR-157-AE | Invoice Transaction-type code (BTAE-02) cannot be XXX1XXXX (Summary invoice) or X1XXXXXX (Deemed supply) or XX1XXXXX (Margin scheme) when the invoice type code (IBT-003) is 'Out of scope of VAT' or 'Credit note related to goods or services'. | Correct the 8-digit transaction flag so it is compatible with the selected invoice type and does not use Summary/Deemed/Margin for out-of-scope scenarios. |
| Mandatory Field | IBR-158-AE | Where the Invoice type code [IBT-003] is 'Credit note', Credit note reason code [BTAE-03] MUST be there . | For credit note flows, ensure a valid credit note reason code is mapped from your source/business profile into the generated document. Validate it against the configured reason-code list before submission. |
| Tax Logic | IBR-159-AE | Currency exchange rate [BTAE-04] is MUST when then Invoice currency code [IBT-005] is different from 'AED'. | When document_currency_code differs from AED, provide tax_exchange_rate with correct tax_exchange_rate.source_currency_code, tax_exchange_rate.target_currency_code, and a valid tax_exchange_rate.calculation_rate. |
| Validation Rule | IBR-160-AE | When Frequency of billing (BTAE-06) value is 'Others', then value should be provided in Invoice note (IBT-022). | If billing frequency is Others, populate invoice note using note with a clear textual frequency description. |
| Format | IBR-162-AE | In Line VAT information (IBG-30) where Invoiced item VAT category code (IBT-151) is 'Reverse charge', VAT Line amount [BTAE-08] MUST be 'zero'. | For reverse-charge lines (document_lines[].classified_tax_category.id=AE), ensure rate is 0 and validate that generated line VAT amount in AED resolves to 0. |
| Format | IBR-163-AE | In Line VAT information (IBG-30) where Invoiced item VAT category code (IBT-151) is 'Exempt', VAT Line amount [BTAE-08] shall not be there. | For exempt lines (document_lines[].classified_tax_category.id=E), do not emit a line VAT amount in AED in the XML line VAT information block. |
| Format | IBR-165-AE | In Line VAT information (IBG-30) where Invoiced item VAT category code (IBT-151) is 'Zero Rated', VAT Line amount [BTAE-08] MUST be zero. | For zero-rated lines (document_lines[].classified_tax_category.id=Z with percent=0), ensure generated line VAT amount in AED is 0. |
| Format | IBR-166-AE | In Item information (IBG-31) where Invoiced VAT category code (IBT-151) is 'Reverse charge', Type of goods or services (BTAE-09) MUST be there. | Provide the mandatory type of goods or services classification (BTAE-09) for reverse-charge transactions. |
| Format | IBR-167-AE | Line VAT information (IBG-30) with Invoiced item VAT category code (IBT-151) as 'Exempt from VAT' MUST have a VAT exemption reason code (IBT-186). | For exempt line VAT category, set exemption reason code in line tax category field document_lines[].classified_tax_category.tax_exemption_reason_code (example: valid exemption reason code). |
| Tax Logic | IBR-168-AE | Document level allowances (IBG-20) with Document level allowance VAT category code (IBT-095) as 'Exempt from VAT' MUST have a Document level allowance VAT exemption reason code (IBT-196) | For allowances with allowances[].tax_category.id=Exempt from VAT, set allowances[].tax_category.tax_exemption_reason_code to the required exemption reason (IBT-196). |
| Tax Logic | IBR-169-AE | Document level charge (IBG-21) with Document level charge VAT category code (IBT-102) as 'Exempt from VAT' MUST have a Document level charge VAT exemption reason code (IBT-198). | For charges with charges[].tax_category.id=Exempt from VAT, set charges[].tax_category.tax_exemption_reason_code to the required exemption reason (IBT-198). |
| Mandatory Field | IBR-172-AE | Authority name (BTAE-12) MUST be there when the value in Seller legal registration identifier type (BTAE-15) is Commercial/Trade license. | Populate the authority name field (BTAE-12) with the relevant licensing body (for example, DED) when the registration type is Commercial/Trade license. |
| Format | IBR-173-AE | The value in Seller legal registration identifier type [BTAE-15] Scheme identifier [IBT-030-1] should either be 'Commercial/Trade license' or 'Emirates ID' or 'Passport' or 'Cabinet decision' when the value in Seller legal registration identifier (IBT-030) is provided and scheme identifier (IBT-034-1) is '0235' and the Seller country code (IBT-055) is AE. | When seller endpoint scheme is 0235 and seller country is AE, restrict seller legal registration identifier type to one of: Commercial/Trade license, Emirates ID, Passport, Cabinet decision. |
| Format | IBR-174-AE | In Item Information (IBG-31) where Invoiced VAT category code (IBT-151) is 'Reverse charge', the corresponding Item Standard Identifier (IBT-157) MUST be there and the Scheme Identifier (IBT-157-1) should have the code 0160. | Include the item standard identifier for reverse-charge lines and use scheme 0160. |
| Mandatory Field | IBR-175-AE | When Invoice currency code [IBT-005] is other than 'AED' and Tax accounting currency [IBT-006] is 'AED', then the value in Invoice total VAT amount in tax accounting currency [IBT-111] and Invoice (or CreditNote) total amount with VAT in AED [BTAE-20] MUST be present. | For foreign-currency invoices, set tax_currency_code=AED and provide tax_exchange_rate (source_currency_code=document_currency_code, target_currency_code=AED, valid calculation_rate) so AED tax totals are generated. |
| Validation Rule | IBR-176-AE | When Invoice transaction type code [BTAE-02] is XXXXX1XX (Disclosed agent billing), then the value in field Seller VAT Identifier [IBT-031] and Principle ID [BTAE-14] should not be the same. | For disclosed-agent billing, ensure Principle ID value differs from seller TRN (accounting_supplier_party.party_tax_scheme.company_id). Do not copy seller VAT id into the principle-id source field. |
| Mandatory Field | IBR-177-AE | Either Seller tax registration identifier (IBT-032) or Seller VAT identifier (IBT-031) MUST be provided | Fill accounting_supplier_party.party_tax_scheme.company_id with valid UAE TRN when required. |
| Validation Rule | IBR-178-AE | Tax scheme code, if provided in (IBT-031-1) shall be '!VAT' when Seller tax registration identifier (IBT-032) is provided | When tax scheme code is provided for seller tax identifiers, use the required scheme value exactly as defined by the rule set for that scenario. |
| Cardinality | IBR-179-AE | Buyer VAT identifier (IBT-048) MUST occur maximum once | Keep only one buyer VAT identifier in accounting_customer_party.party_tax_scheme.company_id (IBT-048). |
| Format | IBR-180-AE | When Scheme identifier (IBT-049-1) is '0235' and Buyer legal registration identifier (ibt-047) is provided, then Buyer legal registration identifier type (BTAE-16) MUST be present | If buyer endpoint scheme is 0235 and accounting_customer_party.company_id is provided, also provide buyer legal registration identifier type in the mapped legal-id metadata. |
| Format | IBR-181-AE | When Scheme identifier (IBT-034-1) is '0235' and Seller legal registration identifier (ibt-030) is provided, then Seller legal registration identifier type (BTAE-15) MUST be present | If seller endpoint scheme is 0235 and accounting_supplier_party.company_id is provided, also provide seller legal registration identifier type in the mapped legal-id metadata. |
| Format | IBR-183-AE | The value in Buyer legal registration identifier type [BTAE-16] should either be 'Commercial/Trade license' or 'Emirates ID' or 'Passport' or 'Cabinet decision' when Buyer legal registration identifier (IBT-047) is provided and scheme identifier (IBT-049-1) is '0235' and buyer electronic address (IBT-049) is not '1XXXXXXXXX'. | Restrict buyer legal registration identifier type to allowed values (Commercial/Trade license, Emirates ID, Passport, Cabinet decision) when this 0235 condition applies. |
| Mandatory Field | IBR-184-AE | When the Item type [BTAE-13] is 'Goods' then Item classification identifier (ibt-158) must be provided. . | For lines mapped as Goods, include item classification in document_lines[].commodity_classification with a valid identifier and scheme. |
| Mandatory Field | IBR-185-AE | When the Item type [BTAE-13] is 'Services' then Service accounting code (BTAE-17) must be provided. . | For lines mapped as Services, provide service accounting code in the line item classification/service mapping used for XML generation. |
| Mandatory Field | IBR-186-AE | When the Item type [BTAE-13] is 'Both' then Item classification identifier (ibt-158) and Service accounting code (BTAE-17) must be provided. . | For lines mapped as Both, provide both item classification identifier (ibt-158) and service accounting code (BTAE-17) in your line mapping. |
| Validation Rule | IBR-187-AE | The minimum number of digits to be provided should be 'X' in Item classification identifier (ibt-158) and Service accounting code (BTAE-17). | Validate minimum digit length for both item classification and service accounting codes in your source data before submission, based on the applicable codelist constraints. |
| Format | IBR-188-AE | The scheme identifier (ibt-158-1) MUST be HS when Item classification identifier (ibt-158) is provided. | When item classification identifier is present, set its scheme id to HS in document_lines[].commodity_classification. |
| Format | IBR-189-AE | The scheme identifier (BTAE-17-1) MUST be SAC when Service accounting code (BTAE-17) is provided. | When service accounting code is present, set the related scheme identifier to SAC in the service-code mapping used for XML generation. |
| Tax Logic | IBR-190-AE | When the Invoiced item VAT category code (ibt-151), Document level allowance VAT category code (ibt-095), Document level charge VAT category code (ibt-102) is Standard rated then Invoiced item VAT rate (ibt-152), Document level allowance VAT rate (ibt-096), Document level charge VAT rate (ibt-103) must be 5.00. | For Standard rated category (S), set VAT rate to exactly 5.0 in document_lines[].classified_tax_category.percent, allowances[].tax_category.percent, and charges[].tax_category.percent where applicable. |
| Mandatory Field | IBR-191-AE | Payment means type code (ibt-081) must be provided except when the invoice type code (ibt-003) is 'Credit note' or 'Credit note related to goods or Invoice transaction-type code (BTAE-002) is X1XXXXXX (Deemed supply) . | Unless your document is an excluded credit note type or deemed supply, send payment_means as a non-empty array and set payment_means[].payment_means_code on each entry. |
| Mandatory Field | IBR-192-AE | when Payment means type code (ibt-081) is 'credit transfer' then Payment account identifier (ibt-084) must be provided. | When payment_means[].payment_means_code is 30 (credit transfer), populate payment_means[].payee_financial_account with the payee bank account identifiers required for reconciliation. |
| Mandatory Field | IBR-193-AE | The unique identifier number (BTAE-07) must be provided. | Ensure the required unique identifier number is populated from your source/legal metadata into the generated PEPPOL AE extension before submission. |
| Mandatory Field | IBR-194-AE | Invoice line Amount payable (BTAE-10) must be provided. | Verify each line has complete amount inputs (quantity, price, line charges/allowances, VAT category/rate) so line payable amount is generated in the line VAT information block. |
| Mandatory Field | IBR-196-AE | The Incoterms (BTAE-22) must be provided. | Populate Incoterms in your order/delivery/commercial terms mapping so a valid Incoterm code is emitted in the generated invoice when required by the scenario. |
