Europen Elektronic Bill

Europen Elektronic Bill

Postby Jimmy » Fri Jul 26, 2024 8:32 am

hi,

in Europa i need, for B2B Business, to create a Bill which a Human and a Machine can read.

i need to create a PDF/A include XML File (EN 16931)

how to insert XML File into existing PDF/A File ?
how to read XML File inside PDF/A ?
greeting,
Jimmy
User avatar
Jimmy
 
Posts: 1732
Joined: Thu Sep 05, 2019 5:32 am
Location: Hamburg, Germany

Re: Europen Elektronic Bill

Postby Otto » Fri Jul 26, 2024 9:06 am

Dear Jimmy,

can you post some basic information here?

Do you possibly have the legal basis?

How should the XML be structured?

It will probably be the same here in Austria or the EU regulation is already in force.

Kind regards,
Otto
********************************************************************
mod harbour - Vamos a la conquista de la Web
modharbour.org
https://www.facebook.com/groups/modharbour.club
********************************************************************
User avatar
Otto
 
Posts: 6336
Joined: Fri Oct 07, 2005 7:07 pm

Re: Europen Elektronic Bill

Postby Antonio Linares » Fri Jul 26, 2024 9:31 am

Claude provides very complete info about it and code examples using Java and Python too:

https://claude.site/artifacts/7e0de32f-939b-451b-849c-bcd38184db33
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42118
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Europen Elektronic Bill

Postby Antonio Linares » Fri Jul 26, 2024 9:33 am

> can it be done using C language ?

Code: Select all  Expand view  RUN
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <poppler.h>
#include <libxml/parser.h>
#include <libxml/tree.h>

#define MAX_PATH 1024

void embed_xml_in_pdf(const char* pdf_path, const char* xml_path, const char* output_path) {
    PopplerDocument *doc;
    GError *error = NULL;
    char *xml_content;
    gsize xml_length;

    // Load the PDF
    doc = poppler_document_new_from_file(pdf_path, NULL, &error);
    if (!doc) {
        fprintf(stderr, "Error loading PDF: %s\n", error->message);
        g_error_free(error);
        return;
    }

    // Read the XML file
    if (!g_file_get_contents(xml_path, &xml_content, &xml_length, &error)) {
        fprintf(stderr, "Error reading XML file: %s\n", error->message);
        g_error_free(error);
        g_object_unref(doc);
        return;
    }

    // Embed the XML
    if (!poppler_document_embed_file(doc, xml_path, xml_content, xml_length, NULL, &error)) {
        fprintf(stderr, "Error embedding XML: %s\n", error->message);
        g_error_free(error);
    } else {
        printf("XML embedded successfully.\n");
    }

    // Save the PDF
    if (!poppler_document_save(doc, output_path, &error)) {
        fprintf(stderr, "Error saving PDF: %s\n", error->message);
        g_error_free(error);
    } else {
        printf("PDF saved successfully.\n");
    }

    g_free(xml_content);
    g_object_unref(doc);
}

void extract_xml_from_pdf(const char* pdf_path) {
    PopplerDocument *doc;
    GError *error = NULL;
    GList *attachments, *l;

    // Load the PDF
    doc = poppler_document_new_from_file(pdf_path, NULL, &error);
    if (!doc) {
        fprintf(stderr, "Error loading PDF: %s\n", error->message);
        g_error_free(error);
        return;
    }

    // Get attachments
    attachments = poppler_document_get_attachments(doc);
    for (l = attachments; l; l = l->next) {
        PopplerAttachment *attachment = (PopplerAttachment *)l->data;
        if (g_str_has_suffix(attachment->name, ".xml")) {
            gchar *xml_content;
            gsize xml_length;

            if (poppler_attachment_save(attachment, &xml_content, &xml_length, &error)) {
                // Parse XML
                xmlDocPtr doc = xmlReadMemory(xml_content, xml_length, NULL, NULL, 0);
                if (doc != NULL) {
                    xmlChar *xmlbuff;
                    int buffersize;
                    xmlDocDumpFormatMemory(doc, &xmlbuff, &buffersize, 1);
                    printf("Extracted XML:\n%s\n", (char *)xmlbuff);
                    xmlFree(xmlbuff);
                    xmlFreeDoc(doc);
                } else {
                    fprintf(stderr, "Error parsing XML\n");
                }
                g_free(xml_content);
            } else {
                fprintf(stderr, "Error extracting XML: %s\n", error->message);
                g_error_free(error);
            }
        }
    }

    g_list_free_full(attachments, (GDestroyNotify)g_object_unref);
    g_object_unref(doc);
}

