Verify Polish companies: VAT white list (MF), KRS, VIES, payment audit PDF, monitoring.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer API key. Free key: https://api.almmity.com/#klucz
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Once a day, check one Polish contractor (one NIP) in public registries. The check reads VAT status and white-list bank accounts from the Ministry of Finance, and reads KRS for liquidation, bankruptcy or restructuring. It stores the NIP, any bank accounts you choose to watch, an optional label, and a snapshot of that check. Change alerts go only to the e-mail of the signed-in account owner (the OAuth-linked KSeF Płatności account, or the owner of the almmity API key). It never e-mails the contractor and it never contacts anyone else. It does not accept a webhook address or another e-mail address. If this account has no e-mail on file, the watch is still stored and alerts are visible with list_watches and in the panel. Adding the same NIP again updates that watch. Stop monitoring with remove_watch. Requires sign-in (OAuth) or an almmity API key. Does not accept a KSeF token or a password.
Polish NIP of the one contractor to monitor.
Optional label stored with this NIP.
Bank accounts you pay this contractor to. Optional.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Once a day, check one Polish contractor (one NIP) in public registries. The check reads VAT status and white-list bank accounts from the Ministry of Finance, and reads KRS for liquidation, bankruptcy or restructuring. It stores the NIP, any bank accounts you choose to watch, an optional label, and a snapshot of that check. Change alerts go only to the e-mail of the signed-in account owner (the OAuth-linked KSeF Płatności account, or the owner of the almmity API key). It never e-mails the contractor and it never contacts anyone else. It does not accept a webhook address or another e-mail address. If this account has no e-mail on file, the watch is still stored and alerts are visible with list_watches and in the panel. Adding the same NIP again updates that watch. Stop monitoring with remove_watch. Requires sign-in (OAuth) or an almmity API key. Does not accept a KSeF token or a password.
| Argument | Type | Description |
|---|---|---|
| nip* | string | Polish NIP of the one contractor to monitor. |
| label | string | Optional label stored with this NIP. |
| accounts | array | Bank accounts you pay this contractor to. Optional. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nip"
],
"properties": {
"nip": {
"type": "string",
"description": "Polish NIP of the one contractor to monitor."
},
"label": {
"type": "string",
"maxLength": 120,
"description": "Optional label stored with this NIP."
},
"accounts": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20,
"description": "Bank accounts you pay this contractor to. Optional."
}
},
"additionalProperties": false
}Build a Polish bank transfer title that carries one KSeF invoice number or a collective identifier (art. 108g VAT). mode=mpp builds the split-payment message /VAT/IDC/INV/TXT and checks the supplier NIP checksum. Does not send a payment. Callable without an API key.
| Argument | Type | Description |
|---|---|---|
| mode | string | |
| vatAmount | any | |
| description | string | |
| grossAmount | any | |
| ksefNumbers | array | |
| supplierNip | string | |
| collectiveId | string | |
| invoiceNumber | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"mode": {
"enum": [
"zwykly",
"mpp"
],
"type": "string"
},
"vatAmount": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 20
}
]
},
"description": {
"type": "string",
"maxLength": 60
},
"grossAmount": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 20
}
]
},
"ksefNumbers": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40
},
"maxItems": 20
},
"supplierNip": {
"type": "string",
"maxLength": 20
},
"collectiveId": {
"type": "string",
"maxLength": 40
},
"invoiceNumber": {
"type": "string",
"maxLength": 80
}
},
"additionalProperties": false
}Calculate Polish late-payment interest with the same rates and day count as ksef.almmity.com: commercial (NBP reference + 10 pp), medical public debtor (+ 8 pp) or statutory (reference + 5.5 pp), plus the 40/70/100 EUR compensation converted at the NBP euro rate. Returns the segments. It creates a temporary PDF file on api.almmity.com, reachable by an unguessable link for one hour, then deleted. Does not file anything. Callable without an API key. The NBP rate lookup reads a public API and does not change it.
| Argument | Type | Description |
|---|---|---|
| asOf | string | Calculation date, default today Europe/Warsaw. |
| iban | string | |
| kind | string | Default handlowe (commercial transactions). |
| place | string | |
| debtor | any | |
| creditor | object | |
| invoices* | array | |
| compensation | boolean | 40/70/100 EUR recovery compensation. Default on, except for ustawowe. |
| payWithinDays | integer |
Query the Ministry of Finance VAT white list (wl-api.mf.gov.pl). Returns the full taxpayer card: name, NIP, VAT status, REGON, KRS, address, every account (groups of 4), registration/denial/removal/restoration dates with legal basis, representatives, authorized clerks, partners, virtual accounts, and the MF requestId (legal proof of the answer). decision is czynny, zwolniony, niezarejestrowany or not found. Pass nip, or nips (up to 30, one search/nips call) for a batch with progress. Optionally bank_account to verify that account against the NIP: result TAK or NIE plus a separate requestId (the 15 000 PLN proof). When both nip and bank_account are set, the top-level requestId is the account-check id and detail.requestId is the taxpayer-search id. Or pass regon, or bank_account alone to find the owner. Reads a public registry and does not change it. Callable without an API key, within the daily per-IP limit. Errors and the daily MF limit come back in Polish.
| Argument | Type | Description |
|---|---|---|
| nip | string | |
| date | string | YYYY-MM-DD, default today (Europe/Warsaw). MF allows up to 5 years back. |
| nips | array | Up to 30 NIPs, checked with one MF search/nips request. Each entry has decision and the full card. |
| regon | string | |
| bank_account | string | 26-digit NRB or PL IBAN. With nip, verifies the account (TAK/NIE). Alone, finds the owner. |
Concise risk summary for a Polish contractor by NIP: VAT status, whitelisted accounts (optionally verify one bank account), and KRS liquidation, bankruptcy or restructuring flags. Reads public registries and does not change them. Callable without an API key, within the daily per-IP limit.
| Argument | Type | Description |
|---|---|---|
| nip* | string | |
| bank_account | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nip"
],
"properties": {
"nip": {
"type": "string"
},
"bank_account": {
"type": "string"
}
},
"additionalProperties": false
}Draft a Polish pre-court payment demand (wezwanie do zapłaty) from the same interest calculation as calculate_late_interest, including art. 187 of the Code of Civil Procedure. Returns the text. It creates a temporary PDF file on api.almmity.com, reachable by an unguessable link for one hour, then deleted. Does not send the letter. Callable without an API key.
| Argument | Type | Description |
|---|---|---|
| asOf | string | Calculation date, default today Europe/Warsaw. |
| iban | string | |
| kind | string | Default handlowe (commercial transactions). |
| place | string | |
| debtor | any | |
| creditor | object | |
| invoices* | array | |
| compensation | boolean | 40/70/100 EUR recovery compensation. Default on, except for ustawowe. |
| payWithinDays | integer | |
| documentNumber | string |
Prepare an Elixir-0 transfer file for selected cost invoices on the linked KSeF Płatności account. Each account is re-checked on the MF white list for today; unsafe lines are left out of the file. Requires OAuth scope transfers.prepare. The file is not sent to a bank. Never ask for a KSeF token or a password.
| Argument | Type | Description |
|---|---|---|
| invoiceIds* | array |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"invoiceIds"
],
"properties": {
"invoiceIds": {
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0
},
"maxItems": 50,
"minItems": 1
}
},
"additionalProperties": false
}Combine the MF VAT white list and KRS into one normalized company profile. Provide one of nip, regon or krs. Reads public registries and does not change them. Callable without an API key, within the daily per-IP limit.
| Argument | Type | Description |
|---|---|---|
| krs | string | |
| nip | string | |
| regon | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"krs": {
"type": "string"
},
"nip": {
"type": "string"
},
"regon": {
"type": "string"
}
},
"additionalProperties": false
}Build an FA(3) correction invoice (RodzajFaktury KOR). Header amounts are the difference versus the original. Pass beforeLines to emit state-before (StanPrzed) and state-after rows; otherwise lines are the delta. Does not send the invoice to KSeF. Callable without an API key.
| Argument | Type | Description |
|---|---|---|
| gv | string | Buyer is in a VAT group: 1 yes, 2 no (default). |
| jst | string | Buyer is a local-government unit: 1 yes, 2 no (default). |
| iban | string | Polish NRB, 26 digits or PL IBAN. |
| note | string | |
| paid | boolean | |
| buyer* | any | |
| lines* | array | |
| place | string | |
| number* | string | |
| reason |
Build a sales invoice XML in the FA(3) schema (kodSystemowy FA (3), variant 3) from seller, buyer and line items. Header VAT is computed from the summed net base of each rate. Does not send the invoice to KSeF and does not store it. Callable without an API key.
| Argument | Type | Description |
|---|---|---|
| gv | string | Buyer is in a VAT group: 1 yes, 2 no (default). |
| jst | string | Buyer is a local-government unit: 1 yes, 2 no (default). |
| iban | string | Polish NRB, 26 digits or PL IBAN. |
| note | string | |
| paid | boolean | |
| buyer* | any | |
| lines* | array | |
| place | string | |
| number* | string | |
| seller |
Current KRS (National Court Register) extract: name, legal form, address, share capital, board and representation, proxies, PKD codes, liquidation and bankruptcy flags. Reads a public registry and does not change it. Callable without an API key, within the daily per-IP limit.
| Argument | Type | Description |
|---|---|---|
| krs* | string | KRS number, e.g. 0000028860 |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"krs"
],
"properties": {
"krs": {
"type": "string",
"description": "KRS number, e.g. 0000028860"
}
},
"additionalProperties": false
}List cost invoices already stored on the linked KSeF Płatności account: number, seller, amounts, due date, payment status and white-list check. Requires OAuth scope invoices.read. Never ask the user for a KSeF token or a password. Does not download new invoices from KSeF.
| Argument | Type | Description |
|---|---|---|
| limit | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1
}
},
"additionalProperties": false
}List contractors monitored for your account, with the last stored status and recent change events. Reads only this server's database. Requires sign-in (OAuth) or an almmity API key.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}Check the checksum of a Polish NIP (weights 6,5,7,2,3,4,5,6,7). Local arithmetic only. Callable without an API key. Does not look the NIP up in any registry.
| Argument | Type | Description |
|---|---|---|
| nip* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nip"
],
"properties": {
"nip": {
"type": "string",
"maxLength": 20
}
},
"additionalProperties": false
}Before paying a Polish contractor, verify the NIP and bank account on the MF VAT white list for the payment date, check KRS and VIES, and store a PDF proof of due diligence (MF request IDs, timestamps, findings, SHA-256). Flags the 15 000 PLN rule (art. 117ba of the Tax Ordinance, split payment). Requires an almmity API key. Does not send a payment.
| Argument | Type | Description |
|---|---|---|
| nip* | string | |
| date | string | YYYY-MM-DD, default today (Europe/Warsaw). MF allows up to 5 years back. |
| amount | number | |
| account* | string | |
| invoice | string | Invoice number |
| currency | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nip",
"account"
],
"properties": {
"nip": {
"type": "string"
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD, default today (Europe/Warsaw). MF allows up to 5 years back."
},
"amount": {
"type": "number",
"exclusiveMinimum": 0
},
"account": {
"type": "string"
},
"invoice": {
"type": "string",
"maxLength": 80,
"description": "Invoice number"
},
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3
}
},
"additionalProperties": false
}Remove one contractor, identified by NIP, from monitoring for your account. Deletes the watch and stops future alerts. Requires sign-in (OAuth) or an almmity API key.
| Argument | Type | Description |
|---|---|---|
| nip* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nip"
],
"properties": {
"nip": {
"type": "string"
}
},
"additionalProperties": false
}Parse an FA(3) XML into a short Polish summary: parties, dates, net, VAT, gross, split payment, due date and bank account. Returns a link to the XML-to-PDF viewer. It creates a temporary PDF file on api.almmity.com, reachable by an unguessable link for one hour, then deleted. Nothing is sent to KSeF or to anyone. Callable without an API key.
| Argument | Type | Description |
|---|---|---|
| xml* | string | FA(3) invoice XML. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string",
"maxLength": 1000000,
"minLength": 1,
"description": "FA(3) invoice XML."
}
},
"additionalProperties": false
}List unpaid cost invoices on the linked KSeF Płatności account that are overdue or due within withinDays (default 7, max 90). Requires OAuth scope invoices.read. Never ask for a KSeF token or a password.
| Argument | Type | Description |
|---|---|---|
| withinDays | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"withinDays": {
"type": "integer",
"maximum": 90,
"minimum": 0
}
},
"additionalProperties": false
}Validate a KSeF FA(3) invoice XML against the official Ministry of Finance schema (when xmllint and the vendored XSD are available) and against business rules: NIP checksum, totals, bank account checksum, required JST/GV, correction references. Returns Polish error messages. Does not send the invoice to KSeF. Callable without an API key.
| Argument | Type | Description |
|---|---|---|
| xml* | string | FA(3) invoice XML. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string",
"maxLength": 1000000,
"minLength": 1,
"description": "FA(3) invoice XML."
}
},
"additionalProperties": false
}Validate an EU VAT number via the European Commission VIES REST API, for example PL7740001454 or DE811569869. Reads a public registry and does not change it. Callable without an API key, within the daily per-IP limit.
| Argument | Type | Description |
|---|---|---|
| eu_vat* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"eu_vat"
],
"properties": {
"eu_vat": {
"type": "string",
"maxLength": 20,
"minLength": 4
}
},
"additionalProperties": false
}| documentNumber | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"invoices"
],
"properties": {
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Calculation date, default today Europe/Warsaw."
},
"iban": {
"type": "string",
"maxLength": 40
},
"kind": {
"enum": [
"handlowe",
"leczniczy",
"ustawowe"
],
"type": "string",
"description": "Default handlowe (commercial transactions)."
},
"place": {
"type": "string",
"maxLength": 80
},
"debtor": {
"$ref": "#/properties/creditor"
},
"creditor": {
"type": "object",
"properties": {
"nip": {
"type": "string",
"maxLength": 20
},
"name": {
"type": "string",
"maxLength": 200
},
"address": {
"type": "string",
"maxLength": 300
}
},
"additionalProperties": false
},
"invoices": {
"type": "array",
"items": {
"type": "object",
"required": [
"amount",
"dueDate"
],
"properties": {
"amount": {
"type": "number",
"exclusiveMinimum": 0
},
"number": {
"type": "string",
"maxLength": 80
},
"dueDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"paidDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"additionalProperties": false
},
"maxItems": 30,
"minItems": 1
},
"compensation": {
"type": "boolean",
"description": "40/70/100 EUR recovery compensation. Default on, except for ustawowe."
},
"payWithinDays": {
"type": "integer",
"maximum": 60,
"minimum": 1
},
"documentNumber": {
"type": "string",
"maxLength": 40
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"nip": {
"type": "string"
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "YYYY-MM-DD, default today (Europe/Warsaw). MF allows up to 5 years back."
},
"nips": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 30,
"description": "Up to 30 NIPs, checked with one MF search/nips request. Each entry has decision and the full card."
},
"regon": {
"type": "string"
},
"bank_account": {
"type": "string",
"description": "26-digit NRB or PL IBAN. With nip, verifies the account (TAK/NIE). Alone, finds the owner."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"invoices"
],
"properties": {
"asOf": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Calculation date, default today Europe/Warsaw."
},
"iban": {
"type": "string",
"maxLength": 40
},
"kind": {
"enum": [
"handlowe",
"leczniczy",
"ustawowe"
],
"type": "string",
"description": "Default handlowe (commercial transactions)."
},
"place": {
"type": "string",
"maxLength": 80
},
"debtor": {
"$ref": "#/properties/creditor"
},
"creditor": {
"type": "object",
"properties": {
"nip": {
"type": "string",
"maxLength": 20
},
"name": {
"type": "string",
"maxLength": 200
},
"address": {
"type": "string",
"maxLength": 300
}
},
"additionalProperties": false
},
"invoices": {
"type": "array",
"items": {
"type": "object",
"required": [
"amount",
"dueDate"
],
"properties": {
"amount": {
"type": "number",
"exclusiveMinimum": 0
},
"number": {
"type": "string",
"maxLength": 80
},
"dueDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"paidDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"additionalProperties": false
},
"maxItems": 30,
"minItems": 1
},
"compensation": {
"type": "boolean",
"description": "40/70/100 EUR recovery compensation. Default on, except for ustawowe."
},
"payWithinDays": {
"type": "integer",
"maximum": 60,
"minimum": 1
},
"documentNumber": {
"type": "string",
"maxLength": 40
}
},
"additionalProperties": false
}| string |
| seller* | object |
| dueDate | string |
| currency | string | ISO 4217, default PLN. |
| paidDate | string |
| saleDate | string |
| corrected* | object |
| issueDate* | string |
| beforeLines | array | State before correction, same length as lines. Omit to send lines as the difference. |
| splitPayment | boolean | Set true to mark MPP (P_18A). |
| correctionType | number | FA(3) TypKorekty. Default 2. |
| exemptionBasis | string | Required when any line uses vatRate zw. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"seller",
"buyer",
"number",
"issueDate",
"lines",
"reason",
"corrected"
],
"properties": {
"gv": {
"enum": [
"1",
"2"
],
"type": "string",
"description": "Buyer is in a VAT group: 1 yes, 2 no (default)."
},
"jst": {
"enum": [
"1",
"2"
],
"type": "string",
"description": "Buyer is a local-government unit: 1 yes, 2 no (default)."
},
"iban": {
"type": "string",
"maxLength": 40,
"description": "Polish NRB, 26 digits or PL IBAN."
},
"note": {
"type": "string",
"maxLength": 256
},
"paid": {
"type": "boolean"
},
"buyer": {
"$ref": "#/properties/seller"
},
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"qty",
"vatRate"
],
"properties": {
"qty": {
"type": "number",
"description": "Quantity. Negative only for a correction delta."
},
"name": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"unit": {
"type": "string",
"maxLength": 256,
"description": "Unit, default szt."
},
"unitNet": {
"type": "number",
"description": "Net unit price. Provide this or unitGross, not both."
},
"vatRate": {
"enum": [
"23",
"22",
"8",
"7",
"5",
"0 KR",
"0 WDT",
"0 EX",
"zw"
],
"type": "string"
},
"unitGross": {
"type": "number"
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1
},
"place": {
"type": "string",
"maxLength": 256
},
"number": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"reason": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"seller": {
"type": "object",
"required": [
"name",
"addressLine1",
"addressLine2"
],
"properties": {
"nip": {
"type": "string",
"maxLength": 20,
"description": "Polish NIP, 10 digits. Required unless buyer.brakId is true."
},
"name": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"email": {
"type": "string",
"format": "email",
"maxLength": 256
},
"brakId": {
"type": "boolean",
"description": "Buyer has no tax id (FA(3) BrakID=1)."
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "ISO country code, default PL."
},
"addressLine1": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"addressLine2": {
"type": "string",
"maxLength": 512,
"minLength": 1
}
},
"additionalProperties": false
},
"dueDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "ISO 4217, default PLN."
},
"paidDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"saleDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"corrected": {
"type": "object",
"required": [
"number",
"issueDate"
],
"properties": {
"number": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"issueDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"ksefNumber": {
"type": "string",
"maxLength": 64,
"description": "KSeF number of the invoice being corrected, when it has one."
}
},
"additionalProperties": false
},
"issueDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"beforeLines": {
"type": "array",
"items": {
"$ref": "#/properties/lines/items"
},
"maxItems": 100,
"description": "State before correction, same length as lines. Omit to send lines as the difference."
},
"splitPayment": {
"type": "boolean",
"description": "Set true to mark MPP (P_18A)."
},
"correctionType": {
"enum": [
1,
2,
3
],
"type": "number",
"description": "FA(3) TypKorekty. Default 2."
},
"exemptionBasis": {
"type": "string",
"maxLength": 256,
"description": "Required when any line uses vatRate zw."
}
},
"additionalProperties": false
}| object |
| dueDate | string |
| currency | string | ISO 4217, default PLN. |
| paidDate | string |
| saleDate | string |
| issueDate* | string |
| splitPayment | boolean | Set true to mark MPP (P_18A). |
| exemptionBasis | string | Required when any line uses vatRate zw. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"seller",
"buyer",
"number",
"issueDate",
"lines"
],
"properties": {
"gv": {
"enum": [
"1",
"2"
],
"type": "string",
"description": "Buyer is in a VAT group: 1 yes, 2 no (default)."
},
"jst": {
"enum": [
"1",
"2"
],
"type": "string",
"description": "Buyer is a local-government unit: 1 yes, 2 no (default)."
},
"iban": {
"type": "string",
"maxLength": 40,
"description": "Polish NRB, 26 digits or PL IBAN."
},
"note": {
"type": "string",
"maxLength": 256
},
"paid": {
"type": "boolean"
},
"buyer": {
"$ref": "#/properties/seller"
},
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"qty",
"vatRate"
],
"properties": {
"qty": {
"type": "number",
"description": "Quantity. Negative only for a correction delta."
},
"name": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"unit": {
"type": "string",
"maxLength": 256,
"description": "Unit, default szt."
},
"unitNet": {
"type": "number",
"description": "Net unit price. Provide this or unitGross, not both."
},
"vatRate": {
"enum": [
"23",
"22",
"8",
"7",
"5",
"0 KR",
"0 WDT",
"0 EX",
"zw"
],
"type": "string"
},
"unitGross": {
"type": "number"
}
},
"additionalProperties": false
},
"maxItems": 100,
"minItems": 1
},
"place": {
"type": "string",
"maxLength": 256
},
"number": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"seller": {
"type": "object",
"required": [
"name",
"addressLine1",
"addressLine2"
],
"properties": {
"nip": {
"type": "string",
"maxLength": 20,
"description": "Polish NIP, 10 digits. Required unless buyer.brakId is true."
},
"name": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"email": {
"type": "string",
"format": "email",
"maxLength": 256
},
"brakId": {
"type": "boolean",
"description": "Buyer has no tax id (FA(3) BrakID=1)."
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "ISO country code, default PL."
},
"addressLine1": {
"type": "string",
"maxLength": 512,
"minLength": 1
},
"addressLine2": {
"type": "string",
"maxLength": 512,
"minLength": 1
}
},
"additionalProperties": false
},
"dueDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "ISO 4217, default PLN."
},
"paidDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"saleDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"issueDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"splitPayment": {
"type": "boolean",
"description": "Set true to mark MPP (P_18A)."
},
"exemptionBasis": {
"type": "string",
"maxLength": 256,
"description": "Required when any line uses vatRate zw."
}
},
"additionalProperties": false
}