Pređi na sadržaj

Referenca

Predračun i obuka

Ograničeni tok za predračun (Проформа) i obuku (Обука), sa refundacijom koja mora da ponovi ceo izvorni dokument.

2 operacija

Izdaj predračun ili račun za obuku

post/v1/proforma-training-workflows

Scope proforma-training:writeZahteva Idempotency-Key

Predračun (Проформа) je ponuda bez poreskog efekta, obuka (Обука) je vežba. Prodaja obuke ne sme imati referencu; refundacija mora tačno da ponovi izvorni dokument i identifikuje kupca.

Beleške iz ugovora (OpenAPI, engleski)

Accepts only Proforma or Training transactions through the dedicated workflow scope. Training Sale forbids a reference. Training Refund must reference an exact Boka-issued Training Sale. Proforma Sale may omit a reference or reference a Boka-issued Proforma Sale or Refund; Proforma Refund must reference a Boka-issued Proforma Sale. Refunds must exactly reproduce every source item and payment, identify the buyer, and only one unresolved or completed full refund may reserve a source. External and legacy references remain outside this bounded workflow. An unknown PFR outcome is terminal for automatic submission and an idempotent replay never creates a second fiscal request.

Telo zahteva application/json

createProformaTrainingWorkflow: Telo zahteva
PoljeTipOpis
taxpayerIdobaveznouuid
businessPremiseIdobaveznouuid
clientReferenceobaveznostring

min 1max 200

invoiceTypeobaveznostring

PROFORMATRAININGVrednosti

transactionTypeobaveznoTransactionType

SALEREFUNDVrednosti

cashierobaveznoCashier
idobaveznostring
displayNameopcionostring
buyeropcionoBuyer
idopcionostringOfficial prefix and value, for example 10:123456789.
optionalFieldopcionostringOfficial buyer-cost-center prefix and value where applicable.
originalopcionoBokaDocumentReference
sourceobaveznoconst "BOKA"
fiscalDocumentIdobaveznouuid
itemsobaveznoarray<LineItem>

min 1 items

catalogProductIdopcionouuidOptional; arbitrary inline items are permitted.
nameobaveznostring

min 1max 2048

unitOfMeasureopcionostringRequired on every item except the codebook advance literals (10: Аванс (Ђ) and siblings), which are prescribed verbatim without a unit. The API refuses any other item without one (422, Items.UnitOfMeasure) and composes it into the signed item name as name/unit.

min 1max 50

quantityobaveznonumberV-PFR Decimal(14,3).

>= 0.001<= 99999999999.999step 0.001

unitPriceobaveznonumberFinal gross unit price sent to V-PFR as Decimal(28,4). Boka applies the mandated fiscal rounding rules.

>= 0step 0.01

unitPriceBeforeDiscountopciononumberOptional Boka-local immutable gross unit price before discount. When present it must be greater than unitPrice; it is displayed outside the exact PFR journal and is never sent as a supplier field.

>= 0step 0.0001

gtinopcionostring

min 8max 14

taxLabelsobaveznoarray<string>

min 1 itemsunique

paymentsobaveznoarray<Payment>

min 1 items

typeobaveznoPaymentType

OTHERCASHCARDCHECKWIRE_TRANSFERVOUCHERINSTANT_PAYMENTVrednosti

amountobaveznonumberAt most two decimals (the V-PFR rejects more with validation code 2804); the field type on the wire is Decimal(28,4).

>= 0step 0.01

commercialFooteropcionostring

max 2000

metadataopcionoobjectNon-fiscal caller metadata.

Primer