int main() {
    const char *pdf_path = "input.pdf";
    const char *xml_path = "invoice.xml";
    const char *output_path = "output_with_xml.pdf";

    embed_xml_in_pdf(pdf_path, xml_path, output_path);
    extract_xml_from_pdf(output_path);

    return 0;
}
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42118
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Europen Elektronic Bill

Postby Antonio Linares » Fri Jul 26, 2024 9:36 am

Using Python:

Code: Select all  Expand view  RUN
import io
from PyPDF2 import PdfReader, PdfWriter
from lxml import etree

def embed_xml_in_pdf(pdf_path, xml_path, output_path):
    # Read the existing PDF
    reader = PdfReader(pdf_path)
    writer = PdfWriter()

    # Copy pages from reader to writer
    for page in reader.pages:
        writer.add_page(page)

    # Read the XML file
    with open(xml_path, 'rb') as xml_file:
        xml_content = xml_file.read()

    # Add the XML as an embedded file
    writer.add_attachment(xml_path, xml_content)

    # Write the output PDF
    with open(output_path, 'wb') as output_file:
        writer.write(output_file)

def extract_xml_from_pdf(pdf_path):
    reader = PdfReader(pdf_path)
   
    # Get the embedded files
    embedded_files = reader.attachments

    for filename, content in embedded_files.items():
        if filename.endswith('.xml'):
            # Parse the XML content
            root = etree.fromstring(content)
            # You can now work with the XML data
            print(etree.tostring(root, pretty_print=True).decode())

# Usage
embed_xml_in_pdf('input.pdf', 'invoice.xml', 'output_with_xml.pdf')
extract_xml_from_pdf('output_with_xml.pdf')
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42118
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Europen Elektronic Bill

Postby Jimmy » Fri Jul 26, 2024 9:45 am

hi Otto,
Otto wrote:can you post some basic information here?

i have just the Information which i have read in Germen Xbase++ Forum about ZUFERD or X-RECHNUNG.
i have no Idea about XML File.

there seems to be a WebSite which can create it online
https://xrechnung-erstellen.com/
greeting,
Jimmy
User avatar
Jimmy
 
Posts: 1732
Joined: Thu Sep 05, 2019 5:32 am
Location: Hamburg, Germany

Re: Europen Elektronic Bill

Postby Jimmy » Fri Jul 26, 2024 2:12 pm

hi,

i have this Bill
Image
which include a File called Factur-X.XML and have this Context
<?xml version="1.0" encoding="UTF-8"?>
<rsm:CrossIndustryInvoice xmlns:a="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:10" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
<rsm:ExchangedDocumentContext>
<ram:GuidelineSpecifiedDocumentContextParameter>
<ram:ID>urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_2.2</ram:ID>
</ram:GuidelineSpecifiedDocumentContextParameter>
</rsm:ExchangedDocumentContext>
<rsm:ExchangedDocument>
<ram:ID>99676</ram:ID>
<ram:TypeCode>380</ram:TypeCode>
<ram:IssueDateTime>
<udt:DateTimeString format="102">20240528</udt:DateTimeString>
</ram:IssueDateTime>

</rsm:ExchangedDocument>
<rsm:SupplyChainTradeTransaction>
<ram:IncludedSupplyChainTradeLineItem>
<ram:AssociatedDocumentLineDocument>
<ram:LineID>1</ram:LineID>

</ram:AssociatedDocumentLineDocument>
<ram:SpecifiedTradeProduct>
<ram:SellerAssignedID>32515.00860</ram:SellerAssignedID>
<ram:Name>Innenraumgebläse</ram:Name>
</ram:SpecifiedTradeProduct>
<ram:SpecifiedLineTradeAgreement>
<ram:NetPriceProductTradePrice>
<ram:ChargeAmount>136.00</ram:ChargeAmount>
</ram:NetPriceProductTradePrice>
</ram:SpecifiedLineTradeAgreement>
<ram:SpecifiedLineTradeDelivery>
<ram:BilledQuantity unitCode="H87">1.00</ram:BilledQuantity>
</ram:SpecifiedLineTradeDelivery>
<ram:SpecifiedLineTradeSettlement>
<ram:ApplicableTradeTax>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<ram:SpecifiedTradeSettlementLineMonetarySummation>
<ram:LineTotalAmount>136.00</ram:LineTotalAmount>
</ram:SpecifiedTradeSettlementLineMonetarySummation>
</ram:SpecifiedLineTradeSettlement>
</ram:IncludedSupplyChainTradeLineItem>
<ram:IncludedSupplyChainTradeLineItem>
<ram:AssociatedDocumentLineDocument>
<ram:LineID>2</ram:LineID>

