e-invoice-api 0.13.0 → 0.15.0

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.
@@ -428,7 +428,8 @@ module EInvoiceAPI
428
428
 
429
429
  # @!attribute multiplier_factor
430
430
  # The percentage that may be used, in conjunction with the allowance base amount,
431
- # to calculate the allowance amount. To state 20%, use value 20
431
+ # to calculate the allowance amount. To state 20%, use value 20. Must be rounded
432
+ # to maximum 2 decimals
432
433
  #
433
434
  # @return [Float, String, nil]
434
435
  optional :multiplier_factor,
@@ -442,24 +443,23 @@ module EInvoiceAPI
442
443
  optional :reason, String, nil?: true
443
444
 
444
445
  # @!attribute reason_code
445
- # The code for the allowance reason
446
+ # Allowance reason codes for invoice discounts and charges
446
447
  #
447
- # @return [String, nil]
448
- optional :reason_code, String, nil?: true
448
+ # @return [Symbol, EInvoiceAPI::Models::DocumentCreate::Allowance::ReasonCode, nil]
449
+ optional :reason_code, enum: -> { EInvoiceAPI::DocumentCreate::Allowance::ReasonCode }, nil?: true
449
450
 
450
451
  # @!attribute tax_code
451
- # Duty or tax or fee category codes (Subset of UNCL5305)
452
- #
453
- # Agency: UN/CEFACT Version: D.16B Subset: OpenPEPPOL
452
+ # The VAT category code that applies to the allowance
454
453
  #
455
454
  # @return [Symbol, EInvoiceAPI::Models::DocumentCreate::Allowance::TaxCode, nil]
456
- optional :tax_code, enum: -> { EInvoiceAPI::DocumentCreate::Allowance::TaxCode }, nil?: true
455
+ optional :tax_code, enum: -> { EInvoiceAPI::DocumentCreate::Allowance::TaxCode }
457
456
 
458
457
  # @!attribute tax_rate
459
- # The VAT rate, represented as percentage that applies to the allowance
458
+ # The VAT rate, represented as percentage that applies to the allowance. Must be
459
+ # rounded to maximum 2 decimals
460
460
  #
461
- # @return [String, nil]
462
- optional :tax_rate, String, nil?: true
461
+ # @return [Float, String, nil]
462
+ optional :tax_rate, union: -> { EInvoiceAPI::DocumentCreate::Allowance::TaxRate }, nil?: true
463
463
 
464
464
  # @!method initialize(amount: nil, base_amount: nil, multiplier_factor: nil, reason: nil, reason_code: nil, tax_code: nil, tax_rate: nil)
465
465
  # Some parameter documentations has been truncated, see
@@ -475,11 +475,11 @@ module EInvoiceAPI
475
475
  #
476
476
  # @param reason [String, nil] The reason for the allowance
477
477
  #
478
- # @param reason_code [String, nil] The code for the allowance reason
478
+ # @param reason_code [Symbol, EInvoiceAPI::Models::DocumentCreate::Allowance::ReasonCode, nil] Allowance reason codes for invoice discounts and charges
479
479
  #
480
- # @param tax_code [Symbol, EInvoiceAPI::Models::DocumentCreate::Allowance::TaxCode, nil] Duty or tax or fee category codes (Subset of UNCL5305)
480
+ # @param tax_code [Symbol, EInvoiceAPI::Models::DocumentCreate::Allowance::TaxCode] The VAT category code that applies to the allowance
481
481
  #
482
- # @param tax_rate [String, nil] The VAT rate, represented as percentage that applies to the allowance
482
+ # @param tax_rate [Float, String, nil] The VAT rate, represented as percentage that applies to the allowance. Must be r
483
483
 
484
484
  # The allowance amount, without VAT. Must be rounded to maximum 2 decimals
485
485
  #
@@ -511,7 +511,8 @@ module EInvoiceAPI
511
511
  end
512
512
 
513
513
  # The percentage that may be used, in conjunction with the allowance base amount,
514
- # to calculate the allowance amount. To state 20%, use value 20
514
+ # to calculate the allowance amount. To state 20%, use value 20. Must be rounded
515
+ # to maximum 2 decimals
515
516
  #
516
517
  # @see EInvoiceAPI::Models::DocumentCreate::Allowance#multiplier_factor
517
518
  module MultiplierFactor
@@ -525,9 +526,37 @@ module EInvoiceAPI
525
526
  # @return [Array(Float, String)]
526
527
  end
527
528
 
528
- # Duty or tax or fee category codes (Subset of UNCL5305)
529
+ # Allowance reason codes for invoice discounts and charges
529
530
  #