POST /v1/proforma-training-workflows
curl -X POST "https://api.bokapos.rs/v1/proforma-training-workflows" \
  -H "Authorization: Bearer $BOKAPOS_TOKEN" \
  -H "Idempotency-Key: quote-2210-proforma-1" \
  -H "Content-Type: application/json" \
  -d '{
  "taxpayerId": "3f9c2a8e-6b1d-4e5a-9c47-1d2b8e6f0a11",
  "businessPremiseId": "b7d4e2c1-9a3f-4c8e-8f21-6e5a0c9d3b22",
  "clientReference": "QUOTE-2210",
  "invoiceType": "PROFORMA",
  "transactionType": "SALE",
  "cashier": {
    "id": "web-shop"
  },
  "buyer": {
    "id": "10:106952811"
  },
  "items": [
    {
      "name": "Bluetooth slušalice",
      "unitOfMeasure": "kom",
      "quantity": 1,
      "unitPrice": 8990,
      "gtin": "8606012345678",
      "taxLabels": [
        "F"
      ]
    }
  ],
  "payments": [
    {
      "type": "WIRE_TRANSFER",
      "amount": 8990
    }
  ],
  "commercialFooter": "Ponuda važi 7 dana."
}'

Odgovori

createProformaTrainingWorkflow: Odgovori
200 OKIdempotent replay of a completed workflowProformaTrainingWorkflow
201 CreatedFiscalized Proforma or Training documentProformaTrainingWorkflow
202 AcceptedThe request is durably reserved but has not been submittedProformaTrainingWorkflow
404 Not FoundResource does not exist within the authenticated tenant scopeErrorCode
409 ConflictIdempotency, source-reservation, or terminal workflow conflict
422 Unprocessable ContentThe command violates a Boka or fiscal rule, or PFR definitively rejected the reserved operation
503 Service UnavailableNo fiscal receipt is claimed; the workflow is unavailable or its outcome is unresolved
201 Created
{
  "id": "0a1b2c3d-4e5f-4a6b-8c7d-8e9f0a1b2c3d",
  "taxpayerId": "3f9c2a8e-6b1d-4e5a-9c47-1d2b8e6f0a11",
  "businessPremiseId": "b7d4e2c1-9a3f-4c8e-8f21-6e5a0c9d3b22",
  "clientReference": "QUOTE-2210",
  "invoiceType": "PROFORMA",
  "transactionType": "SALE",
  "state": "COMPLETED",
  "original": null,
  "document": {
    "id": "1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e",
    "taxpayerId": "3f9c2a8e-6b1d-4e5a-9c47-1d2b8e6f0a11",
    "businessPremiseId": "b7d4e2c1-9a3f-4c8e-8f21-6e5a0c9d3b22",
    "idempotencyKey": "quote-2210-proforma-1",
    "clientReference": "QUOTE-2210",
    "invoiceType": "PROFORMA",
    "transactionType": "SALE",
    "cashierId": "web-shop",
    "buyerId": "10:106952811",
    "buyerDetails": null,
    "status": "FISCALIZED",
    "fiscalized": true,
    "failureCode": null,
    "retryable": false,
    "pfr": {
      "invoiceNumber": "JWX4K9PL-JWX4K9PL-1047",
      "sdcTime": "2026-09-01T10:15:32.483+02:00",
      "requestedBy": "JWX4K9PL",
      "signedBy": "JWX4K9PL",
      "transactionTypeCounter": 902,
      "totalCounter": 1047,
      "invoiceCounterExtension": "ПрП",
      "totalAmount": 8990,
      "totalTax": 890.9009,
      "verificationUrl": "https://sandbox.suf.purs.gov.rs/v/?vl=A0pXWDRLOVBMSldYNEs5UEwSBAAAEAQAAKCLPAAAAAAAAAABnAqJa1EAAAA...",
      "journal": "============ ФИСКАЛНИ РАЧУН ============\n...\nПФР број рачуна:      JWX4K9PL-JWX4K9PL-1047\nБројач рачуна:                902/1047ПрП\n========================================\n======== КРАЈ ФИСКАЛНОГ РАЧУНА ========="
    },
    "receipt": {
      "textUrl": "/v1/fiscal-documents/1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e/representations/official-text",
      "jsonUrl": "/v1/fiscal-documents/1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e/representations/canonical-json",
      "pdfA4Url": "/v1/fiscal-documents/1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e/representations/pdf-a4",
      "pdf80mmUrl": "/v1/fiscal-documents/1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e/representations/pdf-80mm",
      "pdf58mmUrl": "/v1/fiscal-documents/1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e/representations/pdf-58mm",
      "previewImageUrl": "/v1/fiscal-documents/1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e/representations/preview-png",
      "qrImageUrl": "/v1/fiscal-documents/1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e/representations/qr-svg",
      "verificationUrl": "https://sandbox.suf.purs.gov.rs/v/?vl=A0pXWDRLOVBMSldYNEs5UEwSBAAAEAQAAKCLPAAAAAAAAAABnAqJa1EAAAA...",
      "preferredPaperFormat": "a4"
    },
    "createdAt": "2026-09-01T08:15:31.902Z",
    "updatedAt": "2026-09-01T08:15:32.611Z"
  },
  "failureCode": null,
  "createdAt": "2026-09-02T07:02:10.000Z",
  "updatedAt": "2026-09-02T07:02:11.204Z"
}

