Some fields are prefixed with a 2-character code. If field content is not used, example Expiry Date, omit whole field including the prefix.
Column | Length | Value | Notes |
---|---|---|---|
0 | 11 | "00020101021" | Preamble |
11 | 1 | Sometimes "2", sometimes "1" | Doesn't seem to matter |
12 | 2 | "26" | As observed |
14 | 2 | 39+L (or 27+L if Expiry omitted). | Eg: If L is 9, then "48". Distance to start of Additional Merchant Information. |
16 | 13 | "0009SG.PAYNOW" | Constant |
29 | 4 | "0101" | As observed. |
33 | 1 | "2" if using UEN, else "0" | Is "3" for NRIC? |
34 | 2 | "02" | As observed |
36 | 2 | Length of payee's PayNow Id | |
38 | L | Payee PayNow Id | |
38+L | 4 | "0301" | As observed |
42+L | 1 | "1" or "0" | "1" if amount editable by payer |
43+L | 4 | "0408" | Expiry field & length. Omit this and next if no expiry date. |
47+L | 8 | yyyyMMdd | Expiry date, not more than 90 days later. |
Additional Merchant Information | |||
55+L | 2 | "52" | Merchant Category Code |
57+L | 6 | "040000" | As observed. |
63+L | 2 | "53" | Transaction Currency |
63+L | 5 | "03702" | Length of 3, followed by ISO 4217 number currency code. |
70+L | 2 | "54" | Transaction Amount. Omit this & next two if no amount specified. |
72+L | 2 | Length of payment amount | Eg "06" for 123.45, "10" for 1234567.89 |
74+L | M | Transaction amount to 2 decimal places | Eg: "123.45", "123.00" |
74+L+M | 2 | "58" | Country Code field. |
76+L+M | 4 | "02SG" | Fixed length of 2, and ISO 3166-1 Alpha-2 country code |
80+L+M | 2 | "59" | Payee Name (Merchant) field. |
82+L+M | 2 | Length of Payee Name N | Should be from "01" to "50" |
84+L+M | N | Payee Name | Limit of 50 characters? ASCII only? |
84+L+M+N | 2 | "60" | Merchant City field. |
86+L+M+N | 2 | Length of Merchant City value C | "09" for Singapore |
88+L+M+N | C | "Singapore" | |
88+L+M+N+C | 2 | "62" | Transaction Reference field. Omit this & next two if no Reference. |
90+L+M+N+C | 4 | "ab01" | ab=4+R |
94+L+M+N+C | 2 | Length of Transaction Reference R | Include only if not "00" |
96+L+M+N+C | R | Transaction Reference | ASCII only? Max 25 chars? |
96+L+M+N+C+R | 2 | "63" | Check Sum field. |
98+L+M+N+C+R | 2 | "04" | Length of checksum |
100+L+M+N+C+R | 4 | Check Sum | CRC-16 CCITT False |