---
title: "Check e-invoicing readiness"
method: GET
path: "/peppol/{ico}"
tags: ["VAT & Tax"]
---

# Check e-invoicing readiness

`GET /peppol/{ico}`

## Request

- Base URL: `https://api.apino.sk/api/v1`
- URL: `https://api.apino.sk/api/v1/peppol/{ico}`
- Auth: HTTP bearer

Whether a company can be sent an electronic invoice over the Peppol network,
together with the VAT standing that decides whether it must issue one.

From **1 January 2027** (zákon č. 385/2025 Z. z., § 76a zákona o DPH) a Slovak
VAT payer may not issue a paper or PDF invoice to another business: the invoice
must be structured XML delivered over Peppol. Every taxable person with a DIČ —
including non-VAT payers, živnostníci and landlords — must be able to receive one.

The network addresses a Slovak participant as `0245:<DIČ>`, never by IČO. This
endpoint takes the IČO you already hold and does that translation for you.

**The answer is evidence, not a verdict.** `on_network` says the Service Metadata
Locator resolves; `can_receive_invoice` says the participant's SMP actually
advertises Peppol BIS Billing 3.0, which is a different and stricter thing.
`checked` is `false` when the question could not be asked at all — no DIČ on
file, or a lookup that did not complete — and that is deliberately distinct from
a company genuinely being absent.

`note` carries the cases that would otherwise mislead, most importantly a company
registered under a scheme other than `0245`: it is on the network, and an invoice
addressed the way the mandate specifies will still not reach it.

Resolution is against the SML directly rather than the public Peppol Directory.
Directory listing is opt-in, so a Directory-backed answer reports registered
companies as absent.

**This is what the network said when we asked, not a delivery guarantee.**
`peppol.checked_at` is when that was; a participant can register, move to
another access point or leave at any time after it, and whether a particular
invoice arrives is decided by the sender's and the receiver's access points,
not by this answer. The `vat` half is the same extract of the Financial
Administration's public lists as `GET /vat/verify` and carries the same caveat:
it is not a confirmation issued by the Financial Administration.

> Slovak (SK) data only.

## Path parameters

- `ico` string, required

## Response `200`

E-invoicing status

- EInvoicingStatus: Whether an electronic invoice can reach this company from 1 January 2027, and the VAT standing that decides whether it must issue them.
  - `ico` string: The identifier you asked about.
  - `name` string: The register's spelling of the name, where the company is in it.
  - `in_register` boolean: Whether the company is in the RPO register. A subject can hold a DIČ and not be in it.
  - `dic` string: The ten-digit tax number the Peppol network addresses. Absent when the Financial Administration's list does not carry this IČO, in which case the network cannot be asked about at all — which is why `peppol.checked` is then false.
  - `peppol` PeppolState: Evidence rather than a verdict. There is deliberately no single `ready` flag: a wrong `true` means an invoice silently fails to arrive, and a wrong `false` means chasing a customer who was fine.
    - `checked` boolean: False when the question could not be asked — no DIČ on file, or a lookup that did not complete. Distinct from the company genuinely being absent.
    - `on_network` boolean: Whether the Service Metadata Locator resolves this participant to an SMP.
    - `participant_id` string: The address on the network, e.g. `0245:2020270780`.
    - `scheme` string: The EAS scheme the participant is registered under. `0245` is what the Slovak mandate addresses; anything else is reachable in principle but not at the address an e-invoice will use. See `note`.
    - `smp` string: The Service Metadata Publisher serving this participant.
    - `can_receive_invoice` boolean: Whether the SMP advertises Peppol BIS Billing 3.0. Stricter than `on_network`: a participant can be registered and advertise no invoice document type at all. Absent when the SMP was not read.
    - `document_types` string[]: Every document type the SMP advertises, unfiltered.
    - `first_seen_at` string, date-time: When we first saw this participant on the network, not when we last confirmed it.
    - `checked_at` string, date-time: When the network was last asked about this participant: during this request, by the nightly sweep, or — for an answer served from the lookup cache — up to ten minutes before the request. The answer describes the network as it stood then.
    - `note` string: Set where the plain fields would mislead — most importantly a participant registered under a scheme other than `0245`, or one on the network that advertises no invoice document type.
  - `vat` VATState
    - `is_vat_payer` boolean: Whether the company is a VAT payer today. A company struck off years ago and registered again is a payer; presence in the erasure list is history, not status. A VAT payer (*platiteľ DPH*) under § 4, § 4b or § 5 of the VAT Act. **Not the same as holding an IČ DPH:** a subject registered under § 7 or § 7a has one for cross-border dealings, charges no VAT on domestic supplies and has no right to deduct — `is_vat_payer` is `false` for it, with `ic_dph` and `registration_type` still filled in. Decided the way the Financial Administration publishes it: a payer is a subject with a date it became one.
    - `ic_dph` string
    - `deregistered_on` string, date: Set only when the company has left the VAT register and not returned.
    - `deregistration_reason` 'erased' | 'not_in_register': `erased` is a fact published by the Financial Administration with its own date. `not_in_register` is an inference drawn from the company no longer appearing in the export, and claims no more than that.
    - `deregistration_grounds` DeregistrationGrounds: Present while the VAT payer is on the Financial Administration's list of payers with grounds for cancellation of registration (`ds_dphz`, § 69 ods. 14 of the VAT Act); absent otherwise. Only ever set on a current VAT payer: the list keeps a few entries for subjects since struck off or now registered under § 7 or § 7a, and for those `deregistration_reason` or `registration_type` already says what matters. The company **is still a VAT payer** — `is_vat_payer` is unaffected. The tax authority has found grounds to cancel the registration (under § 81 ods. 3 písm. b) bod 2 of the Act) and has made that public. It is a warning, not a cancellation. When a registration is cancelled the company leaves this list and `deregistration_reason` becomes `erased`. Being on the list is not by itself one of the grounds § 69 ods. 13 names for a customer to become liable for the supplier's unpaid VAT. It is a published risk signal: a reason to look more closely before paying.
      - `published_on` string, date, required: When the Financial Administration published the company on the list (YYYY-MM-DD).
      - `violation_year` string: The year the grounds arose, when the list states it.
    - `tax_reliability` string: `vysoko spoľahlivý`, `spoľahlivý` or `menej spoľahlivý`.

## Other responses

- `400`: Validation error
- `401`: Missing or invalid API key
- `404`: Resource not found
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/apino/apis/apino-api.md) · [All operations](https://skmtc.dev/apino/apis/apino-api/llms.txt) · [OpenAPI document](https://skmtc.dev/apino/apis/apino-api/revisions/d172569847cd?raw)
