ticketbai 0.1.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.
- checksums.yaml +7 -0
- data/.rspec +3 -0
- data/.rubocop.yml +32 -0
- data/CHANGELOG.md +13 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +21 -0
- data/README.md +107 -0
- data/Rakefile +12 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/lib/ticketbai/api/client.rb +63 -0
- data/lib/ticketbai/api/registry.rb +34 -0
- data/lib/ticketbai/api/request.rb +125 -0
- data/lib/ticketbai/api/response_parser.rb +36 -0
- data/lib/ticketbai/checksum_calculator.rb +15 -0
- data/lib/ticketbai/document.rb +21 -0
- data/lib/ticketbai/document_validator.rb +42 -0
- data/lib/ticketbai/documents/annulment.rb +45 -0
- data/lib/ticketbai/documents/api_payload.rb +47 -0
- data/lib/ticketbai/documents/issuance.rb +55 -0
- data/lib/ticketbai/documents/issuance_unsigned.rb +58 -0
- data/lib/ticketbai/errors.rb +27 -0
- data/lib/ticketbai/nodes/breakdown_type.rb +72 -0
- data/lib/ticketbai/nodes/invoice_chaining.rb +22 -0
- data/lib/ticketbai/nodes/invoice_data.rb +24 -0
- data/lib/ticketbai/nodes/invoice_header.rb +26 -0
- data/lib/ticketbai/nodes/issuer.rb +18 -0
- data/lib/ticketbai/nodes/lroe_header.rb +29 -0
- data/lib/ticketbai/nodes/lroe_issued_invoices.rb +28 -0
- data/lib/ticketbai/nodes/receiver.rb +36 -0
- data/lib/ticketbai/nodes/software.rb +17 -0
- data/lib/ticketbai/operation.rb +59 -0
- data/lib/ticketbai/operations/annulment.rb +41 -0
- data/lib/ticketbai/operations/issuance.rb +93 -0
- data/lib/ticketbai/operations/issuance_unsigned.rb +89 -0
- data/lib/ticketbai/signer.rb +273 -0
- data/lib/ticketbai/tbai_identifier.rb +33 -0
- data/lib/ticketbai/tbai_qr.rb +50 -0
- data/lib/ticketbai/version.rb +5 -0
- data/lib/ticketbai/xmldsig-core-schema.xsd +318 -0
- data/lib/ticketbai/xsd_validators/annulment.xsd +392 -0
- data/lib/ticketbai/xsd_validators/issuance.xsd +865 -0
- data/lib/ticketbai.rb +89 -0
- data/ticketbai.gemspec +42 -0
- metadata +186 -0
@@ -0,0 +1,392 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:T="urn:ticketbai:anulacion" targetNamespace="urn:ticketbai:anulacion">
|
3
|
+
|
4
|
+
<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="lib/ticketbai/xmldsig-core-schema.xsd"/>
|
5
|
+
|
6
|
+
<element name="AnulaTicketBai">
|
7
|
+
<complexType>
|
8
|
+
<sequence>
|
9
|
+
<element name="Cabecera" type="T:Cabecera"/>
|
10
|
+
<element name="IDFactura" type="T:IDFactura"/>
|
11
|
+
<element name="HuellaTBAI" type="T:HuellaTBAI"/>
|
12
|
+
<element ref="ds:Signature"/>
|
13
|
+
</sequence>
|
14
|
+
</complexType>
|
15
|
+
</element>
|
16
|
+
<complexType name="Cabecera">
|
17
|
+
<sequence>
|
18
|
+
<element name="IDVersionTBAI" type="T:IDVersionTicketBaiType"/>
|
19
|
+
</sequence>
|
20
|
+
</complexType>
|
21
|
+
<complexType name="Emisor">
|
22
|
+
<sequence>
|
23
|
+
<element name="NIF" type="T:NIFType"/>
|
24
|
+
<element name="ApellidosNombreRazonSocial" type="T:TextMax120Type"/>
|
25
|
+
</sequence>
|
26
|
+
</complexType>
|
27
|
+
<complexType name="IDFactura">
|
28
|
+
<sequence>
|
29
|
+
<element name="Emisor" type="T:Emisor"/>
|
30
|
+
<element name="CabeceraFactura" type="T:CabeceraFacturaType"/>
|
31
|
+
</sequence>
|
32
|
+
</complexType>
|
33
|
+
<complexType name="CabeceraFacturaType">
|
34
|
+
<sequence>
|
35
|
+
<element name="SerieFactura" type="T:TextMax20Type" minOccurs="0"/>
|
36
|
+
<element name="NumFactura" type="T:TextMax20Type"/>
|
37
|
+
<element name="FechaExpedicionFactura" type="T:FechaType"/>
|
38
|
+
</sequence>
|
39
|
+
</complexType>
|
40
|
+
<complexType name="HuellaTBAI">
|
41
|
+
<sequence>
|
42
|
+
<element name="Software" type="T:SoftwareFacturacionType"/>
|
43
|
+
<element name="NumSerieDispositivo" type="T:TextMax30Type" minOccurs="0"/>
|
44
|
+
</sequence>
|
45
|
+
</complexType>
|
46
|
+
<complexType name="SoftwareFacturacionType">
|
47
|
+
<sequence>
|
48
|
+
<element name="LicenciaTBAI" type="T:TextMax20Type"/>
|
49
|
+
<element name="EntidadDesarrolladora" type="T:EntidadDesarrolladoraType"/>
|
50
|
+
<element name="Nombre" type="T:TextMax120Type"/>
|
51
|
+
<element name="Version" type="T:TextMax20Type"/>
|
52
|
+
</sequence>
|
53
|
+
</complexType>
|
54
|
+
<complexType name="EntidadDesarrolladoraType">
|
55
|
+
<sequence>
|
56
|
+
<choice>
|
57
|
+
<element name="NIF" type="T:NIFType"/>
|
58
|
+
<element name="IDOtro" type="T:IDOtro"/>
|
59
|
+
</choice>
|
60
|
+
</sequence>
|
61
|
+
</complexType>
|
62
|
+
<complexType name="IDOtro">
|
63
|
+
<sequence>
|
64
|
+
<element name="CodigoPais" type="T:CountryType2" minOccurs="0"/>
|
65
|
+
<element name="IDType" type="T:IDTypeType"/>
|
66
|
+
<element name="ID" type="T:TextMax20Type"/>
|
67
|
+
</sequence>
|
68
|
+
</complexType>
|
69
|
+
<simpleType name="NIFType">
|
70
|
+
<annotation>
|
71
|
+
<documentation >NIF: Secuencia de 9 dígitos o
|
72
|
+
letras mayúsculas
|
73
|
+
</documentation>
|
74
|
+
</annotation>
|
75
|
+
<restriction base="string">
|
76
|
+
<length value="9" />
|
77
|
+
<pattern
|
78
|
+
value="(([a-z|A-Z]{1}\d{7}[a-z|A-Z]{1})|(\d{8}[a-z|A-Z]{1})|([a-z|A-Z]{1}\d{8}))" />
|
79
|
+
</restriction>
|
80
|
+
<!-- ([A-Z]|\d){9} -->
|
81
|
+
</simpleType>
|
82
|
+
<simpleType name="FechaType">
|
83
|
+
<restriction base="string">
|
84
|
+
<length value="10" />
|
85
|
+
<pattern value="\d{2,2}-\d{2,2}-\d{4,4}"/>
|
86
|
+
</restriction>
|
87
|
+
</simpleType>
|
88
|
+
<!-- Cadena de 20 caracteres -->
|
89
|
+
<simpleType name="TextMax20Type">
|
90
|
+
<restriction base="string">
|
91
|
+
<maxLength value="20"/>
|
92
|
+
</restriction>
|
93
|
+
</simpleType>
|
94
|
+
<!-- Cadena de 30 caracteres -->
|
95
|
+
<simpleType name="TextMax30Type">
|
96
|
+
<restriction base="string">
|
97
|
+
<maxLength value="30"/>
|
98
|
+
</restriction>
|
99
|
+
</simpleType>
|
100
|
+
<!-- Cadena de 120 caracteres -->
|
101
|
+
<simpleType name="TextMax120Type">
|
102
|
+
<restriction base="string">
|
103
|
+
<maxLength value="120"/>
|
104
|
+
</restriction>
|
105
|
+
</simpleType>
|
106
|
+
<!-- IDTicketBaiBertsioa - IDVersionTicketBai -->
|
107
|
+
<simpleType name="IDVersionTicketBaiType">
|
108
|
+
<restriction base="string">
|
109
|
+
<enumeration value="1.2"/>
|
110
|
+
</restriction>
|
111
|
+
</simpleType>
|
112
|
+
<!-- Herrialdearen kodea - Código de país -->
|
113
|
+
<simpleType name="CountryType2">
|
114
|
+
<restriction base="string">
|
115
|
+
<enumeration value="AF"/>
|
116
|
+
<enumeration value="AL"/>
|
117
|
+
<enumeration value="DE"/>
|
118
|
+
<enumeration value="AD"/>
|
119
|
+
<enumeration value="AO"/>
|
120
|
+
<enumeration value="AI"/>
|
121
|
+
<enumeration value="AQ"/>
|
122
|
+
<enumeration value="AG"/>
|
123
|
+
<enumeration value="SA"/>
|
124
|
+
<enumeration value="DZ"/>
|
125
|
+
<enumeration value="AR"/>
|
126
|
+
<enumeration value="AM"/>
|
127
|
+
<enumeration value="AW"/>
|
128
|
+
<enumeration value="AU"/>
|
129
|
+
<enumeration value="AT"/>
|
130
|
+
<enumeration value="AZ"/>
|
131
|
+
<enumeration value="BS"/>
|
132
|
+
<enumeration value="BH"/>
|
133
|
+
<enumeration value="BD"/>
|
134
|
+
<enumeration value="BB"/>
|
135
|
+
<enumeration value="BE"/>
|
136
|
+
<enumeration value="BZ"/>
|
137
|
+
<enumeration value="BJ"/>
|
138
|
+
<enumeration value="BM"/>
|
139
|
+
<enumeration value="BY"/>
|
140
|
+
<enumeration value="BO"/>
|
141
|
+
<enumeration value="BA"/>
|
142
|
+
<enumeration value="BW"/>
|
143
|
+
<enumeration value="BV"/>
|
144
|
+
<enumeration value="BR"/>
|
145
|
+
<enumeration value="BN"/>
|
146
|
+
<enumeration value="BG"/>
|
147
|
+
<enumeration value="BF"/>
|
148
|
+
<enumeration value="BI"/>
|
149
|
+
<enumeration value="BT"/>
|
150
|
+
<enumeration value="CV"/>
|
151
|
+
<enumeration value="KY"/>
|
152
|
+
<enumeration value="KH"/>
|
153
|
+
<enumeration value="CM"/>
|
154
|
+
<enumeration value="CA"/>
|
155
|
+
<enumeration value="CF"/>
|
156
|
+
<enumeration value="CC"/>
|
157
|
+
<enumeration value="CO"/>
|
158
|
+
<enumeration value="KM"/>
|
159
|
+
<enumeration value="CG"/>
|
160
|
+
<enumeration value="CD"/>
|
161
|
+
<enumeration value="CK"/>
|
162
|
+
<enumeration value="KP"/>
|
163
|
+
<enumeration value="KR"/>
|
164
|
+
<enumeration value="CI"/>
|
165
|
+
<enumeration value="CR"/>
|
166
|
+
<enumeration value="HR"/>
|
167
|
+
<enumeration value="CU"/>
|
168
|
+
<enumeration value="TD"/>
|
169
|
+
<enumeration value="CZ"/>
|
170
|
+
<enumeration value="CL"/>
|
171
|
+
<enumeration value="CN"/>
|
172
|
+
<enumeration value="CY"/>
|
173
|
+
<enumeration value="CW"/>
|
174
|
+
<enumeration value="DK"/>
|
175
|
+
<enumeration value="DM"/>
|
176
|
+
<enumeration value="DO"/>
|
177
|
+
<enumeration value="EC"/>
|
178
|
+
<enumeration value="EG"/>
|
179
|
+
<enumeration value="AE"/>
|
180
|
+
<enumeration value="ER"/>
|
181
|
+
<enumeration value="SK"/>
|
182
|
+
<enumeration value="SI"/>
|
183
|
+
<enumeration value="ES"/>
|
184
|
+
<enumeration value="US"/>
|
185
|
+
<enumeration value="EE"/>
|
186
|
+
<enumeration value="ET"/>
|
187
|
+
<enumeration value="FO"/>
|
188
|
+
<enumeration value="PH"/>
|
189
|
+
<enumeration value="FI"/>
|
190
|
+
<enumeration value="FJ"/>
|
191
|
+
<enumeration value="FR"/>
|
192
|
+
<enumeration value="GA"/>
|
193
|
+
<enumeration value="GM"/>
|
194
|
+
<enumeration value="GE"/>
|
195
|
+
<enumeration value="GS"/>
|
196
|
+
<enumeration value="GH"/>
|
197
|
+
<enumeration value="GI"/>
|
198
|
+
<enumeration value="GD"/>
|
199
|
+
<enumeration value="GR"/>
|
200
|
+
<enumeration value="GL"/>
|
201
|
+
<enumeration value="GU"/>
|
202
|
+
<enumeration value="GT"/>
|
203
|
+
<enumeration value="GG"/>
|
204
|
+
<enumeration value="GN"/>
|
205
|
+
<enumeration value="GQ"/>
|
206
|
+
<enumeration value="GW"/>
|
207
|
+
<enumeration value="GY"/>
|
208
|
+
<enumeration value="HT"/>
|
209
|
+
<enumeration value="HM"/>
|
210
|
+
<enumeration value="HN"/>
|
211
|
+
<enumeration value="HK"/>
|
212
|
+
<enumeration value="HU"/>
|
213
|
+
<enumeration value="IN"/>
|
214
|
+
<enumeration value="ID"/>
|
215
|
+
<enumeration value="IR"/>
|
216
|
+
<enumeration value="IQ"/>
|
217
|
+
<enumeration value="IE"/>
|
218
|
+
<enumeration value="IM"/>
|
219
|
+
<enumeration value="IS"/>
|
220
|
+
<enumeration value="IL"/>
|
221
|
+
<enumeration value="IT"/>
|
222
|
+
<enumeration value="JM"/>
|
223
|
+
<enumeration value="JP"/>
|
224
|
+
<enumeration value="JE"/>
|
225
|
+
<enumeration value="JO"/>
|
226
|
+
<enumeration value="KZ"/>
|
227
|
+
<enumeration value="KE"/>
|
228
|
+
<enumeration value="KG"/>
|
229
|
+
<enumeration value="KI"/>
|
230
|
+
<enumeration value="KW"/>
|
231
|
+
<enumeration value="LA"/>
|
232
|
+
<enumeration value="LS"/>
|
233
|
+
<enumeration value="LV"/>
|
234
|
+
<enumeration value="LB"/>
|
235
|
+
<enumeration value="LR"/>
|
236
|
+
<enumeration value="LY"/>
|
237
|
+
<enumeration value="LI"/>
|
238
|
+
<enumeration value="LT"/>
|
239
|
+
<enumeration value="LU"/>
|
240
|
+
<enumeration value="XG"/>
|
241
|
+
<enumeration value="MO"/>
|
242
|
+
<enumeration value="MK"/>
|
243
|
+
<enumeration value="MG"/>
|
244
|
+
<enumeration value="MY"/>
|
245
|
+
<enumeration value="MW"/>
|
246
|
+
<enumeration value="MV"/>
|
247
|
+
<enumeration value="ML"/>
|
248
|
+
<enumeration value="MT"/>
|
249
|
+
<enumeration value="FK"/>
|
250
|
+
<enumeration value="MP"/>
|
251
|
+
<enumeration value="MA"/>
|
252
|
+
<enumeration value="MH"/>
|
253
|
+
<enumeration value="MU"/>
|
254
|
+
<enumeration value="MR"/>
|
255
|
+
<enumeration value="YT"/>
|
256
|
+
<enumeration value="UM"/>
|
257
|
+
<enumeration value="MX"/>
|
258
|
+
<enumeration value="FM"/>
|
259
|
+
<enumeration value="MD"/>
|
260
|
+
<enumeration value="MC"/>
|
261
|
+
<enumeration value="MN"/>
|
262
|
+
<enumeration value="ME"/>
|
263
|
+
<enumeration value="MS"/>
|
264
|
+
<enumeration value="MZ"/>
|
265
|
+
<enumeration value="MM"/>
|
266
|
+
<enumeration value="NA"/>
|
267
|
+
<enumeration value="NR"/>
|
268
|
+
<enumeration value="CX"/>
|
269
|
+
<enumeration value="NP"/>
|
270
|
+
<enumeration value="NI"/>
|
271
|
+
<enumeration value="NE"/>
|
272
|
+
<enumeration value="NG"/>
|
273
|
+
<enumeration value="NU"/>
|
274
|
+
<enumeration value="NF"/>
|
275
|
+
<enumeration value="NO"/>
|
276
|
+
<enumeration value="NC"/>
|
277
|
+
<enumeration value="NZ"/>
|
278
|
+
<enumeration value="IO"/>
|
279
|
+
<enumeration value="OM"/>
|
280
|
+
<enumeration value="NL"/>
|
281
|
+
<enumeration value="BQ"/>
|
282
|
+
<enumeration value="PK"/>
|
283
|
+
<enumeration value="PW"/>
|
284
|
+
<enumeration value="PA"/>
|
285
|
+
<enumeration value="PG"/>
|
286
|
+
<enumeration value="PY"/>
|
287
|
+
<enumeration value="PE"/>
|
288
|
+
<enumeration value="PN"/>
|
289
|
+
<enumeration value="PF"/>
|
290
|
+
<enumeration value="PL"/>
|
291
|
+
<enumeration value="PT"/>
|
292
|
+
<enumeration value="PR"/>
|
293
|
+
<enumeration value="QA"/>
|
294
|
+
<enumeration value="GB"/>
|
295
|
+
<enumeration value="RW"/>
|
296
|
+
<enumeration value="RO"/>
|
297
|
+
<enumeration value="RU"/>
|
298
|
+
<enumeration value="SB"/>
|
299
|
+
<enumeration value="SV"/>
|
300
|
+
<enumeration value="WS"/>
|
301
|
+
<enumeration value="AS"/>
|
302
|
+
<enumeration value="KN"/>
|
303
|
+
<enumeration value="SM"/>
|
304
|
+
<enumeration value="SX"/>
|
305
|
+
<enumeration value="PM"/>
|
306
|
+
<enumeration value="VC"/>
|
307
|
+
<enumeration value="SH"/>
|
308
|
+
<enumeration value="LC"/>
|
309
|
+
<enumeration value="ST"/>
|
310
|
+
<enumeration value="SN"/>
|
311
|
+
<enumeration value="RS"/>
|
312
|
+
<enumeration value="SC"/>
|
313
|
+
<enumeration value="SL"/>
|
314
|
+
<enumeration value="SG"/>
|
315
|
+
<enumeration value="SY"/>
|
316
|
+
<enumeration value="SO"/>
|
317
|
+
<enumeration value="LK"/>
|
318
|
+
<enumeration value="SZ"/>
|
319
|
+
<enumeration value="ZA"/>
|
320
|
+
<enumeration value="SD"/>
|
321
|
+
<enumeration value="SS"/>
|
322
|
+
<enumeration value="SE"/>
|
323
|
+
<enumeration value="CH"/>
|
324
|
+
<enumeration value="SR"/>
|
325
|
+
<enumeration value="TH"/>
|
326
|
+
<enumeration value="TW"/>
|
327
|
+
<enumeration value="TZ"/>
|
328
|
+
<enumeration value="TJ"/>
|
329
|
+
<enumeration value="PS"/>
|
330
|
+
<enumeration value="TF"/>
|
331
|
+
<enumeration value="TL"/>
|
332
|
+
<enumeration value="TG"/>
|
333
|
+
<enumeration value="TK"/>
|
334
|
+
<enumeration value="TO"/>
|
335
|
+
<enumeration value="TT"/>
|
336
|
+
<enumeration value="TN"/>
|
337
|
+
<enumeration value="TC"/>
|
338
|
+
<enumeration value="TM"/>
|
339
|
+
<enumeration value="TR"/>
|
340
|
+
<enumeration value="TV"/>
|
341
|
+
<enumeration value="UA"/>
|
342
|
+
<enumeration value="UG"/>
|
343
|
+
<enumeration value="UY"/>
|
344
|
+
<enumeration value="UZ"/>
|
345
|
+
<enumeration value="VU"/>
|
346
|
+
<enumeration value="VA"/>
|
347
|
+
<enumeration value="VE"/>
|
348
|
+
<enumeration value="VN"/>
|
349
|
+
<enumeration value="VG"/>
|
350
|
+
<enumeration value="VI"/>
|
351
|
+
<enumeration value="WF"/>
|
352
|
+
<enumeration value="YE"/>
|
353
|
+
<enumeration value="DJ"/>
|
354
|
+
<enumeration value="ZM"/>
|
355
|
+
<enumeration value="ZW"/>
|
356
|
+
<enumeration value="QU"/>
|
357
|
+
<enumeration value="XB"/>
|
358
|
+
<enumeration value="XU"/>
|
359
|
+
<enumeration value="XN"/>
|
360
|
+
</restriction>
|
361
|
+
</simpleType>
|
362
|
+
<!-- Egoitza herrialdeko identifikazio motak - Tipos de identificación en el país de residencia -->
|
363
|
+
<simpleType name="IDTypeType">
|
364
|
+
<restriction base="string">
|
365
|
+
<enumeration value="02">
|
366
|
+
<annotation>
|
367
|
+
<documentation >IFZ BEZ - NIF IVA</documentation>
|
368
|
+
</annotation>
|
369
|
+
</enumeration>
|
370
|
+
<enumeration value="03">
|
371
|
+
<annotation>
|
372
|
+
<documentation >Pasaportea - Pasaporte</documentation>
|
373
|
+
</annotation>
|
374
|
+
</enumeration>
|
375
|
+
<enumeration value="04">
|
376
|
+
<annotation>
|
377
|
+
<documentation >Egoitza dagoen herrialdeak edo lurraldeak emandako nortasun agiri ofiziala - Documento oficial de identificación expedido por el país o territorio de residencia</documentation>
|
378
|
+
</annotation>
|
379
|
+
</enumeration>
|
380
|
+
<enumeration value="05">
|
381
|
+
<annotation>
|
382
|
+
<documentation >Egoitza ziurtagiria - Certificado de residencia</documentation>
|
383
|
+
</annotation>
|
384
|
+
</enumeration>
|
385
|
+
<enumeration value="06">
|
386
|
+
<annotation>
|
387
|
+
<documentation >Beste frogagiri bat - Otro documento probatorio</documentation>
|
388
|
+
</annotation>
|
389
|
+
</enumeration>
|
390
|
+
</restriction>
|
391
|
+
</simpleType>
|
392
|
+
</schema>
|