Search Posts

Visits: 377

不正なデジタルインボイスの例を文末に追加しました。

課税分類毎の課税基準額(ibt-116)検算ルール未提供

BIS Billing 3.0のEN16931 model bound to UBLのスキーマトロンのルールで提供されている次のルールが、JP PINT 0.9では、提供されていません。

これは、税内訳情報(BG-23)の課税分類毎の課税基準額(ibt-116)を求めた結果がデジタルインボイスに記載されている関連するデータ項目から検算した結果と合っているかを検証するものです。後述するように、税率をかけて求めた金額が定められた計算方法で丸められているか検証するルールは、提供されていますが、税率をかける対象となる金額がデジタルインボイスに記載されている関連するデータ項目から検算した結果と合っているかを検証するルールが提供されないと、デジタルインボイスを受け取った買い手側の経理担当者は、一つ一つ自分で検算せざるを得なくなるため、従来の人手による作業と同様の作業負荷が残るだけでなく、後続するコンピュータ処理に自動的に連携させるデジタライぜーションも実現できないため、導入効果が大幅に削がれてしまいます。

BR-S-08
For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is “Standard rated”, the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal
the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92)
where the VAT category code (BT-151, BT-102, BT-95) is “Standard rated” and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).

訳:課税分類コード(ibt-118)が「標準税率」である課税分類毎の消費税率(ibt-119)の異なる値ごとに、税内訳情報(BG-23)の課税分類毎の課税基準額(ibt-116)は次の計算値と等しい。
値引き御請求書明細行金額(税抜き)(ibt-131)の合計と請求書レベルの追加請求金額(税抜き)の合計(ibt-99)から請求書レベルの返金金額の合計(ibt-92)を差し引いたもの。
このとき、課税分類コード(ibt-151、ibt-102、ibt-95)は「標準税率」であり、課税分類毎の消費税率(ibt-152、ibt-103、ibt-96)は課税分類毎の消費税率(ibt-119)と同じ。
注:ENでは、「標準税率」の中に通常税率と軽減税率を含むので課税分類コード(ibt-118)「標準税率」に複数の税率がある。

4.3.1. 消費税の金額計算

このルールは、JP PINT 0.9.1の次の箇所で規定されている計算式の前半に該当します。

4.3.1. Calculation of Consumption Tax 
Tax breakdown (ibg-23) shall be provided for each distict combination of Tax category code and Tax rate. For each distinct combination of CT category code and CT rate the calculations are:

CT category taxable amount (IBT-116)=
 ∑(Invoice line net amounts (IBT-131))+
 Document level charge amount (IBT-99)−
 Document level allowance amount (IBT-92)

CT category tax amount (IBT-117)=
 CT category taxable amount (IBT-116)×
 (CT rate (IBT-119)÷100)

Tax category tax amount (ibt-117) shall be 0 (zero), if Tax category code (ibt-118) equals to “E” (Exempt from Tax), “G” (Free export item, no tax charge), or “O” (Outside of scope of tax).

Tax category tax amount (ibt-117) must be rounded to integer and the rounded result amount shall be between the floor and the ceiling.

消費税の金額計算の検算ルール

後半の課税基準額に消費税率をかけて求めた金額を丸める金額計算の検算では、次のルールが提供されています。
aligned-ibrp-051-jp(fatal)
[aligned-ibrp-051-jp]-Tax category tax amount (ibt-117) = tax category taxable amount (ibt-116) x (tax category rate (ibt-119) / 100), rounded to integer. The rounded result amount shall be between the floor and the ceiling..
Context
cac:TaxSubtotal
Test
(
round(
cac:TaxCategory/xs:decimal(cbc:Percent)) != 0 and
(
xs:decimal(cbc:TaxAmount) >= floor(xs:decimal(cbc:TaxableAmount) * (cac:TaxCategory/xs:decimal(cbc:Percent) div 100))) and
(
xs:decimal(cbc:TaxAmount) <= ceiling(xs:decimal(cbc:TaxableAmount) * (cac:TaxCategory/xs:decimal(cbc:Percent) div 100)) ) )