530
- # Agency: UN/CEFACT Version: D.16B Subset: OpenPEPPOL
531
+ # @see EInvoiceAPI::Models::DocumentCreate::Allowance#reason_code
532
+ module ReasonCode
533
+ extend EInvoiceAPI::Internal::Type::Enum
534
+
535
+ REASON_CODE_41 = :"41"
536
+ REASON_CODE_42 = :"42"
537
+ REASON_CODE_60 = :"60"
538
+ REASON_CODE_62 = :"62"
539
+ REASON_CODE_63 = :"63"
540
+ REASON_CODE_64 = :"64"
541
+ REASON_CODE_65 = :"65"
542
+ REASON_CODE_66 = :"66"
543
+ REASON_CODE_67 = :"67"
544
+ REASON_CODE_68 = :"68"
545
+ REASON_CODE_70 = :"70"
546
+ REASON_CODE_71 = :"71"
547
+ REASON_CODE_88 = :"88"
548
+ REASON_CODE_95 = :"95"
549
+ REASON_CODE_100 = :"100"
550
+ REASON_CODE_102 = :"102"
551
+ REASON_CODE_103 = :"103"
552
+ REASON_CODE_104 = :"104"
553
+ REASON_CODE_105 = :"105"
554
+
555
+ # @!method self.values
556
+ # @return [Array<Symbol>]
557
+ end
558
+
559
+ # The VAT category code that applies to the allowance
531
560
  #
532
561
  # @see EInvoiceAPI::Models::DocumentCreate::Allowance#tax_code
533
562
  module TaxCode
@@ -547,6 +576,21 @@ module EInvoiceAPI
547
576
  # @!method self.values
548
577
  # @return [Array<Symbol>]
549
578
  end
579
+
580
+ # The VAT rate, represented as percentage that applies to the allowance. Must be
581
+ # rounded to maximum 2 decimals
582
+ #
583
+ # @see EInvoiceAPI::Models::DocumentCreate::Allowance#tax_rate
584
+ module TaxRate
585
+ extend EInvoiceAPI::Internal::Type::Union
586
+
587
+ variant Float
588
+
589
+ variant String
590
+
591
+ # @!method self.variants
592
+ # @return [Array(Float, String)]
593
+ end
550
594
  end
551
595
 
552
596
  # The amount due for payment. Must be positive and rounded to maximum 2 decimals
@@ -593,10 +637,10 @@ module EInvoiceAPI
593
637
  optional :reason, String, nil?: true
594
638
 
595
639
  # @!attribute reason_code
596
- # The code for the charge reason
640
+ # Charge reason codes for invoice charges and fees
597
641
  #
598
- # @return [String, nil]
599
- optional :reason_code, String, nil?: true
642
+ # @return [Symbol, EInvoiceAPI::Models::DocumentCreate::Charge::ReasonCode, nil]
643
+ optional :reason_code, enum: -> { EInvoiceAPI::DocumentCreate::Charge::ReasonCode }, nil?: true
600
644
 
601
645
  # @!attribute tax_code
602
646
  # Duty or tax or fee category codes (Subset of UNCL5305)
@@ -609,8 +653,8 @@ module EInvoiceAPI
609
653
  # @!attribute tax_rate
610
654
  # The VAT rate, represented as percentage that applies to the charge
611
655
  #
612
- # @return [String, nil]
613
- optional :tax_rate, String, nil?: true
656
+ # @return [Float, String, nil]
657
+ optional :tax_rate, union: -> { EInvoiceAPI::DocumentCreate::Charge::TaxRate }, nil?: true
614
658
 
615
659
  # @!method initialize(amount: nil, base_amount: nil, multiplier_factor: nil, reason: nil, reason_code: nil, tax_code: nil, tax_rate: nil)
616
660
  # Some parameter documentations has been truncated, see
@@ -626,11 +670,11 @@ module EInvoiceAPI
626
670
  #
627
671
  # @param reason [String, nil] The reason for the charge
628
672
  #
629
- # @param reason_code [String, nil] The code for the charge reason
673
+ # @param reason_code [Symbol, EInvoiceAPI::Models::DocumentCreate::Charge::ReasonCode, nil] Charge reason codes for invoice charges and fees
630
674
  #
631
675
  # @param tax_code [Symbol, EInvoiceAPI::Models::DocumentCreate::Charge::TaxCode, nil] Duty or tax or fee category codes (Subset of UNCL5305)
632
676
  #
633
- # @param tax_rate [String, nil] The VAT rate, represented as percentage that applies to the charge
677
+ # @param tax_rate [Float, String, nil] The VAT rate, represented as percentage that applies to the charge
634
678
 
635
679
  # The charge amount, without VAT. Must be rounded to maximum 2 decimals
636
680
  #
@@ -676,6 +720,195 @@ module EInvoiceAPI
676
720
  # @return [Array(Float, String)]
677
721
  end
678
722
 