Primeri

training

POST /v1/proforma-training-workflows
curl -X POST "https://api.bokapos.rs/v1/proforma-training-workflows" \
  -H "Authorization: Bearer $BOKAPOS_TOKEN" \
  -H "Idempotency-Key: training-2026-09-02-1" \
  -H "Content-Type: application/json" \
  -d '{
  "taxpayerId": "3f9c2a8e-6b1d-4e5a-9c47-1d2b8e6f0a11",
  "businessPremiseId": "b7d4e2c1-9a3f-4c8e-8f21-6e5a0c9d3b22",
  "clientReference": "TRAINING-1",
  "invoiceType": "TRAINING",
  "transactionType": "SALE",
  "cashier": {
    "id": "operater-1"
  },
  "items": [
    {
      "name": "Test artikal",
      "unitOfMeasure": "kom",
      "quantity": 1,
      "unitPrice": 100,
      "taxLabels": [
        "F"
      ]
    }
  ],
  "payments": [
    {
      "type": "CASH",
      "amount": 100
    }
  ]
}'
201 Created
{
  "id": "2c3d4e5f-6a7b-4c8d-9e0f-1a2b3c4d5e6f",
  "taxpayerId": "3f9c2a8e-6b1d-4e5a-9c47-1d2b8e6f0a11",
  "businessPremiseId": "b7d4e2c1-9a3f-4c8e-8f21-6e5a0c9d3b22",
  "clientReference": "TRAINING-1",
  "invoiceType": "TRAINING",
  "transactionType": "SALE",
  "state": "COMPLETED",
  "original": null,
  "document": {
    "id": "3d4e5f6a-7b8c-4d9e-8f0a-1b2c3d4e5f6a",
    "taxpayerId": "3f9c2a8e-6b1d-4e5a-9c47-1d2b8e6f0a11",
    "businessPremiseId": "b7d4e2c1-9a3f-4c8e-8f21-6e5a0c9d3b22",
    "idempotencyKey": "training-2026-09-02-1",
    "clientReference": "TRAINING-1",
    "invoiceType": "TRAINING",
    "transactionType": "SALE",
    "cashierId": "web-shop",
    "buyerId": null,
    "buyerDetails": null,
    "status": "FISCALIZED",
    "fiscalized": true,
    "failureCode": null,
    "retryable": false,
    "pfr": {
      "invoiceNumber": "JWX4K9PL-JWX4K9PL-1048",
      "sdcTime": "2026-09-01T10:15:32.483+02:00",
      "requestedBy": "JWX4K9PL",
      "signedBy": "JWX4K9PL",
      "transactionTypeCounter": 903,
      "totalCounter": 1048,
      "invoiceCounterExtension": "ОП",
      "totalAmount": 100,
      "totalTax": 9.9099,
      "verificationUrl": "https://sandbox.suf.purs.gov.rs/v/?vl=A0pXWDRLOVBMSldYNEs5UEwSBAAAEAQAAKCLPAAAAAAAAAABnAqJa1EAAAA...",
      "journal": "============ ФИСКАЛНИ РАЧУН ============\n...\nПФР број рачуна:      JWX4K9PL-JWX4K9PL-1048\nБројач рачуна:                903/1048ОП\n========================================\n======== КРАЈ ФИСКАЛНОГ РАЧУНА ========="
    },
    "receipt": {
      "textUrl": "/v1/fiscal-documents/3d4e5f6a-7b8c-4d9e-8f0a-1b2c3d4e5f6a/representations/official-text",
      "jsonUrl": "/v1/fiscal-documents/3d4e5f6a-7b8c-4d9e-8f0a-1b2c3d4e5f6a/representations/canonical-json",
      "pdfA4Url": "/v1/fiscal-documents/3d4e5f6a-7b8c-4d9e-8f0a-1b2c3d4e5f6a/representations/pdf-a4",
      "pdf80mmUrl": "/v1/fiscal-documents/3d4e5f6a-7b8c-4d9e-8f0a-1b2c3d4e5f6a/representations/pdf-80mm",
      "pdf58mmUrl": "/v1/fiscal-documents/3d4e5f6a-7b8c-4d9e-8f0a-1b2c3d4e5f6a/representations/pdf-58mm",
      "previewImageUrl": "/v1/fiscal-documents/3d4e5f6a-7b8c-4d9e-8f0a-1b2c3d4e5f6a/representations/preview-png",
      "qrImageUrl": "/v1/fiscal-documents/3d4e5f6a-7b8c-4d9e-8f0a-1b2c3d4e5f6a/representations/qr-svg",
      "verificationUrl": "https://sandbox.suf.purs.gov.rs/v/?vl=A0pXWDRLOVBMSldYNEs5UEwSBAAAEAQAAKCLPAAAAAAAAAABnAqJa1EAAAA...",
      "preferredPaperFormat": "a4"
    },
    "createdAt": "2026-09-01T08:15:31.902Z",
    "updatedAt": "2026-09-01T08:15:32.611Z"
  },
  "failureCode": null,
  "createdAt": "2026-09-02T07:10:00.000Z",
  "updatedAt": "2026-09-02T07:10:01.100Z"
}
Odgovor: ProformaTrainingWorkflow

