Salta al contingut
Log in

Camps JSON de factura a XML KSeF FA(3)

Aquesta guia detalla el mapeig entre els camps de la B2Brouter Invoice API, els corresponents Business Terms (BT) definits per l’estàndard europeu de facturació electrònica (EN 16931) i les rutes XML del format KSeF FA(3) (sistema nacional polonès de factura electrònica).

El seu objectiu és ajudar a entendre com les dades de factura enviades en format JSON via Invoice API corresponen a l’estructura XML KSeF FA(3). Només s’hi inclouen els camps que realment es mapen durant la generació del tax report.

BT IDBusiness TermCamp API (B2Brouter)XPath KSeF FA(3)
BT-1Número de facturainvoice.numberFa/P_2
BT-2Data d’emissióinvoice.dateFa/P_1
BT-3Codi de tipus de facturainvoice.type_document; derivat: per defecte VAT, KOR si és rectificativa, ZAL si és bestreta, UPR si és simplificadaFa/RodzajFaktury
BT-5Moneda de la facturainvoice.currencyFa/KodWaluty
BT-7Data del punt d’impostinvoice.tax_point_dateFa/P_6
BT-9Data de vencimentinvoice.due_dateFa/Platnosc/TerminPlatnosci/Termin
BT-25Número de la factura precedentinvoice.invoice_references[reference_type=amend].number (v2026-04-20+) o invoice.amended_numberFa/DaneFaKorygowanej/NrFaKorygowanej
BT-26Data de la factura precedentinvoice.invoice_references[reference_type=amend].date (v2026-04-20+) o invoice.amended_dateFa/DaneFaKorygowanej/DataWystFaKorygowanej
Tipus de canviinvoice.exchange_rateFa/KursWalutyZ
BT-10Referència del compradorinvoice.buyer_referencePodmiot2/NrKlienta
BT-13Referència de comandainvoice.ponumberFa/WarunkiTransakcji/Zamowienia/NrZamowienia
BT-92Data de comandainvoice.order_dateFa/WarunkiTransakcji/Zamowienia/DataZamowienia
BT-14Referència de comanda de vendainvoice.sales_order_referenceFa/DodatkowyOpis (parella clau-valor)
BT-16Referència d’albaràinvoice.delivery_note_numberFa/WZ
Codi d’efecte de rectificacióinvoice.amend_code_tax o tax_report_setting.credit_note_codeFa/TypKorekty (només per a tipus KOR)
BT IDBusiness TermCamp API (B2Brouter)XPath KSeF FA(3)
BT-9Data de vencimentinvoice.due_dateFa/Platnosc/TerminPlatnosci/Termin
BT-81Codi de mitjà de pagamentinvoice.payment_methodFa/Platnosc/FormaPlatnosci
BT-84IBAN del compte del beneficiariinvoice.bank_account.ibanFa/Platnosc/RachunekBankowy/NrRB
BT-84-0Número de compte del beneficiariinvoice.bank_account.numberFa/Platnosc/RachunekBankowy/NrRB
BT-85Nom del compte del beneficiariinvoice.bank_account.nameFa/Platnosc/RachunekBankowy/NazwaBanku
BT-86BIC del compte del beneficiariinvoice.bank_account.bicFa/Platnosc/RachunekBankowy/SWIFT
Indicador de pagadaDerivat: 1 quan payable_amount = 0 i total > 0Fa/Platnosc/Zaplacono
Data de pagament (quan està pagada)invoice.due_dateFa/Platnosc/DataZaplaty

Nota: KSeF no admet dades de targeta (BT-87, BT-88), mandats de domiciliació (BT-89), referències de creditor (BT-90), text de termes de pagament (BT-20) ni informació de remesa (BT-83).

Aquest mapeig està descrit per a una factura emesa. Si vols mapar una factura rebuda, intercanvia Podmiot1 i Podmiot2.

El Podmiot1 s’omple automàticament a partir de la configuració del teu compte. Això inclou el nom de l’empresa, el NIP i l’adreça.