</ram:AssociatedDocumentLineDocument>
<ram:SpecifiedTradeProduct>
<ram:SellerAssignedID>0</ram:SellerAssignedID>
<ram:Name>Fehlerspeicher auslesen/löschen PKW/Transporter</ram:Name>
</ram:SpecifiedTradeProduct>
<ram:SpecifiedLineTradeAgreement>
<ram:NetPriceProductTradePrice>
<ram:ChargeAmount>35.00</ram:ChargeAmount>
</ram:NetPriceProductTradePrice>
</ram:SpecifiedLineTradeAgreement>
<ram:SpecifiedLineTradeDelivery>
<ram:BilledQuantity unitCode="H87">1.00</ram:BilledQuantity>
</ram:SpecifiedLineTradeDelivery>
<ram:SpecifiedLineTradeSettlement>
<ram:ApplicableTradeTax>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<ram:SpecifiedTradeSettlementLineMonetarySummation>
<ram:LineTotalAmount>35.00</ram:LineTotalAmount>
</ram:SpecifiedTradeSettlementLineMonetarySummation>
</ram:SpecifiedLineTradeSettlement>
</ram:IncludedSupplyChainTradeLineItem>
<ram:IncludedSupplyChainTradeLineItem>
<ram:AssociatedDocumentLineDocument>
<ram:LineID>3</ram:LineID>

</ram:AssociatedDocumentLineDocument>
<ram:SpecifiedTradeProduct>
<ram:SellerAssignedID>1</ram:SellerAssignedID>
<ram:Name>Arbeitslohn</ram:Name>
</ram:SpecifiedTradeProduct>
<ram:SpecifiedLineTradeAgreement>
<ram:NetPriceProductTradePrice>
<ram:ChargeAmount>79.00</ram:ChargeAmount>
</ram:NetPriceProductTradePrice>
</ram:SpecifiedLineTradeAgreement>
<ram:SpecifiedLineTradeDelivery>
<ram:BilledQuantity unitCode="HUR">2.00</ram:BilledQuantity>
</ram:SpecifiedLineTradeDelivery>
<ram:SpecifiedLineTradeSettlement>
<ram:ApplicableTradeTax>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<ram:SpecifiedTradeSettlementLineMonetarySummation>
<ram:LineTotalAmount>158.00</ram:LineTotalAmount>
</ram:SpecifiedTradeSettlementLineMonetarySummation>
</ram:SpecifiedLineTradeSettlement>
</ram:IncludedSupplyChainTradeLineItem>