723
+ # Charge reason codes for invoice charges and fees
724
+ #
725
+ # @see EInvoiceAPI::Models::DocumentCreate::Charge#reason_code
726
+ module ReasonCode
727
+ extend EInvoiceAPI::Internal::Type::Enum
728
+
729
+ AA = :AA
730
+ AAA = :AAA
731
+ AAC = :AAC
732
+ AAD = :AAD
733
+ AAE = :AAE
734
+ AAF = :AAF
735
+ AAH = :AAH
736
+ AAI = :AAI
737
+ AAS = :AAS
738
+ AAT = :AAT
739
+ AAV = :AAV
740
+ AAY = :AAY
741
+ AAZ = :AAZ
742
+ ABA = :ABA
743
+ ABB = :ABB
744
+ ABC = :ABC
745
+ ABD = :ABD
746
+ ABF = :ABF
747
+ ABK = :ABK
748
+ ABL = :ABL
749
+ ABN = :ABN
750
+ ABR = :ABR
751
+ ABS = :ABS
752
+ ABT = :ABT
753
+ ABU = :ABU
754
+ ACF = :ACF
755
+ ACG = :ACG
756
+ ACH = :ACH
757
+ ACI = :ACI
758
+ ACJ = :ACJ
759
+ ACK = :ACK
760
+ ACL = :ACL
761
+ ACM = :ACM
762
+ ACS = :ACS
763
+ ADC = :ADC
764
+ ADE = :ADE
765
+ ADJ = :ADJ
766
+ ADK = :ADK
767
+ ADL = :ADL
768
+ ADM = :ADM
769
+ ADN = :ADN
770
+ ADO = :ADO
771
+ ADP = :ADP
772
+ ADQ = :ADQ
773
+ ADR = :ADR
774
+ ADT = :ADT
775
+ ADW = :ADW
776
+ ADY = :ADY
777
+ ADZ = :ADZ
778
+ AEA = :AEA
779
+ AEB = :AEB
780
+ AEC = :AEC
781
+ AED = :AED
782
+ AEF = :AEF
783
+ AEH = :AEH
784
+ AEI = :AEI
785
+ AEJ = :AEJ
786
+ AEK = :AEK
787
+ AEL = :AEL
788
+ AEM = :AEM
789
+ AEN = :AEN
790
+ AEO = :AEO
791
+ AEP = :AEP
792
+ AES = :AES
793
+ AET = :AET
794
+ AEU = :AEU
795
+ AEV = :AEV
796
+ AEW = :AEW
797
+ AEX = :AEX
798
+ AEY = :AEY
799
+ AEZ = :AEZ
800
+ AJ = :AJ
801
+ AU = :AU
802
+ CA = :CA
803
+ CAB = :CAB
804
+ CAD = :CAD
805
+ CAE = :CAE
806
+ CAF = :CAF
807
+ CAI = :CAI
808
+ CAJ = :CAJ
809
+ CAK = :CAK
810
+ CAL = :CAL
811
+ CAM = :CAM
812
+ CAN = :CAN
813
+ CAO = :CAO
814
+ CAP = :CAP
815
+ CAQ = :CAQ
816
+ CAR = :CAR
817
+ CAS = :CAS
818
+ CAT = :CAT
819
+ CAU = :CAU
820
+ CAV = :CAV
821
+ CAW = :CAW
822
+ CAX = :CAX
823
+ CAY = :CAY
824
+ CAZ = :CAZ
825
+ CD = :CD
826
+ CG = :CG
827
+ CS = :CS
828
+ CT = :CT
829
+ DAB = :DAB
830
+ DAC = :DAC
831
+ DAD = :DAD
832
+ DAF = :DAF
833
+ DAG = :DAG
834
+ DAH = :DAH
835
+ DAI = :DAI
836
+ DAJ = :DAJ
837
+ DAK = :DAK
838
+ DAL = :DAL
839
+ DAM = :DAM
840
+ DAN = :DAN
841
+ DAO = :DAO
842
+ DAP = :DAP
843
+ DAQ = :DAQ
844
+ DL = :DL
845
+ EG = :EG
846
+ EP = :EP
847
+ ER = :ER
848
+ FAA = :FAA
849
+ FAB = :FAB
850
+ FAC = :FAC
851
+ FC = :FC
852
+ FH = :FH
853
+ FI = :FI
854
+ GAA = :GAA
855
+ HAA = :HAA
856
+ HD = :HD
857
+ HH = :HH
858
+ IAA = :IAA
859
+ IAB = :IAB
860
+ ID = :ID
861
+ IF = :IF
862
+ IR = :IR
863
+ IS = :IS
864
+ KO = :KO
865
+ L1 = :L1
866
+ LA = :LA
867
+ LAA = :LAA
868
+ LAB = :LAB
869
+ LF = :LF
870
+ MAE = :MAE
871
+ MI = :MI
872
+ ML = :ML
873
+ NAA = :NAA
874
+ OA = :OA
875
+ PA = :PA
876
+ PAA = :PAA
877
+ PC = :PC
878
+ PL = :PL
879
+ PRV = :PRV
880
+ RAB = :RAB
881
+ RAC = :RAC
882
+ RAD = :RAD
883
+ RAF = :RAF
884
+ RE = :RE
885
+ RF = :RF
886
+ RH = :RH
887
+ RV = :RV
888
+ SA = :SA
889
+ SAA = :SAA
890
+ SAD = :SAD
891
+ SAE = :SAE
892
+ SAI = :SAI
893
+ SG = :SG
894
+ SH = :SH
895
+ SM = :SM
896
+ SU = :SU
897
+ TAB = :TAB
898
+ TAC = :TAC
899
+ TT = :TT
900
+ TV = :TV
901
+ V1 = :V1
902
+ V2 = :V2
903
+ WH = :WH
904
+ XAA = :XAA
905
+ YY = :YY
906
+ ZZZ = :ZZZ
907
+
908
+ # @!method self.values
909
+ # @return [Array<Symbol>]
910
+ end
911
+
679
912
  # Duty or tax or fee category codes (Subset of UNCL5305)
680
913
  #