BT IDBusiness TermCamp API (B2Brouter)XPath KSeF FA(3)
Prefix de país del venedoraccount.country en majúsculesPodmiot1/PrefiksPodatnika
BT-31ID fiscal del venedor (NIP)account.tin_value sense prefix de paísPodmiot1/DaneIdentyfikacyjne/NIP
BT-27Nom del venedoraccount.namePodmiot1/DaneIdentyfikacyjne/Nazwa
BT-40País del venedoraccount.country en majúsculesPodmiot1/Adres/KodKraju
BT-35Carrer del venedoraccount.addressPodmiot1/Adres/AdresL1
BT-37,38Codi postal i ciutat del venedoraccount.postalcode + account.cityPodmiot1/Adres/AdresL2
BT-29-0GLN del venedoraccount.cin_value (si cin_scheme = 88)Podmiot1/Adres/GLN
BT-42Telèfon del venedoraccount.phonePodmiot1/DaneKontaktowe/Telefon
BT-43Correu del venedoraccount.emailPodmiot1/DaneKontaktowe/Email
REGON del venedoraccount.routing_codes.cinX (scheme 8037)Stopka/Rejestry/REGON
KRS del venedoraccount.routing_codes.cinX (scheme 8036)Stopka/Rejestry/KRS
BDO del venedoraccount.routing_codes.cinX (scheme 8038)Stopka/Rejestry/BDO
BT IDBusiness TermCamp API (B2Brouter)XPath KSeF FA(3)
BT-48ID fiscal del compradorinvoice.contact.tin_valuePL: Podmiot2/DaneIdentyfikacyjne/NIP; UE: NrVatUE; fora UE: NrID
País fiscal del comprador (UE)invoice.contact.country en majúsculesPodmiot2/DaneIdentyfikacyjne/KodUE
País fiscal del comprador (fora UE)invoice.contact.country en majúsculesPodmiot2/DaneIdentyfikacyjne/KodKraju
Indicador sense ID fiscalDerivat: 1 quan contact.tin_value és buitPodmiot2/DaneIdentyfikacyjne/BrakID
BT-44Nom del compradorinvoice.contact.namePodmiot2/DaneIdentyfikacyjne/Nazwa
BT-55País del compradorinvoice.contact.country en majúsculesPodmiot2/Adres/KodKraju
BT-50Carrer del compradorinvoice.contact.addressPodmiot2/Adres/AdresL1
BT-52,53Codi postal i ciutat del compradorinvoice.contact.postalcode + invoice.contact.cityPodmiot2/Adres/AdresL2
BT-46-0GLN del compradorinvoice.contact.cin_value (si cin_scheme = 88)Podmiot2/Adres/GLN

KSeF admet múltiples rols de tercers mitjançant l’element Podmiot3. Es genera un Podmiot3 quan hi ha informació de lliurament o quan la factura té un objecte third_party.

Codi de rolthird_party.role de B2BrouterDescripció
2delivery_recipientDestinatari del lliurament
3original_supplierEntitat original
4additional_buyerComprador addicional
5invoice_issuerEmissor de la factura en nom del contribuent
6payerPagador en nom del comprador
7local_government_unit_issuerUnitat de govern local emissora
8local_government_unit_recipientUnitat de govern local receptora (JST)
9vat_group_member_issuerMembre emissor del grup d’IVA
10vat_group_member_recipientMembre receptor del grup d’IVA (GV)
11employeeEmpleat

La informació de lliurament es mapeja a Podmiot3 amb codi de rol 2 quan invoice.delivery_address és present. L’adreça de lliurament també es duplica sota Fa/WarunkiTransakcji/Transport/WysylkaDo.

