@gruncellka/porto-data 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +215 -0
- package/LICENSE +199 -5
- package/README.md +53 -34
- package/index.d.ts +35 -18
- package/index.js +2 -1
- package/package.json +28 -8
- package/porto_data/formats/envelopes.json +120 -0
- package/porto_data/formats/layouts.json +288 -0
- package/porto_data/mappings.json +65 -10
- package/porto_data/metadata.json +662 -125
- package/porto_data/policy/jurisdictions.json +839 -0
- package/porto_data/policy/markets.json +75 -0
- package/porto_data/policy/restrictions.json +668 -0
- package/porto_data/providers/deutschepost/features.json +42 -0
- package/porto_data/providers/deutschepost/graph.json +203 -0
- package/porto_data/providers/deutschepost/limits.json +17 -0
- package/porto_data/providers/deutschepost/marks.json +71 -0
- package/porto_data/providers/deutschepost/prices/products.json +239 -0
- package/porto_data/providers/deutschepost/prices/services.json +51 -0
- package/porto_data/providers/deutschepost/products.json +197 -0
- package/porto_data/providers/deutschepost/services.json +88 -0
- package/porto_data/providers/deutschepost/weights.json +46 -0
- package/porto_data/providers/deutschepost/zones.json +231 -0
- package/porto_data/providers/laposte/features.json +42 -0
- package/porto_data/providers/laposte/graph.json +234 -0
- package/porto_data/providers/laposte/limits.json +17 -0
- package/porto_data/providers/laposte/marks.json +39 -0
- package/porto_data/providers/laposte/prices/products.json +947 -0
- package/porto_data/providers/laposte/prices/services.json +41 -0
- package/porto_data/providers/laposte/products.json +276 -0
- package/porto_data/providers/laposte/services.json +63 -0
- package/porto_data/providers/laposte/weights.json +38 -0
- package/porto_data/providers/laposte/zones.json +230 -0
- package/porto_data/providers/swisspost/features.json +21 -0
- package/porto_data/providers/swisspost/graph.json +212 -0
- package/porto_data/providers/swisspost/limits.json +17 -0
- package/porto_data/providers/swisspost/marks.json +41 -0
- package/porto_data/providers/swisspost/prices/products.json +347 -0
- package/porto_data/providers/swisspost/prices/services.json +31 -0
- package/porto_data/providers/swisspost/products.json +193 -0
- package/porto_data/providers/swisspost/rules.json +25 -0
- package/porto_data/providers/swisspost/services.json +40 -0
- package/porto_data/providers/swisspost/weights.json +38 -0
- package/porto_data/providers/swisspost/zones.json +223 -0
- package/porto_data/providers/ukrposhta/features.json +28 -0
- package/porto_data/providers/ukrposhta/graph.json +148 -0
- package/porto_data/providers/ukrposhta/limits.json +17 -0
- package/porto_data/providers/ukrposhta/marks.json +25 -0
- package/porto_data/providers/ukrposhta/prices/products.json +123 -0
- package/porto_data/providers/ukrposhta/prices/services.json +42 -0
- package/porto_data/providers/ukrposhta/products.json +74 -0
- package/porto_data/providers/ukrposhta/services.json +40 -0
- package/porto_data/providers/ukrposhta/weights.json +26 -0
- package/porto_data/providers/ukrposhta/zones.json +226 -0
- package/porto_data/providers.json +37 -0
- package/porto_data/schemas/envelopes.schema.json +120 -0
- package/porto_data/schemas/features.schema.json +66 -55
- package/porto_data/schemas/graph.schema.json +189 -0
- package/porto_data/schemas/jurisdictions.schema.json +116 -0
- package/porto_data/schemas/layouts.schema.json +156 -0
- package/porto_data/schemas/limits.schema.json +253 -0
- package/porto_data/schemas/mappings.schema.json +73 -0
- package/porto_data/schemas/markets.schema.json +186 -0
- package/porto_data/schemas/marks.schema.json +127 -0
- package/porto_data/schemas/metadata.schema.json +183 -0
- package/porto_data/schemas/porto_ids.schema.json +45 -0
- package/porto_data/schemas/product_prices.schema.json +126 -0
- package/porto_data/schemas/products.schema.json +338 -110
- package/porto_data/schemas/providers.schema.json +71 -0
- package/porto_data/schemas/restrictions.schema.json +175 -355
- package/porto_data/schemas/rules.schema.json +104 -0
- package/porto_data/schemas/service_prices.schema.json +116 -0
- package/porto_data/schemas/services.schema.json +113 -70
- package/porto_data/schemas/weights.schema.json +70 -0
- package/porto_data/schemas/zones.schema.json +78 -72
- package/porto_data/data/data_links.json +0 -148
- package/porto_data/data/dimensions.json +0 -158
- package/porto_data/data/features.json +0 -66
- package/porto_data/data/prices.json +0 -242
- package/porto_data/data/products.json +0 -84
- package/porto_data/data/restrictions.json +0 -795
- package/porto_data/data/services.json +0 -61
- package/porto_data/data/weight_tiers.json +0 -54
- package/porto_data/data/zones.json +0 -230
- package/porto_data/schemas/data_links.schema.json +0 -223
- package/porto_data/schemas/dimensions.schema.json +0 -215
- package/porto_data/schemas/prices.schema.json +0 -180
- package/porto_data/schemas/weight_tiers.schema.json +0 -70
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/gruncellka/porto-data/refs/heads/main/porto_data/schemas/features.schema.json",
|
|
3
|
+
"file_type": "features",
|
|
4
|
+
"provider": "deutschepost",
|
|
5
|
+
"features": [
|
|
6
|
+
{
|
|
7
|
+
"id": "sendungsnummer",
|
|
8
|
+
"porto_id": "tracking_number",
|
|
9
|
+
"name": "Sendungsnummer",
|
|
10
|
+
"label": "Tracking number",
|
|
11
|
+
"description": "Unique tracking number (registered mail only)"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"id": "einliefernachweis",
|
|
15
|
+
"porto_id": "proof_of_mailing",
|
|
16
|
+
"name": "Einliefernachweis",
|
|
17
|
+
"label": "Proof of mailing",
|
|
18
|
+
"description": "Documentation that item was mailed"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "unterschrift_empfanger",
|
|
22
|
+
"porto_id": "recipient_signature",
|
|
23
|
+
"name": "Empfängerunterschrift",
|
|
24
|
+
"label": "Recipient signature required",
|
|
25
|
+
"description": "Recipient must sign upon delivery"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "rueckschein",
|
|
29
|
+
"porto_id": "return_receipt",
|
|
30
|
+
"name": "Rückschein",
|
|
31
|
+
"label": "Return receipt to sender",
|
|
32
|
+
"description": "Receipt returned to sender as proof of delivery"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": "zustellnachweis",
|
|
36
|
+
"porto_id": "proof_of_delivery",
|
|
37
|
+
"name": "Zustellnachweis",
|
|
38
|
+
"label": "Proof of delivery",
|
|
39
|
+
"description": "Derived from tracking status; not a separate API capability"
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/gruncellka/porto-data/refs/heads/main/porto_data/schemas/graph.schema.json",
|
|
3
|
+
"file_type": "graph",
|
|
4
|
+
"provider": "deutschepost",
|
|
5
|
+
"unit": {
|
|
6
|
+
"weight": "g",
|
|
7
|
+
"dimension": "mm",
|
|
8
|
+
"price": "cents",
|
|
9
|
+
"currency": "EUR"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"products": {
|
|
13
|
+
"file": "products.json",
|
|
14
|
+
"depends_on": [
|
|
15
|
+
"zones.json",
|
|
16
|
+
"weights.json",
|
|
17
|
+
"formats/envelopes.json",
|
|
18
|
+
"services.json",
|
|
19
|
+
"features.json",
|
|
20
|
+
"marks.json"
|
|
21
|
+
],
|
|
22
|
+
"description": "Products require zones, weight tiers, canonical envelope format ids, services, features, and mark profiles"
|
|
23
|
+
},
|
|
24
|
+
"services": {
|
|
25
|
+
"file": "services.json",
|
|
26
|
+
"depends_on": [
|
|
27
|
+
"features.json"
|
|
28
|
+
],
|
|
29
|
+
"description": "Services require features and price information"
|
|
30
|
+
},
|
|
31
|
+
"product_prices": {
|
|
32
|
+
"file": "prices/products.json",
|
|
33
|
+
"depends_on": [
|
|
34
|
+
"products.json",
|
|
35
|
+
"zones.json",
|
|
36
|
+
"weights.json"
|
|
37
|
+
],
|
|
38
|
+
"description": "Base postage grid (product_id × zone × weight_tier); file providers/<id>/prices/products.json (file_type product_prices)"
|
|
39
|
+
},
|
|
40
|
+
"service_prices": {
|
|
41
|
+
"file": "prices/services.json",
|
|
42
|
+
"depends_on": [
|
|
43
|
+
"products.json",
|
|
44
|
+
"services.json",
|
|
45
|
+
"zones.json",
|
|
46
|
+
"weights.json"
|
|
47
|
+
],
|
|
48
|
+
"description": "Service surcharge amounts; file providers/<id>/prices/services.json (file_type service_prices)"
|
|
49
|
+
},
|
|
50
|
+
"zones": {
|
|
51
|
+
"file": "zones.json",
|
|
52
|
+
"depends_on": [
|
|
53
|
+
"policy/restrictions.json"
|
|
54
|
+
],
|
|
55
|
+
"description": "Zones may have restricted destinations"
|
|
56
|
+
},
|
|
57
|
+
"weights": {
|
|
58
|
+
"file": "weights.json",
|
|
59
|
+
"depends_on": [],
|
|
60
|
+
"description": "Weight brackets (tier ids) are standalone definitions"
|
|
61
|
+
},
|
|
62
|
+
"envelopes": {
|
|
63
|
+
"file": "formats/envelopes.json",
|
|
64
|
+
"depends_on": [],
|
|
65
|
+
"description": "Global envelope id catalog: physical front size (mm); international baseline (e.g. ISO 269); file formats/envelopes.json"
|
|
66
|
+
},
|
|
67
|
+
"envelope_layouts": {
|
|
68
|
+
"file": "formats/layouts.json",
|
|
69
|
+
"depends_on": [
|
|
70
|
+
"formats/envelopes.json"
|
|
71
|
+
],
|
|
72
|
+
"description": "Jurisdiction-keyed print/window layout (DE/CH/FR); file formats/layouts.json"
|
|
73
|
+
},
|
|
74
|
+
"jurisdictions": {
|
|
75
|
+
"file": "policy/jurisdictions.json",
|
|
76
|
+
"depends_on": [],
|
|
77
|
+
"description": "UN/EU membership sets for restriction framework jurisdiction resolution"
|
|
78
|
+
},
|
|
79
|
+
"markets": {
|
|
80
|
+
"file": "policy/markets.json",
|
|
81
|
+
"depends_on": [],
|
|
82
|
+
"description": "Country-level currency, VAT, and international quote currencies for providers.json country"
|
|
83
|
+
},
|
|
84
|
+
"restrictions": {
|
|
85
|
+
"file": "policy/restrictions.json",
|
|
86
|
+
"depends_on": [
|
|
87
|
+
"policy/jurisdictions.json",
|
|
88
|
+
"zones.json",
|
|
89
|
+
"products.json"
|
|
90
|
+
],
|
|
91
|
+
"description": "Global destination restrictions (bundled as policy/restrictions.json); optional cross-reference to zones and products"
|
|
92
|
+
},
|
|
93
|
+
"limits": {
|
|
94
|
+
"file": "limits.json",
|
|
95
|
+
"depends_on": [
|
|
96
|
+
"policy/restrictions.json"
|
|
97
|
+
],
|
|
98
|
+
"description": "Provider operational limits extend global restrictions after load"
|
|
99
|
+
},
|
|
100
|
+
"features": {
|
|
101
|
+
"file": "features.json",
|
|
102
|
+
"depends_on": [],
|
|
103
|
+
"description": "Features are standalone definitions referenced by services"
|
|
104
|
+
},
|
|
105
|
+
"marks": {
|
|
106
|
+
"file": "marks.json",
|
|
107
|
+
"depends_on": [],
|
|
108
|
+
"description": "Franking profile catalog: profiles[] (sizes); resolution in graph.edges.marks"
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"services": [
|
|
112
|
+
"einschreiben",
|
|
113
|
+
"einschreiben_einwurf",
|
|
114
|
+
"einschreiben_rueckschein",
|
|
115
|
+
"zusatzversicherung"
|
|
116
|
+
],
|
|
117
|
+
"edges": {
|
|
118
|
+
"products": {
|
|
119
|
+
"standardbrief": {
|
|
120
|
+
"zones": [
|
|
121
|
+
"domestic",
|
|
122
|
+
"zone_1_eu",
|
|
123
|
+
"zone_2_europe",
|
|
124
|
+
"world"
|
|
125
|
+
],
|
|
126
|
+
"weight_tiers": [
|
|
127
|
+
"W0020"
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
"kompaktbrief": {
|
|
131
|
+
"zones": [
|
|
132
|
+
"domestic",
|
|
133
|
+
"zone_1_eu",
|
|
134
|
+
"zone_2_europe",
|
|
135
|
+
"world"
|
|
136
|
+
],
|
|
137
|
+
"weight_tiers": [
|
|
138
|
+
"W0050"
|
|
139
|
+
]
|
|
140
|
+
},
|
|
141
|
+
"grossbrief": {
|
|
142
|
+
"zones": [
|
|
143
|
+
"domestic",
|
|
144
|
+
"zone_1_eu",
|
|
145
|
+
"zone_2_europe",
|
|
146
|
+
"world"
|
|
147
|
+
],
|
|
148
|
+
"weight_tiers": [
|
|
149
|
+
"W0500"
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
"maxibrief": {
|
|
153
|
+
"zones": [
|
|
154
|
+
"domestic",
|
|
155
|
+
"zone_1_eu",
|
|
156
|
+
"zone_2_europe",
|
|
157
|
+
"world"
|
|
158
|
+
],
|
|
159
|
+
"weight_tiers": [
|
|
160
|
+
"W1000"
|
|
161
|
+
]
|
|
162
|
+
},
|
|
163
|
+
"maxibrief_international_heavy": {
|
|
164
|
+
"zones": [
|
|
165
|
+
"zone_1_eu",
|
|
166
|
+
"zone_2_europe",
|
|
167
|
+
"world"
|
|
168
|
+
],
|
|
169
|
+
"weight_tiers": [
|
|
170
|
+
"W2000"
|
|
171
|
+
]
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
"marks": {
|
|
175
|
+
"domestic": {
|
|
176
|
+
"profile": "domestic",
|
|
177
|
+
"services": {
|
|
178
|
+
"einschreiben": "registered",
|
|
179
|
+
"einschreiben_einwurf": "registered",
|
|
180
|
+
"einschreiben_rueckschein": "registered"
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
"zone_1_eu": {
|
|
184
|
+
"profile": "international",
|
|
185
|
+
"services": {
|
|
186
|
+
"einschreiben": "registered_international"
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
"zone_2_europe": {
|
|
190
|
+
"profile": "international",
|
|
191
|
+
"services": {
|
|
192
|
+
"einschreiben": "registered_international"
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
"world": {
|
|
196
|
+
"profile": "international",
|
|
197
|
+
"services": {
|
|
198
|
+
"einschreiben": "registered_international"
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/gruncellka/porto-data/refs/heads/main/porto_data/schemas/limits.schema.json",
|
|
3
|
+
"file_type": "limits",
|
|
4
|
+
"provider": "deutschepost",
|
|
5
|
+
"unit": {
|
|
6
|
+
"country_code": "ISO 3166-1 alpha-2",
|
|
7
|
+
"date": "ISO 8601"
|
|
8
|
+
},
|
|
9
|
+
"context": {
|
|
10
|
+
"national": {
|
|
11
|
+
"description": "Volatile operator rules (strikes, temporary suspensions) and SDK overlays use the same row shape as policy/restrictions.json limits[] items when present. Sanctions and destination facts (EU/UN/CH rows) live only in policy/restrictions.json under destinations[].restrictions. This file is usually empty.",
|
|
12
|
+
"notes": "Merge order: global restrictions, then limits[] here, then any SDK operational overlay."
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"limits": [],
|
|
16
|
+
"frameworks": {}
|
|
17
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/gruncellka/porto-data/refs/heads/main/porto_data/schemas/marks.schema.json",
|
|
3
|
+
"file_type": "marks",
|
|
4
|
+
"provider": "deutschepost",
|
|
5
|
+
"unit": {
|
|
6
|
+
"dimension": "mm"
|
|
7
|
+
},
|
|
8
|
+
"default_profile": "domestic",
|
|
9
|
+
"profiles": [
|
|
10
|
+
{
|
|
11
|
+
"id": "domestic",
|
|
12
|
+
"mark_type": "stamp",
|
|
13
|
+
"label": "Internetmarke domestic",
|
|
14
|
+
"description": "Standard domestic letter franking graphic",
|
|
15
|
+
"scope_notes": "Not from Deutsche Post official spec; measured from Internetmarke PDF samples (calibration samples/, not in git). Frankierzone placement max 74×40 mm",
|
|
16
|
+
"size": {
|
|
17
|
+
"width": 36,
|
|
18
|
+
"height": 16
|
|
19
|
+
},
|
|
20
|
+
"mime_type": [
|
|
21
|
+
"image/png",
|
|
22
|
+
"application/pdf"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "international",
|
|
27
|
+
"mark_type": "stamp",
|
|
28
|
+
"label": "Internetmarke international",
|
|
29
|
+
"description": "International letter franking graphic (wider footprint)",
|
|
30
|
+
"scope_notes": "Not from Deutsche Post official spec; measured from Internetmarke PDF samples. Includes Priority P.P. line when applicable",
|
|
31
|
+
"size": {
|
|
32
|
+
"width": 60,
|
|
33
|
+
"height": 16
|
|
34
|
+
},
|
|
35
|
+
"mime_type": [
|
|
36
|
+
"image/png",
|
|
37
|
+
"application/pdf"
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "registered",
|
|
42
|
+
"mark_type": "stamp",
|
|
43
|
+
"label": "Internetmarke registered domestic",
|
|
44
|
+
"description": "Domestic registered (Einschreiben) franking graphic",
|
|
45
|
+
"scope_notes": "Not from Deutsche Post official spec; measured from Internetmarke PDF samples. Einschreiben Einwurf / Rückschein and domestic Einschreiben",
|
|
46
|
+
"size": {
|
|
47
|
+
"width": 57,
|
|
48
|
+
"height": 21
|
|
49
|
+
},
|
|
50
|
+
"mime_type": [
|
|
51
|
+
"image/png",
|
|
52
|
+
"application/pdf"
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"id": "registered_international",
|
|
57
|
+
"mark_type": "stamp",
|
|
58
|
+
"label": "Internetmarke registered international",
|
|
59
|
+
"description": "International registered franking graphic",
|
|
60
|
+
"scope_notes": "Not from Deutsche Post official spec; measured from Internetmarke PDF samples. International Einschreiben; taller footprint with barcode and service lines",
|
|
61
|
+
"size": {
|
|
62
|
+
"width": 57,
|
|
63
|
+
"height": 30
|
|
64
|
+
},
|
|
65
|
+
"mime_type": [
|
|
66
|
+
"image/png",
|
|
67
|
+
"application/pdf"
|
|
68
|
+
]
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
{
|
|
2
|
+
"provider": "deutschepost",
|
|
3
|
+
"unit": {
|
|
4
|
+
"price": "cents",
|
|
5
|
+
"currency": "EUR"
|
|
6
|
+
},
|
|
7
|
+
"$schema": "https://raw.githubusercontent.com/gruncellka/porto-data/refs/heads/main/porto_data/schemas/product_prices.schema.json",
|
|
8
|
+
"file_type": "product_prices",
|
|
9
|
+
"product_prices": [
|
|
10
|
+
{
|
|
11
|
+
"product_id": "standardbrief",
|
|
12
|
+
"zone": "domestic",
|
|
13
|
+
"weight_tier": "W0020",
|
|
14
|
+
"price": [
|
|
15
|
+
{
|
|
16
|
+
"amount": 95,
|
|
17
|
+
"effective_from": "2026-01-01",
|
|
18
|
+
"effective_to": null
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"product_id": "standardbrief",
|
|
24
|
+
"zone": "zone_1_eu",
|
|
25
|
+
"weight_tier": "W0020",
|
|
26
|
+
"price": [
|
|
27
|
+
{
|
|
28
|
+
"amount": 125,
|
|
29
|
+
"effective_from": "2026-01-01",
|
|
30
|
+
"effective_to": null
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"product_id": "standardbrief",
|
|
36
|
+
"zone": "zone_2_europe",
|
|
37
|
+
"weight_tier": "W0020",
|
|
38
|
+
"price": [
|
|
39
|
+
{
|
|
40
|
+
"amount": 125,
|
|
41
|
+
"effective_from": "2026-01-01",
|
|
42
|
+
"effective_to": null
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"product_id": "standardbrief",
|
|
48
|
+
"zone": "world",
|
|
49
|
+
"weight_tier": "W0020",
|
|
50
|
+
"price": [
|
|
51
|
+
{
|
|
52
|
+
"amount": 125,
|
|
53
|
+
"effective_from": "2026-01-01",
|
|
54
|
+
"effective_to": null
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"product_id": "kompaktbrief",
|
|
60
|
+
"zone": "domestic",
|
|
61
|
+
"weight_tier": "W0050",
|
|
62
|
+
"price": [
|
|
63
|
+
{
|
|
64
|
+
"amount": 110,
|
|
65
|
+
"effective_from": "2026-01-01",
|
|
66
|
+
"effective_to": null
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"product_id": "kompaktbrief",
|
|
72
|
+
"zone": "zone_1_eu",
|
|
73
|
+
"weight_tier": "W0050",
|
|
74
|
+
"price": [
|
|
75
|
+
{
|
|
76
|
+
"amount": 180,
|
|
77
|
+
"effective_from": "2026-01-01",
|
|
78
|
+
"effective_to": null
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"product_id": "kompaktbrief",
|
|
84
|
+
"zone": "zone_2_europe",
|
|
85
|
+
"weight_tier": "W0050",
|
|
86
|
+
"price": [
|
|
87
|
+
{
|
|
88
|
+
"amount": 180,
|
|
89
|
+
"effective_from": "2026-01-01",
|
|
90
|
+
"effective_to": null
|
|
91
|
+
}
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"product_id": "kompaktbrief",
|
|
96
|
+
"zone": "world",
|
|
97
|
+
"weight_tier": "W0050",
|
|
98
|
+
"price": [
|
|
99
|
+
{
|
|
100
|
+
"amount": 180,
|
|
101
|
+
"effective_from": "2026-01-01",
|
|
102
|
+
"effective_to": null
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"product_id": "grossbrief",
|
|
108
|
+
"zone": "domestic",
|
|
109
|
+
"weight_tier": "W0500",
|
|
110
|
+
"price": [
|
|
111
|
+
{
|
|
112
|
+
"amount": 180,
|
|
113
|
+
"effective_from": "2026-01-01",
|
|
114
|
+
"effective_to": null
|
|
115
|
+
}
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"product_id": "grossbrief",
|
|
120
|
+
"zone": "zone_1_eu",
|
|
121
|
+
"weight_tier": "W0500",
|
|
122
|
+
"price": [
|
|
123
|
+
{
|
|
124
|
+
"amount": 330,
|
|
125
|
+
"effective_from": "2026-01-01",
|
|
126
|
+
"effective_to": null
|
|
127
|
+
}
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"product_id": "grossbrief",
|
|
132
|
+
"zone": "zone_2_europe",
|
|
133
|
+
"weight_tier": "W0500",
|
|
134
|
+
"price": [
|
|
135
|
+
{
|
|
136
|
+
"amount": 330,
|
|
137
|
+
"effective_from": "2026-01-01",
|
|
138
|
+
"effective_to": null
|
|
139
|
+
}
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"product_id": "grossbrief",
|
|
144
|
+
"zone": "world",
|
|
145
|
+
"weight_tier": "W0500",
|
|
146
|
+
"price": [
|
|
147
|
+
{
|
|
148
|
+
"amount": 330,
|
|
149
|
+
"effective_from": "2026-01-01",
|
|
150
|
+
"effective_to": null
|
|
151
|
+
}
|
|
152
|
+
]
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"product_id": "maxibrief",
|
|
156
|
+
"zone": "domestic",
|
|
157
|
+
"weight_tier": "W1000",
|
|
158
|
+
"price": [
|
|
159
|
+
{
|
|
160
|
+
"amount": 290,
|
|
161
|
+
"effective_from": "2026-01-01",
|
|
162
|
+
"effective_to": null
|
|
163
|
+
}
|
|
164
|
+
]
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"product_id": "maxibrief",
|
|
168
|
+
"zone": "zone_1_eu",
|
|
169
|
+
"weight_tier": "W1000",
|
|
170
|
+
"price": [
|
|
171
|
+
{
|
|
172
|
+
"amount": 650,
|
|
173
|
+
"effective_from": "2026-01-01",
|
|
174
|
+
"effective_to": null
|
|
175
|
+
}
|
|
176
|
+
]
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"product_id": "maxibrief",
|
|
180
|
+
"zone": "zone_2_europe",
|
|
181
|
+
"weight_tier": "W1000",
|
|
182
|
+
"price": [
|
|
183
|
+
{
|
|
184
|
+
"amount": 650,
|
|
185
|
+
"effective_from": "2026-01-01",
|
|
186
|
+
"effective_to": null
|
|
187
|
+
}
|
|
188
|
+
]
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"product_id": "maxibrief",
|
|
192
|
+
"zone": "world",
|
|
193
|
+
"weight_tier": "W1000",
|
|
194
|
+
"price": [
|
|
195
|
+
{
|
|
196
|
+
"amount": 650,
|
|
197
|
+
"effective_from": "2026-01-01",
|
|
198
|
+
"effective_to": null
|
|
199
|
+
}
|
|
200
|
+
]
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"product_id": "maxibrief_international_heavy",
|
|
204
|
+
"zone": "zone_1_eu",
|
|
205
|
+
"weight_tier": "W2000",
|
|
206
|
+
"price": [
|
|
207
|
+
{
|
|
208
|
+
"amount": 1700,
|
|
209
|
+
"effective_from": "2026-01-01",
|
|
210
|
+
"effective_to": null
|
|
211
|
+
}
|
|
212
|
+
]
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"product_id": "maxibrief_international_heavy",
|
|
216
|
+
"zone": "zone_2_europe",
|
|
217
|
+
"weight_tier": "W2000",
|
|
218
|
+
"price": [
|
|
219
|
+
{
|
|
220
|
+
"amount": 1700,
|
|
221
|
+
"effective_from": "2026-01-01",
|
|
222
|
+
"effective_to": null
|
|
223
|
+
}
|
|
224
|
+
]
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"product_id": "maxibrief_international_heavy",
|
|
228
|
+
"zone": "world",
|
|
229
|
+
"weight_tier": "W2000",
|
|
230
|
+
"price": [
|
|
231
|
+
{
|
|
232
|
+
"amount": 1700,
|
|
233
|
+
"effective_from": "2026-01-01",
|
|
234
|
+
"effective_to": null
|
|
235
|
+
}
|
|
236
|
+
]
|
|
237
|
+
}
|
|
238
|
+
]
|
|
239
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"provider": "deutschepost",
|
|
3
|
+
"unit": {
|
|
4
|
+
"price": "cents",
|
|
5
|
+
"currency": "EUR"
|
|
6
|
+
},
|
|
7
|
+
"$schema": "https://raw.githubusercontent.com/gruncellka/porto-data/refs/heads/main/porto_data/schemas/service_prices.schema.json",
|
|
8
|
+
"file_type": "service_prices",
|
|
9
|
+
"service_prices": [
|
|
10
|
+
{
|
|
11
|
+
"service_id": "einschreiben",
|
|
12
|
+
"price": [
|
|
13
|
+
{
|
|
14
|
+
"amount": 265,
|
|
15
|
+
"effective_from": "2026-01-01",
|
|
16
|
+
"effective_to": null
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"service_id": "einschreiben_einwurf",
|
|
22
|
+
"price": [
|
|
23
|
+
{
|
|
24
|
+
"amount": 235,
|
|
25
|
+
"effective_from": "2026-01-01",
|
|
26
|
+
"effective_to": null
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"service_id": "einschreiben_rueckschein",
|
|
32
|
+
"price": [
|
|
33
|
+
{
|
|
34
|
+
"amount": 485,
|
|
35
|
+
"effective_from": "2026-01-01",
|
|
36
|
+
"effective_to": null
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"service_id": "zusatzversicherung",
|
|
42
|
+
"price": [
|
|
43
|
+
{
|
|
44
|
+
"amount": 250,
|
|
45
|
+
"effective_from": "2026-01-01",
|
|
46
|
+
"effective_to": null
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|