681
914
  # Agency: UN/CEFACT Version: D.16B Subset: OpenPEPPOL
@@ -698,6 +931,20 @@ module EInvoiceAPI
698
931
  # @!method self.values
699
932
  # @return [Array<Symbol>]
700
933
  end
934
+
935
+ # The VAT rate, represented as percentage that applies to the charge
936
+ #
937
+ # @see EInvoiceAPI::Models::DocumentCreate::Charge#tax_rate
938
+ module TaxRate
939
+ extend EInvoiceAPI::Internal::Type::Union
940
+
941
+ variant Float
942
+
943
+ variant String
944
+
945
+ # @!method self.variants
946
+ # @return [Array(Float, String)]
947
+ end
701
948
  end
702
949
 
703
950
  # The total amount of the invoice including tax (invoice_total = subtotal +
@@ -725,9 +972,10 @@ module EInvoiceAPI
725
972
  nil?: true
726
973
 
727
974
  # @!attribute amount
728
- # The total amount of the line item, exclusive of VAT, after subtracting line
729
- # level allowances and adding line level charges. Must be rounded to maximum 2
730
- # decimals
975
+ # The invoice line net amount (BT-131), exclusive of VAT, inclusive of line level
976
+ # allowances and charges. Calculated as: ((unit_price / price_base_quantity) \*
977
+ # quantity) - allowances + charges. Must be rounded to maximum 2 decimals. Can be
978
+ # negative for credit notes or corrections.
731
979
  #
732
980
  # @return [Float, String, nil]
733
981
  optional :amount, union: -> { EInvoiceAPI::DocumentCreate::Item::Amount }, nil?: true
@@ -759,13 +1007,15 @@ module EInvoiceAPI
759
1007
 
760
1008
  # @!attribute quantity
761
1009
  # The quantity of items (goods or services) that is the subject of the line item.
762
- # Must be rounded to maximum 4 decimals
1010
+ # Must be rounded to maximum 4 decimals. Can be negative for credit notes or
1011
+ # corrections.
763
1012
  #
764
1013
  # @return [Float, String, nil]
765
1014
  optional :quantity, union: -> { EInvoiceAPI::DocumentCreate::Item::Quantity }, nil?: true
766
1015
 
767
1016
  # @!attribute tax
768
- # The total VAT amount for the line item. Must be rounded to maximum 2 decimals
1017
+ # The total VAT amount for the line item. Must be rounded to maximum 2 decimals.
1018
+ # Can be negative for credit notes or corrections.
769
1019
  #
770
1020
  # @return [Float, String, nil]
771
1021
  optional :tax, union: -> { EInvoiceAPI::DocumentCreate::Item::Tax }, nil?: true
@@ -773,8 +1023,8 @@ module EInvoiceAPI
773
1023
  # @!attribute tax_rate
774
1024
  # The VAT rate of the line item expressed as percentage with 2 decimals
775
1025
  #
776
- # @return [String, nil]
777
- optional :tax_rate, String, nil?: true
1026
+ # @return [Float, String, nil]
1027
+ optional :tax_rate, union: -> { EInvoiceAPI::DocumentCreate::Item::TaxRate }, nil?: true
778
1028
 
779
1029
  # @!attribute unit
780
1030
  # Unit of Measure Codes from UNECERec20 used in Peppol BIS Billing 3.0.
@@ -783,7 +1033,8 @@ module EInvoiceAPI
783
1033
  optional :unit, enum: -> { EInvoiceAPI::UnitOfMeasureCode }, nil?: true
784
1034
 
785
1035
  # @!attribute unit_price
786
- # The unit price of the line item. Must be rounded to maximum 2 decimals
1036
+ # The item net price (BT-146). The price of an item, exclusive of VAT, after
1037
+ # subtracting item price discount. Must be rounded to maximum 4 decimals
787
1038
  #
788
1039
  # @return [Float, String, nil]
789
1040
  optional :unit_price, union: -> { EInvoiceAPI::DocumentCreate::Item::UnitPrice }, nil?: true
@@ -794,7 +1045,7 @@ module EInvoiceAPI
794
1045
  #
795
1046
  # @param allowances [Array<EInvoiceAPI::Models::DocumentCreate::Item::Allowance>, nil] The allowances of the line item.
796
1047
  #
797
- # @param amount [Float, String, nil] The total amount of the line item, exclusive of VAT, after subtracting line leve
1048
+ # @param amount [Float, String, nil] The invoice line net amount (BT-131), exclusive of VAT, inclusive of line level
798
1049
  #
799
1050
  # @param charges [Array<EInvoiceAPI::Models::DocumentCreate::Item::Charge>, nil] The charges of the line item.
800
1051
  #
@@ -806,13 +1057,13 @@ module EInvoiceAPI
806
1057
  #
807
1058
  # @param quantity [Float, String, nil] The quantity of items (goods or services) that is the subject of the line item.
808
1059
  #
809
- # @param tax [Float, String, nil] The total VAT amount for the line item. Must be rounded to maximum 2 decimals
1060
+ # @param tax [Float, String, nil] The total VAT amount for the line item. Must be rounded to maximum 2 decimals. C
810
1061
  #
