Guesswork

Some fields are prefixed with a 2-character code. If field content is not used, example Expiry Date, omit whole field including the prefix.

ColumnLengthValueNotes
011"00020101021"Preamble
111Sometimes "2", sometimes "1"Doesn't seem to matter
122"26"As observed
14239+L (or 27+L if Expiry omitted).Eg: If L is 9, then "48". Distance to start of Additional Merchant Information.
1613"0009SG.PAYNOW"Constant
294"0101"As observed.
331"2" if using UEN, else "0"Is "3" for NRIC?
342"02"As observed
362Length of payee's PayNow Id
38LPayee PayNow Id
38+L4"0301"As observed
42+L1"1" or "0""1" if amount editable by payer
43+L4"0408"Expiry field & length. Omit this and next if no expiry date.
47+L8yyyyMMddExpiry date, not more than 90 days later.
Additional Merchant Information
55+L2"52"Merchant Category Code
57+L6"040000"As observed.
63+L2"53"Transaction Currency
63+L5"03702"Length of 3, followed by ISO 4217 number currency code.
70+L2"54"Transaction Amount. Omit this & next two if no amount specified.
72+L2Length of payment amountEg "06" for 123.45, "10" for 1234567.89
74+LMTransaction amount to 2 decimal placesEg: "123.45", "123.00"
74+L+M2"58"Country Code field.
76+L+M4"02SG"Fixed length of 2, and ISO 3166-1 Alpha-2 country code
80+L+M2"59"Payee Name (Merchant) field.
82+L+M2Length of Payee Name NShould be from "01" to "50"
84+L+MNPayee NameLimit of 50 characters? ASCII only?
84+L+M+N2"60"Merchant City field.
86+L+M+N2Length of Merchant City value C"09" for Singapore
88+L+M+NC"Singapore"
88+L+M+N+C2"62"Transaction Reference field. Omit this & next two if no Reference.
90+L+M+N+C4"ab01" ab=4+R
94+L+M+N+C2Length of Transaction Reference RInclude only if not "00"
96+L+M+N+CRTransaction ReferenceASCII only? Max 25 chars?
96+L+M+N+C+R2"63"Check Sum field.
98+L+M+N+C+R2"04"Length of checksum
100+L+M+N+C+R4Check SumCRC-16 CCITT False