<ram:ApplicableHeaderTradeAgreement>
<ram:BuyerReference></ram:BuyerReference>
<ram:SellerTradeParty>
<ram:Name>Reimers-Kfz-Reparatur-Service GmbH</ram:Name>
<ram:DefinedTradeContact>
<ram:PersonName>Daniel Schwaß</ram:PersonName>
<ram:TelephoneUniversalCommunication>
<ram:CompleteNumber>040/7211863</ram:CompleteNumber>
</ram:TelephoneUniversalCommunication>
<ram:EmailURIUniversalCommunication>
<ram:URIID>reimers-kfz-service@gmx.de</ram:URIID>
</ram:EmailURIUniversalCommunication>
</ram:DefinedTradeContact>
<ram:PostalTradeAddress>
<ram:PostcodeCode>21035</ram:PostcodeCode>
<ram:LineOne>Gerhard-Falk-Str. 2</ram:LineOne>
<ram:CityName>Hamburg</ram:CityName>
<ram:CountryID>DE</ram:CountryID>
</ram:PostalTradeAddress>
<ram:SpecifiedTaxRegistration>
<ram:ID schemeID="FC">44/754/00068</ram:ID>
</ram:SpecifiedTaxRegistration>
<ram:SpecifiedTaxRegistration>
<ram:ID schemeID="VA">DE118683157</ram:ID>
</ram:SpecifiedTaxRegistration>
</ram:SellerTradeParty>
<ram:BuyerTradeParty>
<ram:ID>1538</ram:ID>
<ram:Name>Yiu</ram:Name>
<ram:DefinedTradeContact>
<ram:PersonName></ram:PersonName>
<ram:TelephoneUniversalCommunication>
<ram:CompleteNumber>Fr. Yiu 01718118882</ram:CompleteNumber>
</ram:TelephoneUniversalCommunication>
<ram:EmailURIUniversalCommunication>
<ram:URIID>yiuimex@t-online.de</ram:URIID>
</ram:EmailURIUniversalCommunication>
</ram:DefinedTradeContact>
<ram:PostalTradeAddress>
<ram:PostcodeCode>21509</ram:PostcodeCode>
<ram:LineOne>Siemensstr. 14</ram:LineOne>
<ram:CityName>Glinde</ram:CityName>
<ram:CountryID>DE</ram:CountryID>
</ram:PostalTradeAddress>
</ram:BuyerTradeParty>
<!-- pdffile -->
</ram:ApplicableHeaderTradeAgreement>
<ram:ApplicableHeaderTradeDelivery>
<ram:ActualDeliverySupplyChainEvent>
<ram:OccurrenceDateTime>
<udt:DateTimeString format="102">20240522</udt:DateTimeString>
</ram:OccurrenceDateTime>
</ram:ActualDeliverySupplyChainEvent>
</ram:ApplicableHeaderTradeDelivery>
<ram:ApplicableHeaderTradeSettlement>
<!-- creditor -->
<ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
<ram:SpecifiedTradeSettlementPaymentMeans>
<ram:TypeCode>1</ram:TypeCode>
<!-- iban -->
</ram:SpecifiedTradeSettlementPaymentMeans>
<ram:ApplicableTradeTax>
<ram:CalculatedAmount>62.51</ram:CalculatedAmount>
<ram:TypeCode>VAT</ram:TypeCode>
<ram:BasisAmount>329.00</ram:BasisAmount>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>

<ram:SpecifiedTradePaymentTerms>
<ram:Description>Bei Zahlung bitte Kd-Nr und Beleg-Nr angeben. Zahlbar bis 07.06.2024.</ram:Description>
<!-- debitor -->
</ram:SpecifiedTradePaymentTerms>
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:LineTotalAmount>329.00</ram:LineTotalAmount>
<ram:TaxBasisTotalAmount>329.00</ram:TaxBasisTotalAmount>
<ram:TaxTotalAmount currencyID="EUR">62.51</ram:TaxTotalAmount>
<ram:GrandTotalAmount>391.51</ram:GrandTotalAmount>
<ram:DuePayableAmount>391.51</ram:DuePayableAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
</ram:ApplicableHeaderTradeSettlement>
</rsm:SupplyChainTradeTransaction>
</rsm:CrossIndustryInvoice>

i use SUMATRAPDF v3.1.2 to show PDF an extract include *.XML File
greeting,
Jimmy
User avatar
Jimmy
 
Posts: 1732
Joined: Thu Sep 05, 2019 5:32 am
Location: Hamburg, Germany

Re: Europen Elektronic Bill

Postby Jimmy » Fri Jul 26, 2024 2:14 pm

hi Antonio,
Antonio Linares wrote:Using Python:

THX for Sample, but i have no Idea how to use it with Fivewin
greeting,
Jimmy
User avatar
Jimmy
 
Posts: 1732
Joined: Thu Sep 05, 2019 5:32 am
Location: Hamburg, Germany

Re: Europen Elektronic Bill

Postby Marc Venken » Fri Jul 26, 2024 3:55 pm

Jimmy wrote:hi Otto,
Otto wrote:can you post some basic information here?

i have just the Information which i have read in Germen Xbase++ Forum about ZUFERD or X-RECHNUNG.
i have no Idea about XML File.

there seems to be a WebSite which can create it online
https://xrechnung-erstellen.com/


In Belgium we also have to deal with "PEPPOL". A way of sending and validating the XML files for invoicing to the gouvernement etc.. Business will also more and more request peppol use for transactions.
They have a site and also sample xml files to review. I also plan to create the xml files because the deadline here is 2026.
Marc Venken
Using: FWH 23.04 with Harbour
User avatar
Marc Venken
 
Posts: 1439
Joined: Tue Jun 14, 2016 7:51 am
Location: Belgium

Re: Europen Elektronic Bill

Postby Silvio.Falconi » Mon Jul 29, 2024 4:36 pm

in Italy electronic invoicing has existed for years, they have practically inserted the invoice in all its forms in an xlm file but this needs another file where the style is stored, generally two types of style are associated, one such as a small page with all the data and an invoice type in graphic format. I started making a class to create electronic invoicing but then I didn't continue it due to family problems, on GitHub there are many examples also in c++(cs) or VB.