Opisi polja su preuzeti iz OpenAPI ugovora i na engleskom su; nazivi polja i vrednosti su isti u oba jezika.

createProformaTrainingWorkflow: Odgovor
PoljeTipOpis
idobaveznouuid
taxpayerIdobaveznouuid
businessPremiseIdobaveznouuid
clientReferenceobaveznostring
invoiceTypeobaveznostring

PROFORMATRAININGVrednosti

transactionTypeobaveznoTransactionType

SALEREFUNDVrednosti

stateobaveznostring

PENDINGCOMPLETEDOUTCOME_UNKNOWNREJECTEDFAILEDVrednosti

originalopcionoProformaTrainingWorkflowOriginal| null (može biti null)
sourceobaveznoconst "BOKA"
fiscalDocumentIdobaveznouuid
pfrNumberobaveznostring
pfrTimeobaveznodate-time
invoiceTypeobaveznostring

PROFORMATRAININGVrednosti

transactionTypeobaveznoTransactionType

SALEREFUNDVrednosti

documentobaveznoFiscalDocument
idobaveznouuid
taxpayerIdobaveznouuid
businessPremiseIdobaveznouuid
idempotencyKeyobaveznostring
clientReferenceobaveznostring
invoiceTypeobaveznoInvoiceType

NORMALPROFORMACOPYTRAININGADVANCEVrednosti

transactionTypeobaveznoTransactionType

SALEREFUNDVrednosti

cashierIdobaveznostring
buyerIdopcionostring| null (može biti null)
buyerDetailsopcionoFiscalBuyerDetails| null (može biti null)The buyer's company-registry facts stored with the document at reservation and printed under the buyer identification. Null when the buyer is not a domestic company (prefixes 10, 12, 14 with a valid PIB) or the register could not answer at issuance.
legalNameobaveznostring

max 350

taxIdentifierobaveznostring

pattern ^[0-9]{9}$

registrationNumberopcionostring| null (može biti null)

pattern ^[0-9]{8}$

addressopcionostring| null (može biti null)

max 300

cityopcionostring| null (može biti null)

max 100

sourceobaveznostring

nbs-jrrVrednosti

resolvedAtobaveznodate-time
statusobaveznoFiscalDocumentStatus