811
- # @param tax_rate [String, nil] The VAT rate of the line item expressed as percentage with 2 decimals
1062
+ # @param tax_rate [Float, String, nil] The VAT rate of the line item expressed as percentage with 2 decimals
812
1063
  #
813
1064
  # @param unit [Symbol, EInvoiceAPI::Models::UnitOfMeasureCode, nil] Unit of Measure Codes from UNECERec20 used in Peppol BIS Billing 3.0.
814
1065
  #
815
- # @param unit_price [Float, String, nil] The unit price of the line item. Must be rounded to maximum 2 decimals
1066
+ # @param unit_price [Float, String, nil] The item net price (BT-146). The price of an item, exclusive of VAT, after subtr
816
1067
 
817
1068
  class Allowance < EInvoiceAPI::Internal::Type::BaseModel
818
1069
  # @!attribute amount
@@ -834,7 +1085,8 @@ module EInvoiceAPI
834
1085
 
835
1086
  # @!attribute multiplier_factor
836
1087
  # The percentage that may be used, in conjunction with the allowance base amount,
837
- # to calculate the allowance amount. To state 20%, use value 20
1088
+ # to calculate the allowance amount. To state 20%, use value 20. Must be rounded
1089
+ # to maximum 2 decimals
838
1090
  #
839
1091
  # @return [Float, String, nil]
840
1092
  optional :multiplier_factor,
@@ -848,24 +1100,27 @@ module EInvoiceAPI
848
1100
  optional :reason, String, nil?: true
849
1101
 
850
1102
  # @!attribute reason_code
851
- # The code for the allowance reason
1103
+ # Allowance reason codes for invoice discounts and charges
852
1104
  #
853
- # @return [String, nil]
854
- optional :reason_code, String, nil?: true
1105
+ # @return [Symbol, EInvoiceAPI::Models::DocumentCreate::Item::Allowance::ReasonCode, nil]
1106
+ optional :reason_code,
1107
+ enum: -> {
1108
+ EInvoiceAPI::DocumentCreate::Item::Allowance::ReasonCode
1109
+ },
1110
+ nil?: true
855
1111
 
856
1112
  # @!attribute tax_code
857
- # Duty or tax or fee category codes (Subset of UNCL5305)
858
- #
859
- # Agency: UN/CEFACT Version: D.16B Subset: OpenPEPPOL
1113
+ # The VAT category code that applies to the allowance
860
1114
  #
861
1115
  # @return [Symbol, EInvoiceAPI::Models::DocumentCreate::Item::Allowance::TaxCode, nil]
862
- optional :tax_code, enum: -> { EInvoiceAPI::DocumentCreate::Item::Allowance::TaxCode }, nil?: true
1116
+ optional :tax_code, enum: -> { EInvoiceAPI::DocumentCreate::Item::Allowance::TaxCode }
863
1117
 
864
1118
  # @!attribute tax_rate
865
- # The VAT rate, represented as percentage that applies to the allowance
1119
+ # The VAT rate, represented as percentage that applies to the allowance. Must be
1120
+ # rounded to maximum 2 decimals
866
1121
  #
867
- # @return [String, nil]
868
- optional :tax_rate, String, nil?: true
1122
+ # @return [Float, String, nil]
1123
+ optional :tax_rate, union: -> { EInvoiceAPI::DocumentCreate::Item::Allowance::TaxRate }, nil?: true
869
1124
 
870
1125
  # @!method initialize(amount: nil, base_amount: nil, multiplier_factor: nil, reason: nil, reason_code: nil, tax_code: nil, tax_rate: nil)
871
1126
  # Some parameter documentations has been truncated, see
@@ -881,11 +1136,11 @@ module EInvoiceAPI
881
1136
  #
882
1137
  # @param reason [String, nil] The reason for the allowance
883
1138
  #
884
- # @param reason_code [String, nil] The code for the allowance reason
1139
+ # @param reason_code [Symbol, EInvoiceAPI::Models::DocumentCreate::Item::Allowance::ReasonCode, nil] Allowance reason codes for invoice discounts and charges
885
1140
  #
886
- # @param tax_code [Symbol, EInvoiceAPI::Models::DocumentCreate::Item::Allowance::TaxCode, nil] Duty or tax or fee category codes (Subset of UNCL5305)
1141
+ # @param tax_code [Symbol, EInvoiceAPI::Models::DocumentCreate::Item::Allowance::TaxCode] The VAT category code that applies to the allowance
887
1142
  #
888
- # @param tax_rate [String, nil] The VAT rate, represented as percentage that applies to the allowance
1143
+ # @param tax_rate [Float, String, nil] The VAT rate, represented as percentage that applies to the allowance. Must be r
889
1144
 
890
1145
  # The allowance amount, without VAT. Must be rounded to maximum 2 decimals
891
1146
  #
@@ -917,7 +1172,8 @@ module EInvoiceAPI
917
1172
  end
918
1173
 
919
1174
  # The percentage that may be used, in conjunction with the allowance base amount,
920
- # to calculate the allowance amount. To state 20%, use value 20
1175
+ # to calculate the allowance amount. To state 20%, use value 20. Must be rounded
1176
+ # to maximum 2 decimals
921
1177
  #
922
1178
  # @see EInvoiceAPI::Models::DocumentCreate::Item::Allowance#multiplier_factor
