Wiki source code of PR01

Last modified by Anders Göthberg on 2024/03/27 13:57
Hide last authors
Anders Göthberg 35.1 1 = =
Andreas Benneck 3.1 2
Andreas Benneck 25.1 3 (% class="jumbotron" %)
Andreas Benneck 3.1 4 (((
Andreas Benneck 25.1 5 (% class="container" %)
Andreas Benneck 3.1 6 (((
Anders Göthberg 7.1 7 Please note that your Response files might only utilize and/or contain a subset of all elements described below. See the Record description for your response files to learn more.
Andreas Benneck 3.1 8 )))
9 )))
Andreas Benneck 2.1 10
Andreas Benneck 25.1 11
12
Anders Göthberg 6.1 13 = Name convention =
14
Anders Göthberg 8.1 15 PR01_<CompanyNumber>_<DateTime>_<(% style="font-size:14px" %)SEQNO(%%)>.DAT
Anders Göthberg 6.1 16
17
18 (% border="1" %)
19 |=(% style="width: 371px;" %)Names Component|=(% style="width: 1121px;" %)Description
20 |(% style="width:371px" %)CompanyNumber|(% style="width:1121px" %)The company number in PayEx ledger system
Daniel Engström 60.1 21 |(% style="width:371px" %)DateTime|(% style="width:1121px" %)Date created in format YYMMDDHHMMSS
Anders Göthberg 6.1 22 |(% style="width:371px" %)SEQNO|(% style="width:1121px" %)Unbroken serial number sequence.
23
Daniel Engström 60.1 24 **For example: **PR01_1234_201001155511_1.DAT
Anders Göthberg 6.1 25
26 The file is semicolon-separated.
27
28
29 (% id="HWhattoavoid" %)
30 == What to avoid ==
31
Anders Göthberg 28.1 32 * If the PR01-file contains errors that need to be corrected a new PR01 needs to be send with the next coming serial number
Anders Göthberg 20.1 33 * The customer number needs to be registred in the PayEx Billing system before processing PR01-files containing.
Anders Göthberg 6.1 34
Anders Göthberg 35.1 35 == ==
Anders Göthberg 6.1 36
37 == Change log ==
38
39 (% border="1" %)
40 |=**Version**|=(% style="width: 166px;" %)**Date**|=(% style="width: 879px;" %)**Description**|=(% style="width: 328px;" %)**Created by**
Anders Göthberg 23.1 41 |1.3|(% style="width:166px" %)2020-06-10|(% style="width:879px" %)(((
Anders Göthberg 11.1 42 (% lang="EN-US" style="font-family:~"Garamond~",serif; font-size:12pt" %)Updated Q- and B -record with three new fields that can be used to manage different events on layout or in Billing process.
Anders Göthberg 6.1 43 )))|(% style="width:328px" %)Daniel Olsson
Jacob de Boer 38.1 44 |1.4|(% style="width:166px" %)2023-09-26|(% style="width:879px" %)Updated with "Soft validation"|(% style="width:328px" %)Daniel Olsson
Anders Göthberg 6.1 45
46 =
47 General information and explanation of records =
48
Jacob de Boer 39.1 49 Product files to Billing (PR01) are used to add fees for end-user in the PayEx Billing System. PR01-files can contain products on customer level and/or subscription level.
Anders Göthberg 6.1 50
Anders Göthberg 22.1 51 After creating a billrun in the PayEx Billing system the products from the PR01-file will be presented on the invoice.
Anders Göthberg 6.1 52
Anders Göthberg 22.1 53 Incorrect data in fields will be returned in a detailed error file.
54
55 PR01 needs to be correct in its total to get processed.
56
Jacob de Boer 40.1 57 == Standard flow ==
Anders Göthberg 6.1 58
Anders Göthberg 22.1 59 Format errors will be returned in a general error file
Anders Göthberg 6.1 60
Anders Göthberg 22.1 61 Incorrect data in fields will be returned into an error file (BERR007..ErrorlogProductfile).
Anders Göthberg 6.1 62
Anders Göthberg 22.1 63 Correct data in all fields will lead to a receipt file (BRCP007..ReceiptProductfile).
Anders Göthberg 6.1 64
Jacob de Boer 37.1 65 [[image:1686896352935-981.png||height="521" width="1188"]]
66
67 (% id="HResponsefilesdocumentation:" %)
68 ==== Response files documentation: ====
69
Anders Göthberg 33.1 70 [[Receipt and Error -file example>>doc:Main.Invoicing.billing.technical-reference.Product File.3 PR01.xml schema description.WebHome]]
Anders Göthberg 6.1 71
Anders Göthberg 59.1 72 === Soft validation flow ===
Anders Göthberg 6.1 73
Jacob de Boer 36.1 74 Some type of errors can be configured as "soft" errors. Meaning that customer numbers with certain preconfigured errors can be excluded from the PR-file while processing. These mentioned “soft” errors will be presented as a warning (W) in **BERR007_ErrorlogProductfile** instead and simultaneously returned in an .XML file with name **PRRESPONSE**.
75 This response file needs actions to be taken before resending the incorrect data of the customer in a new PR file after finalizing the original billing process.
Anders Göthberg 29.1 76
Anders Göthberg 33.1 77 [[image:1686896663842-265.png||height="520" width="1184"]]
78
Anders Göthberg 35.1 79 ==== Response files documentation: ====
Anders Göthberg 33.1 80
Anders Göthberg 35.1 81 ===== [[Error log PRxx (BERR007)>>doc:.Record description.Error log PR01 (BERR007).WebHome]] =====
Anders Göthberg 34.1 82
Anders Göthberg 35.1 83 ===== [[ProductResponse (XML)>>doc:.Record description.ProductResponse (XML).WebHome]] =====
Anders Göthberg 34.1 84
Anders Göthberg 35.1 85 ===== [[Receipt PRxx (BRCP007)>>doc:.Record description.Receipt PRxx (BRCP007).WebHome]] =====
Anders Göthberg 34.1 86
Anders Göthberg 62.1 87 = Record Description =
Anders Göthberg 29.1 88
89 == H - Header ==
90
Jacob de Boer 42.1 91 Required record
92
Anders Göthberg 29.1 93 (% border="1" %)
94 |=**Field name**|=**Field no.**|=**Format**|=**Type**|=**Description**
95 |Transaction type|1|H|Req|Header record
Daniel Engström 61.1 96 |Company number|2|N(5)|Req|The firm number you receive from PayEx
97 |Company name|3|X(40)|Req|Your firm name
98 |Date of creation|4|N(6)|Req|YYMMDD – the same date as in the filename.
99 |Time of creation|5|N(4)|Req|HHMM – the time of creation.
Anders Göthberg 29.1 100
101 Example on the records appearance.
102
Jacob de Boer 52.1 103 **H;99999;Company AB;180919;1220**
Anders Göthberg 29.1 104
105 == M - Metadata record ==
106
Jacob de Boer 43.1 107 Required record
108
Anders Göthberg 29.1 109 (% border="1" %)
110 |=**Field name**|=**Filed no.**|=**Format**|=**Type**|=**Description**
111 |Transaction type|1|M|Req|Metadata record
112 |Type of billing|2|N(2)|Req|0 = ordinary invoicing (default). 1 – n = test invoicing. Support for test invoicing and the different codes to be used are set up in cooperation with PayEx.
113 |//Reserved//|//3//| | |//Reserved for future use//
114
115 Example on the records appearance
116
117 **M;0;**
118
119 == P - Product record ==
120
Jacob de Boer 45.1 121 Optional record
122
Anders Göthberg 29.1 123 (% border="1" %)
124 |=**Field name**|=**Field no.**|=**Format**|=**Type**|=**Description**
125 |Transaction type|1|P| |Product record.
126 |Customer number|2|X(15)|Req|Customer number
127 |Product text|3|X(73)|Req|Product text, see Definitions and terms
128 |Quantity|4|N(5)|Req|Number of products
129 |Unit|5|N(7),N(2-6)|Req|Price for one product, can have 2 to 6 decimals.
130 |VAT rate|6|N(7),N(2)|Req|VAT rate
131 |Product_group_Id|7|N(5)|Req|According to agreement with PayEx.
132 |Identification_No|8|N(10)| |Id used to group statistics. Required when service Revenue Accounting is active, maximum value 2^^31^^
133 |Product_Id|9|N(10)| |Id for the product, maximum value 2^^31^^
134
135 Example on the records appearance.
136
Jacob de Boer 53.1 137 **P;12345;Football1;5;23,50;25,00;2;;
138 P;12345;Football2;5;23,50;25,00;2;1;12365487**
Anders Göthberg 29.1 139
140 == K - Customer number Information record ==
141
Jacob de Boer 46.1 142 Optional record
143
Anders Göthberg 29.1 144 **~*~***Is not used without agreement
145
146 (% border="1" %)
147 |=**Field name**|=**Field no.**|=**Format**|=**Type**|=**Description**
148 |Transaction type|1|K| |Product record.
149 |Customer number|2|X(15)|Req|Customer number
150 |Product text|3|X|Req|Product text, see Definitions and terms
151 |Product_group_Id|4|N(5)|Req|According to agreement with PayEx.*
152 |Group_No|5|N(3)| |Is empty if nothing else is agreed.
153
154 Example on the records appearance:
155
156 **K;000087;Installation: the Villa;9;**
157
158 *Product_group_id is set according to agreement for CustnoInformation record.
159
160 == I - A -number Information record ==
161
Jacob de Boer 47.1 162 Optional record
163
Anders Göthberg 29.1 164 **~*~***Is not used without agreement
165
166 (% border="1" %)
167 |=**Field name**|=**Field no**|=**Format**|=**Type**|=**Description**
168 |Transaction type|1|I| |Product record.
169 |Customer number|2|X(15)|Req|Customer number
170 |A-number|3|X(34)|Req|A-number
171 |Product text|4|X|Req|Product text, see Definitions and terms
172 |Product_group_Id|5|N(5)|Req|According to agreement with PayEx.*
173 |Group_No|6|N(3)| |Is left blank if nothing else is agreed.
174
175 Example on the records appearance:
176
177 **I;000087;0702402377;Installation: The house;9;**
178
179 ~* Product_group_id is set according to agreement for A -no Information record.
180
181 == A - A -number product record ==
182
Jacob de Boer 48.1 183 Optional record
184
Anders Göthberg 29.1 185 (% border="1" %)
186 |=**Field name**|=**Field no**|=**Format**|=**Type**|=**Description**
187 |Transaction type|1|A| |Product record.
188 |Customer number|2|X(15)|Req|Customer no.
189 |A-number|3|X(34)|Req|A-Number
190 |Product text|4|X|Req|Product text, see Definitions and terms
191 |Quantity|5|N(5)|Req|Number of products
192 |Unit|6|N(7),N(2-6)|Req|Price for one product, can have 2 to 6 decimals.
193 |VAT rate|7|N(7),N(2)|Req|VAT rate
194 |Product_group_Id|8|N(5)|Req|According to agreement with PayEx.
195 |Identification_No|9|N(10)| |Id used to group statistics. Required when service Revenue Accounting is active, maximum value 2^^31^^
196 |Product_Id|10|N(10)| |Id for the product, maximum value 2^^31^^
197
198 Example on the records appearance:
199
Jacob de Boer 55.1 200 **A;12345;4788743;Installation fee1;5;150,00;25,00;1;2;
201 A;12345;4788743;Installation fee3;5;150,00;25,00;1;2;123456**
Anders Göthberg 29.1 202
203 == Q - Date product record ==
204
Jacob de Boer 49.1 205 Optional record
206
Anders Göthberg 29.1 207 **~*~***Is not used without agreement
208
209 (% border="1" %)
210 |=**Field name**|=**Field no**|=**Format**|=**Type**|=**Description**
211 |Transaction type|1|Q| |Product record.
212 |Customer number|2|X(15)|Req|Customer number
213 |Product text|3|X|Req|Product text, see Definitions and terms
214 |Quantity|4|N(5)|Req|Number of products
215 |Unit|5|N(7),N(2-6)|Req|Price for one product, can have 2 to 6 decimals.
216 |VAT rate|6|N(7),N(2)|Req|VAT rate
217 |Product_group_Id|7|N(5)|Req|According to agreement with PayEx.
218 |From-date|8|N(8)|Req|YYYYMMDD – Date from when the product is active
219 |To-date|9|N(8)|Req|YYYYMMDD – Date from when the product no longer is active
220 |Identification_No|10|N(10)| |Id used to group statistics. Required when service Revenue Accounting is active, maximum value 2^^31^^
221 |Product_Id|11|N(10)| |Id for the product, maximum value 2^^31^^
222 |Product property 1|12|N(1)| |Property for product (0-9) ex. for grouping on invoice layout
223 |Product property 2|13|N(1)| |Property for product (0-9)
224 |Product property 3|14|N(1)| |Property for product (0-9)
225
226 Note! When service Revenue Accounting is active, the dates must be within revenue month. It is only allowed to use from- and to-date within a calendar month. Use of “Product property” field is set up in agreement with PayEx
227
228 Example on the records appearance:
229
Jacob de Boer 56.1 230 **Q;12345;Football1;5;23,50;25,00;2;20180101;20181001;1;;;;
231 Q;12345;Football2;5;23,50;25,00;2;20180101;20181001;1;1234567;1;2;8**
Anders Göthberg 29.1 232
233 == B - Date A -number product record ==
234
Jacob de Boer 50.1 235 Optional record
236
Anders Göthberg 29.1 237 **~*~***Is not used without agreement
238
239 (% border="1" %)
240 |=**Field name**|=**Field no**|=**Format**|=**Type**|=**Description**
241 |Transaction type|1|B| |Product record.
242 |Customer number|2|X(15)|Req|Customer number
243 |A-Number|3|X(34)|Req|A-Number
244 |Product text|4|X|Req|Product text, see Definitions and terms
245 |Quantity|5|N(5)|Req|Number of products
246 |Unit|6|N(7),N(2-6)|Req|Price for one product, can have 2 to 6 decimals.
247 |VAT rate|7|N(7),N(2)|Req|VAT rate
248 |Product_group_Id|8|N(5)|Req|According to agreement with PayEx.
249 |From-date|9|N(8)|Req|YYYYMMDD – Date from when the product is active
250 |To-date|10|N(8)|Req|YYYYMMDD – Date from when the product no longer is active
251 |Identification_No|11|N(10)| |Id used to group statistics. Required when service Revenue Accounting is active, maximum value 2^^31^^
252 |Product_Id|12|N(10)| |Id for the product, maximum value 2^^31^^
253 |Product property 1|13|N(1)| |Property for product (0-9) ex. for grouping on invoice layout
254 |Product property 2|14|N(1)| |Property for product (0-9)
255 |Product property 3|15|N(1)| |Property for product (0-9)
256
257 Note! When service Revenue Accounting is active, the dates must be within revenue month. It is only allowed to use from- and to-date within a calendar month. Use of “Product property” field is set up in agreement with PayEx
258
259 Example on the records appearance:
260
Jacob de Boer 57.1 261 **B;12345;4788743;Installationfee1;5;150,00;25,00;1;20180101;20181001;2;;;;
262 B;12345;4788743;Installationfee2;5;150,00;25,00;1;20180101;20181001;2;123456;1;2;8**
Anders Göthberg 29.1 263
264 == S - Trailer record ==
265
Jacob de Boer 44.1 266 Required record
267
Anders Göthberg 29.1 268 (% border="1" %)
269 |=**Field name**|=**Field no**|=**Format**|=**Type**|=**Description**
270 |Transaction type|1|S|Req|Trailer record.
271 |Number of records.|2|N(8)|Req|Number of records, main record and end record included.
272
273 Example on the records appearance:
274
275 **S;10**
276
277 == Example on appearance ==
278
Jacob de Boer 58.1 279 **H;99999;Company AB;180919;1002
280 M;0;
281 P;sp000012;Dressing gown; 3;350,00;25,00;3;;
282 P;sp000012;Mug; 3;50,00;25,00;3;;134567
283 P;sp000302;Dressing gown; 1;350,00;25,00;3;214;
284 I;000087;0702402377;Installation: House;9;
285 I;000087;0702402377;Calculated year consumption: 24795 kWh;9;
286 I;000087;0702402377;Calculated meter reading: 000731: 28671;9;
287 A;000087;0702402377;Electricity june;992;0,129;25,00;6;147;
288 A;000087;0702402377;Energy tax june;992;0,162;25,00;6;;123456
289 Q;12345Football;5;23,50;25,00;2;20180101;20181001;1;1;2;8
290 B;12345;4788743;Installfee;5;150,00;25,00;1;20180101;20181001;212;125478;1;2;8
291 S;12**
Anders Göthberg 29.1 292
293 = Definitions and terms =
294
295 Header record and Trailer record exists only once. Records of the type P, A, I, Q, K and B can exist a multiply of times for a single customer number.
296
297 The maximum length of the product text is depending on which type of invoice layout is used, and is therefore agreed with PayEx.
298
299 There are also some limitations regarding which characters can be used in the product text. See below “Characters that can not be used in product text field”.
300
301 == Characters that not can be used in product text field. ==
302
303 (% border="1" %)
304 |=**Character**|=**ASCII**|=**Function**
305 | |0|NUL
306 | |1|SOH
307 | |2|STX
308 | |3|ETX
309 | |4|EOT
310 | |5|ENQ
311 | |6|ACK
312 | |7|BEL
313 | |8|BS
314 | |9|TAB
315 | |10|LF
316 | |11|VT
317 | |12|FF
318 | |13|CR
319 | |14|SO
320 | |15|SI
321 | |16|DLE
322 | |17|DC1
323 | |18|DC2
324 | |19|DC3
325 | |20|DC4
326 | |21|NAK
327 | |22|SYN
328 | |23|ETB
329 | |24|CAN
330 | |25|EM
331 | |26|SUB
332 | |27|ESC
333 | |28|FS
334 | |29|GS
335 | |30|RS
336 | |31|US
337 |;|59|Semicolon
338 |~||124|Vertical line
339 |~~|126|Tilde
340 | |127|DEL
341 |–|150|Simple dash
342
343 == Characters that not can be used in A-number field. ==
344
345 (% border="1" %)
346 |=**Character**|=**ASCII**|=**Function**
347 | |0|NUL
348 | |1|SOH
349 | |2|STX
350 | |3|ETX
351 | |4|EOT
352 | |5|ENQ
353 | |6|ACK
354 | |7|BEL
355 | |8|BS
356 | |9|TAB
357 | |10|LF
358 | |11|VT
359 | |12|FF
360 | |13|CR
361 | |14|SO
362 | |15|SI
363 | |16|DLE
364 | |17|DC1
365 | |18|DC2
366 | |19|DC3
367 | |20|DC4
368 | |21|NAK
369 | |22|SYN
370 | |23|ETB
371 | |24|CAN
372 | |25|EM
373 | |26|SUB
374 | |27|ESC
375 | |28|FS
376 | |29|GS
377 | |30|RS
378 | |31|US
379 | |32|Space
380 |$|36|Dollarsign
381 |*|42|Asterisk
382 |;|59|Semicolon
383 |<|60|Less then
384 |^|94|Caret
385 |`|96|Acute accent
386 |~||124|Vertical line
387 |~~|126|Tilde
388 | |127|DEL
389 |–|150|Simple dash
390 |¤|164|General currency symbol