MarminDeveloper Docs

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-DD date 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 CategoryType Code(s)What Causes ItHow to Fix It
Participant IdentificationIBR-148-AEFull 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 IdentifierIBR-132-AETRN isn't following the correct ruleTRN should be 15 digit, start with 1 and end with 03
Unit of MeasureIBR-CL-23Invalid unit_code code is used.Use valid unit_code codes from /supporting-resources/codelists/get-unit-of-measure-codes.
Date FormattingIBT-002Dates are sent in regional formats such as DD/MM/YYYY.Send all dates in ISO 8601 format: YYYY-MM-DD.
Tax Point LogicIBR-141-AETaxPointDate (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 ConversionIBR-159-AE, BTAE-04VAT 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 SubdivisionIBR-078-AEFree-text emirate names (for example Dubai) are used in CountrySubentity.Use approved codes: AUH, DXB, SHJ, AJM, UAQ, RAK, FUJ.
Postal Code GapsIBR-143-AE, IBR-144-AEPostal 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 ClassificationIBT-003, IBR-122-AESimplified 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 FlagsIBT-024, X1XXXXXX8-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 PrecisionIBR-146-AE, ALIGNED-IBRP-004Line 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 MetadataIBR-154-AEProfileExecutionID is not 8 digits (for example a single 0).Use exactly 8 digits: 00000000
SBDH Envelope1360 / 1363Discrepancy 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.
Standardsibr-cl-23Unit 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).
Standardsibr-cl-14Country 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.
Formattingibr-079Document must not contain empty elements.Remove XML tags that do not contain data values.
Addressingibr-009Seller 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 Logicibr-116-aeMargin 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 Dataibr-135-aeBuyer identifier or Buyer VAT identifier must be present (except for Exports).Provide the Buyer's TRN or Participant ID for domestic transactions.
Legal Detailsibr-172-aeAuthority 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).
Calculationibr-147-aeLine net amount must equal: (Quantity * Net Price) + Charges - Allowances.Verify line-item arithmetic; ensure discounts and charges are correctly factored into the LineExtensionAmount.
Tax Rateibr-190-aeStandard rated VAT must have a rate of 5.00.Update the tax rate field to exactly 5.00 for all standard-rated categories.
Tax Logicibr-102-aeVAT 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 Logicibr-108-aeVAT 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.
Validationibr-151-aeCommercial 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.
StructuralXSD ErrorInvalid content starting with CommodityClassification. Expected elements: ClassifiedTaxCategory, etc.Correct the XML sequence; ClassifiedTaxCategory must appear before CommodityClassification in the Item block.
Tax Logicibr-114-aeDocument level charge cannot be 'Standard rate additional VAT'.Reclassify document-level charges to a standard VAT category.
Tax Logicibr-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.
Identificationibr-sr-57Company identifier must exist in the party tax scheme class.Ensure the <cac:PartyTaxScheme><cbc:CompanyID> is populated for both parties.
Logicibr-105-aeExactly one VAT breakdown group for 'Standard rate additional VAT' is allowed.Consolidate lines under a single breakdown group for this specific category.
Tax Rateibr-111-aeVAT rate for 'Standard rate additional VAT' should not be zero.Apply the correct non-zero rate for lines categorized as additional VAT.
Tax Logicibr-115-aeDocument level allowance cannot be 'Standard rate additional VAT'.Reclassify allowances to standard tax categories.
Currencyibr-126All currencyID attributes must match the Invoice currency code (except tax accounting currency).Ensure attributes like currencyID="AED" match the document-level currency code.
Reverse Chargeibr-166-aeType of goods or services (BTAE-09) must be present for Reverse Charge.Provide the mandatory classification for reverse charge transactions.
Reverse Chargeibr-174-aeItem Standard Identifier (0160 scheme) must be present for Reverse Charge.Include the GPC or relevant standard ID using scheme 0160.
StructuralXSD ErrorInvalid content found starting with DespatchDocumentReference.Adjust element order; reference elements must follow the strict UBL 2.1 sequence (e.g., after OrderReference).
StructuralXSD ErrorAttribute 'schemeId' is not allowed in element cbc:CompanyID.Remove the schemeId attribute from CompanyID; it is only permitted on EndpointID or PartyIdentification.
Referenceibr-055-aePreceding invoice reference is mandatory for Credit Notes (except 'VD' reason).Include the original invoice ID in <cac:BillingReference>.
Temporalibr-124-aeVAT point date MUST NOT be present for Credit Notes.Remove the <cbc:TaxPointDate> field from credit note documents.
Temporalibr-127-aePayment due date mandatory for non-zero amounts (except for Credit Notes or Deemed Supply).Ensure <cbc:DueDate> is populated for all standard tax invoices.
Logicibr-157-aeTransaction-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.
Calculationibr-co-10Sum 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.