923
1179
  module MultiplierFactor
@@ -931,9 +1187,37 @@ module EInvoiceAPI
931
1187
  # @return [Array(Float, String)]
932
1188
  end
933
1189
 
934
- # Duty or tax or fee category codes (Subset of UNCL5305)
1190
+ # Allowance reason codes for invoice discounts and charges
935
1191
  #
936
- # Agency: UN/CEFACT Version: D.16B Subset: OpenPEPPOL
1192
+ # @see EInvoiceAPI::Models::DocumentCreate::Item::Allowance#reason_code
1193
+ module ReasonCode
1194
+ extend EInvoiceAPI::Internal::Type::Enum
1195
+
1196
+ REASON_CODE_41 = :"41"
1197
+ REASON_CODE_42 = :"42"
1198
+ REASON_CODE_60 = :"60"
1199
+ REASON_CODE_62 = :"62"
1200
+ REASON_CODE_63 = :"63"
1201
+ REASON_CODE_64 = :"64"
1202
+ REASON_CODE_65 = :"65"
1203
+ REASON_CODE_66 = :"66"
1204
+ REASON_CODE_67 = :"67"
1205
+ REASON_CODE_68 = :"68"
1206
+ REASON_CODE_70 = :"70"
1207
+ REASON_CODE_71 = :"71"
1208
+ REASON_CODE_88 = :"88"
1209
+ REASON_CODE_95 = :"95"
1210
+ REASON_CODE_100 = :"100"
1211
+ REASON_CODE_102 = :"102"
1212
+ REASON_CODE_103 = :"103"
1213
+ REASON_CODE_104 = :"104"
1214
+ REASON_CODE_105 = :"105"
1215
+
1216
+ # @!method self.values
1217
+ # @return [Array<Symbol>]
1218
+ end
1219
+
1220
+ # The VAT category code that applies to the allowance
937
1221
  #
938
1222
  # @see EInvoiceAPI::Models::DocumentCreate::Item::Allowance#tax_code
939
1223
  module TaxCode
@@ -953,11 +1237,27 @@ module EInvoiceAPI
953
1237
  # @!method self.values
954
1238
  # @return [Array<Symbol>]
955
1239
  end
1240
+
1241
+ # The VAT rate, represented as percentage that applies to the allowance. Must be
1242
+ # rounded to maximum 2 decimals
1243
+ #
1244
+ # @see EInvoiceAPI::Models::DocumentCreate::Item::Allowance#tax_rate
1245
+ module TaxRate
1246
+ extend EInvoiceAPI::Internal::Type::Union
1247
+
1248
+ variant Float
1249
+
1250
+ variant String
1251
+
1252
+ # @!method self.variants
1253
+ # @return [Array(Float, String)]
1254
+ end
956
1255
  end
957
1256
 
958
- # The total amount of the line item, exclusive of VAT, after subtracting line
959
- # level allowances and adding line level charges. Must be rounded to maximum 2
960
- # decimals
1257
+ # The invoice line net amount (BT-131), exclusive of VAT, inclusive of line level
1258
+ # allowances and charges. Calculated as: ((unit_price / price_base_quantity) \*
1259
+ # quantity) - allowances + charges. Must be rounded to maximum 2 decimals. Can be
1260
+ # negative for credit notes or corrections.
961
1261
  #
962
1262
  # @see EInvoiceAPI::Models::DocumentCreate::Item#amount
963
1263
  module Amount
@@ -1005,10 +1305,14 @@ module EInvoiceAPI
1005
1305
  optional :reason, String, nil?: true
1006
1306
 
1007
1307
  # @!attribute reason_code
1008
- # The code for the charge reason
1308
+ # Charge reason codes for invoice charges and fees
1009
1309
  #
1010
- # @return [String, nil]
1011
- optional :reason_code, String, nil?: true
1310
+ # @return [Symbol, EInvoiceAPI::Models::DocumentCreate::Item::Charge::ReasonCode, nil]
1311
+ optional :reason_code,
1312
+ enum: -> {
1313
+ EInvoiceAPI::DocumentCreate::Item::Charge::ReasonCode
1314
+ },
1315
+ nil?: true
1012
1316
 
1013
1317
  # @!attribute tax_code
1014
1318
  # Duty or tax or fee category codes (Subset of UNCL5305)
@@ -1021,8 +1325,8 @@ module EInvoiceAPI
1021
1325
  # @!attribute tax_rate
1022
1326
  # The VAT rate, represented as percentage that applies to the charge
1023
1327
  #
1024
- # @return [String, nil]
1025
- optional :tax_rate, String, nil?: true
1328
+ # @return [Float, String, nil]
1329
+ optional :tax_rate, union: -> { EInvoiceAPI::DocumentCreate::Item::Charge::TaxRate }, nil?: true
1026
1330
 
1027
1331
  # @!method initialize(amount: nil, base_amount: nil, multiplier_factor: nil, reason: nil, reason_code: nil, tax_code: nil, tax_rate: nil)
1028
1332
  # Some parameter documentations has been truncated, see
@@ -1038,11 +1342,11 @@ module EInvoiceAPI
1038
1342
  #
1039
1343
  # @param reason [String, nil] The reason for the charge
1040
1344
  #
