Marmin

Implementation notes


This page documents known differences between Marmin API documentation, request validation in uae-einvoicing-api, and Peppol/FTA rules enforced at transmission via uae-integration-svc. Use it when API acceptance and Peppol rejection diverge.

Doc vs code vs Peppol

TopicDocumented expectationAPI behavior todayPeppol / PINT AE
tax_point_dateSometimes described as defaulting to issue_dateNo default; stored as null when omitted; omitted from UBL XMLOptional in UBL; IBR-141-AE when present (must be ≤ issue_date)
document_numberSometimes described as always required on createConditional — required only when auto-numbering is disabledN/A
issue_timeHH:mm:ss (GST)Defaults to 00:00:00 when omittedMatches PINT
payment_meansOften documented as optionalRequired unless deemed-supply flag (position 2) is 1Per PINT AE
Summary / agent invoice_period / seller_supplier_partyDocumented as required when flags setNot fully enforced at API layerEnforced at Peppol schematron (IBR-138-AE, IBR-137-AE)
480 tax categoriesDocumented for out-of-scope invoicesNot enforced at API layerEnforced at transmission (IBR-122-AE, IBR-151-AE)
380 + VAT registrationImplied by business rulesNo cross-check against business profile at APIBusiness rule from PINT AE
Purchase invoice type 480May appear in older docsAPI forces `389` (self-billed) onlySelf-billing spec
invoice_period partial datesBoth dates implied when object sentValidator allows only start_date or only end_date; best practice is to send bothPeppol requires full period for summary invoices
Party overwriteSometimes "usually derived"Always overwritten from {profileId} URL for the auto-derived partyBy design
Auto-derived party fields

Do not send the party object that the API sets from your business profile:

Document typeDo not sendSet from
Sales invoice, sales credit note, proformaaccounting_supplier_party{profileId}
Purchase invoice, purchase credit noteaccounting_customer_party{profileId}
Sales registeraccounting_supplier_partyprofile_id in URL
Purchase registeraccounting_customer_partyprofile_id in URL
Engineering follow-up

These gaps are documented intentionally. Separate engineering tickets may address API-layer enforcement for tax_point_date defaults, profile-flag validators, and 380/480 category checks.

Next