BT IDBusiness TermCamp API (B2Brouter)XPath KSeF FA(3)
BT-70Nom de la part de lliuramentinvoice.delivery_party_namePodmiot3/DaneIdentyfikacyjne/Nazwa
BT-71ID de la ubicació de lliurament (GLN)invoice.delivery_location_id (si és GLN/088)Podmiot3/Adres/GLN
BT-75Carrer de lliuramentinvoice.delivery_addressPodmiot3/Adres/AdresL1 i Fa/WarunkiTransakcji/Transport/WysylkaDo/AdresL1
BT-77,78Codi postal i ciutat de lliuramentinvoice.delivery_postalcode + invoice.delivery_cityPodmiot3/Adres/AdresL2 i Fa/WarunkiTransakcji/Transport/WysylkaDo/AdresL2
BT-80País de lliuramentinvoice.delivery_countryPodmiot3/Adres/KodKraju i Fa/WarunkiTransakcji/Transport/WysylkaDo/KodKraju
Rol del tercerFix: 2Podmiot3/Rola

Nota: KSeF no admet data de lliurament (BT-72) ni camps de període de lliurament.

JST / GV / altres rols (3–11) — v2026-04-20+

Section titled “JST / GV / altres rols (3–11) — v2026-04-20+”
Business TermCamp API (B2Brouter)XPath KSeF FA(3)
Nom del tercerinvoice.third_party.namePodmiot3/DaneIdentyfikacyjne/Nazwa
ID fiscal del tercerinvoice.third_party.tin_valuePodmiot3/DaneIdentyfikacyjne/NIP, NrVatUE o NrID
Adreça del tercerinvoice.third_party.addressPodmiot3/Adres/AdresL1
Codi postal i ciutat del tercerinvoice.third_party.postalcode + invoice.third_party.cityPodmiot3/Adres/AdresL2
País del tercerinvoice.third_party.countryPodmiot3/Adres/KodKraju
Rol del tercerinvoice.third_party.role → codi de rolPodmiot3/Rola
Indicador JSTinvoice.apply_to_local_government_unitPodmiot2/JST (1 si és cert, 2 si és fals)
Indicador GVinvoice.apply_to_vat_group_memberPodmiot2/GV (1 si és cert, 2 si és fals)

Mapeig a nivell de línia de factura (FaWiersz)

Section titled “Mapeig a nivell de línia de factura (FaWiersz)”

Tots els atributs següents són propietats dels objectes continguts a invoice.invoice_lines_attributes[].

Per a factures normals (VAT, KOR, UPR, ROZ), les línies es renderitzen com a elements FaWiersz. Per a factures de bestreta (ZAL, KOR_ZAL), es renderitzen com a ZamowienieWiersz.

BT IDBusiness TermCamp API (objecte de línia)XPath KSeF FA(3)
BT-126ID de línia de facturapositionFa/FaWiersz/NrWierszaFa
BT-153Nom de l’articledescriptionFa/FaWiersz/P_7
BT-130Codi d’unitatunitFa/FaWiersz/P_8A
BT-129Quantitat facturadaquantityFa/FaWiersz/P_8B
BT-155Identificador del venedorarticle_codeFa/FaWiersz/Indeks
BT-157Identificador estàndard (GTIN)article_code2Fa/FaWiersz/GTIN
BT-146Import del preupriceFa/FaWiersz/P_9A
Preu unitari descomptatDerivat de allowance_charges_attributes[]{allowance_charge_indicator: "allowance"} dividit per quantityFa/FaWiersz/P_10
BT-131Import net de líniaextension_amount (si no es proporciona, es calcula)Fa/FaWiersz/P_11
Import fiscal de líniaCalculat a partir d’impostosFa/FaWiersz/P_11Vat
Codi fiscalDerivat de les característiques fiscalsFa/FaWiersz/P_12

Mapeig de propietats addicionals d’ítem (DodatkowyOpis per línia)

Section titled “Mapeig de propietats addicionals d’ítem (DodatkowyOpis per línia)”

Cada línia de factura pot portar propietats addicionals clau-valor que es mapegen a elements DodatkowyOpis a nivell de línia.