1041
- # @param reason_code [String, nil] The code for the charge reason
1345
+ # @param reason_code [Symbol, EInvoiceAPI::Models::DocumentCreate::Item::Charge::ReasonCode, nil] Charge reason codes for invoice charges and fees
1042
1346
  #
1043
1347
  # @param tax_code [Symbol, EInvoiceAPI::Models::DocumentCreate::Item::Charge::TaxCode, nil] Duty or tax or fee category codes (Subset of UNCL5305)
1044
1348
  #
1045
- # @param tax_rate [String, nil] The VAT rate, represented as percentage that applies to the charge
1349
+ # @param tax_rate [Float, String, nil] The VAT rate, represented as percentage that applies to the charge
1046
1350
 
1047
1351
  # The charge amount, without VAT. Must be rounded to maximum 2 decimals
1048
1352
  #
@@ -1088,6 +1392,195 @@ module EInvoiceAPI
1088
1392
  # @return [Array(Float, String)]
1089
1393
  end
1090
1394
 
1395
+ # Charge reason codes for invoice charges and fees
1396
+ #
1397
+ # @see EInvoiceAPI::Models::DocumentCreate::Item::Charge#reason_code
1398
+ module ReasonCode
1399
+ extend EInvoiceAPI::Internal::Type::Enum
1400
+
1401
+ AA = :AA
1402
+ AAA = :AAA
1403
+ AAC = :AAC
1404
+ AAD = :AAD
1405
+ AAE = :AAE
1406
+ AAF = :AAF
1407
+ AAH = :AAH
1408
+ AAI = :AAI
1409
+ AAS = :AAS
1410
+ AAT = :AAT
1411
+ AAV = :AAV
1412
+ AAY = :AAY
1413
+ AAZ = :AAZ
1414
+ ABA = :ABA
1415
+ ABB = :ABB
1416
+ ABC = :ABC
1417
+ ABD = :ABD
1418
+ ABF = :ABF
1419
+ ABK = :ABK
1420
+ ABL = :ABL
1421
+ ABN = :ABN
1422
+ ABR = :ABR
1423
+ ABS = :ABS
1424
+ ABT = :ABT
1425
+ ABU = :ABU
1426
+ ACF = :ACF
1427
+ ACG = :ACG
1428
+ ACH = :ACH
1429
+ ACI = :ACI
1430
+ ACJ = :ACJ
1431
+ ACK = :ACK
1432
+ ACL = :ACL
1433
+ ACM = :ACM
1434
+ ACS = :ACS
1435
+ ADC = :ADC
1436
+ ADE = :ADE
1437
+ ADJ = :ADJ
1438
+ ADK = :ADK
1439
+ ADL = :ADL
1440
+ ADM = :ADM
1441
+ ADN = :ADN
1442
+ ADO = :ADO
1443
+ ADP = :ADP
1444
+ ADQ = :ADQ
1445
+ ADR = :ADR
1446
+ ADT = :ADT
1447
+ ADW = :ADW
1448
+ ADY = :ADY
1449
+ ADZ = :ADZ
1450
+ AEA = :AEA
1451
+ AEB = :AEB
1452
+ AEC = :AEC
1453
+ AED = :AED
1454
+ AEF = :AEF
1455
+ AEH = :AEH
1456
+ AEI = :AEI
1457
+ AEJ = :AEJ
1458
+ AEK = :AEK
1459
+ AEL = :AEL
1460
+ AEM = :AEM
1461
+ AEN = :AEN
1462
+ AEO = :AEO
1463
+ AEP = :AEP
1464
+ AES = :AES
1465
+ AET = :AET
1466
+ AEU = :AEU
1467
+ AEV = :AEV
1468
+ AEW = :AEW
1469
+ AEX = :AEX
1470
+ AEY = :AEY
1471
+ AEZ = :AEZ
1472
+ AJ = :AJ
1473
+ AU = :AU
1474
+ CA = :CA
1475
+ CAB = :CAB
1476
+ CAD = :CAD
1477
+ CAE = :CAE
1478
+ CAF = :CAF
1479
+ CAI = :CAI
1480
+ CAJ = :CAJ
1481
+ CAK = :CAK
1482
+ CAL = :CAL
1483
+ CAM = :CAM
1484
+ CAN = :CAN
1485
+ CAO = :CAO
1486
+ CAP = :CAP
1487
+ CAQ = :CAQ
1488
+ CAR = :CAR
1489
+ CAS = :CAS
1490
+ CAT = :CAT
1491
+ CAU = :CAU
1492
+ CAV = :CAV
1493
+ CAW = :CAW
1494
+ CAX = :CAX
1495
+ CAY = :CAY
1496
+ CAZ = :CAZ
1497
+ CD = :CD
1498
+ CG = :CG
1499
+ CS = :CS
1500
+ CT = :CT
1501
+ DAB = :DAB
1502
+ DAC = :DAC
1503
+ DAD = :DAD
1504
+ DAF = :DAF
1505
+ DAG = :DAG
1506
+ DAH = :DAH
1507
+ DAI = :DAI
1508
+ DAJ = :DAJ
1509
+ DAK = :DAK
1510
+ DAL = :DAL
1511
+ DAM = :DAM
1512
+ DAN = :DAN
1513
+ DAO = :DAO
1514
+ DAP = :DAP
1515
+ DAQ = :DAQ
1516
+ DL = :DL
1517
+ EG = :EG
1518
+ EP = :EP
1519
+ ER = :ER
1520
+ FAA = :FAA
1521
+ FAB = :FAB
1522
+ FAC = :FAC
1523
+ FC = :FC
1524
+ FH = :FH
1525
+ FI = :FI
1526
+ GAA = :GAA
1527
+ HAA = :HAA
1528
+ HD = :HD
1529
+ HH = :HH
1530
+ IAA = :IAA
1531
+ IAB = :IAB
1532
+ ID = :ID
1533
+ IF = :IF
1534
+ IR = :IR
1535
+ IS = :IS
1536
+ KO = :KO
1537
+ L1 = :L1
1538
+ LA = :LA
1539
+ LAA = :LAA
1540
+ LAB = :LAB
1541
+ LF = :LF
1542
+ MAE = :MAE
1543
+ MI = :MI
1544
+ ML = :ML
1545
+ NAA = :NAA
1546
+ OA = :OA
1547
+ PA = :PA
1548
+ PAA = :PAA
1549
+ PC = :PC
1550
+ PL = :PL
1551
+ PRV = :PRV
1552
+ RAB = :RAB
1553
+ RAC = :RAC
1554
+ RAD = :RAD
1555
+ RAF = :RAF
1556
+ RE = :RE
1557
+ RF = :RF
1558
+ RH = :RH
1559
+ RV = :RV
1560
+ SA = :SA
1561
+ SAA = :SAA
1562
+ SAD = :SAD
1563
+ SAE = :SAE
1564
+ SAI = :SAI
1565
+ SG = :SG
1566
+ SH = :SH
1567
+ SM = :SM
1568
+ SU = :SU
1569
+ TAB = :TAB
1570
+ TAC = :TAC
1571
+ TT = :TT
1572
+ TV = :TV
1573
+ V1 = :V1
1574
+ V2 = :V2
1575
+ WH = :WH
1576
+ XAA = :XAA
1577
+ YY = :YY
1578
+ ZZZ = :ZZZ
1579
+
1580
+ # @!method self.values
1581
+ # @return [Array<Symbol>]
1582
+ end
1583
+
1091
1584
  # Duty or tax or fee category codes (Subset of UNCL5305)
