2.3 Data Types
This section describes the data types used in both GetTransaction Messages and Cut_Off WSDL messages.
For information on fields in the EHI JSON message and their data type, see JSON Data Types and EHI Fields.
Data Type |
Minimum Length |
Maximum Length |
Description |
Examples |
||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
N(min,max) |
min |
max |
Numeric digits only (‘0’ to ‘9’.) Variable length of at least minimum digits up to a maximum of digits. |
N(1,11) could contain any of: 1 0001 12345678901 N(3,3) could contain: 123 467 009 010 |
||||||||
A(min,max) |
min |
max |
Alpha characters: ‘a’-‘z’, ‘A’-Z’ only. Variable length of at least minimum characters up to a maximum of characters. |
A(1,11) could contain any of: a azBC FFeRRtsD A(3,3) could contain: Abc GBX NzA zzA |
||||||||
HEX(min,max) |
min |
max |
Hexadecimal digits only, where letters are in upper case only. i.e ‘0’ to ‘9’ and ‘A’-‘F’. Note that ‘A’-‘F’ will only be in upper case. Lower case ‘a’-‘f’ are not permitted.
Variable length of at least minimum hexdigits up to a maximum of hexdigits |
HEX(1,11) could contain any of: 1 ABF34AD2 0001 ABC45678901
HEX(3,3) could contain: 000 FFF 01A |
||||||||
AN(min,max) |
min |
max |
Alphanumeric characters only (‘0’ to ‘9’, ‘a’-‘z’ and ‘A’-‘Z’) Variable length of at least minimum characters up to a maximum of characters |
AN(1,11) could contain any of: 1 Abf34ZaD2 0001 ABC45678901
Decimal(3,3) could contain: 123 467 009 010 |
||||||||
ANP(min,max) |
min |
max |
Alpha-numeric and Pad (space) characters only. i.e.’ ‘ (Space), ‘a’-‘z’, ‘A’-‘Z’, ‘0’-‘9’. Variable length of at least minimum characters up to a maximum of characters |
ANS(1,11) could contain any of: A 0001 A B 00 5D
|
||||||||
ANS(min,max) |
min |
max |
Alphanumeric and Special Characters. Variable length of at least minimum characters up to a maximum of characters |
ANS(1,11) could contain any of: A 0001 A B $ % & *
|
||||||||
AmountUnsigned(a,f) |
3 |
a+1+f |
Numeric unsigned amount field, as a real number with ‘.’ as decimal separator. It cannot be negative. (e.g., 123.4567) Where: a = maximum number of digits before decimal point f = maximum number of digits after decimal point Note: realtime authorisation message fields of type AmountUnsigned can contain numbers with up to four decimal places. Clearing message fields contain numbers with up to two decimal places; Thredd recommend supporting up to four decimal places to allow for future updates to the number of supported digits. |
AmountUnsigned(19,4) field could contain: 12345.6780 99999.9999 1.001 1.0 6.72 |
||||||||
AmountSigned (a,f) |
3 |
1+a+1+f |
Numeric signed amount field, as a real number with optional leading ‘-‘ (negative sign), with ‘.’ as decimal separator. (e.g., -123.4567 or 0.09000) Where: ‘-‘ = optional leading negative sign (ASCII code 45) a = maximum number of digits before decimal point ‘.’ = decimal point (ASCII code 46) f = maximum number of digits after decimal point Note: realtime authorisation message fields of type AmountSigned can contain numbers with up to four decimal places. Clearing message fields contain numbers with up to two decimal places; Thredd recommend supporting up to four decimal places to allow for future updates to the number of supported digits. |
AmountSigned(19,4) field could contain:
12345.6780 -99999.999 -1.001 1.0 -6.72 |
||||||||
Datetime (Y_to_nnn) |
23 |
23 |
Date time field, Year (y) to millisecond (nnn). Format “YYYY-MM-DD hh:mm:ss.nnn” Where: YYYY = 4 digit year 0001-9999 ‘-‘ = literal ‘-‘ character (ASCII 0x2D) MM = Month of year, 01 – 12 ‘-‘ = literal ‘-‘ character (ASCII 0x2D) DD = Day of month, 01-31 ‘ ‘ = literal space character (ASCII 0x20) hh = hour, 00 – 23 ‘:’ = literal colon character (ASCII 0x3A) mm = minute of hour, 00 – 59 ‘:’ = literal colon character (ASCII 0x3A) ss = second, 00-59 ‘.’ = literal decimal point (ASCII 0x2E) nnn = milliseconds, 000- 999 |
Examples: 2099-12-31 23:59:59.999
1872-01-01 00:00:00.000
|
||||||||
Datetime(Y_to_ss) |
19 |
19 |
Date time field, Year (Y) to second (ss). Format “YYYY-MM-DD hh:mm:ss” Where: YYYY = 4 digit year 0001-9999 ‘-‘ = literal ‘-‘ character (ASCII 0x2D) MM = Month of year, 01 – 12 ‘-‘ = literal ‘-‘ character (ASCII 0x2D) DD = Day of month, 01-31 ‘ ‘ = literal space character (ASCII 0x20) hh = hour, 00 – 23 ‘:’ = literal colon character (ASCII 0x3A) mm = minute of hour, 00 – 59 ‘:’ = literal colon character (ASCII 0x3A) ss = second, 00-59 |
2099-12-31 23:59:59
1872-01-01 00:00:00
|
||||||||
Datetime(Y_to_D) |
10 |
10 |
Date time field, Year (y) to day (d). Format “YYYY-MM-DD” Where: YYYY = 4 digit year 0001-9999 ‘-‘ = literal ‘-‘ character (ASCII 0x2D) MM = Month of year, 01 – 12 ‘-‘ = literal ‘-‘ character (ASCII 0x2D) DD = Day of month, 01-31 |
1999-12-31 |
||||||||
DatetimeRaw(Y_to_D) |
10 |
10 |
As Datetime (Y_to_D) but any of YYYY, MM or DD might contain invalid characters, such as space, letters or other. If YYYY is generated by Thredd, it will be set to ‘0000’ if the month/day information it is based on does not represent a valid date. |
1999-12-31 0000-00-00 0000-x#-99 0000-pp-pp (where p indicates a space character) |
||||||||
Traceid |
15 |
40 |
Thredd ‘traceid’ format: “nnnn-YYYYMMDD-i” Where: nnnn = 4 character network id, identifying the originating network: (‘BNET’ = Mastercard Banknet, ‘VIS1’ = Visa Base 1) ‘-‘ = literal minus sign YYYYMMDD = network trace date (YYYY=year), (MM=month of year, 01 to 12), (DD=day of month, 01 to 31) ‘-‘ = literal minus sign i = network reference (alphanumeric, 1 to 26) |
BNET-19991231-MCC1234XY VIS1-19991231-489365567890123
|
||||||||
TraceidRaw |
15 |
40 |
As Traceid, except that the raw information received from the network will be passed as-is, without validation. As a result of passing the raw information:
If YYYY is generated by Thredd based on MMDD from the network, YYYY will be set to ‘0000’ if MMDD is not a valid date.) If YYYYMMDD is generated by Thredd based on YDDD (last digit of year and day-of-year) from the network, YYYYMMDD will be set to ‘00000000’ if YDDD was not a valid date. |
BNET-20191231-MCC999999 BNET-0000pppp-000000000 (where p is the space character) VIS1-00000000-000000000000000 |
||||||||
Rate |
5 |
50 |
A conversion rate consisting of two parts separated by ‘:’ (colon.) The RateDigits are provided separately so it is clear how many significant figures are in the rate value. Format: RateDigits:DecimalPointOffset Format of each part: RateDigits = N(1,10) format
Meaning of each part: The rate value = RateDigits / 10DecimalPointOffet Examples:
|
000001:12 1234567:0 1234567:1 1234567:2 1234567:03 1234567:6 1234567:7 1234567:8 123456:09 1234567:12 0:0 1:0 1000000:6 |
||||||||
TLV10 |
14 |
999 |
A concatenation of many sets of the following:
Where: Tag = 10 character identifier. For tag meanings, see Misc_TLV_Data Field. Length = Length of the Value field (number of UTF-8 characters) as 4 decimal digits with leading zeros. Value = Value (‘Length’ characters long.) Usage of non ASCII-7-bit characters will be kept to a minimum. Notes: Tags are not in any particular order. Tags may repeat if stated in the field description. Tags might not all be defined in the specification – ignore any you do not recognise. Value will only contain printable characters (no binary data.) |
M1234567890001XM2222222220002YYTTTTTTTTTT0003abc (the above means there are three items as follows: Tag: “M123456789” Value “X” Tag: “M222222222” Value: “YY” Tag: “TTTTTTTTTT” Value: “abc”) |
||||||||
DECIMAL (p,s) |
1 |
p + s + 1 |
Numeric data type with fixed precision and scale.
Example: If p=5 and s=2, then "12345.00" is the maximum. if p=5 and s=5, then "0.12345" is the maximum. |
1234567890123456789 1234567890.123456789 |
An empty field is permitted when usage is ‘Optional’ even though the Data Type does not permit an empty value (min length = 0.)