CategoryError codeError DescriptionRecommended Fix
Mandatory FieldIBR-001An 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 FieldIBR-002An Invoice MUST have an Invoice number (ibt-001).Please fill document_number while creating the sales invoice.
Mandatory FieldIBR-003An Invoice MUST have an Invoice issue date (ibt-002).Please fill issue_date while creating the sales invoice.
Mandatory FieldIBR-004An Invoice MUST have an Invoice type code (ibt-003).Please fill invoice_type_code while creating the sales invoice.
Mandatory FieldIBR-005An Invoice MUST have an Invoice currency code (ibt-005).Please fill document_currency_code while creating the sales invoice.
Mandatory FieldIBR-006An 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 FieldIBR-007An 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 FieldIBR-008An 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 FieldIBR-009The 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 FieldIBR-010An 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 FieldIBR-011The 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 FieldIBR-012An 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 FieldIBR-013An 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 FieldIBR-014An 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 FieldIBR-015An 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 FieldIBR-016An Invoice MUST have at least one Invoice line (ibg-25)Please add at least one item in document_lines.
Mandatory FieldIBR-017The 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 FieldIBR-018The 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 FieldIBR-019The 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 FieldIBR-020The 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 FieldIBR-021Each Invoice line (ibg-25) MUST have an Invoice line identifier (ibt-126).For each line, set document_lines[].order_line_reference.line_id.
Mandatory FieldIBR-022Each Invoice line (ibg-25) MUST have an invoiced quantity (ibt-129)..Please fill document_lines[].quantity for each line item.
Mandatory FieldIBR-023An 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 FieldIBR-024Each 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 FieldIBR-025Each Invoice line (ibg-25) MUST contain the Item name (ibt-153).Please fill document_lines[].name for each line item.
Mandatory FieldIBR-026Each Invoice line (ibg-25) MUST contain the Item net price (ibt-146).Please fill document_lines[].price.base_amount for each line item.
Rule ConstraintIBR-027The Item net price (ibt-146) MUST NOT be negative.Ensure document_lines[].price.base_amount is not negative.
Rule ConstraintIBR-028The Item gross price (ibt-148) MUST NOT be negative.Ensure document_lines[].price.base_amount is not negative.
Date/TimeIBR-029If 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/TimeIBR-030If 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 FieldIBR-031Allowance (ibg-20) MUST have an allowance amount (ibt-092).For document-level allowances, fill allowances[].amount.
Mandatory FieldIBR-033Each 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 FieldIBR-036Charge (ibg-21) MUST have a charge amount (ibt-099).For document-level charges, fill charges[].amount.
Mandatory FieldIBR-038Each 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 FieldIBR-041Each 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 FieldIBR-042Each 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 FieldIBR-043Each 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 FieldIBR-044Each 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 RuleIBR-049A 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 FieldIBR-052Each 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 FieldIBR-053If 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 FieldIBR-054Each 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 FieldIBR-055Each 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 FieldIBR-056The 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 FieldIBR-057Each 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 FieldIBR-062The Seller electronic address (ibt-034) MUST have a Scheme identifier.Fill accounting_supplier_party.endpoint_id and accounting_supplier_party.endpoint_scheme_id.
Mandatory FieldIBR-063The Buyer electronic address (ibt-049) MUST have a Scheme identifier.Fill accounting_customer_party.endpoint_id and accounting_customer_party.endpoint_scheme_id.
Mandatory FieldIBR-064The 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 FieldIBR-065The 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 FieldIBR-066An Invoice MUST contain maximum one Payment Card account (ibg-18).Use at most one card_account object across all payment_means[] entries.
Mandatory FieldIBR-067An 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 FieldIBR-068GLN 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.
FormatIBR-069Norwegian 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).
FormatIBR-070Danish 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 ConstraintIBR-071An 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 ConstraintIBR-072An 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.
FormatIBR-073A 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 FieldIBR-074Binary 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 FieldIBR-075Binary 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 FieldIBR-076Business process (ibt-023) MUST be provided.Set profile_execution_id as a valid 8-digit transaction flag string (for standard invoices use 00000000).
Validation RuleIBR-077Tax 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.
CardinalityIBR-078Only 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 ConstraintIBR-079Document MUST not contain empty elements.Do not send empty strings/objects/arrays; omit fields instead (review your request payload fields).
Mandatory FieldIBR-080The Buyer electronic address (ibt-049) MUST be provided.Please fill accounting_customer_party.endpoint_id (and accounting_customer_party.endpoint_scheme_id).
Mandatory FieldIBR-081The Seller electronic address (ibt-049) MUST be provided.Please fill accounting_supplier_party.endpoint_id (and accounting_supplier_party.endpoint_scheme_id).
Validation RuleIBR-082Allowance/charge indicator value MUST equal 'true' or 'false'.For allowance/charge indicators in your mapped payload, send only boolean values (true/false).
Rule ConstraintIBR-083Charge 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 FieldIBR-084Invoice 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/TimeIBR-085Start 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/TimeIBR-086End 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 RuleIBR-087Base 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 RuleIBR-088Unit 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).
CardinalityIBR-089Only one invoiced object (ibt-128) is allowed per line (ibg-25).If line object identifier is used, keep only one identifier per line.
CardinalityIBR-090Only one project reference (ibt-011) is allowed on document level.Keep only one project reference in project_reference.id.
Mandatory FieldIBR-091Invoice 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 ConstraintIBR-092If 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.
CalculationIBR-093If 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.
CardinalityIBR-094Contract reference (ibt-012) MUST occur maximum once.Keep only one contract reference in contract_document_reference.id.
CardinalityIBR-095Receiving advice reference (ibt-015) MUST occur maximum once.Keep only one receiving advice reference in receipt_document_reference.id.
CardinalityIBR-096Despatch advice reference (ibt-016) MUST occur maximum once.Keep only one despatch advice reference in despatch_document_reference.id.
CardinalityIBR-097Invoicing period (ibg-14) MUST occur maximum once.Keep only one invoicing period object in invoice_period.
CardinalityIBR-098Seller name (ibt-027) MUST occur maximum once.Keep only one seller name value in accounting_supplier_party.name (or accounting_supplier_party.party_name).
CardinalityIBR-099Seller trader name (ibt-028) MUST occur maximum once.Keep only one seller trader name in accounting_supplier_party.party_name.
CardinalityIBR-100Seller legal registration identifier (ibt-030) MUST occur maximum once.Keep only one seller legal registration identifier in accounting_supplier_party.company_id.
CardinalityIBR-101Seller additional legal information (ibt-033) MUST occur maximum once.If seller additional legal information is mapped, keep only one value.
CardinalityIBR-102Buyer name (ibt-044) MUST occur maximum once.Keep only one buyer name value in accounting_customer_party.name (or accounting_customer_party.party_name).
CardinalityIBR-103Buyer legal registration identifier (ibt-047) MUST occur maximum once.Keep only one buyer legal registration identifier in accounting_customer_party.company_id.
CardinalityIBR-104Buyer tax identifier (ibt-048) MUST occur maximum once.Keep only one buyer tax identifier in accounting_customer_party.party_tax_scheme.company_id.
CardinalityIBR-105The 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.
CardinalityIBR-106The 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.
CardinalityIBR-107Deliver to information (ibg-13) MUST occur maximum once.Keep only one delivery block in delivery.
CardinalityIBR-108Deliver 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.
CardinalityIBR-109Referenced purchase order line identifier (ibt-132) MUST occur maximum once.Keep only one referenced purchase order line id per invoice line.
CardinalityIBR-110Invoice line period (ibg-26) MUST occur maximum once.If invoice line period is mapped, keep only one period object per line.
CardinalityIBR-111Item price discount (ibt-147) MUST occur maximum once.If item price discount is mapped, keep only one discount value per line price.
CardinalityIBR-112Buyer trader name (ibt-045) MUST occur maximum once.Keep only one buyer trader name in accounting_customer_party.party_name.
FormatIBR-113Belgian 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).
FormatIBR-114IPA 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).
FormatIBR-115Tax 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).
FormatIBR-116Italian 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).
FormatIBR-119A 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.
FormatIBR-120Australian 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 FieldIBR-121Document level allowance amount (ibt-107) MUST have no more than 2 decimals.Round document allowance amounts to 2 decimals in allowances[].amount.
Mandatory FieldIBR-122Document level charge amount (ibt-108) MUST have no more than 2 decimals.Round document charge amounts to 2 decimals in charges[].amount.
Mandatory FieldIBR-123Invoice 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 FieldIBR-124Invoice 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 FieldIBR-125Invoice 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 FieldIBR-126All 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.
FormatIBR-127Swedish 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 ListIBR-CL-01The 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 ListIBR-CL-03currencyID 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 ListIBR-CL-04Invoice currency code (ibt-005) MUST be coded using ISO code list 4217 alpha-3Please fill document_currency_code while creating the sales invoice.
Code ListIBR-CL-05Tax currency code (ibt-006) MUST be coded using ISO code list 4217 alpha-3If tax currency is different, fill tax_currency_code and also provide tax_exchange_rate.
Code ListIBR-CL-07Object 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 ListIBR-CL-10Any 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 ListIBR-CL-11Any 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 ListIBR-CL-13Item 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 ListIBR-CL-14Country codes in an invoice (ibt-040), (ibt-055), (ibt-069), (ibt-080), (ibt-175) MUST be coded using ISO code list 3166-1Use ISO 3166-1 alpha-2 country codes in *.postal_address.country_code and delivery country fields.
Code ListIBR-CL-15Origin country codes in an invoice (ibt-159) MUST be coded using ISO code list 3166-1Use ISO 3166-1 alpha-2 country code format for item origin country in line-item mapping.
Code ListIBR-CL-16Payment means in an invoice (ibt-081) MUST be coded using UNCL4461 code listUse a valid UNCL4461 code in payment_means[].payment_means_code.
Code ListIBR-CL-19Coded allowance reasons (ibt-098), (ibt-140) MUST belong to the UNCL 5189 code listUse valid UNCL 5189 codes for allowance reason codes (allowances[] and line-allowance mappings).
Code ListIBR-CL-20Coded charge reasons (ibt-105), (ibt-145) MUST belong to the UNCL 7161 code listUse valid UNCL 7161 codes for charge reason codes (charges[] and line-charge mappings).
Code ListIBR-CL-21Item 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 ListIBR-CL-23Unit code (ibt-130), (ibt-150) MUST be coded according to the UN/ECE Recommendation 20 with Rec 21 extensionUse valid UN/ECE Rec 20/21 unit codes in document_lines[].unit_code and price base-quantity unit mapping.
Code ListIBR-CL-24Mime 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 ListIBR-CL-25Endpoint identifier scheme identifier (ibt-034-1), (ibt-049-1) MUST belong to the CEF EAS code listUse a valid CEF EAS scheme in accounting_supplier_party.endpoint_scheme_id and accounting_customer_party.endpoint_scheme_id.
Code ListIBR-CL-26Delivery location identifier scheme identifier (ibt-071-1) MUST belong to the ISO 6523 ICD code listIf delivery location identifier scheme is mapped, use a valid ISO 6523 ICD scheme code.
CalculationIBR-CO-10Sum 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.
CalculationIBR-CO-11Sum 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.
CalculationIBR-CO-12Sum 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.
CalculationIBR-CO-13Invoice 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.
CalculationIBR-CO-14Invoice 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.
CalculationIBR-CO-15Invoice 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.
CalculationIBR-CO-16Amount 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.
CalculationIBR-CO-19If 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.
CalculationIBR-CO-20If 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).
CalculationIBR-CO-26In 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).
CardinalityIBR-SR-05Payment terms (ibt-020) MUST occur maximum once.Keep only one payment terms object in payment_terms.
CardinalityIBR-SR-06Preceding invoice reference (ibt-025) MUST occur maximum onceKeep only one preceding invoice reference in billing_reference[].id.
CardinalityIBR-SR-07If there is a preceding invoice reference (ibg-03) , the preceding invoice number (ibt-025) MUST be presentIf preceding invoice reference is used, fill billing_reference[].id.
CardinalityIBR-SR-16Buyer identifier (ibt-046) MUST occur maximum onceIf buyer identifier is mapped, keep only one identifier entry.
CardinalityIBR-SR-19Payee name (ibt-059) MUST occur maximum once, if the Payee is different from the SellerIf payee differs from seller, keep only one payee name in payee_party.party_name.
CardinalityIBR-SR-22Seller tax representative name (ibt-062) MUST occur maximum once, if the Seller has a tax representativeIf tax representative is used, keep only one name in tax_representative_party.party_name.
CardinalityIBR-SR-23Seller tax representative tax identifier (ibt-063) MUST occur maximum once, if the Seller has a tax representativeIf tax representative is used, keep only one tax identifier in tax_representative_party.party_tax_scheme.company_id.
CardinalityIBR-SR-27Payment means text (ibt-081) MUST occur maximum onceIf payment means text is mapped, keep only one value.
CardinalityIBR-SR-28Mandate reference identifier (ibt-089) MUST occur maximum onceIf mandate reference identifier is mapped, keep only one value.
CardinalityIBR-SR-30Allowance reason (ibt-097) MUST occur maximum onceKeep only one allowance reason in each allowance (allowances[].reason).
CardinalityIBR-SR-31Charge reason (ibt-104) MUST occur maximum onceKeep only one charge reason in each charge (charges[].charge_reason).
CardinalityIBR-SR-32VAT 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.
CardinalityIBR-SR-33Supporting document description (ibt-123) MUST occur maximum onceIf supporting document description is mapped, keep only one description value.
CardinalityIBR-SR-34Invoice line note (ibt-127) MUST occur maximum onceIf invoice line note is mapped, keep only one note per line.
CardinalityIBR-SR-38Invoiced item tax exemption reason text (ibt-185) MUST occur maximum onceIf line tax-exemption reason text is mapped, keep only one value per line tax category.
CardinalityIBR-SR-39Project reference (ibt-011) MUST occur maximum once.Keep only one project reference in project_reference.id.
CardinalityIBR-SR-42Party tax scheme MUST occur maximum twice in accounting supplier partyKeep party tax scheme occurrences within the allowed maximum for supplier party mapping.
CardinalityIBR-SR-45Due Date (ibt-009) MUST occur maximum onceKeep only one due date value in due_date.
CardinalityIBR-SR-46Payment means text (ibt-082) MUST occur maximum onceKeep only one payment means text (IBT-082 mapping) in payment_means.payment_means_text.
CardinalityIBR-SR-49Value tax point date (ibt-007) MUST occur maximum onceKeep only one VAT point date in tax_point_date.
CardinalityIBR-SR-50Item description (ibt-154) MUST occur maximum onceKeep only one item description per line in document_lines[].description.
CardinalityIBR-SR-51Note (ibt-022) MUST occur maximum onceKeep only one note value in note.
CardinalityIBR-SR-52Tender or lot reference (ibt-017) MUST occur maximum onceIf tender/lot reference is mapped, keep only one value.
CardinalityIBR-SR-53The Seller Postal Address Line (ibt-162) MUST occur maximum onceKeep only one seller postal address line in accounting_supplier_party.postal_address.street_name.
CardinalityIBR-SR-54The Buyer Postal Address Line (ibt-163) MUST occur maximum onceKeep only one buyer postal address line in accounting_customer_party.postal_address.street_name.
CardinalityIBR-SR-55The Tax Representative Postal Address Line (ibt-164) MUST occur maximum onceKeep only one tax representative postal address line in tax_representative_party.postal_address.street_name.
CardinalityIBR-SR-56The Delivery Postal Address Line (ibt-165) MUST occur maximum onceKeep only one delivery postal address line in delivery.delivery_location.address.street_name.
CardinalityIBR-SR-57Company 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).
CardinalityIBR-SR-58The Invoiced item TAX category code (ibt-151) MUST be present.Ensure each line has tax category code in document_lines[].classified_tax_category.id.
CardinalityIBR-SR-59The Payee Postal Address Line (ibt-174) MUST occur maximum onceKeep only one payee postal address line in payee_party.postal_address.street_name (if mapped).
CardinalityIBR-SR-60Payment Instruction ID (ibt-187) MUST occur maximum once.Keep only one payment instruction id in payment_means[].payment_id (if mapped).
CardinalityIBR-SR-61Allowance/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.
CardinalityIBR-SR-62Despatch advice line reference (ibt-184) MUST occur maximum once.If despatch advice line reference is mapped, keep only one value per line.
CardinalityIBR-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.