I didn't continue also because no one is interested and the fwh users are from different countries where electronic invoicing is very different, the Italians who in my opinion are the only ones who could help me were careful not to help me, but it could have been done something unique, I know that there is data stored in the invoice which can be different from one application to another but in Italy the government has imposed particular tables with particular codes, VAT rates, types of payment and many other tables.
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)
I use : FiveWin for Harbour November 2023 - January 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
User avatar
Silvio.Falconi
 
Posts: 7070
Joined: Thu Oct 18, 2012 7:17 pm

Re: Europen Elektronic Bill

Postby Marc Venken » Tue Jul 30, 2024 2:32 pm

Every countrie will use the basis EU-part for the data and supplement for eacht there own items like Silvio says.

There is a list for the EU- codes and a list for the syntax codes. I found part of it and ChatGPT provided some extra info about it.

Some info (since it is from the Peppol site will be more related to Belgium, but part will be usefull.

Home location of info
https://docs.peppol.eu/poacc/billing/3.0/
The Billing data list
https://docs.peppol.eu/poacc/billing/3.0/syntax/ubl-invoice/tree/

There is also a BT ... list that need to be used and for us, a code that relates to that BT List

Sample :

BT-1: Invoice number

Syntaxelement: <cbc:ID>
BT-2: Invoice issue date

Syntaxelement: <cbc:IssueDate>
BT-3: Invoice type code

Syntaxelement: <cbc:InvoiceTypeCode>
BT-5: Invoice currency code

Syntaxelement: <cbc:DocumentCurrencyCode>
BT-6: VAT accounting currency code

Syntaxelement: <cbc:TaxCurrencyCode>
BT-7: Value Added Tax point date

Syntaxelement: <cbc:TaxPointDate>
BT-9: Payment due date

Once we create a XML file from these codes, we will have a working invoice XML.

In my case I'm thinking of using a dbf with Xbrowse to keep the codes in and generate a xml on these.

<!-- Factuur informatie -->
<cbc:ID>12345</cbc:ID> <!-- BT-1: Invoice number -->
<cbc:IssueDate>2023-07-15</cbc:IssueDate> <!-- BT-2: Invoice issue date -->
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode> <!-- BT-3: Invoice type code -->
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode> <!-- BT-5: Invoice currency code -->
<cbc:DueDate>2023-08-15</cbc:DueDate> <!-- BT-9: Payment due date -->

In Setting dbf, i make 3 fields like : ID, Starttxt, Endtxt like : BT-1 , "<cbc:ID>", "</cbc:ID>"
and in the program I link the data to BT-1 = data->invoice etc....

<cbc:ID>BT-1</cbc:ID>
<cbc:IssueDate>BT-2</cbc:IssueDate>
<cbc:InvoiceTypeCode>BT-3</cbc:InvoiceTypeCode>
<cbc:Note>BT-4</cbc:Note>
<cbc:DocumentCurrencyCode>BT-5</cbc:DocumentCurrencyCode>

Some of you will be using textinto or FWrite not ??
Marc Venken
Using: FWH 23.04 with Harbour
User avatar
Marc Venken
 
Posts: 1439
Joined: Tue Jun 14, 2016 7:51 am
Location: Belgium

Re: Europen Elektronic Bill

Postby Marc Venken » Tue Jul 30, 2024 2:47 pm

Most likely it will be a good idea to keep some xml invoices that all of us already receive from parties that have made the transition to xml and pdf.
These we can that use (copy the used codes) and base our program on them.

These samples I have are for 95% identical (not the specific invoice detail ))))), so it should not be to complex, once base my layout on them.
Marc Venken
Using: FWH 23.04 with Harbour
User avatar
Marc Venken
 
Posts: 1439
Joined: Tue Jun 14, 2016 7:51 am
Location: Belgium

Re: Europen Elektronic Bill

Postby Jimmy » Tue Aug 13, 2024 11:03 am

hi,
Marc Venken wrote:Most likely it will be a good idea to keep some xml invoices that all of us already receive from parties that have made the transition to xml and pdf.
These we can that use (copy the used codes) and base our program on them.