BT IDBusiness TermCamp APIXPath KSeF FA(3)
Referència del número de líniaposition de la línia pareFa/DodatkowyOpis/NrWiersza
BT-160Nom de l’atributname (màx. 255 car.)Fa/DodatkowyOpis/Klucz
BT-161Valor de l’atributvalue (màx. 255 car.)Fa/DodatkowyOpis/Wartosc

Exemple JSON:

{
"invoice": {
"invoice_lines_attributes": [
{
"position": 1,
"description": "Product A",
"additional_item_properties_attributes": [
{ "name": "Color", "value": "Red" },
{ "name": "Size", "value": "XL" }
]
}
]
}
}

Resultat XML KSeF:

<tns:DodatkowyOpis>
<tns:NrWiersza>1</tns:NrWiersza>
<tns:Klucz>Color</tns:Klucz>
<tns:Wartosc>Red</tns:Wartosc>
</tns:DodatkowyOpis>
<tns:DodatkowyOpis>
<tns:NrWiersza>1</tns:NrWiersza>
<tns:Klucz>Size</tns:Klucz>
<tns:Wartosc>XL</tns:Wartosc>
</tns:DodatkowyOpis>

Si estableixes una propietat addicional amb nom unit_of_measure, pots especificar un codi d’unitat en text lliure per al camp P_8A, sobreescrivint la codelist estàndard.

{
"additional_item_properties_attributes": [
{ "name": "unit_of_measure", "value": "szt." }
]
}

Aquesta propietat es consumeix directament com a codi d’unitat de la línia (Fa/FaWiersz/P_8A) i no s’emet com a element DodatkowyOpis.

Tots els atributs següents són propietats dels objectes continguts a invoice.invoice_lines_attributes[].taxes_attributes[].

BT IDBusiness TermCamp API (objecte d’impost)Mapatge KSeF FA(3)
BT-118Codi de categoria fiscalcategoryS’utilitza per derivar el codi fiscal P_12
BT-119Percentatge d’impost aplicablepercentS’utilitza per derivar P_12 i les agregacions P_13_x/P_14_x
BT-120Motiu d’exempció fiscalcommentFa/Adnotacje/Zwolnienie/P_19A; també accepta un codi KSeF P_12 (zw, np I, np II, 0 KR, 0 WDT, 0 EX, oo) per sobreescriure el valor derivat

Agregació de desglossaments fiscals (P_13_x / P_14_x)

Section titled “Agregació de desglossaments fiscals (P_13_x / P_14_x)”

KSeF requereix que els imports fiscals s’agreguin per tipus a nivell de capçalera. Aquests camps es calculen automàticament a partir dels tax breakdowns de la factura:

Camp KSeFDescripcióTipus / categoria fiscal
P_13_1Base imposable al tipus general23% o 22%
P_14_1Quota al tipus general23% o 22%
P_14_1WQuota al tipus general convertida a PLN23% o 22% (factures en moneda estrangera)
P_13_2Base imposable al primer tipus reduït8% o 7%
P_14_2Quota al primer tipus reduït8% o 7%
P_14_2WQuota al primer tipus reduït convertida a PLN8% o 7% (factures en moneda estrangera)
P_13_3Base imposable al segon tipus reduït5%
P_14_3Quota al segon tipus reduït5%
P_14_3WQuota al segon tipus reduït convertida a PLN5% (factures en moneda estrangera)
P_13_6_1Valor total de vendes domèstiques al 0%0% domèstic
P_13_6_2Valor total de lliuraments intracomunitaris de béns al 0%0% intra-UE
P_13_6_3Valor total d’exportacions al 0%0% exportació
P_13_7Valor total de vendes exemptesExemptes (categoria E, àmbit domèstic)
P_13_8Valor total de reverse charge transfrontererCategoria AE, àmbit no domèstic
P_13_10Valor total de reverse charge domèsticCategoria AE, àmbit domèstic
P_15Import total degutSuma de totes les categories