Poland KSF: Prepaid Payment c

You can model prepayments.

You can use the PrepaidPayments element to model information about prepayments. The amounts modeled in this element impacts the Amount Due for Payment (Invoice/UBLExtensions/UBLExtension/ExtensionContent/InvoiceExtension/ ReducedTotals/LegalMonetaryTotal/PayableAmont) element. More information is provided in the Poland KSF: Document-Level Totals (FA3) topic.

Different elements can be used depending on business scenarios such as:

  • Full invoice amount was already prepaid
  • Fully paid invoice amount indicating multiple payments
  • Partially paid invoice amount indicating multiple payments

Elements

The group contains following sub-elements of the PaymentMeans element to model the payment means:

NameDescriptionXPathCardinality
Payment Instructions Group (Invoice/PaymentMeans)0..nGroup of elements that models information about how the payment was made.
Payment Means Type Code (Invoice/PaymentMeans/PaymentMeansCode)1..1The code that represents the payment method. See UNCL4461. This can be named in an attribute, for example: <cbc:PaymentMeansCode name="Credit transfer">30</cbc:PaymentMeansCode>

Use the following sub-elements of the PrepaidPayments element to model information about the prepayment.

Name (Path)CardinalityDescription
Prepaid Amounts (Invoice/PrepaidPayment)0..nGroups information about a prepaid payment.
Paid Amount (Invoice/PrepaidPayment/PaidAmount)0..1The amount of the prepayment.
Paid Amount Debited Date Currency (Invoice/PrepaidPayment/PaidAmount [@currencyID])0..1The currency code. It must match the value in the DocumentCurrencyCode element.
Date of Prepayment (Invoice/PrepaidPayment/PaidDate)0..1The date the prepayment was paid.

Example

Full invoice amount was already prepaid

In this case, the group must contain only the Paid Date cbc:PaidDate.
Additionally, the Fully Paid Indicator extension on document level must be set to true.

<ubl:Invoice>
    <ext:UBLExtensions>
        <ext:UBLExtension>
            <ext:ExtensionContent>
                <vrbl:InvoiceExtension>
                    <!-- Indicates that the invoice was fully paid -->
                    <vrbl:FullyPaidIndicator>true</vrbl:FullyPaidIndicator>
                </vrbl:InvoiceExtension>
            </ext:ExtensionContent>
        </ext:UBLExtension>
    </ext:UBLExtensions>
    <!-- Code omitted for clarity -->
    <cac:PrepaidPayment>
        <cbc:PaidDate>2026-01-27</cbc:PaidDate>
    </cac:PrepaidPayment>
    <!-- Code omitted for clarity -->
</ubl:Invoice>

Fully paid invoice amount indicating multiple payments

In this case, additional data, the Paid Amount, and the Payment Means Type Code must be provided.
For more information on the allowed codes, check the Payment Means Type Code section.
The Fully Paid Indicator extension on document level must be set to true.

<ubl:Invoice>
    <ext:UBLExtensions>
        <ext:UBLExtension>
            <ext:ExtensionContent>
                <vrbl:InvoiceExtension>
                    <!-- Code omitted for clarity -->
                    <!-- Indicates that the invoice was fully paid -->
                    <vrbl:FullyPaidIndicator>true</vrbl:FullyPaidIndicator>
                    <!-- Code omitted for clarity -->
                </vrbl:InvoiceExtension>
            </ext:ExtensionContent>
        </ext:UBLExtension>
    </ext:UBLExtensions>
    <!-- Code omitted for clarity -->
    <cac:PrepaidPayment>
        <ext:UBLExtensions>
            <ext:UBLExtension>
                <ext:ExtensionContent>
                    <vrbl:PrepaidPaymentExtension>
                        <cac:PaymentMeans>
                            <cbc:PaymentMeansCode>VRBL:PL:01</cbc:PaymentMeansCode>
                        </cac:PaymentMeans>
                    </vrbl:PrepaidPaymentExtension>
                </ext:ExtensionContent>
            </ext:UBLExtension>
        </ext:UBLExtensions>
        <cbc:PaidAmount currencyID="PLN">10000</cbc:PaidAmount>
        <cbc:PaidDate>2026-01-27</cbc:PaidDate>
    </cac:PrepaidPayment>
    <cac:PrepaidPayment>
        <ext:UBLExtensions>
            <ext:UBLExtension>
                <ext:ExtensionContent>
                    <vrbl:PrepaidPaymentExtension>
                        <cac:PaymentMeans>
                            <cbc:PaymentMeansCode>VRBL:PL:01</cbc:PaymentMeansCode>
                        </cac:PaymentMeans>
                    </vrbl:PrepaidPaymentExtension>
                </ext:ExtensionContent>
            </ext:UBLExtension>
        </ext:UBLExtensions>
        <cbc:PaidAmount currencyID="PLN">20000</cbc:PaidAmount>
        <cbc:PaidDate>2026-02-14</cbc:PaidDate>
    </cac:PrepaidPayment>
    <!-- Code omitted for clarity -->
</ubl:Invoice>

Partially paid invoice amount indicating multiple payments

In this case, additional data, the Paid Amount, and the Payment Means Type Code must be provided.
For more information on the allowed codes, check the Payment Means Type Code section.
The Fully Paid Indicator extension on document level must be set to false or can be omitted because it defaults to false if not provided.

<ubl:Invoice>
    <ext:UBLExtensions>
        <ext:UBLExtension>
            <ext:ExtensionContent>
                <vrbl:InvoiceExtension>
                    <!-- Code omitted for clarity -->
                    <!-- Indicates that the invoice was only paid partially -->
                    <vrbl:FullyPaidIndicator>false</vrbl:FullyPaidIndicator>
                    <!-- Code omitted for clarity -->
                </vrbl:InvoiceExtension>
            </ext:ExtensionContent>
        </ext:UBLExtension>
    </ext:UBLExtensions>
    <!-- Code omitted for clarity -->
    <cac:PrepaidPayment>
        <ext:UBLExtensions>
            <ext:UBLExtension>
                <ext:ExtensionContent>
                    <vrbl:PrepaidPaymentExtension>
                        <cac:PaymentMeans>
                            <cbc:PaymentMeansCode>VRBL:PL:01</cbc:PaymentMeansCode>
                        </cac:PaymentMeans>
                    </vrbl:PrepaidPaymentExtension>
                </ext:ExtensionContent>
            </ext:UBLExtension>
        </ext:UBLExtensions>
        <cbc:PaidAmount currencyID="PLN">10000</cbc:PaidAmount>
        <cbc:PaidDate>2026-01-27</cbc:PaidDate>
    </cac:PrepaidPayment>
    <cac:PrepaidPayment>
        <ext:UBLExtensions>
            <ext:UBLExtension>
                <ext:ExtensionContent>
                    <vrbl:PrepaidPaymentExtension>
                        <cac:PaymentMeans>
                            <cbc:PaymentMeansCode>VRBL:PL:01</cbc:PaymentMeansCode>
                        </cac:PaymentMeans>
                    </vrbl:PrepaidPaymentExtension>
                </ext:ExtensionContent>
            </ext:UBLExtension>
        </ext:UBLExtensions>
        <cbc:PaidAmount currencyID="PLN">20000</cbc:PaidAmount>
        <cbc:PaidDate>2026-02-14</cbc:PaidDate>
    </cac:PrepaidPayment>
    <!-- Code omitted for clarity -->
</ubl:Invoice>