デジタルインボイスの送受信
ここでは、Peppol Connect APIの内部でどのようにデジタルインボイスを送受信しているかについて説明します。
実際のPeppol Network内での請求書の送受信は、以下の図のようにC2からC3の間で行われます。
あるアクセスポイントはSenderにもReceiverにもなり得るため、ここでは送受信を一括して説明します。 送信において最初に必要なのは、請求書の受信側のエンドポイントがどのSMPに登録されているのかを特定することです。
- URLの組み立て
そのためにまず、以下のようにしてURLを組み立てます。ここでいうID-VALUE
, ID-SCHEME
, SML-ZONE-NAME
は例としてはそれぞれ、0188:[法人番号]
, iso6523-actorid-upis
, acc.edelivery.tech.ec.europa.eu
などが当てはまります。
"http://B-" + hexstring(md5(lowercase(ID-VALUE))) + "." + ID-SCHEME + "." + SML-ZONE-NAME
上記のようにして組み立てたURLは、DNSを通じてIPアドレスへと解決され、そのIPは受信側のエンドポイントが登録されているSMP(例: http://smp.e-invoice.moneyforward.com )を指しています。
- Document typeの取得
先ほどのURLの末尾に再度Peppol ID (/iso6523-actorid-upis::0188:[法人番号]
) を付け加えることで、サポートされているDocument typeの一覧を取得することができます。
"http://B-" + hexstring(md5(lowercase(ID-VALUE))) + "." + ID-SCHEME + "." + SML-ZONE-NAME + "/" + "iso6523-actorid-upis::0188:[法人番号]"
- 請求書の宛先の取得
最後に上記のURLの末尾にさらに services/documentTypeID
を付け加えたクエリを実行することで送り先のエンドポイントを取得することができます。
最終的にアクセスポイントがそのエンドポイントにドキュメントを送信することで、請求書の送信が完了します。
"http://B-" + hexstring(md5(lowercase(ID-VALUE))) + "." + ID-SCHEME + "." + SML-ZONE-NAME + "/" + "iso6523-actorid-upis::0188:[法人番号]" + "/" + "services/" + "[documentTypeID]"
- 受け取った請求書の保存
Peppol Connectでは、XMLとして受信したドキュメントはアクセスポイントで保存するのではなく、別のマイクロサービスで保存しています。 これをPeppol ConnectのAPIや、Webhookを通じて登録したWebhook URLで受け取ることができます。