Skip to main content

ISO standardization

Maesn enforces international standards for all input and output data to ensure consistency. All formats follow specifications published by the International Organization for Standardization (ISO). Any value not conforming to these standards may be rejected by the API.

Country codes

Maesn uses ISO 3166-1 alpha-2 country codes (two-letter uppercase). These codes are required anywhere a country is referenced in the API. Supported Country Codes:
AD, AE, AF, AG, AI, AL, AM, AO, AQ, AR, AS, AT, AU, AW, AX, AZ, BA, BB, BD, BE, BF, BG, BH, BI, BJ, BL, BM, BN, BO, BQ, BR, BS, BT, BV, BW, BY, BZ, CA, CC, CD, CF, CG, CH, CI, CK, CL, CM, CN, CO, CR, CU, CV, CW, CX, CY, CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, EH, ER, ES, ET, FI, FJ, FK, FM, FO, FR, GA, GB, GD, GE, GF, GG, GH, GI, GL, GM, GN, GP, GQ, GR, GS, GT, GU, GW, GY, HK, HM, HN, HR, HT, HU, ID, IE, IL, IM, IN, IO, IQ, IR, IS, IT, JE, JM, JO, JP, KE, KG, KH, KI, KM, KN, KP, KR, KW, KY, KZ, LA, LB, LC, LI, LK, LR, LS, LT, LU, LV, LY, MA, MC, MD, ME, MF, MG, MH, MK, ML, MM, MN, MO, MP, MQ, MR, MS, MT, MU, MV, MW, MX, MY, MZ, NA, NC, NE, NF, NG, NI, NL, NO, NP, NR, NU, NZ, OM, PA, PE, PF, PG, PH, PK, PL, PM, PN, PR, PT, PW, PY, QA, RE, RO, RS, RU, RW, SA, SB, SC, SD, SE, SG, SH, SI, SJ, SK, SL, SM, SN, SO, SR, SS, ST, SV, SX, SY, SZ, TC, TD, TF, TG, TH, TJ, TK, TL, TM, TN, TO, TR, TT, TV, TW, TZ, UA, UG, UM, US, UY, UZ, VA, VC, VE, VG, VI, VN, VU, WF, WS, YE, YT, ZA, ZM, ZW

Dates and Timestamps

All date and datetime fields in the Maesn API use ISO 8601 format. The two formats we allow are:
  1. Date without timestamp:
  1. Date with UTC timestamp:
We do not allow any other formats, such as dates with timezone offsets like 2026-01-01T14:15:06+02:00. This applies to all places where dates are used:
  • Filters such as lastModifiedAt
  • Fields like createdDate and updatedDate
  • Any other date or datetime value
As all our supported systems handle dates in different ways, these are the two automatic conversions that will be applied if the date format doesn’t match the system requirements:
  1. Date → DateTime Conversion
If you send a date without a timestamp (e.g., 2026-01-01), and the system or field requires a timestamp (for example, lastModifiedAt often requires timestamps), we will add midnight UTC to that date. The result will be 2026-01-01T00:00:00Z.
  1. DateTime → Date Conversion
If you send a timestamp (e.g., 2026-01-01T00:00:00Z), and the system or field does not support timestamps (for example, dueDate seldom supports timestamps), we will simply exclude the timestamp and use the date only. The result will be 2026-01-01.

Currencies

Currencies are always represented using ISO 4217 three-letter currency codes (uppercase). Supported Currencies
AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BRL, BSD, BTN, BWP, BYR, BZD, CAD, CDF, CHF, CLP, CNY, COP, CRC, CUC, CVE, CZK, DJF, DKK, DOP, DZD, EEK, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GQE, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LTL, LVL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRO, MUR, MVR, MWK, MXN, MYR, MZM, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SRD, SYP, SZL, THB, TJS, TMT, TND, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VEB, VND, VUV, WST, XAF, XCD, XDR, XOF, XPF, YER, ZAR, ZMK, ZWR

Document status fields

Transactional documents (invoices, bills, credit notes, and vendor credits) expose two related but distinct fields for state. They are not interchangeable, and confusing them is a common integration mistake.

status: document lifecycle

The authoritative state of the document in its lifecycle — for example DRAFT, OPEN, PARTIALLY_PAID, PAID, OVERDUE, or VOIDED. This field is populated across all source systems. Use it as the single source of truth for lifecycle and paid/unpaid logic.

paymentStatus: payment / open-item view

A finer-grained view of the payment or open-item state — for example PENDING, PARTLY_PAID, or PAID. It is best-effort: only some source systems populate it, and for every other system it is returned as null. It is not a reliable substitute for status.

General guidlines

Default to status for lifecycle and paid/unpaid logic. Treat paymentStatus as supplementary detail only, and always handle the null case. The exact set of enum values differs per document type and per source system. See each endpoint response schema for the full list that applies to that document.
Last modified on August 27, 2026