Search Posts

Visits: 30

Nobuyuki SAMBUICHI
ISO/TC295 Audit data services/SG1 Semantic model Convener

1. JP PINT Japanese jurisdiction specific PINT rules

問59 【答】
 適格請求書発行事業者には、課税事業者に対して売上げに係る対価の返還等を行う場合、適格返還請求書を交付する義務が課されており、適格返還請求書には、「売上げに係る対価の返還等の基となった課税資産の譲渡等を行った年月日」を記載することとされています(新消法 57の4③)。

— 国税庁軽減税率・インボイス制度対応室
消費税の仕入税額控除制度における適格請求書等保存方式に関するQ&A 令和5年4月改訂

C2は電子請求書の「課税資産の譲渡等を行った年月日」について特定のルールで検証を行っています。

ALIGNED-IBRP-052

[aligned-ibrp-052]-An Invoice MUST have an invoice period (ibg-14) or an Invoice line period (ibg-26).

About
ID aligned-ibrp-052
Flag fatal
Context /ubl:Invoice | /cn:CreditNote
Test exists(//cac:InvoicePeriod)

— Peppol Specifications for Japan implementation of PINT
Japanese jurisdiction specific PINT rules
Schematron [1] PINT-jurisdiction-aligned-rules.sch
<rule context="/ubl:Invoice | /cn:CreditNote">
  <assert id="aligned-ibrp-052" flag="fatal" test="exists(//cac:InvoicePeriod)">
    [aligned-ibrp-052]-An Invoice MUST have an invoice period (ibg-14) or an Invoice line period (ibg-26).
  </assert>
</rule>

この情報は以下のいずれかの方法で提供される必要があります:

  1. 文書全体で「課税資産の譲渡等を行った年月日」が明示されている。

  2. 各明細行で「課税資産の譲渡等を行った年月日」が記載されている。

このルールに基づくと、文書全体に「課税資産の譲渡等を行った年月日」が記載されていない場合でも、一つ以上の明細行にその情報が存在すると、他の明細行で年月日が記載されていなくてもエラーは検出されません。

一般的な直感や期待とは異なり、このルールは比較的寛容です。多くの場合、文書全体に年月日が記載されていないと、各明細行でその情報が求められると考えられます。しかし、この特定の検証ルールでは、少なくとも一つの明細行に年月日が記載されていれば、それで十分とされています。

XML SpyでXPathを確認するとその実行結果は、正常(true)となります。

Picture1

コードが「文書全体についての年月日の記載がないときに明細行に年月日の記載がないものがあってもエラーが報告されない」状況を許容するようになっていますのでその挙動は文書やデータの整合性に問題を引き起こす可能性があります。

2. 訂正案

訂正案では、新しいルールは以下のようになります:

C2は電子請求書の「課税資産の譲渡等を行った年月日」について特定のルールで検証を行います。
この訂正により、以下の条件が必要とされます:

  1. 文書全体で「課税資産の譲渡等を行った年月日」が明示されている。

  2. または、全ての明細行に「課税資産の譲渡等を行った年月日」が記載されている。

具体的には、明細行の件数と年月日が記載された明細行の件数が等しくなければなりません。
これにより、各明細行に年月日が一貫して記載されていることが確認されます。

この訂正により、以前のルールで存在していた曖昧さや一般的な期待との不一致が解消され、より明確な検証が可能になります。

<rule context="/ubl:Invoice | /cn:CreditNote">
  <assert id="aligned-ibrp-052E" flag="fatal" test="
    exists(cac:InvoicePeriod) or
    count(cac:InvoiceLine)=count(cac:InvoiceLine/cac:InvoicePeriod)">
    [aligned-ibrp-052E]-An Invoice MUST have an invoice period (ibg-14) or an Invoice line period (ibg-26).
  </assert>
</rule>

XML SpyでXPathを確認するとその実行結果は、エラー(false)となります。

Picture2

これをOxygen XML Editor[2]で検証することで、特定のXML文書(この場合、Open Peppolの規格に基づいた文書)が満たすべき条件に適合しているかどうかを検証することができます。

Picture3

3. テスト用データ

デジ庁からリンクされているJP PINTのページにあるダウンロードボタンでダウンロードしたzipファイルを解凍するとサンプルがいくつか提供されています。そのうちの一つを修正しテスト用に使用しました。

<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
	xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
	xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
	xmlns:ccts="urn:un:unece:uncefact:documentation:2"
	xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
	xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2"
	xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

	<!-- 
Japan common commercial invoice, example1-minimum
-->

	<cbc:UBLVersionID>2.1</cbc:UBLVersionID>
	<cbc:CustomizationID>urn:fdc:peppol:jp:billing:3.0</cbc:CustomizationID>	<!-- IBT-024 - Specification identifier -->
	<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>	<!-- IBT-023 - Business process type -->
	<cbc:ID>156</cbc:ID>	<!-- IBT-001 - Invoice number -->
	<cbc:IssueDate>2023-10-24</cbc:IssueDate>	<!-- IBT-002 - Invoice issue date -->
	<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>	<!-- IBT-003 - Invoice type code -->
	<cbc:DocumentCurrencyCode>JPY</cbc:DocumentCurrencyCode>	<!-- IBT-005 - Invoice currency code -->
	<!--<cac:InvoicePeriod>		--><!-- IBG-14 - INVOICING PERIOD --><!--
		<cbc:StartDate>2023-10-18</cbc:StartDate>		--><!-- IBT-073 - Invoicing period start date --><!--
		<cbc:EndDate>2023-10-18</cbc:EndDate>		--><!-- IBT-074 - Invoicing period end date --><!--
	</cac:InvoicePeriod>-->
	<cac:AccountingSupplierParty>		<!-- IBG-04 - SELLER -->
		<cac:Party>
			<cbc:EndpointID schemeID="0188">1234567890123</cbc:EndpointID>			<!-- IBT-034 - Seller electronic address, IBT-034-1 - Scheme identifier -->
			<cac:PostalAddress>				<!-- IBG-05 - SELLER POSTAL ADDRESS -->
				<cac:Country>
					<cbc:IdentificationCode>JP</cbc:IdentificationCode>					<!-- IBT-040 - Seller country code -->
				</cac:Country>
			</cac:PostalAddress>
			<cac:PartyTaxScheme>
				<cbc:CompanyID>T1234567890123</cbc:CompanyID>				<!-- IBT-031 - Seller TAX identifier -->
				<cac:TaxScheme>
					<cbc:ID>VAT</cbc:ID>					<!-- IBT-031, qualifier -->
				</cac:TaxScheme>
			</cac:PartyTaxScheme>
			<cac:PartyLegalEntity>
				<cbc:RegistrationName>株式会社 〇〇商事</cbc:RegistrationName>				<!-- IBT-027 - Seller name -->
			</cac:PartyLegalEntity>
		</cac:Party>
	</cac:AccountingSupplierParty>
	<cac:AccountingCustomerParty>		<!-- IBG-07 - BUYER -->
		<cac:Party>
			<cbc:EndpointID schemeID="0188">3210987654321</cbc:EndpointID>			<!-- IBT-049 - Buyer electronic address, IBT-049-1 - Scheme identifier -->
			<cac:PostalAddress>				<!-- IBG-08 - BUYER POSTAL ADDRESS -->
				<cac:Country>
					<cbc:IdentificationCode>JP</cbc:IdentificationCode>					<!-- IBT-055 - Buyer country code -->
				</cac:Country>
			</cac:PostalAddress>
			<cac:PartyLegalEntity>
				<cbc:RegistrationName>株式会社 〇〇物産</cbc:RegistrationName>				<!-- IBT-044 - Buyer name -->
			</cac:PartyLegalEntity>
		</cac:Party>
	</cac:AccountingCustomerParty>
	<cac:TaxTotal>
		<cbc:TaxAmount currencyID="JPY">25250</cbc:TaxAmount>		<!-- IBT-110 - Invoice total TAX amount -->
		<cac:TaxSubtotal>			<!-- IBG-23 - TAX BREAKDOWN -->
			<cbc:TaxableAmount currencyID="JPY">252500</cbc:TaxableAmount>			<!-- IBT-116 - TAX category taxable amount -->
			<cbc:TaxAmount currencyID="JPY">25250</cbc:TaxAmount>			<!-- IBT-117 - TAX category tax amount -->
			<cac:TaxCategory>
				<cbc:ID>S</cbc:ID>				<!-- IBT-118 - TAX category code -->
				<cbc:Percent>10</cbc:Percent>				<!-- IBT-119 - TAX category rate -->
				<cac:TaxScheme>
					<cbc:ID>VAT</cbc:ID>					<!-- IBT-118, qualifier -->
				</cac:TaxScheme>
			</cac:TaxCategory>
		</cac:TaxSubtotal>
		<cac:TaxSubtotal>			<!-- IBG-23 - TAX BREAKDOWN -->
			<cbc:TaxableAmount currencyID="JPY">3490</cbc:TaxableAmount>			<!-- IBT-116 - TAX category taxable amount -->
			<cbc:TaxAmount currencyID="JPY">0</cbc:TaxAmount>			<!-- IBT-117 - TAX category tax amount -->
			<cac:TaxCategory>
				<cbc:ID>E</cbc:ID>				<!-- IBT-118 - TAX category code -->
				<cbc:Percent>0</cbc:Percent>				<!-- IBT-119 - TAX category rate -->
				<cac:TaxScheme>
					<cbc:ID>VAT</cbc:ID>					<!-- IBT-118, qualifier -->
				</cac:TaxScheme>
			</cac:TaxCategory>
		</cac:TaxSubtotal>
	</cac:TaxTotal>
	<cac:LegalMonetaryTotal>		<!-- IBG-22 - DOCUMENT TOTALS -->
		<cbc:LineExtensionAmount currencyID="JPY">255990</cbc:LineExtensionAmount>		<!-- IBT-106 - Sum of Invoice line net amount -->
		<cbc:TaxExclusiveAmount currencyID="JPY">255990</cbc:TaxExclusiveAmount>		<!-- IBT-109 - Invoice total amount without TAX -->
		<cbc:TaxInclusiveAmount currencyID="JPY">281240</cbc:TaxInclusiveAmount>		<!-- IBT-112 - Invoice total amount with TAX -->
		<cbc:AllowanceTotalAmount currencyID="JPY">0</cbc:AllowanceTotalAmount>		<!-- IBT-107 - Sum of allowances on document level -->
		<cbc:ChargeTotalAmount currencyID="JPY">0</cbc:ChargeTotalAmount>		<!-- IBT-108 - Sum of charges on document level -->
		<cbc:PrepaidAmount currencyID="JPY">0</cbc:PrepaidAmount>		<!-- IBT-113 - Paid amount -->
		<cbc:PayableRoundingAmount currencyID="JPY">0</cbc:PayableRoundingAmount>		<!-- IBT-114 - Rounding amount -->
		<cbc:PayableAmount currencyID="JPY">281240</cbc:PayableAmount>		<!-- IBT-115 - Amount due for payment -->
	</cac:LegalMonetaryTotal>
	<cac:InvoiceLine>		<!-- IBG-25 - INVOICE LINE -->
		<cbc:ID>1</cbc:ID>		<!-- IBT-126 - Invoice line identifier -->
		<cbc:InvoicedQuantity unitCode="H87">5</cbc:InvoicedQuantity>		<!-- IBT-129 - Invoiced quantity, IBT-130 - Invoiced quantity unit of measure code -->
		<cbc:LineExtensionAmount currencyID="JPY">250000</cbc:LineExtensionAmount>		<!-- IBT-131 - Invoice line net amount -->
		<!--<cac:InvoicePeriod>			--><!-- IBG-26 - INVOICE LINE PERIOD --><!--
			<cbc:StartDate>2023-10-18</cbc:StartDate>			--><!-- IBT-134 - Invoice line period start date --><!--
			<cbc:EndDate>2023-10-18</cbc:EndDate>			--><!-- IBT-135 - Invoice line period end date --><!--
		</cac:InvoicePeriod>-->
		<cac:Item>			<!-- IBG-31 - ITEM INFORMATION -->
			<cbc:Name>デスクチェア</cbc:Name>			<!-- IBT-153 - Item name -->
			<cac:ClassifiedTaxCategory>				<!-- IBG-30 - LINE TAX INFORMATION -->
				<cbc:ID>S</cbc:ID>				<!-- IBT-151 - Invoiced item TAX category code -->
				<cbc:Percent>10</cbc:Percent>				<!-- IBT-152 - Invoiced item TAX rate -->
				<cac:TaxScheme>
					<cbc:ID>VAT</cbc:ID>					<!-- IBT-167 - Tax Scheme -->
				</cac:TaxScheme>
			</cac:ClassifiedTaxCategory>
		</cac:Item>
		<cac:Price>			<!-- IBG-29 - PRICE DETAILS -->
			<cbc:PriceAmount currencyID="JPY">50000</cbc:PriceAmount>			<!-- IBT-146 - Item net price -->
			<cbc:BaseQuantity unitCode="H87">1</cbc:BaseQuantity>			<!-- IBT-149 - Item price base quantity, IBT-150 - Item price base quantity unit of measure code -->
		</cac:Price>
	</cac:InvoiceLine>
	<cac:InvoiceLine>		<!-- IBG-25 - INVOICE LINE -->
		<cbc:ID>2</cbc:ID>		<!-- IBT-126 - Invoice line identifier -->
		<cbc:InvoicedQuantity unitCode="H87">5</cbc:InvoicedQuantity>		<!-- IBT-130 - Invoiced quantity unit of measure code, IBT-129 - Invoiced quantity -->
		<cbc:LineExtensionAmount currencyID="JPY">2500</cbc:LineExtensionAmount>		<!-- IBT-131 - Invoice line net amount -->
		<cac:InvoicePeriod>			<!-- IBG-26 - INVOICE LINE PERIOD -->
			<cbc:StartDate>2023-10-18</cbc:StartDate>			<!-- IBT-134 - Invoice line period start date -->
			<cbc:EndDate>2023-10-18</cbc:EndDate>			<!-- IBT-135 - Invoice line period end date -->
		</cac:InvoicePeriod>
		<cac:Item>			<!-- IBG-31 - ITEM INFORMATION -->
			<cbc:Name>コピー用紙(A4)</cbc:Name>			<!-- IBT-153 - Item name -->
			<cac:ClassifiedTaxCategory>				<!-- IBG-30 - LINE TAX INFORMATION -->
				<cbc:ID>S</cbc:ID>				<!-- IBT-151 - Invoiced item TAX category code -->
				<cbc:Percent>10</cbc:Percent>				<!-- IBT-152 - Invoiced item TAX rate -->
				<cac:TaxScheme>
					<cbc:ID>VAT</cbc:ID>					<!-- IBT-167 - Tax Scheme -->
				</cac:TaxScheme>
			</cac:ClassifiedTaxCategory>			<!-- IBG-32 - ITEM ATTRIBUTES -->
		</cac:Item>
		<cac:Price>			<!-- IBG-29 - PRICE DETAILS -->
			<cbc:PriceAmount currencyID="JPY">500</cbc:PriceAmount>			<!-- IBT-146 - Item net price -->
			<cbc:BaseQuantity unitCode="H87">1</cbc:BaseQuantity>			<!-- IBT-149 - Item price base quantity, IBT-150 - Item price base quantity unit of measure code -->
		</cac:Price>
	</cac:InvoiceLine>
	<cac:InvoiceLine>		<!-- IBG-25 - INVOICE LINE -->
		<cbc:ID>3</cbc:ID>		<!-- IBT-126 - Invoice line identifier -->
		<cbc:InvoicedQuantity unitCode="H87">10</cbc:InvoicedQuantity>		<!-- IBT-130 - Invoiced quantity unit of measure code, IBT-129 - Invoiced quantity -->
		<cbc:LineExtensionAmount currencyID="JPY">3490</cbc:LineExtensionAmount>		<!-- IBT-131 - Invoice line net amount -->
		<cac:InvoicePeriod>			<!-- IBG-26 - INVOICE LINE PERIOD -->
			<cbc:StartDate>2023-10-18</cbc:StartDate>			<!-- IBT-134 - Invoice line period start date -->
			<cbc:EndDate>2023-10-18</cbc:EndDate>			<!-- IBT-135 - Invoice line period end date -->
		</cac:InvoicePeriod>
		<cac:Item>			<!-- IBG-31 - ITEM INFORMATION -->
			<cbc:Name>検定済教科書(算数)</cbc:Name>			<!-- IBT-153 - Item name -->
			<cac:ClassifiedTaxCategory>				<!-- IBG-30 - LINE TAX INFORMATION -->
				<cbc:ID>E</cbc:ID>				<!-- IBT-151 - Invoiced item TAX category code -->
				<cbc:Percent>0</cbc:Percent>				<!-- IBT-152 - Invoiced item TAX rate -->
				<cac:TaxScheme>
					<cbc:ID>VAT</cbc:ID>					<!-- IBT-167 - Tax Scheme -->
				</cac:TaxScheme>
			</cac:ClassifiedTaxCategory>
		</cac:Item>
		<cac:Price>			<!-- IBG-29 - PRICE DETAILS -->
			<cbc:PriceAmount currencyID="JPY">349</cbc:PriceAmount>			<!-- IBT-146 - Item net price -->
			<cbc:BaseQuantity unitCode="H87">1</cbc:BaseQuantity>			<!-- IBT-149 - Item price base quantity, IBT-150 - Item price base quantity unit of measure code -->
		</cac:Price>
	</cac:InvoiceLine>
</Invoice>

1. Schematronは、XMLドキュメントの構造や値に対するビジネスルールや制約を記述するための言語です。
2. Open Peppolは電子調達や請求書の送受信に関する国際的なフレームワークを提供しています。 Oxygen XML Editorは、Open Peppolから紹介いただいたXML編集や関連するスキーマの検証(Schematronを含む)が行える高機能なエディタです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です