CategoryError codeError DescriptionRecommended Fix
Validation RuleALIGNED-IBRP-001-AESpecification 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.
FormatALIGNED-IBRP-002-AEBusiness 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.
CalculationALIGNED-IBRP-004Item 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 LogicALIGNED-IBRP-032Each 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 LogicALIGNED-IBRP-037Each 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 LogicALIGNED-IBRP-045Each 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 LogicALIGNED-IBRP-046Each 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 LogicALIGNED-IBRP-047Each 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 LogicALIGNED-IBRP-048Each 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 FieldALIGNED-IBRP-057Either 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 FieldALIGNED-IBRP-058Either 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).
CardinalityALIGNED-IBRP-AE-01-AEAn 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 FieldALIGNED-IBRP-AE-05-AEIn 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 LogicALIGNED-IBRP-AE-06In 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 LogicALIGNED-IBRP-AE-07In 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.
CalculationALIGNED-IBRP-AE-08-AEIn 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 LogicALIGNED-IBRP-AE-09-AEIn 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.
CardinalityALIGNED-IBRP-E-01An 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 ConstraintALIGNED-IBRP-E-05In 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 LogicALIGNED-IBRP-E-06In 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 LogicALIGNED-IBRP-E-07In 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.
CalculationALIGNED-IBRP-E-08In 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.
CalculationALIGNED-IBRP-E-09The 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.
CardinalityALIGNED-IBRP-O-01An 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 ConstraintALIGNED-IBRP-O-05An 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 ConstraintALIGNED-IBRP-O-06A 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 ConstraintALIGNED-IBRP-O-07A 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.
CalculationALIGNED-IBRP-O-08In 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 LogicALIGNED-IBRP-O-09The 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 ConstraintALIGNED-IBRP-O-11-AEIn 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.
CardinalityALIGNED-IBRP-S-01An 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 LogicALIGNED-IBRP-S-05In 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 LogicALIGNED-IBRP-S-06In 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 LogicALIGNED-IBRP-S-07In 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.
CalculationALIGNED-IBRP-S-08For 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.
CalculationALIGNED-IBRP-S-09The 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 ConstraintALIGNED-IBRP-S-10A 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.
CardinalityALIGNED-IBRP-SR-12Seller tax identifier (ibt-031) MUST occur maximum onceKeep only one seller tax identifier in accounting_supplier_party.party_tax_scheme.company_id (IBT-031).
CardinalityALIGNED-IBRP-Z-01An 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 LogicALIGNED-IBRP-Z-05In 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 LogicALIGNED-IBRP-Z-06In 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 LogicALIGNED-IBRP-Z-07In 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.
CalculationALIGNED-IBRP-Z-08In 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.
CalculationALIGNED-IBRP-Z-09The 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.
FormatIBR-001-AECredit 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 LogicIBR-002-AECurrency 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.
FormatIBR-005-AEFrequency 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.
FormatIBR-006-AEIn 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 FieldIBR-007-AEWhen 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 FieldIBR-010-AEPassport 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.
FormatIBR-011-AEPassport 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 FieldIBR-012-AEPassport 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.
FormatIBR-013-AEPassport 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 RuleIBR-055-AEPreceding 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 FieldIBR-101-AEAuthority 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).
CalculationIBR-102-AEIn 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 FieldIBR-103-AEWhen 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.
FormatIBR-104-AEAn 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.
CardinalityIBR-105-AEAn 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 LogicIBR-108-AEIn 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 LogicIBR-111-AEAn 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 ConstraintIBR-114-AEDocument level charge VAT category code (IBT-102) cannot be 'Standard rate additional VAT'.Reclassify document-level charges to a valid standard VAT category.
Rule ConstraintIBR-115-AEDocument level allowance tax category code (IBT-095) cannot be 'Standard rate additional VAT'.Reclassify document-level allowances to valid standard tax categories.
Tax LogicIBR-116-AEWhen 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 LogicIBR-119-AEEach 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).
CalculationIBR-120-AEIn 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 ConstraintIBR-121-AEIn 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 LogicIBR-122-AEWhen 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).
CardinalityIBR-123-AELine 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 ConstraintIBR-124-AEVAT 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.
FormatIBR-125-AEIn Item Information(IBG-31), Item description (IBT-154) MUST be there.Provide item description in document_lines[].description (example: "Consulting service - May 2026").
Mandatory FieldIBR-126-AEIn 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 FieldIBR-127-AEPayment 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 RuleIBR-128-AEWhen 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.
CalculationIBR-131-AEAllowance amount (IBT-092, IBT-136) must equal base amount (IBT-093, IBT-137) * percentage (IBT-094, IBT-138) /100 if base amount and percentage existsRecalculate related amounts/fields so this formula holds exactly.
Validation RuleIBR-132-AEVAT 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 RuleIBR-133-AEVAT 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 FieldIBR-134-AESeller 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).
FormatIBR-135-AEEither 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 FieldIBR-136-AEBuyer 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 RuleIBR-137-AEPrinciple 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 RuleIBR-138-AEInvoicing 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 RuleIBR-139-AEDocument 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 RuleIBR-140-AEWhen 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 RuleIBR-141-AEWhen, 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).
FormatIBR-142-AEIn 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 FieldIBR-143-AEIn 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 FieldIBR-144-AEIn Buyer postal address (IBG-08), Address line 1 (IBT-050), Buyer city (IBT-052) and Buyer country subdivision (IBT-054) must be providedFill buyer address fields under accounting_customer_party.postal_address (line1/city/subdivision).
Tax LogicIBR-145-AEEach 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).
CalculationIBR-146-AECharge amount (IBT-099, IBT-141) must equal base amount (IBT-100, IBT-142) * percentage (IBT-101, IBT-143) /100 if base amount and percentage existsRecalculate related amounts/fields so this formula holds exactly.
CalculationIBR-147-AEInvoice 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.
FormatIBR-148-AEThe 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.
FormatIBR-149-AEThe 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").
FormatIBR-150-AEThe 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 LogicIBR-151-AEWhen 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).
FormatIBR-152-AEIn 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 LogicIBR-153-AEWhen 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 availableWhen 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.
FormatIBR-154-AEInvoice 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 ConstraintIBR-157-AEInvoice 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 FieldIBR-158-AEWhere 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 LogicIBR-159-AECurrency 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 RuleIBR-160-AEWhen 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.
FormatIBR-162-AEIn 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.
FormatIBR-163-AEIn 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.
FormatIBR-165-AEIn 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.
FormatIBR-166-AEIn 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.
FormatIBR-167-AELine 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 LogicIBR-168-AEDocument 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 LogicIBR-169-AEDocument 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 FieldIBR-172-AEAuthority 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.
FormatIBR-173-AEThe 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.
FormatIBR-174-AEIn 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 FieldIBR-175-AEWhen 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 RuleIBR-176-AEWhen 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 FieldIBR-177-AEEither Seller tax registration identifier (IBT-032) or Seller VAT identifier (IBT-031) MUST be providedFill accounting_supplier_party.party_tax_scheme.company_id with valid UAE TRN when required.
Validation RuleIBR-178-AETax scheme code, if provided in (IBT-031-1) shall be '!VAT' when Seller tax registration identifier (IBT-032) is providedWhen tax scheme code is provided for seller tax identifiers, use the required scheme value exactly as defined by the rule set for that scenario.
CardinalityIBR-179-AEBuyer VAT identifier (IBT-048) MUST occur maximum onceKeep only one buyer VAT identifier in accounting_customer_party.party_tax_scheme.company_id (IBT-048).
FormatIBR-180-AEWhen 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 presentIf 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.
FormatIBR-181-AEWhen 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 presentIf 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.
FormatIBR-183-AEThe 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 FieldIBR-184-AEWhen 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 FieldIBR-185-AEWhen 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 FieldIBR-186-AEWhen 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 RuleIBR-187-AEThe 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.
FormatIBR-188-AEThe 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.
FormatIBR-189-AEThe 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 LogicIBR-190-AEWhen 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 FieldIBR-191-AEPayment 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 FieldIBR-192-AEwhen 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 FieldIBR-193-AEThe 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 FieldIBR-194-AEInvoice 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 FieldIBR-196-AEThe 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.
Next