RECEIVEDVALIDATEDSUBMITTINGFISCALIZEDREJECTEDNOT_FISCALIZEDOUTCOME_UNKNOWNRECONCILINGVrednosti

fiscalizedobaveznoboolean
failureCodeopcionostring| null (može biti null)
pfrRejectionopcionoobject| null (može biti null)Present only on a single-document read of a REJECTED operation. The V-PFR's own validation result, bounded to the property path of the caller's request and the supplier's numeric codes (2310 invalid tax label; 2800 to 2808 required, length, range, value, format and list-size validation). Lists never carry it.
itemsobaveznoarray<object>

max 10 items

propertyobaveznostring

max 120

codesobaveznoarray<string>

max 5 items

retryableobaveznoboolean
pfropcionoPfrResult| null (može biti null)
invoiceNumberobaveznostring
sdcTimeobaveznodate-time
requestedByobaveznostring
signedByobaveznostring
transactionTypeCounteropcionointeger| null (može biti null)V-PFR transaction-type counter (the left half of the printed counter). Null when the stored receipt does not carry it; the printed counter is always in the journal text.
totalCounteropcionointeger| null (može biti null)V-PFR total counter (the right half of the printed counter and the last segment of invoiceNumber). Null under the same condition as transactionTypeCounter.
invoiceCounterExtensionopcionostring| null (može biti null)Official Cyrillic invoice/transaction type pair printed after the counter (ПП, ПР, АП, АР, КП, КР, ОП, ОР, РП, РР). Null under the same condition as transactionTypeCounter.
totalAmountobaveznonumber
totalTaxopciononumber| null (može biti null)Sum of the V-PFR signed tax amounts of the document (the printed "Укупан износ пореза" before its two-decimal display rounding). Null under the same condition as transactionTypeCounter.
verificationUrlobaveznouri
journalobaveznostring
receiptopcionoReceiptRepresentations| null (može biti null)
textUrlobaveznouri-reference
jsonUrlobaveznouri-reference
pdfA4Urlobaveznouri-reference
pdf80mmUrlobaveznouri-reference
pdf58mmUrlobaveznouri-reference
previewImageUrlobaveznouri-reference
qrImageUrlobaveznouri-reference
verificationUrlobaveznouri
preferredPaperFormatobaveznostringImmutable preferred print/PDF format captured when this fiscal operation was reserved.

80mm58mma4Vrednosti

referenceopcionoResolvedReference
fiscalDocumentIdopcionouuid
pfrNumberobaveznostring
pfrTimeobaveznodate-time
createdAtobaveznodate-time
updatedAtobaveznodate-time
failureCodeopcionostring| null (može biti null)
createdAtobaveznodate-time
updatedAtobaveznodate-time

Pročitaj tok predračuna ili obuke

get/v1/proforma-training-workflows/{proformaTrainingWorkflowId}

Scope fiscal:read

Stanje toka i njegov dokument, uključujući OUTCOME_UNKNOWN koji sistem mora da razreši pre novog pokušaja.

Parametri

getProformaTrainingWorkflow: Parametri
PoljeGdeTipOpis
proformaTrainingWorkflowIdobaveznopathuuid

Primer

GET /v1/proforma-training-workflows/{proformaTrainingWorkflowId}
curl -X GET "https://api.bokapos.rs/v1/proforma-training-workflows/0a1b2c3d-4e5f-4a6b-8c7d-8e9f0a1b2c3d" \
  -H "Authorization: Bearer $BOKAPOS_TOKEN"

Odgovori