消費税の金額計算の検算ルール

BR-S-08では、デジタルインボイスに記載されている課税分類毎の課税基準額(ibt-116)がそれぞれの税率毎にインボイスレベルの追加請求や返金金額も反映した合計金額とプラス・マイナス 1の範囲内に収まっているかを確認しています。同様のルールは、先行導入されたシンガポールやオーストラリア・ニュージーランドでも提供されています。

Context
  /*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID)='S'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
Test
every $rate in xs:decimal(cbc:Percent) satisfies (
  (
    (
      exists(//cac:InvoiceLine[cac:Item/cac:ClassifiedTaxCategory/normalize-space(cbc:ID)='S'][cac:Item/cac:ClassifiedTaxCategory/xs:decimal(cbc:Percent)=$rate]) or 
      exists(//cac:AllowanceCharge[cac:TaxCategory/normalize-space(cbc:ID)='S'][cac:TaxCategory/xs:decimal(cbc:Percent)= $rate])
    ) and 
    (
      (
        ../xs:decimal(cbc:TaxableAmount - 1) < 
        (
          sum(../../../cac:InvoiceLine[cac:Item/cac:ClassifiedTaxCategory/normalize-space(cbc:ID)='S'][cac:Item/cac:ClassifiedTaxCategory/xs:decimal(cbc:Percent)=$rate]/xs:decimal(cbc:LineExtensionAmount)) +
          sum(../../../cac:AllowanceCharge[cbc:ChargeIndicator=true()][cac:TaxCategory/normalize-space(cbc:ID)='S'][cac:TaxCategory/xs:decimal(cbc:Percent)=$rate]/xs:decimal(cbc:Amount)) - 
          sum(../../../cac:AllowanceCharge[cbc:ChargeIndicator=false()][cac:TaxCategory/normalize-space(cbc:ID)='S'][cac:TaxCategory/xs:decimal(cbc:Percent)=$rate]/xs:decimal(cbc:Amount))
        )
      ) and 
      (
        ../xs:decimal(cbc:TaxableAmount + 1) > 
        (
          sum(../../../cac:InvoiceLine[cac:Item/cac:ClassifiedTaxCategory/normalize-space(cbc:ID)='S'][cac:Item/cac:ClassifiedTaxCategory/xs:decimal(cbc:Percent)=$rate]/xs:decimal(cbc:LineExtensionAmount)) + 
          sum(../../../cac:AllowanceCharge[cbc:ChargeIndicator=true()][cac:TaxCategory/normalize-space(cbc:ID)='S'][cac:TaxCategory/xs:decimal(cbc:Percent)=$rate]/xs:decimal(cbc:Amount)) - 
          sum(../../../cac:AllowanceCharge[cbc:ChargeIndicator=false()][cac:TaxCategory/normalize-space(cbc:ID)='S'][cac:TaxCategory/xs:decimal(cbc:Percent)=$rate]/xs:decimal(cbc:Amount))
        )
      )
    )
  ) or 
  (
    exists(//cac:CreditNoteLine[cac:Item/cac:ClassifiedTaxCategory/normalize-space(cbc:ID)='S'][cac:Item/cac:ClassifiedTaxCategory/xs:decimal(cbc:Percent)=$rate]) or 
    exists(//cac:AllowanceCharge[cac:TaxCategory/normalize-space(cbc:ID)='S'][cac:TaxCategory/xs:decimal(cbc:Percent)=$rate])
  ) and 
  (
    (
      ../xs:decimal(cbc:TaxableAmount - 1) < 
      (
        sum(../../../cac:CreditNoteLine[cac:Item/cac:ClassifiedTaxCategory/normalize-space(cbc:ID)='S'][cac:Item/cac:ClassifiedTaxCategory/xs:decimal(cbc:Percent)=$rate]/xs:decimal(cbc:LineExtensionAmount)) + 
        sum(../../../cac:AllowanceCharge[cbc:ChargeIndicator=true()][cac:TaxCategory/normalize-space(cbc:ID)='S'][cac:TaxCategory/xs:decimal(cbc:Percent)=$rate]/xs:decimal(cbc:Amount)) - 
        sum(../../../cac:AllowanceCharge[cbc:ChargeIndicator=false()][cac:TaxCategory/normalize-space(cbc:ID)='S'][cac:TaxCategory/xs:decimal(cbc:Percent)=$rate]/xs:decimal(cbc:Amount))
      )
    ) and 
    (
      ../xs:decimal(cbc:TaxableAmount + 1) > 
      (
        sum(../../../cac:CreditNoteLine[cac:Item/cac:ClassifiedTaxCategory/normalize-space(cbc:ID)='S'][cac:Item/cac:ClassifiedTaxCategory/xs:decimal(cbc:Percent)=$rate]/xs:decimal(cbc:LineExtensionAmount)) + 
        sum(../../../cac:AllowanceCharge[cbc:ChargeIndicator=true()][cac:TaxCategory/normalize-space(cbc:ID)='S'][cac:TaxCategory/xs:decimal(cbc:Percent)=$rate]/xs:decimal(cbc:Amount)) - 
        sum(../../../cac:AllowanceCharge[cbc:ChargeIndicator=false()][cac:TaxCategory/normalize-space(cbc:ID)='S'][cac:TaxCategory/xs:decimal(cbc:Percent)=$rate]/xs:decimal(cbc:Amount))
      )
    )
  )
)

日本でも同様のルールが提供されることで、ホームページに記載された仕様どうりに計算されていることが保証できるので買い手の業務のデジタライゼーションが実現できます。

次のデジタルインボイスは、明細行の金額と課税分類毎の課税基準額が不一致ですが、公開中のスキーマトロンではエラーとなりません。

<?xml version="1.0" encoding="UTF-8"?>
<!-- 
    4.4 Calculations of consumption tax
-->
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
    xmlns:ccts="urn:un:unece:uncefact:documentation:2"
    xmlns:udt="urn:oasis:names:specification:ubl:schema:xsd:UnqualifiedDataTypes-2"
    xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDataTypes-2"
    xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
    xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 
    http://docs.oasis-open.org/ubl/os-UBL-2.1/xsd/maindoc/UBL-Invoice-2.1.xsd">
    <cbc:CustomizationID>urn:fdc:peppol:jp:billing:3.0</cbc:CustomizationID>
    <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
    <cbc:ID>12345678</cbc:ID>
    <cbc:IssueDate>2023-12-01</cbc:IssueDate>
    <cbc:DueDate>2024-01-31</cbc:DueDate>
    <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
    <cbc:DocumentCurrencyCode>JPY</cbc:DocumentCurrencyCode>
    <cbc:BuyerReference>abc−123</cbc:BuyerReference>
    <cac:InvoicePeriod>
        <cbc:StartDate>2023-11-01</cbc:StartDate>
        <cbc:EndDate>2023-11-30</cbc:EndDate>
        <cbc:DescriptionCode>3</cbc:DescriptionCode>
    </cac:InvoicePeriod>
    <cac:OrderReference>
        <cbc:ID>AA-123-BB</cbc:ID>
    </cac:OrderReference>
    <cac:AccountingSupplierParty>
        <cac:Party>
            <cbc:EndpointID schemeID="0188">JP8700110005901</cbc:EndpointID>
            <cac:PartyName>
                <cbc:Name>株式会社〇〇商事</cbc:Name>
            </cac:PartyName>
            <cac:PostalAddress>
                <cbc:StreetName>四谷4-29-X</cbc:StreetName>
                <cbc:AdditionalStreetName>〇〇商事ビル</cbc:AdditionalStreetName>
                <cbc:CityName>新宿区</cbc:CityName>
                <cbc:PostalZone>160−00xx</cbc:PostalZone>
                <cbc:CountrySubentity>東京都</cbc:CountrySubentity>
                <cac:Country>
                    <cbc:IdentificationCode>JP</cbc:IdentificationCode>
                </cac:Country>
            </cac:PostalAddress>
            <cac:PartyTaxScheme>
                <cbc:CompanyID>T8700110005901</cbc:CompanyID>
                <cac:TaxScheme>
                    <cbc:ID>VAT</cbc:ID>
                </cac:TaxScheme>
            </cac:PartyTaxScheme>
            <cac:PartyLegalEntity>
                <cbc:RegistrationName>株式会社〇〇商事</cbc:RegistrationName>
                <cbc:CompanyID>8700110005901</cbc:CompanyID>
            </cac:PartyLegalEntity>
            <cac:Contact>
                <cbc:Name>法人営業2課</cbc:Name>
                <cbc:Telephone>03-3xxx-1234</cbc:Telephone>
                <cbc:ElectronicMail>houjineigyou2@〇〇.co.jp</cbc:ElectronicMail>
            </cac:Contact>
        </cac:Party>
    </cac:AccountingSupplierParty>
    <cac:AccountingCustomerParty>
        <cac:Party>
            <cbc:EndpointID schemeID="0188">JP7700110005900</cbc:EndpointID>
            <cac:PartyIdentification>
                <cbc:ID>789KH512</cbc:ID>
            </cac:PartyIdentification>
            <cac:PostalAddress>
                <cbc:StreetName>北十二条西XX-X</cbc:StreetName>
                <cbc:CityName>札幌市</cbc:CityName>
                <cbc:PostalZone>001−00xx</cbc:PostalZone>
                <cbc:CountrySubentity>北海道</cbc:CountrySubentity>
                <cac:Country>
                    <cbc:IdentificationCode>JP</cbc:IdentificationCode>
                </cac:Country>
            </cac:PostalAddress>
            <cac:PartyLegalEntity>
                <cbc:RegistrationName>株式会社△山物産</cbc:RegistrationName>
                <cbc:CompanyID schemeID="0147">654321:321:247:1</cbc:CompanyID>
            </cac:PartyLegalEntity>
            <cac:Contact>
                <cbc:Name>株式会社△山物産札幌支社</cbc:Name>
                <cbc:ElectronicMail>purchaser@△yamabussan.co.jp</cbc:ElectronicMail>
            </cac:Contact>
        </cac:Party>
    </cac:AccountingCustomerParty>
    <cac:Delivery>
        <cbc:ActualDeliveryDate>2023-11-04</cbc:ActualDeliveryDate>
        <cac:DeliveryLocation>
            <cac:Address>
                <cbc:StreetName>北十二条西XX-X</cbc:StreetName>
                <cbc:AdditionalStreetName>札幌第3倉庫</cbc:AdditionalStreetName>
                <cbc:CityName>札幌市</cbc:CityName>
                <cbc:PostalZone>001−00xx</cbc:PostalZone>
                <cbc:CountrySubentity>北海道</cbc:CountrySubentity>
                <cac:Country>
                    <cbc:IdentificationCode>JP</cbc:IdentificationCode>
                </cac:Country>
            </cac:Address>
        </cac:DeliveryLocation>
        <cac:DeliveryParty>
            <cac:PartyName>
                <cbc:Name>株式会社△山物産札幌支社</cbc:Name>
            </cac:PartyName>
        </cac:DeliveryParty>
    </cac:Delivery>
    <cac:PaymentMeans>
        <cbc:PaymentMeansCode name="Credit transfer">3</cbc:PaymentMeansCode>
        <cbc:PaymentID>Snippet1</cbc:PaymentID>
        <cac:PayeeFinancialAccount>
            <cbc:ID>1234121123456780</cbc:ID>
            <cbc:Name>カ)マルマルショウジ</cbc:Name>
        </cac:PayeeFinancialAccount>
    </cac:PaymentMeans>
    <cac:AllowanceCharge>
        <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
        <cbc:AllowanceChargeReason>諸掛</cbc:AllowanceChargeReason>
        <cbc:Amount currencyID="JPY">200</cbc:Amount>
        <cac:TaxCategory>
            <cbc:ID>S</cbc:ID>
            <cbc:Percent>10</cbc:Percent>
            <cac:TaxScheme>
                <cbc:ID>VAT</cbc:ID>
            </cac:TaxScheme>
        </cac:TaxCategory>
    </cac:AllowanceCharge>
    <cac:AllowanceCharge>
        <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
        <cbc:AllowanceChargeReason>割引</cbc:AllowanceChargeReason>
        <cbc:Amount currencyID="JPY">300</cbc:Amount>
        <cac:TaxCategory>
            <cbc:ID>S</cbc:ID>
            <cbc:Percent>10</cbc:Percent>
            <cac:TaxScheme>
                <cbc:ID>VAT</cbc:ID>
            </cac:TaxScheme>
        </cac:TaxCategory>
    </cac:AllowanceCharge>
    <cac:TaxTotal>
        <cbc:TaxAmount currencyID="JPY">40</cbc:TaxAmount>
        <cac:TaxSubtotal>
            <cbc:TaxableAmount currencyID="JPY">400</cbc:TaxableAmount>
            <cbc:TaxAmount currencyID="JPY">40</cbc:TaxAmount>
            <cac:TaxCategory>
                <cbc:ID>S</cbc:ID>
                <cbc:Percent>10</cbc:Percent>
                <cac:TaxScheme>
                    <cbc:ID>VAT</cbc:ID>
                </cac:TaxScheme>
            </cac:TaxCategory>
        </cac:TaxSubtotal>
    </cac:TaxTotal>
    <cac:LegalMonetaryTotal>
        <cbc:LineExtensionAmount currencyID="JPY">4000</cbc:LineExtensionAmount>
        <cbc:TaxExclusiveAmount currencyID="JPY">3900</cbc:TaxExclusiveAmount>
        <cbc:TaxInclusiveAmount currencyID="JPY">3940</cbc:TaxInclusiveAmount>
        <cbc:AllowanceTotalAmount currencyID="JPY">300</cbc:AllowanceTotalAmount>
        <cbc:ChargeTotalAmount currencyID="JPY">200</cbc:ChargeTotalAmount>
        <cbc:PayableAmount currencyID="JPY">3940</cbc:PayableAmount>
    </cac:LegalMonetaryTotal>
    <cac:InvoiceLine>
        <cbc:ID>1</cbc:ID>
        <cbc:Note>ABC1234</cbc:Note>
        <cbc:InvoicedQuantity unitCode="XST">5000</cbc:InvoicedQuantity>
        <cbc:LineExtensionAmount currencyID="JPY">4000</cbc:LineExtensionAmount>
        <cac:OrderLineReference>
            <cbc:LineID>2023-POU-8745#001</cbc:LineID>
            <cac:OrderReference>
                <cbc:ID>2023-POU-8745</cbc:ID>
            </cac:OrderReference>
        </cac:OrderLineReference>
        <cac:Item>
            <cbc:Name>原稿用紙(A4)</cbc:Name>
            <cac:ClassifiedTaxCategory>
                <cbc:ID>S</cbc:ID>
                <cbc:Percent>10</cbc:Percent>
                <cac:TaxScheme>
                    <cbc:ID>VAT</cbc:ID>
                </cac:TaxScheme>
            </cac:ClassifiedTaxCategory>
            <cac:AdditionalItemProperty>
                <cbc:Name>数量単位</cbc:Name>
                <cbc:Value>枚</cbc:Value>
            </cac:AdditionalItemProperty>
        </cac:Item>
        <cac:Price>
            <cbc:PriceAmount currencyID="JPY">800</cbc:PriceAmount>
            <cbc:BaseQuantity unitCode="XST">1000</cbc:BaseQuantity>
        </cac:Price>
    </cac:InvoiceLine>
</Invoice>