-
Notifications
You must be signed in to change notification settings - Fork 0
/
cfd33.xsd
737 lines (736 loc) · 51.2 KB
/
cfd33.xsd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:catCFDI="http://www.sat.gob.mx/sitio_internet/cfd/catalogos" xmlns:tdCFDI="http://www.sat.gob.mx/sitio_internet/cfd/tipoDatos/tdCFDI" targetNamespace="http://www.sat.gob.mx/cfd/3" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="http://www.sat.gob.mx/sitio_internet/cfd/catalogos" schemaLocation="http://www.sat.gob.mx/sitio_internet/cfd/catalogos/catCFDI.xsd"/>
<xs:import namespace="http://www.sat.gob.mx/sitio_internet/cfd/tipoDatos/tdCFDI" schemaLocation="http://www.sat.gob.mx/sitio_internet/cfd/tipoDatos/tdCFDI/tdCFDI.xsd"/>
<xs:element name="Comprobante">
<xs:annotation>
<xs:documentation>Estándar de Comprobante Fiscal Digital por Internet.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="CfdiRelacionados" minOccurs="0">
<xs:annotation>
<xs:documentation>Nodo opcional para precisar la información de los comprobantes relacionados.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="CfdiRelacionado" minOccurs="1" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Nodo requerido para precisar la información de los comprobantes relacionados.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="UUID" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para registrar el folio fiscal (UUID) de un CFDI relacionado con el presente comprobante, por ejemplo: Si el CFDI relacionado es un comprobante de traslado que sirve para registrar el movimiento de la mercancía. Si este comprobante se usa como nota de crédito o nota de débito del comprobante relacionado. Si este comprobante es una devolución sobre el comprobante relacionado. Si éste sustituye a una factura cancelada.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="36"/>
<xs:whiteSpace value="collapse"/>
<xs:pattern value="[a-f0-9A-F]{8}-[a-f0-9A-F]{4}-[a-f0-9A-F]{4}-[a-f0-9A-F]{4}-[a-f0-9A-F]{12}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="TipoRelacion" use="required" type="catCFDI:c_TipoRelacion">
<xs:annotation>
<xs:documentation>Atributo requerido para indicar la clave de la relación que existe entre éste que se esta generando y el o los CFDI previos.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Emisor">
<xs:annotation>
<xs:documentation>Nodo requerido para expresar la información del contribuyente emisor del comprobante.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Rfc" type="tdCFDI:t_RFC" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para registrar la Clave del Registro Federal de Contribuyentes correspondiente al contribuyente emisor del comprobante.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Nombre" use="optional">
<xs:annotation>
<xs:documentation>Atributo opcional para registrar el nombre, denominación o razón social del contribuyente emisor del comprobante.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="254"/>
<xs:whiteSpace value="collapse"/>
<xs:pattern value="[^|]{1,254}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="RegimenFiscal" use="required" type="catCFDI:c_RegimenFiscal">
<xs:annotation>
<xs:documentation>Atributo requerido para incorporar la clave del régimen del contribuyente emisor al que aplicará el efecto fiscal de este comprobante.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Receptor">
<xs:annotation>
<xs:documentation>Nodo requerido para precisar la información del contribuyente receptor del comprobante.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Rfc" use="required" type="tdCFDI:t_RFC">
<xs:annotation>
<xs:documentation>Atributo requerido para precisar la Clave del Registro Federal de Contribuyentes correspondiente al contribuyente receptor del comprobante.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Nombre" use="optional">
<xs:annotation>
<xs:documentation>Atributo opcional para precisar el nombre, denominación o razón social del contribuyente receptor del comprobante.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="254"/>
<xs:whiteSpace value="collapse"/>
<xs:pattern value="[^|]{1,254}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="ResidenciaFiscal" use="optional" type="catCFDI:c_Pais">
<xs:annotation>
<xs:documentation>Atributo condicional para registrar la clave del país de residencia para efectos fiscales del receptor del comprobante, cuando se trate de un extranjero, y que es conforme con la especificación ISO 3166-1 alpha-3. Es requerido cuando se incluya el complemento de comercio exterior o se registre el atributo NumRegIdTrib.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="NumRegIdTrib" use="optional">
<xs:annotation>
<xs:documentation>Atributo condicional para expresar el número de registro de identidad fiscal del receptor cuando sea residente en el extranjero. Es requerido cuando se incluya el complemento de comercio exterior.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="40"/>
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="UsoCFDI" use="required" type="catCFDI:c_UsoCFDI">
<xs:annotation>
<xs:documentation>Atributo requerido para expresar la clave del uso que dará a esta factura el receptor del CFDI.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Conceptos">
<xs:annotation>
<xs:documentation>Nodo requerido para listar los conceptos cubiertos por el comprobante.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Concepto" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Nodo requerido para registrar la información detallada de un bien o servicio amparado en el comprobante.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Impuestos" minOccurs="0">
<xs:annotation>
<xs:documentation>Nodo opcional para capturar los impuestos aplicables al presente concepto. Cuando un concepto no registra un impuesto, implica que no es objeto del mismo.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Traslados" minOccurs="0">
<xs:annotation>
<xs:documentation>Nodo opcional para asentar los impuestos trasladados aplicables al presente concepto.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Traslado" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Nodo requerido para asentar la información detallada de un traslado de impuestos aplicable al presente concepto.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Base" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para señalar la base para el cálculo del impuesto, la determinación de la base se realiza de acuerdo con las disposiciones fiscales vigentes. No se permiten valores negativos.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="6"/>
<xs:minInclusive value="0.000001"/>
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Impuesto" use="required" type="catCFDI:c_Impuesto">
<xs:annotation>
<xs:documentation>Atributo requerido para señalar la clave del tipo de impuesto trasladado aplicable al concepto.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TipoFactor" use="required" type="catCFDI:c_TipoFactor">
<xs:annotation>
<xs:documentation>Atributo requerido para señalar la clave del tipo de factor que se aplica a la base del impuesto.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TasaOCuota" use="optional">
<xs:annotation>
<xs:documentation>Atributo condicional para señalar el valor de la tasa o cuota del impuesto que se traslada para el presente concepto. Es requerido cuando el atributo TipoFactor tenga una clave que corresponda a Tasa o Cuota.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="6"/>
<xs:minInclusive value="0.000000"/>
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Importe" use="optional" type="tdCFDI:t_Importe">
<xs:annotation>
<xs:documentation>Atributo condicional para señalar el importe del impuesto trasladado que aplica al concepto. No se permiten valores negativos. Es requerido cuando TipoFactor sea Tasa o Cuota</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Retenciones" minOccurs="0">
<xs:annotation>
<xs:documentation>Nodo opcional para asentar los impuestos retenidos aplicables al presente concepto.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Retencion" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Nodo requerido para asentar la información detallada de una retención de impuestos aplicable al presente concepto.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Base" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para señalar la base para el cálculo de la retención, la determinación de la base se realiza de acuerdo con las disposiciones fiscales vigentes. No se permiten valores negativos.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="6"/>
<xs:minInclusive value="0.000001"/>
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Impuesto" use="required" type="catCFDI:c_Impuesto">
<xs:annotation>
<xs:documentation>Atributo requerido para señalar la clave del tipo de impuesto retenido aplicable al concepto.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TipoFactor" use="required" type="catCFDI:c_TipoFactor">
<xs:annotation>
<xs:documentation>Atributo requerido para señalar la clave del tipo de factor que se aplica a la base del impuesto.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TasaOCuota" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para señalar la tasa o cuota del impuesto que se retiene para el presente concepto.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:whiteSpace value="collapse"/>
<xs:minInclusive value="0.000000"/>
<xs:fractionDigits value="6"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Importe" use="required" type="tdCFDI:t_Importe">
<xs:annotation>
<xs:documentation>Atributo requerido para señalar el importe del impuesto retenido que aplica al concepto. No se permiten valores negativos.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="InformacionAduanera" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Nodo opcional para introducir la información aduanera aplicable cuando se trate de ventas de primera mano de mercancías importadas o se trate de operaciones de comercio exterior con bienes o servicios.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="NumeroPedimento" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para expresar el número del pedimento que ampara la importación del bien que se expresa en el siguiente formato: últimos 2 dígitos del año de validación seguidos por dos espacios, 2 dígitos de la aduana de despacho seguidos por dos espacios, 4 dígitos del número de la patente seguidos por dos espacios, 1 dígito que corresponde al último dígito del año en curso, salvo que se trate de un pedimento consolidado iniciado en el año inmediato anterior o del pedimento original de una rectificación, seguido de 6 dígitos de la numeración progresiva por aduana.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="21"/>
<xs:pattern value="[0-9]{2} [0-9]{2} [0-9]{4} [0-9]{7}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="CuentaPredial" minOccurs="0">
<xs:annotation>
<xs:documentation>Nodo opcional para asentar el número de cuenta predial con el que fue registrado el inmueble, en el sistema catastral de la entidad federativa de que trate, o bien para incorporar los datos de identificación del certificado de participación inmobiliaria no amortizable.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Numero" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para precisar el número de la cuenta predial del inmueble cubierto por el presente concepto, o bien para incorporar los datos de identificación del certificado de participación inmobiliaria no amortizable, tratándose de arrendamiento.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="150"/>
<xs:whiteSpace value="collapse"/>
<xs:pattern value="[0-9]{1,150}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ComplementoConcepto" minOccurs="0">
<xs:annotation>
<xs:documentation>Nodo opcional donde se incluyen los nodos complementarios de extensión al concepto definidos por el SAT, de acuerdo con las disposiciones particulares para un sector o actividad específica.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:any maxOccurs="unbounded"></xs:any>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Parte" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Nodo opcional para expresar las partes o componentes que integran la totalidad del concepto expresado en el comprobante fiscal digital por Internet.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="InformacionAduanera" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Nodo opcional para introducir la información aduanera aplicable cuando se trate de ventas de primera mano de mercancías importadas o se trate de operaciones de comercio exterior con bienes o servicios.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="NumeroPedimento" use="required" >
<xs:annotation>
<xs:documentation>Atributo requerido para expresar el número del pedimento que ampara la importación del bien que se expresa en el siguiente formato: últimos 2 dígitos del año de validación seguidos por dos espacios, 2 dígitos de la aduana de despacho seguidos por dos espacios, 4 dígitos del número de la patente seguidos por dos espacios, 1 dígito que corresponde al último dígito del año en curso, salvo que se trate de un pedimento consolidado iniciado en el año inmediato anterior o del pedimento original de una rectificación, seguido de 6 dígitos de la numeración progresiva por aduana.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="21"/>
<xs:pattern value="[0-9]{2} [0-9]{2} [0-9]{4} [0-9]{7}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="ClaveProdServ" use="required" type="catCFDI:c_ClaveProdServ">
<xs:annotation>
<xs:documentation>Atributo requerido para expresar la clave del producto o del servicio amparado por la presente parte. Es requerido y deben utilizar las claves del catálogo de productos y servicios, cuando los conceptos que registren por sus actividades correspondan con dichos conceptos.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="NoIdentificacion" use="optional">
<xs:annotation>
<xs:documentation>Atributo opcional para expresar el número de serie, número de parte del bien o identificador del producto o del servicio amparado por la presente parte. Opcionalmente se puede utilizar claves del estándar GTIN.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="100"/>
<xs:whiteSpace value="collapse"/>
<xs:pattern value="[^|]{1,100}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Cantidad" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por la presente parte.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="6"/>
<xs:minInclusive value="0.000001"/>
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Unidad" use="optional">
<xs:annotation>
<xs:documentation>Atributo opcional para precisar la unidad de medida propia de la operación del emisor, aplicable para la cantidad expresada en la parte. La unidad debe corresponder con la descripción de la parte. </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="20"/>
<xs:whiteSpace value="collapse"/>
<xs:pattern value="[^|]{1,20}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Descripcion" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para precisar la descripción del bien o servicio cubierto por la presente parte.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="1000"/>
<xs:whiteSpace value="collapse"/>
<xs:pattern value="[^|]{1,1000}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="ValorUnitario" use="optional" type="tdCFDI:t_Importe">
<xs:annotation>
<xs:documentation>Atributo opcional para precisar el valor o precio unitario del bien o servicio cubierto por la presente parte. No se permiten valores negativos.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Importe" use="optional" type="tdCFDI:t_Importe">
<xs:annotation>
<xs:documentation>Atributo opcional para precisar el importe total de los bienes o servicios de la presente parte. Debe ser equivalente al resultado de multiplicar la cantidad por el valor unitario expresado en la parte. No se permiten valores negativos.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="ClaveProdServ" use="required" type="catCFDI:c_ClaveProdServ">
<xs:annotation>
<xs:documentation>Atributo requerido para expresar la clave del producto o del servicio amparado por el presente concepto. Es requerido y deben utilizar las claves del catálogo de productos y servicios, cuando los conceptos que registren por sus actividades correspondan con dichos conceptos.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="NoIdentificacion" use="optional">
<xs:annotation>
<xs:documentation>Atributo opcional para expresar el número de parte, identificador del producto o del servicio, la clave de producto o servicio, SKU o equivalente, propia de la operación del emisor, amparado por el presente concepto. Opcionalmente se puede utilizar claves del estándar GTIN.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:minLength value="1"/>
<xs:maxLength value="100"/>
<xs:pattern value="[^|]{1,100}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Cantidad" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por el presente concepto.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="6"/>
<xs:minInclusive value="0.000001"/>
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="ClaveUnidad" use="required" type="catCFDI:c_ClaveUnidad">
<xs:annotation>
<xs:documentation>Atributo requerido para precisar la clave de unidad de medida estandarizada aplicable para la cantidad expresada en el concepto. La unidad debe corresponder con la descripción del concepto.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Unidad" use="optional">
<xs:annotation>
<xs:documentation>Atributo opcional para precisar la unidad de medida propia de la operación del emisor, aplicable para la cantidad expresada en el concepto. La unidad debe corresponder con la descripción del concepto.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="20"/>
<xs:whiteSpace value="collapse"/>
<xs:pattern value="[^|]{1,20}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Descripcion" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para precisar la descripción del bien o servicio cubierto por el presente concepto.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="1000"/>
<xs:whiteSpace value="collapse"/>
<xs:pattern value="[^|]{1,1000}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="ValorUnitario" type="tdCFDI:t_Importe" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para precisar el valor o precio unitario del bien o servicio cubierto por el presente concepto.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Importe" type="tdCFDI:t_Importe" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para precisar el importe total de los bienes o servicios del presente concepto. Debe ser equivalente al resultado de multiplicar la cantidad por el valor unitario expresado en el concepto. No se permiten valores negativos. </xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Descuento" type="tdCFDI:t_Importe" use="optional">
<xs:annotation>
<xs:documentation>Atributo opcional para representar el importe de los descuentos aplicables al concepto. No se permiten valores negativos.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Impuestos" minOccurs="0">
<xs:annotation>
<xs:documentation>Nodo condicional para expresar el resumen de los impuestos aplicables.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Retenciones" minOccurs="0">
<xs:annotation>
<xs:documentation>Nodo condicional para capturar los impuestos retenidos aplicables. Es requerido cuando en los conceptos se registre algún impuesto retenido.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Retencion" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Nodo requerido para la información detallada de una retención de impuesto específico.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Impuesto" use="required" type="catCFDI:c_Impuesto">
<xs:annotation>
<xs:documentation>Atributo requerido para señalar la clave del tipo de impuesto retenido</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Importe" type="tdCFDI:t_Importe" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para señalar el monto del impuesto retenido. No se permiten valores negativos.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Traslados" minOccurs="0">
<xs:annotation>
<xs:documentation>Nodo condicional para capturar los impuestos trasladados aplicables. Es requerido cuando en los conceptos se registre un impuesto trasladado.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Traslado" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Nodo requerido para la información detallada de un traslado de impuesto específico.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Impuesto" use="required" type="catCFDI:c_Impuesto">
<xs:annotation>
<xs:documentation>Atributo requerido para señalar la clave del tipo de impuesto trasladado.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TipoFactor" type="catCFDI:c_TipoFactor" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para señalar la clave del tipo de factor que se aplica a la base del impuesto.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TasaOCuota" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para señalar el valor de la tasa o cuota del impuesto que se traslada por los conceptos amparados en el comprobante.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:whiteSpace value="collapse"/>
<xs:minInclusive value="0.000000"/>
<xs:fractionDigits value="6"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Importe" type="tdCFDI:t_Importe" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para señalar la suma del importe del impuesto trasladado, agrupado por impuesto, TipoFactor y TasaOCuota. No se permiten valores negativos.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="TotalImpuestosRetenidos" type="tdCFDI:t_Importe" use="optional">
<xs:annotation>
<xs:documentation>Atributo condicional para expresar el total de los impuestos retenidos que se desprenden de los conceptos expresados en el comprobante fiscal digital por Internet. No se permiten valores negativos. Es requerido cuando en los conceptos se registren impuestos retenidos</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TotalImpuestosTrasladados" type="tdCFDI:t_Importe" use="optional">
<xs:annotation>
<xs:documentation>Atributo condicional para expresar el total de los impuestos trasladados que se desprenden de los conceptos expresados en el comprobante fiscal digital por Internet. No se permiten valores negativos. Es requerido cuando en los conceptos se registren impuestos trasladados.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Complemento" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Nodo opcional donde se incluye el complemento Timbre Fiscal Digital de manera obligatoria y los nodos complementarios determinados por el SAT, de acuerdo con las disposiciones particulares para un sector o actividad específica.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Addenda" minOccurs="0">
<xs:annotation>
<xs:documentation>Nodo opcional para recibir las extensiones al presente formato que sean de utilidad al contribuyente. Para las reglas de uso del mismo, referirse al formato origen.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:any maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Version" use="required" fixed="3.3">
<xs:annotation>
<xs:documentation>Atributo requerido con valor prefijado a 3.3 que indica la versión del estándar bajo el que se encuentra expresado el comprobante.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Serie" use="optional">
<xs:annotation>
<xs:documentation>Atributo opcional para precisar la serie para control interno del contribuyente. Este atributo acepta una cadena de caracteres.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="25"/>
<xs:whiteSpace value="collapse"/>
<xs:pattern value="[^|]{1,25}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Folio" use="optional">
<xs:annotation>
<xs:documentation>Atributo opcional para control interno del contribuyente que expresa el folio del comprobante, acepta una cadena de caracteres.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="40"/>
<xs:whiteSpace value="collapse"/>
<xs:pattern value="[^|]{1,40}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Fecha" use="required" type="tdCFDI:t_FechaH">
<xs:annotation>
<xs:documentation>Atributo requerido para la expresión de la fecha y hora de expedición del Comprobante Fiscal Digital por Internet. Se expresa en la forma AAAA-MM-DDThh:mm:ss y debe corresponder con la hora local donde se expide el comprobante.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Sello" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para contener el sello digital del comprobante fiscal, al que hacen referencia las reglas de resolución miscelánea vigente. El sello debe ser expresado como una cadena de texto en formato Base 64.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="FormaPago" use="optional" type="catCFDI:c_FormaPago">
<xs:annotation>
<xs:documentation>Atributo condicional para expresar la clave de la forma de pago de los bienes o servicios amparados por el comprobante. Si no se conoce la forma de pago este atributo se debe omitir.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="NoCertificado" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para expresar el número de serie del certificado de sello digital que ampara al comprobante, de acuerdo con el acuse correspondiente a 20 posiciones otorgado por el sistema del SAT.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="20"/>
<xs:whiteSpace value="collapse"/>
<xs:pattern value="[0-9]{20}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Certificado" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido que sirve para incorporar el certificado de sello digital que ampara al comprobante, como texto en formato base 64.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="CondicionesDePago" use="optional">
<xs:annotation>
<xs:documentation>Atributo condicional para expresar las condiciones comerciales aplicables para el pago del comprobante fiscal digital por Internet. Este atributo puede ser condicionado mediante atributos o complementos.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:minLength value="1"/>
<xs:maxLength value="1000"/>
<xs:pattern value="[^|]{1,1000}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="SubTotal" type="tdCFDI:t_Importe" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para representar la suma de los importes de los conceptos antes de descuentos e impuesto. No se permiten valores negativos.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Descuento" type="tdCFDI:t_Importe" use="optional">
<xs:annotation>
<xs:documentation>Atributo condicional para representar el importe total de los descuentos aplicables antes de impuestos. No se permiten valores negativos. Se debe registrar cuando existan conceptos con descuento.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Moneda" type="catCFDI:c_Moneda" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para identificar la clave de la moneda utilizada para expresar los montos, cuando se usa moneda nacional se registra MXN. Conforme con la especificación ISO 4217.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TipoCambio" use="optional">
<xs:annotation>
<xs:documentation>Atributo condicional para representar el tipo de cambio conforme con la moneda usada. Es requerido cuando la clave de moneda es distinta de MXN y de XXX. El valor debe reflejar el número de pesos mexicanos que equivalen a una unidad de la divisa señalada en el atributo moneda. Si el valor está fuera del porcentaje aplicable a la moneda tomado del catálogo c_Moneda, el emisor debe obtener del PAC que vaya a timbrar el CFDI, de manera no automática, una clave de confirmación para ratificar que el valor es correcto e integrar dicha clave en el atributo Confirmacion.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="6"/>
<xs:minInclusive value="0.000001"/>
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Total" type="tdCFDI:t_Importe" use="required">
<xs:annotation>
<xs:documentation>Atributo requerido para representar la suma del subtotal, menos los descuentos aplicables, más las contribuciones recibidas (impuestos trasladados - federales o locales, derechos, productos, aprovechamientos, aportaciones de seguridad social, contribuciones de mejoras) menos los impuestos retenidos. Si el valor es superior al límite que establezca el SAT en la Resolución Miscelánea Fiscal vigente, el emisor debe obtener del PAC que vaya a timbrar el CFDI, de manera no automática, una clave de confirmación para ratificar que el valor es correcto e integrar dicha clave en el atributo Confirmacion. No se permiten valores negativos.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TipoDeComprobante" use="required" type="catCFDI:c_TipoDeComprobante">
<xs:annotation>
<xs:documentation>Atributo requerido para expresar la clave del efecto del comprobante fiscal para el contribuyente emisor.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="MetodoPago" use="optional" type="catCFDI:c_MetodoPago">
<xs:annotation>
<xs:documentation>Atributo condicional para precisar la clave del método de pago que aplica para este comprobante fiscal digital por Internet, conforme al Artículo 29-A fracción VII incisos a y b del CFF.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LugarExpedicion" use="required" type="catCFDI:c_CodigoPostal">
<xs:annotation>
<xs:documentation>Atributo requerido para incorporar el código postal del lugar de expedición del comprobante (domicilio de la matriz o de la sucursal).</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Confirmacion" use="optional">
<xs:annotation>
<xs:documentation>Atributo condicional para registrar la clave de confirmación que entregue el PAC para expedir el comprobante con importes grandes, con un tipo de cambio fuera del rango establecido o con ambos casos. Es requerido cuando se registra un tipo de cambio o un total fuera del rango establecido.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
<xs:length value="5"/>
<xs:pattern value="[0-9a-zA-Z]{5}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>