getProformaTrainingWorkflow: Odgovori
200 OKPersisted workflow and fiscal-document stateProformaTrainingWorkflow
404 Not FoundResource does not exist within the authenticated tenant scopeErrorCode
200 OK
{
  "id": "0a1b2c3d-4e5f-4a6b-8c7d-8e9f0a1b2c3d",
  "taxpayerId": "3f9c2a8e-6b1d-4e5a-9c47-1d2b8e6f0a11",
  "businessPremiseId": "b7d4e2c1-9a3f-4c8e-8f21-6e5a0c9d3b22",
  "clientReference": "QUOTE-2210",
  "invoiceType": "PROFORMA",
  "transactionType": "SALE",
  "state": "COMPLETED",
  "original": null,
  "document": {
    "id": "1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e",
    "taxpayerId": "3f9c2a8e-6b1d-4e5a-9c47-1d2b8e6f0a11",
    "businessPremiseId": "b7d4e2c1-9a3f-4c8e-8f21-6e5a0c9d3b22",
    "idempotencyKey": "quote-2210-proforma-1",
    "clientReference": "QUOTE-2210",
    "invoiceType": "PROFORMA",
    "transactionType": "SALE",
    "cashierId": "web-shop",
    "buyerId": "10:106952811",
    "buyerDetails": null,
    "status": "FISCALIZED",
    "fiscalized": true,
    "failureCode": null,
    "retryable": false,
    "pfr": {
      "invoiceNumber": "JWX4K9PL-JWX4K9PL-1047",
      "sdcTime": "2026-09-01T10:15:32.483+02:00",
      "requestedBy": "JWX4K9PL",
      "signedBy": "JWX4K9PL",
      "transactionTypeCounter": 902,
      "totalCounter": 1047,
      "invoiceCounterExtension": "ПрП",
      "totalAmount": 8990,
      "totalTax": 890.9009,
      "verificationUrl": "https://sandbox.suf.purs.gov.rs/v/?vl=A0pXWDRLOVBMSldYNEs5UEwSBAAAEAQAAKCLPAAAAAAAAAABnAqJa1EAAAA...",
      "journal": "============ ФИСКАЛНИ РАЧУН ============\n...\nПФР број рачуна:      JWX4K9PL-JWX4K9PL-1047\nБројач рачуна:                902/1047ПрП\n========================================\n======== КРАЈ ФИСКАЛНОГ РАЧУНА ========="
    },
    "receipt": {
      "textUrl": "/v1/fiscal-documents/1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e/representations/official-text",
      "jsonUrl": "/v1/fiscal-documents/1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e/representations/canonical-json",
      "pdfA4Url": "/v1/fiscal-documents/1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e/representations/pdf-a4",
      "pdf80mmUrl": "/v1/fiscal-documents/1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e/representations/pdf-80mm",
      "pdf58mmUrl": "/v1/fiscal-documents/1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e/representations/pdf-58mm",
      "previewImageUrl": "/v1/fiscal-documents/1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e/representations/preview-png",
      "qrImageUrl": "/v1/fiscal-documents/1b2c3d4e-5f6a-4b7c-8d9e-0f1a2b3c4d5e/representations/qr-svg",
      "verificationUrl": "https://sandbox.suf.purs.gov.rs/v/?vl=A0pXWDRLOVBMSldYNEs5UEwSBAAAEAQAAKCLPAAAAAAAAAABnAqJa1EAAAA...",
      "preferredPaperFormat": "a4"
    },
    "createdAt": "2026-09-01T08:15:31.902Z",
    "updatedAt": "2026-09-01T08:15:32.611Z"
  },
  "failureCode": null,
  "createdAt": "2026-09-02T07:02:10.000Z",
  "updatedAt": "2026-09-02T07:02:11.204Z"
}
Odgovor: ProformaTrainingWorkflow

Opisi polja su preuzeti iz OpenAPI ugovora i na engleskom su; nazivi polja i vrednosti su isti u oba jezika.

getProformaTrainingWorkflow: Odgovor
PoljeTipOpis
idobaveznouuid
taxpayerIdobaveznouuid
businessPremiseIdobaveznouuid
clientReferenceobaveznostring
invoiceTypeobaveznostring

PROFORMATRAININGVrednosti

transactionTypeobaveznoTransactionType

SALEREFUNDVrednosti

stateobaveznostring

PENDINGCOMPLETEDOUTCOME_UNKNOWNREJECTEDFAILEDVrednosti

originalopcionoProformaTrainingWorkflowOriginal| null (može biti null)
sourceobaveznoconst "BOKA"
fiscalDocumentIdobaveznouuid
pfrNumberobaveznostring
pfrTimeobaveznodate-time
invoiceTypeobaveznostring