Good Ideas.
here another Sample
Image
Code: Select all  Expand view  RUN
<?xml version="1.0" encoding="UTF-8" ?>
<rsm:CrossIndustryDocument xmlns:rsm="urn:ferd:CrossIndustryDocument:invoice:1p0" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:15">
 <rsm:SpecifiedExchangedDocumentContext>
  <ram:GuidelineSpecifiedDocumentContextParameter>
   <ram:ID>urn:ferd:CrossIndustryDocument:invoice:1p0:basic</ram:ID>
  </ram:GuidelineSpecifiedDocumentContextParameter>
 </rsm:SpecifiedExchangedDocumentContext>
 <rsm:HeaderExchangedDocument>
  <ram:ID>1224134726</ram:ID>
  <ram:Name>Rechnung</ram:Name>
  <ram:TypeCode>380</ram:TypeCode>
  <ram:IssueDateTime>
   <udt:DateTimeString format="102">20240731</udt:DateTimeString>
  </ram:IssueDateTime>
  <ram:IncludedNote>
   <ram:Content>identNummer:WDD1690331J005389X</ram:Content>
  </ram:IncludedNote>
 </rsm:HeaderExchangedDocument>
 <rsm:SpecifiedSupplyChainTradeTransaction>
  <ram:ApplicableSupplyChainTradeAgreement>
   <ram:SellerTradeParty>
    <ram:Name>NORD-OSTSEE AUTOMOBILE</ram:Name>
    <ram:PostalTradeAddress>
     <ram:PostcodeCode>21465</ram:PostcodeCode>
     <ram:LineOne>GUTENBERGSTRA├ƒE 26</ram:LineOne>
     <ram:CityName>REINBEK</ram:CityName>
     <ram:CountryID>DE</ram:CountryID>
    </ram:PostalTradeAddress>
    <ram:SpecifiedTaxRegistration>
     <ram:ID schemeID="VA">DE812877788</ram:ID>
    </ram:SpecifiedTaxRegistration>
   </ram:SellerTradeParty>
   <ram:BuyerTradeParty>
    <ram:ID>383564</ram:ID>
    <ram:Name>Herrn Shung Yang Yiu</ram:Name>
    <ram:PostalTradeAddress>
     <ram:PostcodeCode>21509</ram:PostcodeCode>
     <ram:LineOne>Siemensstr. 14</ram:LineOne>
     <ram:CityName>Glinde</ram:CityName>
     <ram:CountryID>DE</ram:CountryID>
    </ram:PostalTradeAddress>
   </ram:BuyerTradeParty>
  </ram:ApplicableSupplyChainTradeAgreement>
  <ram:ApplicableSupplyChainTradeDelivery>
   <ram:ActualDeliverySupplyChainEvent>
    <ram:OccurrenceDateTime>
     <udt:DateTimeString format="102">20240731</udt:DateTimeString>
    </ram:OccurrenceDateTime>
   </ram:ActualDeliverySupplyChainEvent>
  </ram:ApplicableSupplyChainTradeDelivery>
  <ram:ApplicableSupplyChainTradeSettlement>
   <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
   <ram:ApplicableTradeTax>
    <ram:CalculatedAmount currencyID="EUR">167.70</ram:CalculatedAmount>
    <ram:TypeCode>VAT</ram:TypeCode>
    <ram:BasisAmount currencyID="EUR">882.64</ram:BasisAmount>
    <ram:ApplicablePercent>19.00</ram:ApplicablePercent>
   </ram:ApplicableTradeTax>
   <ram:SpecifiedTradeSettlementMonetarySummation>
    <ram:LineTotalAmount currencyID="EUR">882.64</ram:LineTotalAmount>
    <ram:ChargeTotalAmount currencyID="EUR">0.00</ram:ChargeTotalAmount>
    <ram:AllowanceTotalAmount currencyID="EUR">0.00</ram:AllowanceTotalAmount>
    <ram:TaxBasisTotalAmount currencyID="EUR">882.64</ram:TaxBasisTotalAmount>
    <ram:TaxTotalAmount currencyID="EUR">167.70</ram:TaxTotalAmount>
    <ram:GrandTotalAmount currencyID="EUR">1050.34</ram:GrandTotalAmount>
   </ram:SpecifiedTradeSettlementMonetarySummation>
  </ram:ApplicableSupplyChainTradeSettlement>
 </rsm:SpecifiedSupplyChainTradeTransaction>
</rsm:CrossIndustryDocument>
greeting,
Jimmy
User avatar
Jimmy
 
Posts: 1732
Joined: Thu Sep 05, 2019 5:32 am
Location: Hamburg, Germany


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: Timm Sodtalbers and 53 guests