# Sveračun Public REST API

This is the Sveračun Platform Public REST API specification.
For access and API Keys please contact your Sveračun Platform representative.

Version: v1.0.0

## Servers

TESTING environment
```
https://test.sveracun.hr/api
```

PRODUCTION environment
```
https://hr.sveracun.hr/api
```

## Security

### PublicApiKey

Encrypted API key for accessing Sveračun Public REST API

Type: apiKey
In: header
Name: Authorization

## Download OpenAPI description

[Sveračun Public REST API](https://sveracun-public-api.redocly.app/_bundle/sveracun-openapi.yaml)

## Organizations

Company registration and management operations

### Register a company

 - [POST /rest/v1/organizations/register](https://sveracun-public-api.redocly.app/sveracun-openapi/organizations/companyregister.md): Accepts a JSON payload to register a company with required and optional company data.

### Find organization by vat number

 - [POST /rest/v1/organizations/findByVatNumber](https://sveracun-public-api.redocly.app/sveracun-openapi/organizations/companyfindbyvat.md): Find organization by vat number.

### Check AMS registration status for organization

 - [POST /rest/v1/organizations/amsCheck](https://sveracun-public-api.redocly.app/sveracun-openapi/organizations/organizationamscheck.md): Check if an organization is registered in AMS by VAT number.

## Documents

Invoice/document processing and status management

### Send UBL 2.1 invoice

 - [POST /rest/v1/documents/send](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/documentsend.md): Accepts a UBL 2.1 XML document as raw binary stream and processes it.

### Get Invoice Internal Status

 - [POST /rest/v1/documents/getInternalStatus](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/getinternalinvoicestatus.md): Get Invoice Internal Status.

### Get External Invoice Status

 - [POST /rest/v1/documents/getExternalStatus](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/getexternalinvoicestatus.md): Get External Invoice Status.

### Get Invoices By Internal Status

 - [POST /rest/v1/documents/getByInternalStatus](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/getbyinternalstatus.md): Get Invoice By Status.

### Get Invoices By External Status

 - [POST /rest/v1/documents/getByExternalStatus](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/getbyexternalstatus.md): Get Invoice By External Status.

### Get Document

 - [POST /rest/v1/documents/get](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/get.md): Get Document by documentId and return binary file.

### Get PDF Document

 - [POST /rest/v1/documents/getPdf](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/getpdf.md): Get PDF attachment by documentId and return the PDF file.

### Reject Invoice

 - [POST /rest/v1/documents/reject](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/rejectinvoice.md): Accepts a JSON payload to Set Invoice as Reject.

### Mark Invoice as Paid

 - [POST /rest/v1/documents/paid](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/markpaidinvoice.md): Accepts a JSON payload to Set Invoice as Paid.

### Get Document from Archive

 - [POST /rest/v1/documents/getFromArchive](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/getfromarchive.md): Get Document from Archive.

### Archive Document

 - [POST /rest/v1/documents/archive](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/archive.md): Archive Document.

### Get Documents By Number

 - [POST /rest/v1/documents/getByNumber](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/getbynumber.md): Get Documents By Number with optional pagination.

### Get Inbox Documents

 - [POST /rest/v1/documents/inbox](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/inbox.md): Get Inbox Documents.

### Get Document Statuses

 - [POST /rest/v1/documents/getStatus](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/getstatus.md): Get Document Statuses By VAT Number And DateFrom/To Range.

### Get Outbox Document Statuses

 - [POST /rest/v1/documents/outbox/status](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/getoutboxstatus.md): Get Outbox Document Statuses By VAT Number And DateFrom/To Range with pagination. Results are, by default, sorted and filtered using the issuedDateTime field.

### Get Inbox Document Statuses

 - [POST /rest/v1/documents/inbox/status](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/getinboxstatus.md): Get Inbox Document Statuses By VAT Number And DateFrom/To Range. Results are, by default, sorted and filtered using the issuedDateTime field.

### Get all fiscalization statuses for a document

 - [POST /rest/v1/documents/getAllFiscalizationStatuses](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/getallfiscalizationstatuses.md): Returns all fiscalization statuses for the specified document ID.

### Get latest fiscalization status for a document

 - [POST /rest/v1/documents/getLatestFiscalizationStatus](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/getlatestfiscalizationstatus.md): Returns the most recent fiscalization status for the specified document ID.

### Get all reporting statuses for a document

 - [POST /rest/v1/documents/getAllReportingStatuses](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/getallreportingstatuses.md): Returns all reporting statuses for the specified document ID.

### Get latest reporting status for a document

 - [POST /rest/v1/documents/getLatestReportingStatus](https://sveracun-public-api.redocly.app/sveracun-openapi/documents/getlatestreportingstatus.md): Returns the most recent reporting status for the specified document ID.

## Users

User account management operations

### Create a new user

 - [POST /rest/v1/users/new](https://sveracun-public-api.redocly.app/sveracun-openapi/users/createuser.md): Accepts a JSON payload to register a new user with required and optional user data.

### Deactivate a user account

 - [POST /rest/v1/users/deactivate](https://sveracun-public-api.redocly.app/sveracun-openapi/users/deactivateuser.md): Accepts a JSON payload to deactivate a user account with required and optional user data.

### Reactivate a user account

 - [POST /rest/v1/users/reactivate](https://sveracun-public-api.redocly.app/sveracun-openapi/users/reactivateuser.md): Accepts a JSON payload to reactivate a user account with required and optional user data.

## Billing

Usage metrics and billing information

### Get Monthly Usage Metrics

 - [POST /rest/v1/billing/monthly-usage](https://sveracun-public-api.redocly.app/sveracun-openapi/billing/getmonthlyusage.md): Get usage metrics for documents sent, received and total for a specific month and year by VAT ID.

### Get Archive Usage Metrics

 - [POST /rest/v1/billing/archive-usage](https://sveracun-public-api.redocly.app/sveracun-openapi/billing/getarchiveusage.md): Get total archive usage in bytes for a company by VAT ID.