PROFORMATRAININGVrednosti

transactionTypeobaveznoTransactionType

SALEREFUNDVrednosti

documentobaveznoFiscalDocument
idobaveznouuid
taxpayerIdobaveznouuid
businessPremiseIdobaveznouuid
idempotencyKeyobaveznostring
clientReferenceobaveznostring
invoiceTypeobaveznoInvoiceType

NORMALPROFORMACOPYTRAININGADVANCEVrednosti

transactionTypeobaveznoTransactionType

SALEREFUNDVrednosti

cashierIdobaveznostring
buyerIdopcionostring| null (može biti null)
buyerDetailsopcionoFiscalBuyerDetails| null (može biti null)The buyer's company-registry facts stored with the document at reservation and printed under the buyer identification. Null when the buyer is not a domestic company (prefixes 10, 12, 14 with a valid PIB) or the register could not answer at issuance.
legalNameobaveznostring

max 350

taxIdentifierobaveznostring

pattern ^[0-9]{9}$

registrationNumberopcionostring| null (može biti null)

pattern ^[0-9]{8}$

addressopcionostring| null (može biti null)

max 300

cityopcionostring| null (može biti null)

max 100

sourceobaveznostring

nbs-jrrVrednosti

resolvedAtobaveznodate-time
statusobaveznoFiscalDocumentStatus

RECEIVEDVALIDATEDSUBMITTINGFISCALIZEDREJECTEDNOT_FISCALIZEDOUTCOME_UNKNOWNRECONCILINGVrednosti

fiscalizedobaveznoboolean
failureCodeopcionostring| null (može biti null)
pfrRejectionopcionoobject| null (može biti null)Present only on a single-document read of a REJECTED operation. The V-PFR's own validation result, bounded to the property path of the caller's request and the supplier's numeric codes (2310 invalid tax label; 2800 to 2808 required, length, range, value, format and list-size validation). Lists never carry it.
itemsobaveznoarray<object>

max 10 items

propertyobaveznostring

max 120

codesobaveznoarray<string>

max 5 items

retryableobaveznoboolean
pfropcionoPfrResult| null (može biti null)
invoiceNumberobaveznostring
sdcTimeobaveznodate-time
requestedByobaveznostring
signedByobaveznostring
transactionTypeCounteropcionointeger| null (može biti null)V-PFR transaction-type counter (the left half of the printed counter). Null when the stored receipt does not carry it; the printed counter is always in the journal text.
totalCounteropcionointeger| null (može biti null)V-PFR total counter (the right half of the printed counter and the last segment of invoiceNumber). Null under the same condition as transactionTypeCounter.
invoiceCounterExtensionopcionostring| null (može biti null)Official Cyrillic invoice/transaction type pair printed after the counter (ПП, ПР, АП, АР, КП, КР, ОП, ОР, РП, РР). Null under the same condition as transactionTypeCounter.
totalAmountobaveznonumber
totalTaxopciononumber| null (može biti null)Sum of the V-PFR signed tax amounts of the document (the printed "Укупан износ пореза" before its two-decimal display rounding). Null under the same condition as transactionTypeCounter.
verificationUrlobaveznouri
journalobaveznostring
receiptopcionoReceiptRepresentations| null (može biti null)
textUrlobaveznouri-reference
jsonUrlobaveznouri-reference
pdfA4Urlobaveznouri-reference
pdf80mmUrlobaveznouri-reference
pdf58mmUrlobaveznouri-reference
previewImageUrlobaveznouri-reference
qrImageUrlobaveznouri-reference
verificationUrlobaveznouri
preferredPaperFormatobaveznostringImmutable preferred print/PDF format captured when this fiscal operation was reserved.

80mm58mma4Vrednosti

referenceopcionoResolvedReference
fiscalDocumentIdopcionouuid
pfrNumberobaveznostring
pfrTimeobaveznodate-time
createdAtobaveznodate-time
updatedAtobaveznodate-time
failureCodeopcionostring| null (može biti null)
createdAtobaveznodate-time
updatedAtobaveznodate-time