1092
1585
  #
1093
1586
  # Agency: UN/CEFACT Version: D.16B Subset: OpenPEPPOL
@@ -1110,10 +1603,25 @@ module EInvoiceAPI
1110
1603
  # @!method self.values
1111
1604
  # @return [Array<Symbol>]
1112
1605
  end
1606
+
1607
+ # The VAT rate, represented as percentage that applies to the charge
1608
+ #
1609
+ # @see EInvoiceAPI::Models::DocumentCreate::Item::Charge#tax_rate
1610
+ module TaxRate
1611
+ extend EInvoiceAPI::Internal::Type::Union
1612
+
1613
+ variant Float
1614
+
1615
+ variant String
1616
+
1617
+ # @!method self.variants
1618
+ # @return [Array(Float, String)]
1619
+ end
1113
1620
  end
1114
1621
 
1115
1622
  # The quantity of items (goods or services) that is the subject of the line item.
1116
- # Must be rounded to maximum 4 decimals
1623
+ # Must be rounded to maximum 4 decimals. Can be negative for credit notes or
1624
+ # corrections.
1117
1625
  #
1118
1626
  # @see EInvoiceAPI::Models::DocumentCreate::Item#quantity
1119
1627
  module Quantity
@@ -1127,7 +1635,8 @@ module EInvoiceAPI
1127
1635
  # @return [Array(Float, String)]
1128
1636
  end
1129
1637
 
1130
- # The total VAT amount for the line item. Must be rounded to maximum 2 decimals
1638
+ # The total VAT amount for the line item. Must be rounded to maximum 2 decimals.
1639
+ # Can be negative for credit notes or corrections.
1131
1640
  #
1132
1641
  # @see EInvoiceAPI::Models::DocumentCreate::Item#tax
1133
1642
  module Tax
@@ -1141,7 +1650,22 @@ module EInvoiceAPI
1141
1650
  # @return [Array(Float, String)]
1142
1651
  end
1143
1652
 
1144
- # The unit price of the line item. Must be rounded to maximum 2 decimals
1653
+ # The VAT rate of the line item expressed as percentage with 2 decimals
1654
+ #
1655
+ # @see EInvoiceAPI::Models::DocumentCreate::Item#tax_rate
1656
+ module TaxRate
1657
+ extend EInvoiceAPI::Internal::Type::Union
1658
+
1659
+ variant Float
1660
+
1661
+ variant String
1662
+
1663
+ # @!method self.variants
1664
+ # @return [Array(Float, String)]
1665
+ end
1666
+
1667
+ # The item net price (BT-146). The price of an item, exclusive of VAT, after
1668
+ # subtracting item price discount. Must be rounded to maximum 4 decimals
1145
1669
  #
1146
1670
  # @see EInvoiceAPI::Models::DocumentCreate::Item#unit_price
1147
1671
  module UnitPrice